Files
IPS_W-assignments/W1/fasto/Fasto/Parser.fs
NikolajDanger b9ef4bb00e stuff
2022-04-30 16:18:13 +02:00

888 lines
44 KiB
Forth

// Implementation file for parser generated by fsyacc
module Parser
#nowarn "64";; // turn off warnings that type variables used in production annotations are instantiated to concrete type
open FSharp.Text.Lexing
open FSharp.Text.Parsing.ParseHelpers
# 2 "Parser.fsp"
let p0 = (0,0)
open FSharp.Text.Parsing
open AbSyn
(* parse-error function *)
let mutable ErrorContextDescriptor : string = ""
let parse_error_rich =
Some (fun (ctxt: ParseErrorContext<_>) ->
ErrorContextDescriptor <-
match ctxt.CurrentToken with
| None -> "At beginning of input\n"
| Some token -> sprintf "at token %A\n" token
)
# 26 "Parser.fs"
// This type is the type of tokens accepted by the parser
type token =
| LPAR of (Position)
| RPAR of (Position)
| LBRACKET of (Position)
| RBRACKET of (Position)
| LCURLY of (Position)
| RCURLY of (Position)
| FUN of (Position)
| FN of (Position)
| COMMA of (Position)
| SEMICOLON of (Position)
| READ of (Position)
| WRITE of (Position)
| DEQ of (Position)
| LTH of (Position)
| EQ of (Position)
| OP of (Position)
| MAP of (Position)
| REDUCE of (Position)
| IOTA of (Position)
| ARROW of (Position)
| PLUS of (Position)
| MINUS of (Position)
| LESS of (Position)
| INT of (Position)
| CHAR of (Position)
| BOOL of (Position)
| IF of (Position)
| THEN of (Position)
| ELSE of (Position)
| LET of (Position)
| IN of (Position)
| EOF of (Position)
| ID of (string * Position)
| STRINGLIT of (string * Position)
| CHARLIT of (char * Position)
| NUM of (int * Position)
// This type is used to give symbolic names to token indexes, useful for error messages
type tokenId =
| TOKEN_LPAR
| TOKEN_RPAR
| TOKEN_LBRACKET
| TOKEN_RBRACKET
| TOKEN_LCURLY
| TOKEN_RCURLY
| TOKEN_FUN
| TOKEN_FN
| TOKEN_COMMA
| TOKEN_SEMICOLON
| TOKEN_READ
| TOKEN_WRITE
| TOKEN_DEQ
| TOKEN_LTH
| TOKEN_EQ
| TOKEN_OP
| TOKEN_MAP
| TOKEN_REDUCE
| TOKEN_IOTA
| TOKEN_ARROW
| TOKEN_PLUS
| TOKEN_MINUS
| TOKEN_LESS
| TOKEN_INT
| TOKEN_CHAR
| TOKEN_BOOL
| TOKEN_IF
| TOKEN_THEN
| TOKEN_ELSE
| TOKEN_LET
| TOKEN_IN
| TOKEN_EOF
| TOKEN_ID
| TOKEN_STRINGLIT
| TOKEN_CHARLIT
| TOKEN_NUM
| TOKEN_end_of_input
| TOKEN_error
// This type is used to give symbolic names to token indexes, useful for error messages
type nonTerminalId =
| NONTERM__startProg
| NONTERM_Prog
| NONTERM_FunDecs
| NONTERM_Fun
| NONTERM_Type
| NONTERM_Params
| NONTERM_BinOp
| NONTERM_Exp
| NONTERM_Exps
| NONTERM_FunArg
// This function maps tokens to integer indexes
let tagOfToken (t:token) =
match t with
| LPAR _ -> 0
| RPAR _ -> 1
| LBRACKET _ -> 2
| RBRACKET _ -> 3
| LCURLY _ -> 4
| RCURLY _ -> 5
| FUN _ -> 6
| FN _ -> 7
| COMMA _ -> 8
| SEMICOLON _ -> 9
| READ _ -> 10
| WRITE _ -> 11
| DEQ _ -> 12
| LTH _ -> 13
| EQ _ -> 14
| OP _ -> 15
| MAP _ -> 16
| REDUCE _ -> 17
| IOTA _ -> 18
| ARROW _ -> 19
| PLUS _ -> 20
| MINUS _ -> 21
| LESS _ -> 22
| INT _ -> 23
| CHAR _ -> 24
| BOOL _ -> 25
| IF _ -> 26
| THEN _ -> 27
| ELSE _ -> 28
| LET _ -> 29
| IN _ -> 30
| EOF _ -> 31
| ID _ -> 32
| STRINGLIT _ -> 33
| CHARLIT _ -> 34
| NUM _ -> 35
// This function maps integer indexes to symbolic token ids
let tokenTagToTokenId (tokenIdx:int) =
match tokenIdx with
| 0 -> TOKEN_LPAR
| 1 -> TOKEN_RPAR
| 2 -> TOKEN_LBRACKET
| 3 -> TOKEN_RBRACKET
| 4 -> TOKEN_LCURLY
| 5 -> TOKEN_RCURLY
| 6 -> TOKEN_FUN
| 7 -> TOKEN_FN
| 8 -> TOKEN_COMMA
| 9 -> TOKEN_SEMICOLON
| 10 -> TOKEN_READ
| 11 -> TOKEN_WRITE
| 12 -> TOKEN_DEQ
| 13 -> TOKEN_LTH
| 14 -> TOKEN_EQ
| 15 -> TOKEN_OP
| 16 -> TOKEN_MAP
| 17 -> TOKEN_REDUCE
| 18 -> TOKEN_IOTA
| 19 -> TOKEN_ARROW
| 20 -> TOKEN_PLUS
| 21 -> TOKEN_MINUS
| 22 -> TOKEN_LESS
| 23 -> TOKEN_INT
| 24 -> TOKEN_CHAR
| 25 -> TOKEN_BOOL
| 26 -> TOKEN_IF
| 27 -> TOKEN_THEN
| 28 -> TOKEN_ELSE
| 29 -> TOKEN_LET
| 30 -> TOKEN_IN
| 31 -> TOKEN_EOF
| 32 -> TOKEN_ID
| 33 -> TOKEN_STRINGLIT
| 34 -> TOKEN_CHARLIT
| 35 -> TOKEN_NUM
| 38 -> TOKEN_end_of_input
| 36 -> TOKEN_error
| _ -> failwith "tokenTagToTokenId: bad token"
/// This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production
let prodIdxToNonTerminal (prodIdx:int) =
match prodIdx with
| 0 -> NONTERM__startProg
| 1 -> NONTERM_Prog
| 2 -> NONTERM_FunDecs
| 3 -> NONTERM_FunDecs
| 4 -> NONTERM_Fun
| 5 -> NONTERM_Fun
| 6 -> NONTERM_Type
| 7 -> NONTERM_Type
| 8 -> NONTERM_Type
| 9 -> NONTERM_Type
| 10 -> NONTERM_Params
| 11 -> NONTERM_Params
| 12 -> NONTERM_BinOp
| 13 -> NONTERM_Exp
| 14 -> NONTERM_Exp
| 15 -> NONTERM_Exp
| 16 -> NONTERM_Exp
| 17 -> NONTERM_Exp
| 18 -> NONTERM_Exp
| 19 -> NONTERM_Exp
| 20 -> NONTERM_Exp
| 21 -> NONTERM_Exp
| 22 -> NONTERM_Exp
| 23 -> NONTERM_Exp
| 24 -> NONTERM_Exp
| 25 -> NONTERM_Exp
| 26 -> NONTERM_Exp
| 27 -> NONTERM_Exp
| 28 -> NONTERM_Exp
| 29 -> NONTERM_Exp
| 30 -> NONTERM_Exp
| 31 -> NONTERM_Exp
| 32 -> NONTERM_Exp
| 33 -> NONTERM_Exp
| 34 -> NONTERM_Exps
| 35 -> NONTERM_Exps
| 36 -> NONTERM_FunArg
| 37 -> NONTERM_FunArg
| 38 -> NONTERM_FunArg
| _ -> failwith "prodIdxToNonTerminal: bad production index"
let _fsyacc_endOfInputTag = 38
let _fsyacc_tagOfErrorTerminal = 36
// This function gets the name of a token as a string
let token_to_string (t:token) =
match t with
| LPAR _ -> "LPAR"
| RPAR _ -> "RPAR"
| LBRACKET _ -> "LBRACKET"
| RBRACKET _ -> "RBRACKET"
| LCURLY _ -> "LCURLY"
| RCURLY _ -> "RCURLY"
| FUN _ -> "FUN"
| FN _ -> "FN"
| COMMA _ -> "COMMA"
| SEMICOLON _ -> "SEMICOLON"
| READ _ -> "READ"
| WRITE _ -> "WRITE"
| DEQ _ -> "DEQ"
| LTH _ -> "LTH"
| EQ _ -> "EQ"
| OP _ -> "OP"
| MAP _ -> "MAP"
| REDUCE _ -> "REDUCE"
| IOTA _ -> "IOTA"
| ARROW _ -> "ARROW"
| PLUS _ -> "PLUS"
| MINUS _ -> "MINUS"
| LESS _ -> "LESS"
| INT _ -> "INT"
| CHAR _ -> "CHAR"
| BOOL _ -> "BOOL"
| IF _ -> "IF"
| THEN _ -> "THEN"
| ELSE _ -> "ELSE"
| LET _ -> "LET"
| IN _ -> "IN"
| EOF _ -> "EOF"
| ID _ -> "ID"
| STRINGLIT _ -> "STRINGLIT"
| CHARLIT _ -> "CHARLIT"
| NUM _ -> "NUM"
// This function gets the data carried by a token as an object
let _fsyacc_dataOfToken (t:token) =
match t with
| LPAR _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| RPAR _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| LBRACKET _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| RBRACKET _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| LCURLY _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| RCURLY _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| FUN _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| FN _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| COMMA _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| SEMICOLON _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| READ _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| WRITE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| DEQ _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| LTH _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| EQ _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| MAP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| REDUCE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| IOTA _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| ARROW _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| PLUS _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| MINUS _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| LESS _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| INT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| CHAR _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| BOOL _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| IF _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| THEN _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| ELSE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| LET _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| IN _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| EOF _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| ID _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| STRINGLIT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| CHARLIT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
| NUM _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
let _fsyacc_gotos = [| 0us; 65535us; 1us; 65535us; 0us; 1us; 2us; 65535us; 0us; 2us; 5us; 6us; 1us; 65535us; 4us; 5us; 7us; 65535us; 4us; 7us; 9us; 23us; 20us; 21us; 25us; 23us; 68us; 69us; 104us; 105us; 106us; 23us; 3us; 65535us; 9us; 10us; 25us; 26us; 106us; 109us; 1us; 65535us; 88us; 89us; 25us; 65535us; 12us; 13us; 15us; 16us; 32us; 53us; 56us; 35us; 57us; 36us; 58us; 37us; 59us; 38us; 60us; 39us; 61us; 40us; 62us; 41us; 63us; 53us; 72us; 42us; 75us; 43us; 80us; 44us; 85us; 45us; 86us; 46us; 90us; 47us; 91us; 48us; 93us; 49us; 97us; 50us; 98us; 51us; 99us; 52us; 101us; 53us; 108us; 54us; 111us; 55us; 3us; 65535us; 32us; 33us; 63us; 64us; 101us; 102us; 2us; 65535us; 78us; 79us; 83us; 84us; |]
let _fsyacc_sparseGotoTableRowOffsets = [|0us; 1us; 3us; 6us; 8us; 16us; 20us; 22us; 48us; 52us; |]
let _fsyacc_stateToProdIdxsTableElements = [| 1us; 0us; 1us; 0us; 1us; 1us; 1us; 1us; 2us; 2us; 3us; 2us; 2us; 3us; 1us; 2us; 2us; 4us; 5us; 2us; 4us; 5us; 2us; 4us; 5us; 1us; 4us; 1us; 4us; 1us; 4us; 5us; 4us; 18us; 19us; 20us; 21us; 1us; 5us; 1us; 5us; 5us; 5us; 18us; 19us; 20us; 21us; 1us; 6us; 1us; 7us; 1us; 8us; 1us; 9us; 1us; 9us; 1us; 9us; 2us; 10us; 11us; 2us; 10us; 11us; 1us; 10us; 1us; 10us; 1us; 12us; 1us; 13us; 1us; 14us; 4us; 15us; 23us; 24us; 33us; 1us; 16us; 1us; 17us; 1us; 17us; 1us; 17us; 5us; 18us; 18us; 19us; 20us; 21us; 5us; 18us; 19us; 19us; 20us; 21us; 5us; 18us; 19us; 20us; 20us; 21us; 5us; 18us; 19us; 20us; 21us; 21us; 5us; 18us; 19us; 20us; 21us; 22us; 5us; 18us; 19us; 20us; 21us; 22us; 5us; 18us; 19us; 20us; 21us; 22us; 5us; 18us; 19us; 20us; 21us; 26us; 5us; 18us; 19us; 20us; 21us; 27us; 5us; 18us; 19us; 20us; 21us; 28us; 5us; 18us; 19us; 20us; 21us; 29us; 5us; 18us; 19us; 20us; 21us; 29us; 5us; 18us; 19us; 20us; 21us; 30us; 5us; 18us; 19us; 20us; 21us; 30us; 5us; 18us; 19us; 20us; 21us; 31us; 5us; 18us; 19us; 20us; 21us; 32us; 5us; 18us; 19us; 20us; 21us; 32us; 5us; 18us; 19us; 20us; 21us; 33us; 6us; 18us; 19us; 20us; 21us; 34us; 35us; 5us; 18us; 19us; 20us; 21us; 37us; 5us; 18us; 19us; 20us; 21us; 38us; 1us; 18us; 1us; 19us; 1us; 20us; 1us; 21us; 1us; 22us; 1us; 22us; 1us; 22us; 2us; 23us; 24us; 1us; 23us; 1us; 23us; 1us; 24us; 1us; 25us; 1us; 25us; 1us; 25us; 1us; 25us; 1us; 26us; 1us; 26us; 1us; 26us; 1us; 27us; 1us; 27us; 1us; 27us; 1us; 28us; 1us; 28us; 1us; 28us; 1us; 28us; 1us; 28us; 2us; 29us; 30us; 2us; 29us; 30us; 1us; 29us; 1us; 29us; 1us; 29us; 1us; 29us; 1us; 30us; 1us; 30us; 1us; 30us; 1us; 30us; 1us; 30us; 1us; 31us; 1us; 31us; 1us; 32us; 1us; 32us; 1us; 32us; 1us; 32us; 1us; 33us; 1us; 33us; 1us; 34us; 1us; 34us; 1us; 36us; 2us; 37us; 38us; 2us; 37us; 38us; 2us; 37us; 38us; 1us; 37us; 1us; 37us; 1us; 38us; 1us; 38us; 1us; 38us; |]
let _fsyacc_stateToProdIdxsTableRowOffsets = [|0us; 2us; 4us; 6us; 8us; 11us; 14us; 16us; 19us; 22us; 25us; 27us; 29us; 31us; 37us; 39us; 41us; 47us; 49us; 51us; 53us; 55us; 57us; 59us; 62us; 65us; 67us; 69us; 71us; 73us; 75us; 80us; 82us; 84us; 86us; 88us; 94us; 100us; 106us; 112us; 118us; 124us; 130us; 136us; 142us; 148us; 154us; 160us; 166us; 172us; 178us; 184us; 190us; 196us; 203us; 209us; 215us; 217us; 219us; 221us; 223us; 225us; 227us; 229us; 232us; 234us; 236us; 238us; 240us; 242us; 244us; 246us; 248us; 250us; 252us; 254us; 256us; 258us; 260us; 262us; 264us; 266us; 268us; 271us; 274us; 276us; 278us; 280us; 282us; 284us; 286us; 288us; 290us; 292us; 294us; 296us; 298us; 300us; 302us; 304us; 306us; 308us; 310us; 312us; 314us; 317us; 320us; 323us; 325us; 327us; 329us; 331us; |]
let _fsyacc_action_rows = 112
let _fsyacc_actionTableElements = [|1us; 32768us; 6us; 4us; 0us; 49152us; 1us; 32768us; 31us; 3us; 0us; 16385us; 4us; 32768us; 2us; 20us; 23us; 17us; 24us; 18us; 25us; 19us; 1us; 16387us; 6us; 4us; 0us; 16386us; 1us; 32768us; 32us; 8us; 1us; 32768us; 0us; 9us; 5us; 32768us; 1us; 14us; 2us; 20us; 23us; 17us; 24us; 18us; 25us; 19us; 1us; 32768us; 1us; 11us; 1us; 32768us; 14us; 12us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 4us; 16388us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 1us; 32768us; 14us; 15us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 4us; 16389us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 0us; 16390us; 0us; 16391us; 0us; 16392us; 4us; 32768us; 2us; 20us; 23us; 17us; 24us; 18us; 25us; 19us; 1us; 32768us; 3us; 22us; 0us; 16393us; 1us; 32768us; 32us; 24us; 1us; 16395us; 8us; 25us; 4us; 32768us; 2us; 20us; 23us; 17us; 24us; 18us; 25us; 19us; 0us; 16394us; 0us; 16396us; 0us; 16397us; 0us; 16398us; 2us; 16399us; 0us; 63us; 2us; 99us; 0us; 16400us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 1us; 32768us; 5us; 34us; 0us; 16401us; 0us; 16402us; 0us; 16403us; 2us; 16404us; 20us; 56us; 21us; 57us; 2us; 16405us; 20us; 56us; 21us; 57us; 5us; 32768us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 27us; 61us; 5us; 32768us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 28us; 62us; 4us; 16406us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 1us; 73us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 1us; 76us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 1us; 81us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 8us; 86us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 1us; 87us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 8us; 91us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 1us; 92us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 1us; 94us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 30us; 98us; 4us; 16416us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 3us; 100us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 16419us; 8us; 101us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 4us; 16421us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 4us; 16422us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 14us; 32768us; 0us; 93us; 1us; 66us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 1us; 32768us; 1us; 65us; 0us; 16407us; 0us; 16408us; 1us; 32768us; 0us; 68us; 4us; 32768us; 2us; 20us; 23us; 17us; 24us; 18us; 25us; 19us; 1us; 32768us; 1us; 70us; 0us; 16409us; 1us; 32768us; 0us; 72us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 0us; 16410us; 1us; 32768us; 0us; 75us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 0us; 16411us; 1us; 32768us; 0us; 78us; 2us; 32768us; 7us; 104us; 32us; 103us; 1us; 32768us; 8us; 80us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 0us; 16412us; 1us; 32768us; 0us; 83us; 3us; 32768us; 7us; 104us; 15us; 88us; 32us; 103us; 1us; 32768us; 8us; 85us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 0us; 16413us; 1us; 32768us; 20us; 27us; 1us; 32768us; 8us; 90us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 0us; 16414us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 0us; 16415us; 1us; 32768us; 32us; 96us; 1us; 32768us; 14us; 97us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 0us; 16417us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 0us; 16418us; 0us; 16420us; 4us; 32768us; 2us; 20us; 23us; 17us; 24us; 18us; 25us; 19us; 1us; 32768us; 0us; 106us; 5us; 32768us; 1us; 107us; 2us; 20us; 23us; 17us; 24us; 18us; 25us; 19us; 1us; 32768us; 19us; 108us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 1us; 32768us; 1us; 110us; 1us; 32768us; 19us; 111us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; |]
let _fsyacc_actionTableRowOffsets = [|0us; 2us; 3us; 5us; 6us; 11us; 13us; 14us; 16us; 18us; 24us; 26us; 28us; 42us; 47us; 49us; 63us; 68us; 69us; 70us; 71us; 76us; 78us; 79us; 81us; 83us; 88us; 89us; 90us; 91us; 92us; 95us; 96us; 110us; 112us; 113us; 114us; 115us; 118us; 121us; 127us; 133us; 138us; 144us; 150us; 156us; 162us; 168us; 174us; 180us; 186us; 192us; 197us; 203us; 209us; 214us; 219us; 233us; 247us; 261us; 275us; 289us; 303us; 317us; 332us; 334us; 335us; 336us; 338us; 343us; 345us; 346us; 348us; 362us; 363us; 365us; 379us; 380us; 382us; 385us; 387us; 401us; 402us; 404us; 408us; 410us; 424us; 438us; 439us; 441us; 443us; 457us; 471us; 472us; 486us; 487us; 489us; 491us; 505us; 519us; 533us; 534us; 548us; 549us; 550us; 555us; 557us; 563us; 565us; 579us; 581us; 583us; |]
let _fsyacc_reductionSymbolCounts = [|1us; 2us; 3us; 2us; 7us; 6us; 1us; 1us; 1us; 3us; 4us; 2us; 1us; 1us; 1us; 1us; 1us; 3us; 3us; 3us; 3us; 3us; 6us; 4us; 3us; 4us; 4us; 4us; 6us; 8us; 9us; 3us; 6us; 4us; 3us; 1us; 1us; 6us; 7us; |]
let _fsyacc_productionToNonTerminalTable = [|0us; 1us; 2us; 2us; 3us; 3us; 4us; 4us; 4us; 4us; 5us; 5us; 6us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 8us; 8us; 9us; 9us; 9us; |]
let _fsyacc_immediateActions = [|65535us; 49152us; 65535us; 16385us; 65535us; 65535us; 16386us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16390us; 16391us; 16392us; 65535us; 65535us; 16393us; 65535us; 65535us; 65535us; 16394us; 16396us; 16397us; 16398us; 65535us; 16400us; 65535us; 65535us; 16401us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16407us; 16408us; 65535us; 65535us; 65535us; 16409us; 65535us; 65535us; 16410us; 65535us; 65535us; 16411us; 65535us; 65535us; 65535us; 65535us; 16412us; 65535us; 65535us; 65535us; 65535us; 65535us; 16413us; 65535us; 65535us; 65535us; 65535us; 16414us; 65535us; 16415us; 65535us; 65535us; 65535us; 65535us; 65535us; 16417us; 65535us; 16418us; 16420us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]
let _fsyacc_reductions () = [|
# 338 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedProg in
Microsoft.FSharp.Core.Operators.box
(
(
raise (FSharp.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1))
)
: 'gentype__startProg));
# 347 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedFunDec list in
let _2 = parseState.GetInput(2) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 65 "Parser.fsp"
_1
)
# 65 "Parser.fsp"
: AbSyn.UntypedProg));
# 359 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
let _2 = parseState.GetInput(2) :?> AbSyn.UntypedFunDec in
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedFunDec list in
Microsoft.FSharp.Core.Operators.box
(
(
# 68 "Parser.fsp"
_2 :: _3
)
# 68 "Parser.fsp"
: AbSyn.UntypedFunDec list));
# 372 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
let _2 = parseState.GetInput(2) :?> AbSyn.UntypedFunDec in
Microsoft.FSharp.Core.Operators.box
(
(
# 69 "Parser.fsp"
_2 :: []
)
# 69 "Parser.fsp"
: AbSyn.UntypedFunDec list));
# 384 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> AbSyn.Type in
let _2 = parseState.GetInput(2) :?> string * Position in
let _3 = parseState.GetInput(3) :?> Position in
let _4 = parseState.GetInput(4) :?> 'gentype_Params in
let _5 = parseState.GetInput(5) :?> Position in
let _6 = parseState.GetInput(6) :?> Position in
let _7 = parseState.GetInput(7) :?> AbSyn.UntypedExp in
Microsoft.FSharp.Core.Operators.box
(
(
# 73 "Parser.fsp"
FunDec (fst _2, _1, _4, _7, snd _2)
)
# 73 "Parser.fsp"
: AbSyn.UntypedFunDec));
# 401 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> AbSyn.Type in
let _2 = parseState.GetInput(2) :?> string * Position in
let _3 = parseState.GetInput(3) :?> Position in
let _4 = parseState.GetInput(4) :?> Position in
let _5 = parseState.GetInput(5) :?> Position in
let _6 = parseState.GetInput(6) :?> AbSyn.UntypedExp in
Microsoft.FSharp.Core.Operators.box
(
(
# 75 "Parser.fsp"
FunDec (fst _2, _1, [], _6, snd _2)
)
# 75 "Parser.fsp"
: AbSyn.UntypedFunDec));
# 417 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 78 "Parser.fsp"
AbSyn.Int
)
# 78 "Parser.fsp"
: AbSyn.Type));
# 428 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 79 "Parser.fsp"
AbSyn.Char
)
# 79 "Parser.fsp"
: AbSyn.Type));
# 439 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 80 "Parser.fsp"
AbSyn.Bool
)
# 80 "Parser.fsp"
: AbSyn.Type));
# 450 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
let _2 = parseState.GetInput(2) :?> AbSyn.Type in
let _3 = parseState.GetInput(3) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 81 "Parser.fsp"
AbSyn.Array _2
)
# 81 "Parser.fsp"
: AbSyn.Type));
# 463 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> AbSyn.Type in
let _2 = parseState.GetInput(2) :?> string * Position in
let _3 = parseState.GetInput(3) :?> Position in
let _4 = parseState.GetInput(4) :?> 'gentype_Params in
Microsoft.FSharp.Core.Operators.box
(
(
# 85 "Parser.fsp"
Param (fst _2, _1) :: _4
)
# 85 "Parser.fsp"
: 'gentype_Params));
# 477 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> AbSyn.Type in
let _2 = parseState.GetInput(2) :?> string * Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 86 "Parser.fsp"
Param (fst _2, _1) :: []
)
# 86 "Parser.fsp"
: 'gentype_Params));
# 489 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 90 "Parser.fsp"
(Lambda
(Int, [Param ("x", Int);
Param ("y", Int)],
Plus (Var ("x", _1),
Var ("y", _1),
_1) ,_1))
)
# 90 "Parser.fsp"
: 'gentype_BinOp));
# 505 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> int * Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 103 "Parser.fsp"
Constant (IntVal (fst _1), snd _1)
)
# 103 "Parser.fsp"
: AbSyn.UntypedExp));
# 516 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> char * Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 104 "Parser.fsp"
Constant (CharVal (fst _1), snd _1)
)
# 104 "Parser.fsp"
: AbSyn.UntypedExp));
# 527 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> string * Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 105 "Parser.fsp"
Var _1
)
# 105 "Parser.fsp"
: AbSyn.UntypedExp));
# 538 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> string * Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 106 "Parser.fsp"
StringLit _1
)
# 106 "Parser.fsp"
: AbSyn.UntypedExp));
# 549 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
let _2 = parseState.GetInput(2) :?> AbSyn.UntypedExp list in
let _3 = parseState.GetInput(3) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 108 "Parser.fsp"
ArrayLit (_2, (), _1)
)
# 108 "Parser.fsp"
: AbSyn.UntypedExp));
# 562 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedExp in
let _2 = parseState.GetInput(2) :?> Position in
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp in
Microsoft.FSharp.Core.Operators.box
(
(
# 109 "Parser.fsp"
Plus (_1, _3, _2)
)
# 109 "Parser.fsp"
: AbSyn.UntypedExp));
# 575 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedExp in
let _2 = parseState.GetInput(2) :?> Position in
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp in
Microsoft.FSharp.Core.Operators.box
(
(
# 110 "Parser.fsp"
Minus(_1, _3, _2)
)
# 110 "Parser.fsp"
: AbSyn.UntypedExp));
# 588 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedExp in
let _2 = parseState.GetInput(2) :?> Position in
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp in
Microsoft.FSharp.Core.Operators.box
(
(
# 111 "Parser.fsp"
Equal(_1, _3, _2)
)
# 111 "Parser.fsp"
: AbSyn.UntypedExp));
# 601 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedExp in
let _2 = parseState.GetInput(2) :?> Position in
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp in
Microsoft.FSharp.Core.Operators.box
(
(
# 112 "Parser.fsp"
Less (_1, _3, _2)
)
# 112 "Parser.fsp"
: AbSyn.UntypedExp));
# 614 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
let _2 = parseState.GetInput(2) :?> AbSyn.UntypedExp in
let _3 = parseState.GetInput(3) :?> Position in
let _4 = parseState.GetInput(4) :?> AbSyn.UntypedExp in
let _5 = parseState.GetInput(5) :?> Position in
let _6 = parseState.GetInput(6) :?> AbSyn.UntypedExp in
Microsoft.FSharp.Core.Operators.box
(
(
# 114 "Parser.fsp"
If (_2, _4, _6, _1)
)
# 114 "Parser.fsp"
: AbSyn.UntypedExp));
# 630 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> string * Position in
let _2 = parseState.GetInput(2) :?> Position in
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp list in
let _4 = parseState.GetInput(4) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 116 "Parser.fsp"
Apply (fst _1, _3, snd _1)
)
# 116 "Parser.fsp"
: AbSyn.UntypedExp));
# 644 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> string * Position in
let _2 = parseState.GetInput(2) :?> Position in
let _3 = parseState.GetInput(3) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 117 "Parser.fsp"
Apply (fst _1, [], snd _1)
)
# 117 "Parser.fsp"
: AbSyn.UntypedExp));
# 657 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
let _2 = parseState.GetInput(2) :?> Position in
let _3 = parseState.GetInput(3) :?> AbSyn.Type in
let _4 = parseState.GetInput(4) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 119 "Parser.fsp"
Read (_3, _1)
)
# 119 "Parser.fsp"
: AbSyn.UntypedExp));
# 671 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
let _2 = parseState.GetInput(2) :?> Position in
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp in
let _4 = parseState.GetInput(4) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 121 "Parser.fsp"
Write (_3, (), _1)
)
# 121 "Parser.fsp"
: AbSyn.UntypedExp));
# 685 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
let _2 = parseState.GetInput(2) :?> Position in
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp in
let _4 = parseState.GetInput(4) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 123 "Parser.fsp"
Iota (_3, _1)
)
# 123 "Parser.fsp"
: AbSyn.UntypedExp));
# 699 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
let _2 = parseState.GetInput(2) :?> Position in
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedFunArg in
let _4 = parseState.GetInput(4) :?> Position in
let _5 = parseState.GetInput(5) :?> AbSyn.UntypedExp in
let _6 = parseState.GetInput(6) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 125 "Parser.fsp"
Map (_3, _5, (), (), _1)
)
# 125 "Parser.fsp"
: AbSyn.UntypedExp));
# 715 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
let _2 = parseState.GetInput(2) :?> Position in
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedFunArg in
let _4 = parseState.GetInput(4) :?> Position in
let _5 = parseState.GetInput(5) :?> AbSyn.UntypedExp in
let _6 = parseState.GetInput(6) :?> Position in
let _7 = parseState.GetInput(7) :?> AbSyn.UntypedExp in
let _8 = parseState.GetInput(8) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 127 "Parser.fsp"
Reduce (_3, _5, _7, (), _1)
)
# 127 "Parser.fsp"
: AbSyn.UntypedExp));
# 733 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
let _2 = parseState.GetInput(2) :?> Position in
let _3 = parseState.GetInput(3) :?> Position in
let _4 = parseState.GetInput(4) :?> 'gentype_BinOp in
let _5 = parseState.GetInput(5) :?> Position in
let _6 = parseState.GetInput(6) :?> AbSyn.UntypedExp in
let _7 = parseState.GetInput(7) :?> Position in
let _8 = parseState.GetInput(8) :?> AbSyn.UntypedExp in
let _9 = parseState.GetInput(9) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 129 "Parser.fsp"
Reduce (_4, _6, _8, (), _1)
)
# 129 "Parser.fsp"
: AbSyn.UntypedExp));
# 752 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
let _2 = parseState.GetInput(2) :?> AbSyn.UntypedExp in
let _3 = parseState.GetInput(3) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 130 "Parser.fsp"
_2
)
# 130 "Parser.fsp"
: AbSyn.UntypedExp));
# 765 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
let _2 = parseState.GetInput(2) :?> string * Position in
let _3 = parseState.GetInput(3) :?> Position in
let _4 = parseState.GetInput(4) :?> AbSyn.UntypedExp in
let _5 = parseState.GetInput(5) :?> Position in
let _6 = parseState.GetInput(6) :?> AbSyn.UntypedExp in
Microsoft.FSharp.Core.Operators.box
(
(
# 133 "Parser.fsp"
Let (Dec (fst _2, _4, _3), _6, _1)
)
# 133 "Parser.fsp"
: AbSyn.UntypedExp));
# 781 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> string * Position in
let _2 = parseState.GetInput(2) :?> Position in
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp in
let _4 = parseState.GetInput(4) :?> Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 135 "Parser.fsp"
Index (fst _1, _3, (), _2)
)
# 135 "Parser.fsp"
: AbSyn.UntypedExp));
# 795 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedExp in
let _2 = parseState.GetInput(2) :?> Position in
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp list in
Microsoft.FSharp.Core.Operators.box
(
(
# 138 "Parser.fsp"
_1 :: _3
)
# 138 "Parser.fsp"
: AbSyn.UntypedExp list));
# 808 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedExp in
Microsoft.FSharp.Core.Operators.box
(
(
# 139 "Parser.fsp"
_1 :: []
)
# 139 "Parser.fsp"
: AbSyn.UntypedExp list));
# 819 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> string * Position in
Microsoft.FSharp.Core.Operators.box
(
(
# 142 "Parser.fsp"
FunName (fst _1 )
)
# 142 "Parser.fsp"
: AbSyn.UntypedFunArg));
# 830 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
let _2 = parseState.GetInput(2) :?> AbSyn.Type in
let _3 = parseState.GetInput(3) :?> Position in
let _4 = parseState.GetInput(4) :?> Position in
let _5 = parseState.GetInput(5) :?> Position in
let _6 = parseState.GetInput(6) :?> AbSyn.UntypedExp in
Microsoft.FSharp.Core.Operators.box
(
(
# 144 "Parser.fsp"
Lambda (_2, [], _6, _1)
)
# 144 "Parser.fsp"
: AbSyn.UntypedFunArg));
# 846 "Parser.fs"
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
let _1 = parseState.GetInput(1) :?> Position in
let _2 = parseState.GetInput(2) :?> AbSyn.Type in
let _3 = parseState.GetInput(3) :?> Position in
let _4 = parseState.GetInput(4) :?> 'gentype_Params in
let _5 = parseState.GetInput(5) :?> Position in
let _6 = parseState.GetInput(6) :?> Position in
let _7 = parseState.GetInput(7) :?> AbSyn.UntypedExp in
Microsoft.FSharp.Core.Operators.box
(
(
# 146 "Parser.fsp"
Lambda (_2, _4, _7, _1)
)
# 146 "Parser.fsp"
: AbSyn.UntypedFunArg));
|]
# 864 "Parser.fs"
let tables : FSharp.Text.Parsing.Tables<_> =
{ reductions= _fsyacc_reductions ();
endOfInputTag = _fsyacc_endOfInputTag;
tagOfToken = tagOfToken;
dataOfToken = _fsyacc_dataOfToken;
actionTableElements = _fsyacc_actionTableElements;
actionTableRowOffsets = _fsyacc_actionTableRowOffsets;
stateToProdIdxsTableElements = _fsyacc_stateToProdIdxsTableElements;
stateToProdIdxsTableRowOffsets = _fsyacc_stateToProdIdxsTableRowOffsets;
reductionSymbolCounts = _fsyacc_reductionSymbolCounts;
immediateActions = _fsyacc_immediateActions;
gotos = _fsyacc_gotos;
sparseGotoTableRowOffsets = _fsyacc_sparseGotoTableRowOffsets;
tagOfErrorTerminal = _fsyacc_tagOfErrorTerminal;
parseError = (fun (ctxt:FSharp.Text.Parsing.ParseErrorContext<_>) ->
match parse_error_rich with
| Some f -> f ctxt
| None -> parse_error ctxt.Message);
numTerminals = 39;
productionToNonTerminalTable = _fsyacc_productionToNonTerminalTable }
let engine lexer lexbuf startState = tables.Interpret(lexer, lexbuf, startState)
let Prog lexer lexbuf : AbSyn.UntypedProg =
engine lexer lexbuf 0 :?> _