82 lines
1.0 KiB
C
82 lines
1.0 KiB
C
|
#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
|