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: