From 09dd2097b77bf3dda4c5eb1ee6eb2a60f05bbec8 Mon Sep 17 00:00:00 2001 From: Haru Date: Sun, 15 Sep 2013 20:24:41 +0200 Subject: Added support for automatic concatenation of adjacent string literals - [ This commit is part of a larger script engine related update ] - Adjacent string literals are now automatically concatenated into one string upon parsing. - Adjacent string literals are string literals (i.e. "such as this", with only whitespace (including line breaks and/or comments) between them. For example, the lines: mes "this will be concatenated " /* skipping this comment */ " into one string"; // at parse time will produce an output of "this will be concatenated into one string". - The feature brings parity with other languages (i.e. C), and makes it easier to split long strings in multiple lines, without having to resort to a, slower, run-time string concatenation operator ('+') - Special thanks to Trojal for the idea. Signed-off-by: Haru --- npc/custom/test.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'npc/custom/test.txt') diff --git a/npc/custom/test.txt b/npc/custom/test.txt index bfd297f5d..0fffecf73 100644 --- a/npc/custom/test.txt +++ b/npc/custom/test.txt @@ -19,6 +19,15 @@ OnCheck: //end; } return; +OnCheckStr: + .@msg$ = getarg(0,"Unknown Error"); + .@val$ = getarg(1,""); + .@ref$ = getarg(2,""); + if (.@val$ != .@ref$) { + debugmes "Error: "+.@msg$+": '"+.@val$+"' != '"+.@ref$+"'"; + //end; + } + return; OnInit: // Array subscript setarray .@a, 3, 2, 1; @@ -226,6 +235,11 @@ OnInit: callsub(OnCheck, "Order of <,>,==", .@y); + .@x$ = "string " + "concatenation" /* test */ " succeeded"; + callsub(OnCheckStr, "String concatenation", .@x$, "string concatenation succeeded"); + + // Bitwise & operator .@x = (7&4); // 0111 & 0100 --> 0100 .@y = (4&1); // 0100 & 0001 --> 0000 -- cgit v1.2.3-70-g09d2