#ifndef js_lex_h #define js_lex_h enum { TK_IDENTIFIER = 256, TK_NUMBER, TK_STRING, TK_REGEXP, /* multi-character punctuators */ TK_LE, TK_GE, TK_EQ, TK_NE, TK_STRICTEQ, TK_STRICTNE, TK_SHL, TK_SHR, TK_USHR, TK_AND, TK_OR, TK_ADD_ASS, TK_SUB_ASS, TK_MUL_ASS, TK_DIV_ASS, TK_MOD_ASS, TK_SHL_ASS, TK_SHR_ASS, TK_USHR_ASS, TK_AND_ASS, TK_OR_ASS, TK_XOR_ASS, TK_INC, TK_DEC, /* keywords */ TK_BREAK, TK_CASE, TK_CATCH, TK_CONTINUE, TK_DEBUGGER, TK_DEFAULT, TK_DELETE, TK_DO, TK_ELSE, TK_FALSE, TK_FINALLY, TK_FOR, TK_FUNCTION, TK_IF, TK_IN, TK_INSTANCEOF, TK_NEW, TK_NULL, TK_RETURN, TK_SWITCH, TK_THIS, TK_THROW, TK_TRUE, TK_TRY, TK_TYPEOF, TK_VAR, TK_VOID, TK_WHILE, TK_WITH, }; int jsY_iswhite(int c); int jsY_isnewline(int c); int jsY_ishex(int c); int jsY_tohex(int c); const char *jsY_tokenstring(int token); int jsY_findword(const char *s, const char **list, int num); void jsY_initlex(js_State *J, const char *filename, const char *source); int jsY_lex(js_State *J); int jsY_lexjson(js_State *J); #endif