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