5.16.2. Tokens

Start data section to src/flx_parse.mly[2 /33 ] Next Prev First Last
    93: /* special */
    94: %token<Flx_ast.srcref * string> ERRORTOKEN
    95: %token ENDMARKER
    96: 
    97: /* whitespace and comments */
    98: %token NEWLINE
    99: %token SLOSH
   100: %token<string> COMMENT
   101: %token<string> COMMENT_NEWLINE
   102: %token<int> WHITE
   103: 
   104: /* literals */
   105: %token<Flx_ast.srcref * string> NAME
   106: %token<Flx_ast.srcref * string * Flx_ast.bigint> INTEGER
   107: %token<Flx_ast.srcref * string * string > FLOAT
   108: %token<Flx_ast.srcref * string> STRING
   109: %token<Flx_ast.srcref * string> CSTRING
   110: %token<Flx_ast.srcref * string> FSTRING
   111: %token<Flx_ast.srcref * string> WSTRING
   112: %token<Flx_ast.srcref * string> USTRING
   113: %token<Flx_ast.srcref * string> USER_KEYWORD
   114: %token <string list> HASH_INCLUDE_FILES
   115: 
   116: /* this has to be defined, but is never seen */
   117: %token<Flx_ast.srcref * string * (token list * Flx_ast.ast_term_t) list * (string, (token list * Flx_ast.ast_term_t) list) Hashtbl.t > USER_STATEMENT_KEYWORD
   118: 
   119: /* the tokeniser replaces the above with this one */
   120: %token<Flx_ast.srcref * string * (unit -> Flx_ast.statement_t) > USER_STATEMENT_DRIVER
   121: 
   122: /* user defined symbols */
   123: %token<Flx_ast.srcref * string * string> USER10
   124: %token<Flx_ast.srcref * (string * string) list * string> USERLB
   125: %token<Flx_ast.srcref * string > USERRB
   126: %token<Flx_ast.srcref> PARSE_ACTION
   127: 
   128: %token<Flx_ast.srcref> DOLLAR
   129: %token<Flx_ast.srcref> QUEST
   130: %token<Flx_ast.srcref> EXCLAMATION
   131: %token<Flx_ast.srcref> LPAR
   132: %token<Flx_ast.srcref> RPAR
   133: %token<Flx_ast.srcref> LSQB
   134: %token<Flx_ast.srcref> RSQB
   135: %token<Flx_ast.srcref> LBRACE
   136: %token<Flx_ast.srcref> RBRACE
   137: %token<Flx_ast.srcref> COLON
   138: %token<Flx_ast.srcref> COMMA
   139: %token<Flx_ast.srcref> SEMI
   140: %token<Flx_ast.srcref> PLUS
   141: %token<Flx_ast.srcref> MINUS
   142: %token<Flx_ast.srcref> STAR
   143: %token<Flx_ast.srcref> SLASH
   144: %token<Flx_ast.srcref> VBAR
   145: %token<Flx_ast.srcref> AMPER
   146: %token<Flx_ast.srcref> LESS
   147: %token<Flx_ast.srcref> GREATER
   148: %token<Flx_ast.srcref> EQUAL
   149: %token<Flx_ast.srcref> DOT
   150: %token<Flx_ast.srcref> PERCENT
   151: %token<Flx_ast.srcref> BACKQUOTE
   152: %token<Flx_ast.srcref> TILDE
   153: %token<Flx_ast.srcref> CIRCUMFLEX
   154: %token<Flx_ast.srcref> HASH
   155: %token<Flx_ast.srcref> ANDLESS
   156: %token<Flx_ast.srcref> ANDGREATER
   157: %token<Flx_ast.srcref> EQEQUAL
   158: %token<Flx_ast.srcref> NOTEQUAL
   159: %token<Flx_ast.srcref> LESSEQUAL
   160: %token<Flx_ast.srcref> GREATEREQUAL
   161: %token<Flx_ast.srcref> LEFTSHIFT
   162: %token<Flx_ast.srcref> RIGHTSHIFT
   163: %token<Flx_ast.srcref> STARSTAR
   164: %token<Flx_ast.srcref> LESSCOLON
   165: %token<Flx_ast.srcref> COLONGREATER
   166: %token<Flx_ast.srcref> DOTDOT
   167: %token<Flx_ast.srcref> COLONCOLON
   168: %token<Flx_ast.srcref> PLUSPLUS
   169: %token<Flx_ast.srcref> MINUSMINUS
   170: %token<Flx_ast.srcref> PLUSEQUAL
   171: %token<Flx_ast.srcref> MINUSEQUAL
   172: %token<Flx_ast.srcref> STAREQUAL
   173: %token<Flx_ast.srcref> SLASHEQUAL
   174: %token<Flx_ast.srcref> PERCENTEQUAL
   175: %token<Flx_ast.srcref> CARETEQUAL
   176: %token<Flx_ast.srcref> VBAREQUAL
   177: %token<Flx_ast.srcref> AMPEREQUAL
   178: %token<Flx_ast.srcref> TILDEEQUAL
   179: %token<Flx_ast.srcref> COLONEQUAL
   180: %token<Flx_ast.srcref> RIGHTARROW
   181: %token<Flx_ast.srcref> EQRIGHTARROW
   182: %token<Flx_ast.srcref> LEFTARROW
   183: %token<Flx_ast.srcref> LSQANGLE
   184: %token<Flx_ast.srcref> RSQANGLE
   185: %token<Flx_ast.srcref> LSQBAR
   186: %token<Flx_ast.srcref> RSQBAR
   187: %token<Flx_ast.srcref> AMPERAMPER
   188: %token<Flx_ast.srcref> VBARVBAR
   189: %token<Flx_ast.srcref> SLOSHAMPER
   190: %token<Flx_ast.srcref> SLOSHVBAR
   191: %token<Flx_ast.srcref> SLOSHCIRCUMFLEX
   192: %token<Flx_ast.srcref> HASHBANG
   193: %token<Flx_ast.srcref> LEFTSHIFTEQUAL
   194: %token<Flx_ast.srcref> RIGHTSHIFTEQUAL
   195: %token<Flx_ast.srcref> LEFTRIGHTARROW
   196: %token<Flx_ast.srcref> ANDEQEQUAL
   197: %token<Flx_ast.srcref> ANDNOTEQUAL
   198: %token<Flx_ast.srcref> ANDLESSEQUAL
   199: %token<Flx_ast.srcref> ANDGREATEREQUAL
   200: %token<Flx_ast.srcref> DOTDOTDOT
   201: %token<Flx_ast.srcref> DOTRIGHTARROW
   202: %token<Flx_ast.srcref> LONGRIGHTARROW
   203: %token<Flx_ast.srcref> PARSE_ACTION
   204: %token<Flx_ast.srcref> HASHBANGSLASH
   205: %token<Flx_ast.srcref> ALL
   206: %token<Flx_ast.srcref> ASSERT
   207: %token<Flx_ast.srcref> AXIOM
   208: %token<Flx_ast.srcref> BODY
   209: %token<Flx_ast.srcref> CALL
   210: %token<Flx_ast.srcref> CASE
   211: %token<Flx_ast.srcref> CASENO
   212: %token<Flx_ast.srcref> CLASS
   213: %token<Flx_ast.srcref> COMMENT_KEYWORD
   214: %token<Flx_ast.srcref> COMPOUND
   215: %token<Flx_ast.srcref> CONST
   216: %token<Flx_ast.srcref> CCLASS
   217: %token<Flx_ast.srcref> CSTRUCT
   218: %token<Flx_ast.srcref> CTOR
   219: %token<Flx_ast.srcref> CTYPES
   220: %token<Flx_ast.srcref> DEF
   221: %token<Flx_ast.srcref> DO
   222: %token<Flx_ast.srcref> DONE
   223: %token<Flx_ast.srcref> ELIF
   224: %token<Flx_ast.srcref> ELSE
   225: %token<Flx_ast.srcref> ENDIF
   226: %token<Flx_ast.srcref> ENDMATCH
   227: %token<Flx_ast.srcref> ENUM
   228: %token<Flx_ast.srcref> EXPECT
   229: %token<Flx_ast.srcref> EXPORT
   230: %token<Flx_ast.srcref> FOR
   231: %token<Flx_ast.srcref> FORGET
   232: %token<Flx_ast.srcref> FORK
   233: %token<Flx_ast.srcref> FUNCTOR
   234: %token<Flx_ast.srcref> FUNCTION
   235: %token<Flx_ast.srcref> GOTO
   236: %token<Flx_ast.srcref> HEADER
   237: %token<Flx_ast.srcref> IDENT
   238: %token<Flx_ast.srcref> INCLUDE
   239: %token<Flx_ast.srcref> INCOMPLETE
   240: %token<Flx_ast.srcref> INF
   241: %token<Flx_ast.srcref> IN
   242: %token<Flx_ast.srcref> IS
   243: %token<Flx_ast.srcref> INHERIT
   244: %token<Flx_ast.srcref> INLINE
   245: %token<Flx_ast.srcref> JUMP
   246: %token<Flx_ast.srcref> LET
   247: %token<Flx_ast.srcref> LOOP
   248: %token<Flx_ast.srcref> LVAL
   249: %token<Flx_ast.srcref> MACRO
   250: %token<Flx_ast.srcref> MODULE
   251: %token<Flx_ast.srcref> NAN
   252: %token<Flx_ast.srcref> NEW
   253: %token<Flx_ast.srcref> NOINLINE
   254: %token<Flx_ast.srcref> NONTERM
   255: %token<Flx_ast.srcref> NORETURN
   256: %token<Flx_ast.srcref> NOT
   257: %token<Flx_ast.srcref> OBJECT
   258: %token<Flx_ast.srcref> OPEN
   259: %token<Flx_ast.srcref> PACKAGE
   260: %token<Flx_ast.srcref> POD
   261: %token<Flx_ast.srcref> PRIVATE
   262: %token<Flx_ast.srcref> PROCEDURE
   263: %token<Flx_ast.srcref> PROPERTY
   264: %token<Flx_ast.srcref> REDUCE
   265: %token<Flx_ast.srcref> RENAME
   266: %token<Flx_ast.srcref> REQUIRES
   267: %token<Flx_ast.srcref> RETURN
   268: %token<Flx_ast.srcref> STRUCT
   269: %token<Flx_ast.srcref> THEN
   270: %token<Flx_ast.srcref> TODO
   271: %token<Flx_ast.srcref> TO
   272: %token<Flx_ast.srcref> TYPEDEF
   273: %token<Flx_ast.srcref> TYPE
   274: %token<Flx_ast.srcref> UNION
   275: %token<Flx_ast.srcref> USE
   276: %token<Flx_ast.srcref> VAL
   277: %token<Flx_ast.srcref> VAR
   278: %token<Flx_ast.srcref> WHEN
   279: %token<Flx_ast.srcref> WITH
   280: %token<Flx_ast.srcref> UNDERSCORE
   281: %token<Flx_ast.srcref> GC_POINTER
   282: %token<Flx_ast.srcref> GC_TYPE
   283: %token<Flx_ast.srcref> SVC
   284: %token<Flx_ast.srcref> DEREF
   285: %token<Flx_ast.srcref> AND
   286: %token<Flx_ast.srcref> AS
   287: %token<Flx_ast.srcref> CALLBACK
   288: %token<Flx_ast.srcref> CODE
   289: %token<Flx_ast.srcref> IF
   290: %token<Flx_ast.srcref> ISIN
   291: %token<Flx_ast.srcref> MATCH
   292: %token<Flx_ast.srcref> NOEXPAND
   293: %token<Flx_ast.srcref> OF
   294: %token<Flx_ast.srcref> OR
   295: %token<Flx_ast.srcref> PARSE
   296: %token<Flx_ast.srcref> REGEXP
   297: %token<Flx_ast.srcref> REGLEX
   298: %token<Flx_ast.srcref> REGMATCH
   299: %token<Flx_ast.srcref> THE
   300: %token<Flx_ast.srcref> TYPEMATCH
   301: %token<Flx_ast.srcref> EXPRESSION
   302: %token<Flx_ast.srcref> FLOAT_LITERAL
   303: %token<Flx_ast.srcref> INTEGER_LITERAL
   304: %token<Flx_ast.srcref> STRING_LITERAL
   305: %token<Flx_ast.srcref> STATEMENT
   306: %token<Flx_ast.srcref> STATEMENTS
   307: %type <Flx_ast.range_srcref * Flx_ast.statement_t list> compound
   308: %type <Flx_ast.statement_t> statement
   309: %type <Flx_ast.statement_t list * token> statementsx
   310: %type <Flx_ast.expr_t> expr
   311: %type <Flx_ast.expr_t> rvalue
   312: %type<Flx_ast.tpattern_t> tpattern
   313: %type <Flx_ast.pattern_t> pattern
   314: 
   315: %type <Flx_ast.compilation_unit_t> compilation_unit
   316: %start compilation_unit
   317: 
   318: %type <Flx_ast.expr_t> qualified_name
   319: %type <Flx_ast.expr_t> expression
   320: %type <Flx_ast.expr_t> expr
   321: %type <Flx_ast.expr_t * token> exprx
   322: %type <Flx_ast.expr_t> atom
   323: %type <unit> semi
   324: %type <Flx_ast.expr_t> integer_literal
   325: %type <Flx_ast.expr_t> float_literal
   326: %type <Flx_ast.expr_t> string_literal
   327: 
   328: %start expression
   329: %start statement
   330: %start exprx
   331: %start expr
   332: %start semi
   333: %start atom
   334: %start compound
   335: %start statementsx
   336: %start integer_literal
   337: %start float_literal
   338: %start string_literal
   339: 
   340: %%
   341: 
End data section to src/flx_parse.mly[2]