#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
#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