Revert "Update to SQUIRREL 3.0.4"
[supertux.git] / external / squirrel / squirrel / sqlexer.cpp
old mode 100644 (file)
new mode 100755 (executable)
index 547835b..0326825
@@ -44,7 +44,7 @@ void SQLexer::Init(SQSharedState *ss, SQLEXREADFUNC rg, SQUserPointer up,Compile
        ADD_KEYWORD(foreach, TK_FOREACH);\r
        ADD_KEYWORD(in, TK_IN);\r
        ADD_KEYWORD(typeof, TK_TYPEOF);\r
-       ADD_KEYWORD(base, TK_BASE);\r
+       ADD_KEYWORD(delegate, TK_DELEGATE);\r
        ADD_KEYWORD(delete, TK_DELETE);\r
        ADD_KEYWORD(try, TK_TRY);\r
        ADD_KEYWORD(catch, TK_CATCH);\r
@@ -56,10 +56,13 @@ void SQLexer::Init(SQSharedState *ss, SQLEXREADFUNC rg, SQUserPointer up,Compile
        ADD_KEYWORD(case, TK_CASE);\r
        ADD_KEYWORD(default, TK_DEFAULT);\r
        ADD_KEYWORD(this, TK_THIS);\r
+       ADD_KEYWORD(parent,TK_PARENT);\r
        ADD_KEYWORD(class,TK_CLASS);\r
        ADD_KEYWORD(extends,TK_EXTENDS);\r
        ADD_KEYWORD(constructor,TK_CONSTRUCTOR);\r
        ADD_KEYWORD(instanceof,TK_INSTANCEOF);\r
+       ADD_KEYWORD(vargc,TK_VARGC);\r
+       ADD_KEYWORD(vargv,TK_VARGV);\r
        ADD_KEYWORD(true,TK_TRUE);\r
        ADD_KEYWORD(false,TK_FALSE);\r
        ADD_KEYWORD(static,TK_STATIC);\r
@@ -71,7 +74,6 @@ void SQLexer::Init(SQSharedState *ss, SQLEXREADFUNC rg, SQUserPointer up,Compile
        _lasttokenline = _currentline = 1;\r
        _currentcolumn = 0;\r
        _prevtoken = -1;\r
-       _reached_eof = SQFalse;\r
        Next();\r
 }\r
 \r
@@ -89,7 +91,6 @@ void SQLexer::Next()
                return;\r
        }\r
        _currdata = SQUIRREL_EOB;\r
-       _reached_eof = SQTrue;\r
 }\r
 \r
 const SQChar *SQLexer::Tok2Str(SQInteger tok)\r
@@ -116,10 +117,6 @@ void SQLexer::LexBlockComment()
                }\r
        }\r
 }\r
-void SQLexer::LexLineComment()\r
-{\r
-       do { NEXT(); } while (CUR_CHAR != _SC('\n') && (!IS_EOB()));\r
-}\r
 \r
 SQInteger SQLexer::Lex()\r
 {\r
@@ -134,7 +131,6 @@ SQInteger SQLexer::Lex()
                        NEXT();\r
                        _currentcolumn=1;\r
                        continue;\r
-               case _SC('#'): LexLineComment(); continue;\r
                case _SC('/'):\r
                        NEXT();\r
                        switch(CUR_CHAR){\r
@@ -143,7 +139,7 @@ SQInteger SQLexer::Lex()
                                LexBlockComment();\r
                                continue;       \r
                        case _SC('/'):\r
-                               LexLineComment();\r
+                               do { NEXT(); } while (CUR_CHAR != _SC('\n') && (!IS_EOB()));\r
                                continue;\r
                        case _SC('='):\r
                                NEXT();\r
@@ -162,20 +158,12 @@ SQInteger SQLexer::Lex()
                        else { NEXT(); RETURN_TOKEN(TK_EQ); }\r
                case _SC('<'):\r
                        NEXT();\r
-                       switch(CUR_CHAR) {\r
-                       case _SC('='):\r
-                               NEXT(); \r
-                               if(CUR_CHAR == _SC('>')) {\r
-                                       NEXT();\r
-                                       RETURN_TOKEN(TK_3WAYSCMP); \r
-                               }\r
-                               RETURN_TOKEN(TK_LE) \r
-                               break;\r
-                       case _SC('-'): NEXT(); RETURN_TOKEN(TK_NEWSLOT); break;\r
-                       case _SC('<'): NEXT(); RETURN_TOKEN(TK_SHIFTL); break;\r
-                       case _SC('/'): NEXT(); RETURN_TOKEN(TK_ATTR_OPEN); break;\r
-                       }\r
-                       RETURN_TOKEN('<');\r
+                       if ( CUR_CHAR == _SC('=') ) { NEXT(); RETURN_TOKEN(TK_LE) }\r
+                       else if ( CUR_CHAR == _SC('-') ) { NEXT(); RETURN_TOKEN(TK_NEWSLOT); }\r
+                       else if ( CUR_CHAR == _SC('<') ) { NEXT(); RETURN_TOKEN(TK_SHIFTL); }\r
+                       else if ( CUR_CHAR == _SC('/') ) { NEXT(); RETURN_TOKEN(TK_ATTR_OPEN); }\r
+                       //else if ( CUR_CHAR == _SC('[') ) { NEXT(); ReadMultilineString(); RETURN_TOKEN(TK_STRING_LITERAL); }\r
+                       else { RETURN_TOKEN('<') }\r
                case _SC('>'):\r
                        NEXT();\r
                        if (CUR_CHAR == _SC('=')){ NEXT(); RETURN_TOKEN(TK_GE);}\r
@@ -194,10 +182,9 @@ SQInteger SQLexer::Lex()
                        else { NEXT(); RETURN_TOKEN(TK_NE); }\r
                case _SC('@'): {\r
                        SQInteger stype;\r
-                       NEXT();\r
-                       if(CUR_CHAR != _SC('"')) {\r
-                               RETURN_TOKEN('@');\r
-                       }\r
+                       NEXT(); \r
+                       if(CUR_CHAR != _SC('"'))\r
+                               Error(_SC("string expected"));\r
                        if((stype=ReadString('"',true))!=-1) {\r
                                RETURN_TOKEN(stype);\r
                        }\r