Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef js_lex_h
  2. #define js_lex_h
  3.  
  4. enum
  5. {
  6.         TK_IDENTIFIER = 256,
  7.         TK_NUMBER,
  8.         TK_STRING,
  9.         TK_REGEXP,
  10.  
  11.         /* multi-character punctuators */
  12.         TK_LE,
  13.         TK_GE,
  14.         TK_EQ,
  15.         TK_NE,
  16.         TK_STRICTEQ,
  17.         TK_STRICTNE,
  18.         TK_SHL,
  19.         TK_SHR,
  20.         TK_USHR,
  21.         TK_AND,
  22.         TK_OR,
  23.         TK_ADD_ASS,
  24.         TK_SUB_ASS,
  25.         TK_MUL_ASS,
  26.         TK_DIV_ASS,
  27.         TK_MOD_ASS,
  28.         TK_SHL_ASS,
  29.         TK_SHR_ASS,
  30.         TK_USHR_ASS,
  31.         TK_AND_ASS,
  32.         TK_OR_ASS,
  33.         TK_XOR_ASS,
  34.         TK_INC,
  35.         TK_DEC,
  36.  
  37.         /* keywords */
  38.         TK_BREAK,
  39.         TK_CASE,
  40.         TK_CATCH,
  41.         TK_CONTINUE,
  42.         TK_DEBUGGER,
  43.         TK_DEFAULT,
  44.         TK_DELETE,
  45.         TK_DO,
  46.         TK_ELSE,
  47.         TK_FALSE,
  48.         TK_FINALLY,
  49.         TK_FOR,
  50.         TK_FUNCTION,
  51.         TK_IF,
  52.         TK_IN,
  53.         TK_INSTANCEOF,
  54.         TK_NEW,
  55.         TK_NULL,
  56.         TK_RETURN,
  57.         TK_SWITCH,
  58.         TK_THIS,
  59.         TK_THROW,
  60.         TK_TRUE,
  61.         TK_TRY,
  62.         TK_TYPEOF,
  63.         TK_VAR,
  64.         TK_VOID,
  65.         TK_WHILE,
  66.         TK_WITH,
  67. };
  68.  
  69. int jsY_iswhite(int c);
  70. int jsY_isnewline(int c);
  71. int jsY_ishex(int c);
  72. int jsY_tohex(int c);
  73.  
  74. const char *jsY_tokenstring(int token);
  75. int jsY_findword(const char *s, const char **list, int num);
  76.  
  77. void jsY_initlex(js_State *J, const char *filename, const char *source);
  78. int jsY_lex(js_State *J);
  79. int jsY_lexjson(js_State *J);
  80.  
  81. #endif
  82.