diff options
| author | Robert Knop <prospero@lindenlab.com> | 2008-12-04 22:36:34 +0000 |
|---|---|---|
| committer | Robert Knop <prospero@lindenlab.com> | 2008-12-04 22:36:34 +0000 |
| commit | 189599b6ff0c4e6b81e761fbc990c057189359f2 (patch) | |
| tree | 1e9e0e91bae9bb1ee53e57ac91cdbbfc9f6dba95 /indra/lscript/lscript_compile/indra.l | |
| parent | fd46865a502036b9e4414e7ec4950faf551b1f14 (diff) | |
Merging from server/server-1.25 back to trunk.
svn merge -r99446:104838 svn+ssh://svn.lindenlab.com/svn/linden/branches/server/server-1.25
Conflicts resolved by Prospero, except for one scary conflict in
SendConfirmationEmail.php which was resolved by jarv.
Diffstat (limited to 'indra/lscript/lscript_compile/indra.l')
| -rw-r--r-- | indra/lscript/lscript_compile/indra.l | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/indra/lscript/lscript_compile/indra.l b/indra/lscript/lscript_compile/indra.l index 3e62195dc8..2616b47c73 100644 --- a/indra/lscript/lscript_compile/indra.l +++ b/indra/lscript/lscript_compile/indra.l @@ -36,7 +36,8 @@ FS (f|F) #include "llclickaction.h" void count(); -void comment(); +void line_comment(); +void block_comment(); void parse_string(); #define YYLMAX 16384 @@ -60,7 +61,8 @@ extern "C" { int yyerror(const char *fmt, ...); } %} %% -"//" { gInternalLine++; gInternalColumn = 0; comment(); } +"//" { gInternalLine++; gInternalColumn = 0; line_comment(); } +"/*" { block_comment(); } "integer" { count(); return(INTEGER); } "float" { count(); return(FLOAT_TYPE); } @@ -790,7 +792,7 @@ S32 yywrap() return(1); } -void comment() +void line_comment() { char c; @@ -798,6 +800,25 @@ void comment() ; } +void block_comment() +{ + char c1 = 0; + char c2 = yyinput(); + while (c2 != 0 && c2 != EOF && !(c1 == '*' && c2 == '/')) { + if (c2 == '\n') + { + gInternalLine++; + gInternalColumn = 0; + } + else if (c2 == '\t') + gInternalColumn += 4 - (gInternalColumn % 8); + else + gInternalColumn++; + c1 = c2; + c2 = yyinput(); + } +} + void count() { S32 i; |
