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
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
_lasttokenline = _currentline = 1;\r
_currentcolumn = 0;\r
_prevtoken = -1;\r
- _reached_eof = SQFalse;\r
Next();\r
}\r
\r
return;\r
}\r
_currdata = SQUIRREL_EOB;\r
- _reached_eof = SQTrue;\r
}\r
\r
const SQChar *SQLexer::Tok2Str(SQInteger tok)\r
}\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
NEXT();\r
_currentcolumn=1;\r
continue;\r
- case _SC('#'): LexLineComment(); continue;\r
case _SC('/'):\r
NEXT();\r
switch(CUR_CHAR){\r
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
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
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