diff options
author | McCabe Maxsted | 2009-01-15 07:42:42 -0700 |
---|---|---|
committer | McCabe Maxsted | 2009-01-15 07:42:42 -0700 |
commit | 2fa0def3e1656802c69d92ab066ef584214b3ce4 (patch) | |
tree | 868a0609142a347d9f6a5b379dfc1dc6ae6e1d42 | |
parent | Updated changelog (diff) | |
download | meta-impy-2fa0def3e1656802c69d92ab066ef584214b3ce4.zip meta-impy-2fa0def3e1656802c69d92ab066ef584214b3ce4.tar.gz meta-impy-2fa0def3e1656802c69d92ab066ef584214b3ce4.tar.bz2 meta-impy-2fa0def3e1656802c69d92ab066ef584214b3ce4.tar.xz |
Added compile support for multiline comments
Diffstat (limited to '')
-rw-r--r-- | ChangeLog.txt | 6 | ||||
-rw-r--r-- | linden/indra/lscript/lscript_compile/indra.l | 27 |
2 files changed, 30 insertions, 3 deletions
diff --git a/ChangeLog.txt b/ChangeLog.txt index ab3ca6c..30666f6 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt | |||
@@ -2,6 +2,12 @@ | |||
2 | =- 1.1.0 -= | 2 | =- 1.1.0 -= |
3 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | 3 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- |
4 | 4 | ||
5 | 2009-01-15 McCabe Maxsted <hakushakukun@gmail.com> | ||
6 | |||
7 | * llinden/indra/lscript/lscript_compile/indra.l: | ||
8 | Added compile support for multiline comments. | ||
9 | |||
10 | |||
5 | 2009-01-14 McCabe Maxsted <hakushakukun@gmail.com> | 11 | 2009-01-14 McCabe Maxsted <hakushakukun@gmail.com> |
6 | 12 | ||
7 | * linden/indra/llmath/llmodularmath.h: | 13 | * linden/indra/llmath/llmodularmath.h: |
diff --git a/linden/indra/lscript/lscript_compile/indra.l b/linden/indra/lscript/lscript_compile/indra.l index 3e62195..2616b47 100644 --- a/linden/indra/lscript/lscript_compile/indra.l +++ b/linden/indra/lscript/lscript_compile/indra.l | |||
@@ -36,7 +36,8 @@ FS (f|F) | |||
36 | #include "llclickaction.h" | 36 | #include "llclickaction.h" |
37 | 37 | ||
38 | void count(); | 38 | void count(); |
39 | void comment(); | 39 | void line_comment(); |
40 | void block_comment(); | ||
40 | void parse_string(); | 41 | void parse_string(); |
41 | 42 | ||
42 | #define YYLMAX 16384 | 43 | #define YYLMAX 16384 |
@@ -60,7 +61,8 @@ extern "C" { int yyerror(const char *fmt, ...); } | |||
60 | %} | 61 | %} |
61 | 62 | ||
62 | %% | 63 | %% |
63 | "//" { gInternalLine++; gInternalColumn = 0; comment(); } | 64 | "//" { gInternalLine++; gInternalColumn = 0; line_comment(); } |
65 | "/*" { block_comment(); } | ||
64 | 66 | ||
65 | "integer" { count(); return(INTEGER); } | 67 | "integer" { count(); return(INTEGER); } |
66 | "float" { count(); return(FLOAT_TYPE); } | 68 | "float" { count(); return(FLOAT_TYPE); } |
@@ -790,7 +792,7 @@ S32 yywrap() | |||
790 | return(1); | 792 | return(1); |
791 | } | 793 | } |
792 | 794 | ||
793 | void comment() | 795 | void line_comment() |
794 | { | 796 | { |
795 | char c; | 797 | char c; |
796 | 798 | ||
@@ -798,6 +800,25 @@ void comment() | |||
798 | ; | 800 | ; |
799 | } | 801 | } |
800 | 802 | ||
803 | void block_comment() | ||
804 | { | ||
805 | char c1 = 0; | ||
806 | char c2 = yyinput(); | ||
807 | while (c2 != 0 && c2 != EOF && !(c1 == '*' && c2 == '/')) { | ||
808 | if (c2 == '\n') | ||
809 | { | ||
810 | gInternalLine++; | ||
811 | gInternalColumn = 0; | ||
812 | } | ||
813 | else if (c2 == '\t') | ||
814 | gInternalColumn += 4 - (gInternalColumn % 8); | ||
815 | else | ||
816 | gInternalColumn++; | ||
817 | c1 = c2; | ||
818 | c2 = yyinput(); | ||
819 | } | ||
820 | } | ||
821 | |||
801 | void count() | 822 | void count() |
802 | { | 823 | { |
803 | S32 i; | 824 | S32 i; |