// Implementation file for parser generated by fsyacc #light "off" module Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiParser #nowarn "64";; // turn off warnings that type variables used in production annotations are instantiated to concrete type open Microsoft.FSharp.Compiler.AbstractIL open Internal.Utilities.Text.Lexing open Internal.Utilities.Text.Parsing.ParseHelpers # 1 "..\..\absil\ilpars.mly" // (c) Microsoft Corporation 2005-2009. open Internal.Utilities open Internal.Utilities.Text open Microsoft.FSharp.Text open Microsoft.FSharp.Compiler.AbstractIL open Microsoft.FSharp.Compiler.AbstractIL.Internal module Ilascii = Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiConstants module Ildiag = Microsoft.FSharp.Compiler.AbstractIL.Diagnostics module Il = Microsoft.FSharp.Compiler.AbstractIL.IL module Ilx = Microsoft.FSharp.Compiler.AbstractIL.Extensions.ILX.Types module Il = Microsoft.FSharp.Compiler.AbstractIL.IL module Illib = Microsoft.FSharp.Compiler.AbstractIL.Internal.Library open Illib open Ildiag open Il open Ilascii open Ilx let pfailwith s = stderr.WriteLine ("*** error: "^s); raise Parsing.RecoverableParseError /// vararg sentinels type sig_arg = SigArg of (string option * ILType) | Sentinel let decode_varargs args = let rec normals = function | [] -> ([],None) | Sentinel :: t -> ([],Some (varargs t)) | SigArg (_,p)::t -> let (n,r) = normals t in (p::n, r) and varargs = function | [] -> [] | SigArg (_,ty):: t -> let l = varargs t in ty::l | Sentinel :: t -> pfailwith "two sentinels in vararg call" in normals args;; type 'a resolved_at_mspec_scope = ResolvedAtMethodSpecScope of (ILGenericParameterDefs -> 'a) let no_mspec_scope x = ResolvedAtMethodSpecScope (fun cgparams -> x) let resolve_mspec_scope (ResolvedAtMethodSpecScope f) x = f x let resolve_mspec_scope_then (ResolvedAtMethodSpecScope f) g = ResolvedAtMethodSpecScope (fun x -> resolve_mspec_scope (g(f x)) x) let resolve_mspec_scope_to_formal_scope tspeco obj = match tspeco with None -> resolve_mspec_scope obj mk_empty_gparams | Some (tspec:ILTypeSpec) -> resolve_mspec_scope obj (gparams_of_inst tspec.GenericArgs) let resolve_mspec_scope_to_current_scope obj = resolve_mspec_scope obj mk_empty_gparams let find_mscorlib_aref() = match (!parse_ilGlobals).mscorlib_scoref with | ScopeRef_assembly aref -> aref | _ -> pfailwith "mscorlib_scoref not set to valid assembly reference in parse_ilGlobals" let find_aref nm = if nm = "mscorlib" then find_mscorlib_aref() else pfailwith ("Undefined assembly ref '" ^ nm ^ "'") # 78 "ilpars.fs" // This type is the type of tokens accepted by the parser type token = | VOID | VARARG | VALUETYPE | VALUE | UNSIGNED | UNMANAGED | UINT8 | UINT64 | UINT32 | UINT16 | UINT | TYPEDREF | THISCALL | STRING | STDCALL | STAR | SLASH | RPAREN | RBRACK | PLUS | OBJECT | NATIVE | METHOD | LPAREN | LESS | LBRACK | INT8 | INT64 | INT32 | INT16 | INT | INSTANCE | GREATER | FLOAT64 | FLOAT32 | FIELD | FASTCALL | EXPLICIT | EOF | ELIPSES | DOT_CTOR | DOT_CCTOR | DOT | DEFAULT | DCOLON | COMMA | CLASS | CHAR | CDECL | BYTEARRAY | BOOL | BANG | AMP | VAL_SQSTRING of (string) | VAL_QSTRING of (string) | VAL_DOTTEDNAME of (string) | VAL_ID of (string) | VAL_HEXBYTE of (int) | INSTR_VALUETYPE of (Ilascii.valuetype_instr) | INSTR_INT_TYPE of (Ilascii.int_type_instr) | INSTR_TYPE of (Ilascii.type_instr) | INSTR_TOK of (Ilascii.tok_instr) | INSTR_SWITCH of (Ilascii.switch_instr) | INSTR_STRING of (Ilascii.string_instr) | INSTR_NONE of (Ilascii.none_instr) | INSTR_METHOD of (Ilascii.method_instr) | INSTR_LOC of (Ilascii.loc_instr) | INSTR_R of (Ilascii.real_instr) | INSTR_I8 of (Ilascii.i64_instr) | INSTR_I32_I32 of (Ilascii.i32_i32_instr) | INSTR_I of (Ilascii.i32_instr) | INSTR_ARG of (Ilascii.arg_instr) | VAL_FLOAT64 of (double) | VAL_INT32_ELIPSES of (int32) | VAL_INT64 of (int64) // This type is used to give symbolic names to token indexes, useful for error messages type tokenId = | TOKEN_VOID | TOKEN_VARARG | TOKEN_VALUETYPE | TOKEN_VALUE | TOKEN_UNSIGNED | TOKEN_UNMANAGED | TOKEN_UINT8 | TOKEN_UINT64 | TOKEN_UINT32 | TOKEN_UINT16 | TOKEN_UINT | TOKEN_TYPEDREF | TOKEN_THISCALL | TOKEN_STRING | TOKEN_STDCALL | TOKEN_STAR | TOKEN_SLASH | TOKEN_RPAREN | TOKEN_RBRACK | TOKEN_PLUS | TOKEN_OBJECT | TOKEN_NATIVE | TOKEN_METHOD | TOKEN_LPAREN | TOKEN_LESS | TOKEN_LBRACK | TOKEN_INT8 | TOKEN_INT64 | TOKEN_INT32 | TOKEN_INT16 | TOKEN_INT | TOKEN_INSTANCE | TOKEN_GREATER | TOKEN_FLOAT64 | TOKEN_FLOAT32 | TOKEN_FIELD | TOKEN_FASTCALL | TOKEN_EXPLICIT | TOKEN_EOF | TOKEN_ELIPSES | TOKEN_DOT_CTOR | TOKEN_DOT_CCTOR | TOKEN_DOT | TOKEN_DEFAULT | TOKEN_DCOLON | TOKEN_COMMA | TOKEN_CLASS | TOKEN_CHAR | TOKEN_CDECL | TOKEN_BYTEARRAY | TOKEN_BOOL | TOKEN_BANG | TOKEN_AMP | TOKEN_VAL_SQSTRING | TOKEN_VAL_QSTRING | TOKEN_VAL_DOTTEDNAME | TOKEN_VAL_ID | TOKEN_VAL_HEXBYTE | TOKEN_INSTR_VALUETYPE | TOKEN_INSTR_INT_TYPE | TOKEN_INSTR_TYPE | TOKEN_INSTR_TOK | TOKEN_INSTR_SWITCH | TOKEN_INSTR_STRING | TOKEN_INSTR_NONE | TOKEN_INSTR_METHOD | TOKEN_INSTR_LOC | TOKEN_INSTR_R | TOKEN_INSTR_I8 | TOKEN_INSTR_I32_I32 | TOKEN_INSTR_I | TOKEN_INSTR_ARG | TOKEN_VAL_FLOAT64 | TOKEN_VAL_INT32_ELIPSES | TOKEN_VAL_INT64 | TOKEN_end_of_input | TOKEN_error // This type is used to give symbolic names to token indexes, useful for error messages type nonTerminalId = | NONTERM__starttop_instrs | NONTERM__starttop_typ | NONTERM_top_typ | NONTERM_top_instrs | NONTERM_compQstring | NONTERM_methodName | NONTERM_instrs2 | NONTERM_methodSpec | NONTERM_methodSpecMaybeArrayMethod | NONTERM_instr_r_head | NONTERM_instr | NONTERM_sigArgs0 | NONTERM_sigArgs1 | NONTERM_sigArgs1a | NONTERM_sigArg | NONTERM_opt_id | NONTERM_name1 | NONTERM_className | NONTERM_slashedName | NONTERM_typeNameInst | NONTERM_typeName | NONTERM_typSpec | NONTERM_callConv | NONTERM_callKind | NONTERM_typ | NONTERM_bounds1 | NONTERM_bound | NONTERM_id | NONTERM_int32 | NONTERM_int64 | NONTERM_float64 | NONTERM_opt_actual_tyargs | NONTERM_actual_tyargs | NONTERM_actualTypSpecs // This function maps tokens to integers indexes let tagOfToken (t:token) = match t with | VOID -> 0 | VARARG -> 1 | VALUETYPE -> 2 | VALUE -> 3 | UNSIGNED -> 4 | UNMANAGED -> 5 | UINT8 -> 6 | UINT64 -> 7 | UINT32 -> 8 | UINT16 -> 9 | UINT -> 10 | TYPEDREF -> 11 | THISCALL -> 12 | STRING -> 13 | STDCALL -> 14 | STAR -> 15 | SLASH -> 16 | RPAREN -> 17 | RBRACK -> 18 | PLUS -> 19 | OBJECT -> 20 | NATIVE -> 21 | METHOD -> 22 | LPAREN -> 23 | LESS -> 24 | LBRACK -> 25 | INT8 -> 26 | INT64 -> 27 | INT32 -> 28 | INT16 -> 29 | INT -> 30 | INSTANCE -> 31 | GREATER -> 32 | FLOAT64 -> 33 | FLOAT32 -> 34 | FIELD -> 35 | FASTCALL -> 36 | EXPLICIT -> 37 | EOF -> 38 | ELIPSES -> 39 | DOT_CTOR -> 40 | DOT_CCTOR -> 41 | DOT -> 42 | DEFAULT -> 43 | DCOLON -> 44 | COMMA -> 45 | CLASS -> 46 | CHAR -> 47 | CDECL -> 48 | BYTEARRAY -> 49 | BOOL -> 50 | BANG -> 51 | AMP -> 52 | VAL_SQSTRING _ -> 53 | VAL_QSTRING _ -> 54 | VAL_DOTTEDNAME _ -> 55 | VAL_ID _ -> 56 | VAL_HEXBYTE _ -> 57 | INSTR_VALUETYPE _ -> 58 | INSTR_INT_TYPE _ -> 59 | INSTR_TYPE _ -> 60 | INSTR_TOK _ -> 61 | INSTR_SWITCH _ -> 62 | INSTR_STRING _ -> 63 | INSTR_NONE _ -> 64 | INSTR_METHOD _ -> 65 | INSTR_LOC _ -> 66 | INSTR_R _ -> 67 | INSTR_I8 _ -> 68 | INSTR_I32_I32 _ -> 69 | INSTR_I _ -> 70 | INSTR_ARG _ -> 71 | VAL_FLOAT64 _ -> 72 | VAL_INT32_ELIPSES _ -> 73 | VAL_INT64 _ -> 74 // This function maps integers indexes to symbolic token ids let tokenTagToTokenId (tokenIdx:int) = match tokenIdx with | 0 -> TOKEN_VOID | 1 -> TOKEN_VARARG | 2 -> TOKEN_VALUETYPE | 3 -> TOKEN_VALUE | 4 -> TOKEN_UNSIGNED | 5 -> TOKEN_UNMANAGED | 6 -> TOKEN_UINT8 | 7 -> TOKEN_UINT64 | 8 -> TOKEN_UINT32 | 9 -> TOKEN_UINT16 | 10 -> TOKEN_UINT | 11 -> TOKEN_TYPEDREF | 12 -> TOKEN_THISCALL | 13 -> TOKEN_STRING | 14 -> TOKEN_STDCALL | 15 -> TOKEN_STAR | 16 -> TOKEN_SLASH | 17 -> TOKEN_RPAREN | 18 -> TOKEN_RBRACK | 19 -> TOKEN_PLUS | 20 -> TOKEN_OBJECT | 21 -> TOKEN_NATIVE | 22 -> TOKEN_METHOD | 23 -> TOKEN_LPAREN | 24 -> TOKEN_LESS | 25 -> TOKEN_LBRACK | 26 -> TOKEN_INT8 | 27 -> TOKEN_INT64 | 28 -> TOKEN_INT32 | 29 -> TOKEN_INT16 | 30 -> TOKEN_INT | 31 -> TOKEN_INSTANCE | 32 -> TOKEN_GREATER | 33 -> TOKEN_FLOAT64 | 34 -> TOKEN_FLOAT32 | 35 -> TOKEN_FIELD | 36 -> TOKEN_FASTCALL | 37 -> TOKEN_EXPLICIT | 38 -> TOKEN_EOF | 39 -> TOKEN_ELIPSES | 40 -> TOKEN_DOT_CTOR | 41 -> TOKEN_DOT_CCTOR | 42 -> TOKEN_DOT | 43 -> TOKEN_DEFAULT | 44 -> TOKEN_DCOLON | 45 -> TOKEN_COMMA | 46 -> TOKEN_CLASS | 47 -> TOKEN_CHAR | 48 -> TOKEN_CDECL | 49 -> TOKEN_BYTEARRAY | 50 -> TOKEN_BOOL | 51 -> TOKEN_BANG | 52 -> TOKEN_AMP | 53 -> TOKEN_VAL_SQSTRING | 54 -> TOKEN_VAL_QSTRING | 55 -> TOKEN_VAL_DOTTEDNAME | 56 -> TOKEN_VAL_ID | 57 -> TOKEN_VAL_HEXBYTE | 58 -> TOKEN_INSTR_VALUETYPE | 59 -> TOKEN_INSTR_INT_TYPE | 60 -> TOKEN_INSTR_TYPE | 61 -> TOKEN_INSTR_TOK | 62 -> TOKEN_INSTR_SWITCH | 63 -> TOKEN_INSTR_STRING | 64 -> TOKEN_INSTR_NONE | 65 -> TOKEN_INSTR_METHOD | 66 -> TOKEN_INSTR_LOC | 67 -> TOKEN_INSTR_R | 68 -> TOKEN_INSTR_I8 | 69 -> TOKEN_INSTR_I32_I32 | 70 -> TOKEN_INSTR_I | 71 -> TOKEN_INSTR_ARG | 72 -> TOKEN_VAL_FLOAT64 | 73 -> TOKEN_VAL_INT32_ELIPSES | 74 -> TOKEN_VAL_INT64 | 77 -> TOKEN_end_of_input | 75 -> 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__starttop_instrs | 1 -> NONTERM__starttop_typ | 2 -> NONTERM_top_typ | 3 -> NONTERM_top_instrs | 4 -> NONTERM_compQstring | 5 -> NONTERM_compQstring | 6 -> NONTERM_methodName | 7 -> NONTERM_methodName | 8 -> NONTERM_methodName | 9 -> NONTERM_instrs2 | 10 -> NONTERM_instrs2 | 11 -> NONTERM_methodSpec | 12 -> NONTERM_methodSpecMaybeArrayMethod | 13 -> NONTERM_instr_r_head | 14 -> NONTERM_instr | 15 -> NONTERM_instr | 16 -> NONTERM_instr | 17 -> NONTERM_instr | 18 -> NONTERM_instr | 19 -> NONTERM_instr | 20 -> NONTERM_instr | 21 -> NONTERM_instr | 22 -> NONTERM_instr | 23 -> NONTERM_instr | 24 -> NONTERM_instr | 25 -> NONTERM_instr | 26 -> NONTERM_instr | 27 -> NONTERM_sigArgs0 | 28 -> NONTERM_sigArgs0 | 29 -> NONTERM_sigArgs1 | 30 -> NONTERM_sigArgs1a | 31 -> NONTERM_sigArgs1a | 32 -> NONTERM_sigArg | 33 -> NONTERM_sigArg | 34 -> NONTERM_opt_id | 35 -> NONTERM_opt_id | 36 -> NONTERM_name1 | 37 -> NONTERM_name1 | 38 -> NONTERM_name1 | 39 -> NONTERM_className | 40 -> NONTERM_className | 41 -> NONTERM_slashedName | 42 -> NONTERM_slashedName | 43 -> NONTERM_typeNameInst | 44 -> NONTERM_typeName | 45 -> NONTERM_typSpec | 46 -> NONTERM_typSpec | 47 -> NONTERM_typSpec | 48 -> NONTERM_callConv | 49 -> NONTERM_callConv | 50 -> NONTERM_callConv | 51 -> NONTERM_callKind | 52 -> NONTERM_callKind | 53 -> NONTERM_callKind | 54 -> NONTERM_callKind | 55 -> NONTERM_callKind | 56 -> NONTERM_callKind | 57 -> NONTERM_callKind | 58 -> NONTERM_typ | 59 -> NONTERM_typ | 60 -> NONTERM_typ | 61 -> NONTERM_typ | 62 -> NONTERM_typ | 63 -> NONTERM_typ | 64 -> NONTERM_typ | 65 -> NONTERM_typ | 66 -> NONTERM_typ | 67 -> NONTERM_typ | 68 -> NONTERM_typ | 69 -> NONTERM_typ | 70 -> NONTERM_typ | 71 -> NONTERM_typ | 72 -> NONTERM_typ | 73 -> NONTERM_typ | 74 -> NONTERM_typ | 75 -> NONTERM_typ | 76 -> NONTERM_typ | 77 -> NONTERM_typ | 78 -> NONTERM_typ | 79 -> NONTERM_typ | 80 -> NONTERM_typ | 81 -> NONTERM_typ | 82 -> NONTERM_typ | 83 -> NONTERM_typ | 84 -> NONTERM_typ | 85 -> NONTERM_typ | 86 -> NONTERM_typ | 87 -> NONTERM_typ | 88 -> NONTERM_typ | 89 -> NONTERM_bounds1 | 90 -> NONTERM_bounds1 | 91 -> NONTERM_bound | 92 -> NONTERM_bound | 93 -> NONTERM_bound | 94 -> NONTERM_bound | 95 -> NONTERM_bound | 96 -> NONTERM_bound | 97 -> NONTERM_id | 98 -> NONTERM_id | 99 -> NONTERM_int32 | 100 -> NONTERM_int64 | 101 -> NONTERM_float64 | 102 -> NONTERM_float64 | 103 -> NONTERM_opt_actual_tyargs | 104 -> NONTERM_opt_actual_tyargs | 105 -> NONTERM_actual_tyargs | 106 -> NONTERM_actualTypSpecs | 107 -> NONTERM_actualTypSpecs | _ -> failwith "prodIdxToNonTerminal: bad production index" let _fsyacc_endOfInputTag = 77 let _fsyacc_tagOfErrorTerminal = 75 // This function gets the name of a token as a string let token_to_string (t:token) = match t with | VOID -> "VOID" | VARARG -> "VARARG" | VALUETYPE -> "VALUETYPE" | VALUE -> "VALUE" | UNSIGNED -> "UNSIGNED" | UNMANAGED -> "UNMANAGED" | UINT8 -> "UINT8" | UINT64 -> "UINT64" | UINT32 -> "UINT32" | UINT16 -> "UINT16" | UINT -> "UINT" | TYPEDREF -> "TYPEDREF" | THISCALL -> "THISCALL" | STRING -> "STRING" | STDCALL -> "STDCALL" | STAR -> "STAR" | SLASH -> "SLASH" | RPAREN -> "RPAREN" | RBRACK -> "RBRACK" | PLUS -> "PLUS" | OBJECT -> "OBJECT" | NATIVE -> "NATIVE" | METHOD -> "METHOD" | LPAREN -> "LPAREN" | LESS -> "LESS" | LBRACK -> "LBRACK" | INT8 -> "INT8" | INT64 -> "INT64" | INT32 -> "INT32" | INT16 -> "INT16" | INT -> "INT" | INSTANCE -> "INSTANCE" | GREATER -> "GREATER" | FLOAT64 -> "FLOAT64" | FLOAT32 -> "FLOAT32" | FIELD -> "FIELD" | FASTCALL -> "FASTCALL" | EXPLICIT -> "EXPLICIT" | EOF -> "EOF" | ELIPSES -> "ELIPSES" | DOT_CTOR -> "DOT_CTOR" | DOT_CCTOR -> "DOT_CCTOR" | DOT -> "DOT" | DEFAULT -> "DEFAULT" | DCOLON -> "DCOLON" | COMMA -> "COMMA" | CLASS -> "CLASS" | CHAR -> "CHAR" | CDECL -> "CDECL" | BYTEARRAY -> "BYTEARRAY" | BOOL -> "BOOL" | BANG -> "BANG" | AMP -> "AMP" | VAL_SQSTRING _ -> "VAL_SQSTRING" | VAL_QSTRING _ -> "VAL_QSTRING" | VAL_DOTTEDNAME _ -> "VAL_DOTTEDNAME" | VAL_ID _ -> "VAL_ID" | VAL_HEXBYTE _ -> "VAL_HEXBYTE" | INSTR_VALUETYPE _ -> "INSTR_VALUETYPE" | INSTR_INT_TYPE _ -> "INSTR_INT_TYPE" | INSTR_TYPE _ -> "INSTR_TYPE" | INSTR_TOK _ -> "INSTR_TOK" | INSTR_SWITCH _ -> "INSTR_SWITCH" | INSTR_STRING _ -> "INSTR_STRING" | INSTR_NONE _ -> "INSTR_NONE" | INSTR_METHOD _ -> "INSTR_METHOD" | INSTR_LOC _ -> "INSTR_LOC" | INSTR_R _ -> "INSTR_R" | INSTR_I8 _ -> "INSTR_I8" | INSTR_I32_I32 _ -> "INSTR_I32_I32" | INSTR_I _ -> "INSTR_I" | INSTR_ARG _ -> "INSTR_ARG" | VAL_FLOAT64 _ -> "VAL_FLOAT64" | VAL_INT32_ELIPSES _ -> "VAL_INT32_ELIPSES" | VAL_INT64 _ -> "VAL_INT64" // This function gets the data carried by a token as an object let _fsyacc_dataOfToken (t:token) = match t with | VOID -> (null : System.Object) | VARARG -> (null : System.Object) | VALUETYPE -> (null : System.Object) | VALUE -> (null : System.Object) | UNSIGNED -> (null : System.Object) | UNMANAGED -> (null : System.Object) | UINT8 -> (null : System.Object) | UINT64 -> (null : System.Object) | UINT32 -> (null : System.Object) | UINT16 -> (null : System.Object) | UINT -> (null : System.Object) | TYPEDREF -> (null : System.Object) | THISCALL -> (null : System.Object) | STRING -> (null : System.Object) | STDCALL -> (null : System.Object) | STAR -> (null : System.Object) | SLASH -> (null : System.Object) | RPAREN -> (null : System.Object) | RBRACK -> (null : System.Object) | PLUS -> (null : System.Object) | OBJECT -> (null : System.Object) | NATIVE -> (null : System.Object) | METHOD -> (null : System.Object) | LPAREN -> (null : System.Object) | LESS -> (null : System.Object) | LBRACK -> (null : System.Object) | INT8 -> (null : System.Object) | INT64 -> (null : System.Object) | INT32 -> (null : System.Object) | INT16 -> (null : System.Object) | INT -> (null : System.Object) | INSTANCE -> (null : System.Object) | GREATER -> (null : System.Object) | FLOAT64 -> (null : System.Object) | FLOAT32 -> (null : System.Object) | FIELD -> (null : System.Object) | FASTCALL -> (null : System.Object) | EXPLICIT -> (null : System.Object) | EOF -> (null : System.Object) | ELIPSES -> (null : System.Object) | DOT_CTOR -> (null : System.Object) | DOT_CCTOR -> (null : System.Object) | DOT -> (null : System.Object) | DEFAULT -> (null : System.Object) | DCOLON -> (null : System.Object) | COMMA -> (null : System.Object) | CLASS -> (null : System.Object) | CHAR -> (null : System.Object) | CDECL -> (null : System.Object) | BYTEARRAY -> (null : System.Object) | BOOL -> (null : System.Object) | BANG -> (null : System.Object) | AMP -> (null : System.Object) | VAL_SQSTRING _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | VAL_QSTRING _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | VAL_DOTTEDNAME _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | VAL_ID _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | VAL_HEXBYTE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | INSTR_VALUETYPE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | INSTR_INT_TYPE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | INSTR_TYPE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | INSTR_TOK _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | INSTR_SWITCH _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | INSTR_STRING _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | INSTR_NONE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | INSTR_METHOD _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | INSTR_LOC _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | INSTR_R _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | INSTR_I8 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | INSTR_I32_I32 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | INSTR_I _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | INSTR_ARG _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | VAL_FLOAT64 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | VAL_INT32_ELIPSES _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x | VAL_INT64 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x let _fsyacc_gotos = [| 0us; 65535us; 0us; 65535us; 1us; 65535us; 2us; 3us; 1us; 65535us; 0us; 1us; 0us; 65535us; 1us; 65535us; 16us; 17us; 2us; 65535us; 0us; 6us; 11us; 12us; 0us; 65535us; 1us; 65535us; 37us; 38us; 0us; 65535us; 2us; 65535us; 0us; 11us; 11us; 11us; 1us; 65535us; 19us; 20us; 1us; 65535us; 19us; 48us; 1us; 65535us; 19us; 49us; 2us; 65535us; 19us; 50us; 51us; 52us; 1us; 65535us; 54us; 55us; 15us; 65535us; 14us; 60us; 16us; 10us; 39us; 60us; 42us; 60us; 44us; 60us; 46us; 60us; 63us; 59us; 64us; 59us; 65us; 60us; 68us; 60us; 92us; 60us; 95us; 60us; 97us; 60us; 149us; 60us; 153us; 60us; 10us; 65535us; 14us; 72us; 39us; 72us; 42us; 72us; 44us; 72us; 46us; 72us; 92us; 70us; 95us; 70us; 97us; 70us; 149us; 72us; 153us; 72us; 12us; 65535us; 14us; 67us; 39us; 67us; 42us; 67us; 44us; 67us; 46us; 67us; 65us; 66us; 68us; 69us; 92us; 67us; 95us; 67us; 97us; 67us; 149us; 67us; 153us; 67us; 3us; 65535us; 92us; 93us; 95us; 96us; 97us; 98us; 7us; 65535us; 14us; 73us; 39us; 73us; 42us; 73us; 44us; 73us; 46us; 73us; 149us; 73us; 153us; 73us; 7us; 65535us; 14us; 15us; 39us; 40us; 42us; 43us; 44us; 45us; 46us; 47us; 149us; 152us; 153us; 154us; 1us; 65535us; 37us; 13us; 3us; 65535us; 37us; 82us; 78us; 79us; 80us; 81us; 12us; 65535us; 2us; 4us; 13us; 14us; 14us; 74us; 19us; 54us; 39us; 74us; 42us; 74us; 44us; 74us; 46us; 74us; 51us; 54us; 75us; 76us; 149us; 74us; 153us; 74us; 2us; 65535us; 64us; 101us; 99us; 101us; 3us; 65535us; 64us; 131us; 99us; 131us; 132us; 133us; 17us; 65535us; 14us; 57us; 16us; 57us; 39us; 57us; 42us; 57us; 44us; 57us; 46us; 57us; 54us; 56us; 61us; 62us; 63us; 57us; 64us; 57us; 65us; 57us; 68us; 57us; 92us; 57us; 95us; 57us; 97us; 57us; 149us; 57us; 153us; 57us; 12us; 65535us; 23us; 24us; 25us; 26us; 27us; 28us; 29us; 30us; 30us; 31us; 41us; 42us; 64us; 134us; 99us; 134us; 129us; 130us; 132us; 134us; 135us; 136us; 137us; 138us; 3us; 65535us; 32us; 33us; 34us; 36us; 145us; 146us; 1us; 65535us; 34us; 35us; 2us; 65535us; 17us; 18us; 70us; 71us; 2us; 65535us; 17us; 148us; 70us; 148us; 1us; 65535us; 149us; 150us; |] let _fsyacc_sparseGotoTableRowOffsets = [|0us; 1us; 2us; 4us; 6us; 7us; 9us; 12us; 13us; 15us; 16us; 19us; 21us; 23us; 25us; 28us; 30us; 46us; 57us; 70us; 74us; 82us; 90us; 92us; 96us; 109us; 112us; 116us; 134us; 147us; 151us; 153us; 156us; 159us; |] let _fsyacc_stateToProdIdxsTableElements = [| 1us; 0us; 1us; 0us; 1us; 1us; 1us; 1us; 5us; 2us; 63us; 64us; 65us; 66us; 1us; 2us; 1us; 3us; 1us; 3us; 1us; 6us; 1us; 7us; 2us; 8us; 38us; 1us; 9us; 1us; 9us; 1us; 12us; 5us; 12us; 63us; 64us; 65us; 66us; 1us; 12us; 1us; 12us; 1us; 12us; 1us; 12us; 1us; 12us; 1us; 12us; 1us; 12us; 1us; 14us; 1us; 15us; 1us; 15us; 1us; 16us; 1us; 16us; 1us; 17us; 1us; 17us; 1us; 18us; 1us; 18us; 1us; 18us; 1us; 19us; 1us; 19us; 2us; 20us; 21us; 1us; 20us; 1us; 21us; 1us; 22us; 1us; 22us; 1us; 23us; 1us; 23us; 1us; 24us; 1us; 24us; 1us; 24us; 1us; 25us; 1us; 25us; 1us; 26us; 1us; 26us; 1us; 28us; 2us; 29us; 31us; 1us; 30us; 1us; 31us; 1us; 31us; 1us; 32us; 5us; 33us; 63us; 64us; 65us; 66us; 1us; 33us; 1us; 35us; 1us; 36us; 1us; 37us; 2us; 38us; 39us; 3us; 38us; 41us; 42us; 1us; 38us; 1us; 38us; 1us; 39us; 3us; 39us; 63us; 64us; 1us; 39us; 1us; 39us; 1us; 40us; 1us; 42us; 1us; 42us; 1us; 43us; 1us; 43us; 1us; 44us; 1us; 45us; 5us; 46us; 63us; 64us; 65us; 66us; 1us; 47us; 5us; 47us; 63us; 64us; 65us; 66us; 1us; 47us; 1us; 48us; 1us; 48us; 1us; 49us; 1us; 49us; 1us; 50us; 1us; 52us; 1us; 53us; 4us; 54us; 55us; 56us; 57us; 1us; 54us; 1us; 55us; 1us; 56us; 1us; 57us; 1us; 58us; 1us; 59us; 1us; 60us; 1us; 60us; 1us; 61us; 1us; 61us; 1us; 61us; 1us; 62us; 1us; 62us; 2us; 63us; 64us; 1us; 63us; 2us; 64us; 90us; 1us; 64us; 1us; 65us; 1us; 66us; 1us; 67us; 1us; 68us; 1us; 69us; 1us; 70us; 1us; 71us; 1us; 72us; 1us; 73us; 1us; 74us; 1us; 75us; 1us; 76us; 4us; 77us; 78us; 79us; 80us; 1us; 77us; 1us; 78us; 1us; 79us; 1us; 80us; 1us; 81us; 1us; 82us; 1us; 83us; 1us; 84us; 3us; 85us; 86us; 87us; 1us; 85us; 1us; 86us; 1us; 86us; 1us; 87us; 1us; 88us; 1us; 88us; 1us; 89us; 1us; 90us; 1us; 90us; 3us; 92us; 93us; 94us; 2us; 93us; 94us; 1us; 93us; 2us; 95us; 96us; 1us; 95us; 1us; 97us; 1us; 98us; 1us; 99us; 1us; 100us; 1us; 101us; 1us; 102us; 1us; 102us; 1us; 102us; 1us; 102us; 1us; 104us; 1us; 105us; 2us; 105us; 107us; 1us; 105us; 1us; 106us; 1us; 107us; 1us; 107us; |] let _fsyacc_stateToProdIdxsTableRowOffsets = [|0us; 2us; 4us; 6us; 8us; 14us; 16us; 18us; 20us; 22us; 24us; 27us; 29us; 31us; 33us; 39us; 41us; 43us; 45us; 47us; 49us; 51us; 53us; 55us; 57us; 59us; 61us; 63us; 65us; 67us; 69us; 71us; 73us; 75us; 77us; 80us; 82us; 84us; 86us; 88us; 90us; 92us; 94us; 96us; 98us; 100us; 102us; 104us; 106us; 108us; 111us; 113us; 115us; 117us; 119us; 125us; 127us; 129us; 131us; 133us; 136us; 140us; 142us; 144us; 146us; 150us; 152us; 154us; 156us; 158us; 160us; 162us; 164us; 166us; 168us; 174us; 176us; 182us; 184us; 186us; 188us; 190us; 192us; 194us; 196us; 198us; 203us; 205us; 207us; 209us; 211us; 213us; 215us; 217us; 219us; 221us; 223us; 225us; 227us; 229us; 232us; 234us; 237us; 239us; 241us; 243us; 245us; 247us; 249us; 251us; 253us; 255us; 257us; 259us; 261us; 263us; 268us; 270us; 272us; 274us; 276us; 278us; 280us; 282us; 284us; 288us; 290us; 292us; 294us; 296us; 298us; 300us; 302us; 304us; 306us; 310us; 313us; 315us; 318us; 320us; 322us; 324us; 326us; 328us; 330us; 332us; 334us; 336us; 338us; 340us; 342us; 345us; 347us; 349us; 351us; |] let _fsyacc_action_rows = 155 let _fsyacc_actionTableElements = [|12us; 16394us; 58us; 44us; 59us; 41us; 60us; 39us; 61us; 46us; 64us; 22us; 65us; 37us; 66us; 25us; 67us; 34us; 68us; 32us; 69us; 29us; 70us; 27us; 71us; 23us; 0us; 49152us; 22us; 32768us; 0us; 107us; 2us; 97us; 3us; 94us; 4us; 115us; 6us; 120us; 7us; 123us; 8us; 122us; 9us; 121us; 11us; 105us; 13us; 90us; 20us; 91us; 21us; 124us; 26us; 109us; 27us; 112us; 28us; 111us; 29us; 110us; 33us; 114us; 34us; 113us; 46us; 92us; 47us; 106us; 50us; 108us; 51us; 129us; 0us; 49152us; 4us; 32768us; 15us; 104us; 25us; 99us; 38us; 5us; 52us; 103us; 0us; 16386us; 1us; 32768us; 38us; 7us; 0us; 16387us; 0us; 16390us; 0us; 16391us; 1us; 16392us; 42us; 61us; 12us; 16394us; 58us; 44us; 59us; 41us; 60us; 39us; 61us; 46us; 64us; 22us; 65us; 37us; 66us; 25us; 67us; 34us; 68us; 32us; 69us; 29us; 70us; 27us; 71us; 23us; 0us; 16393us; 22us; 32768us; 0us; 107us; 2us; 97us; 3us; 94us; 4us; 115us; 6us; 120us; 7us; 123us; 8us; 122us; 9us; 121us; 11us; 105us; 13us; 90us; 20us; 91us; 21us; 124us; 26us; 109us; 27us; 112us; 28us; 111us; 29us; 110us; 33us; 114us; 34us; 113us; 46us; 92us; 47us; 106us; 50us; 108us; 51us; 129us; 29us; 32768us; 0us; 107us; 2us; 97us; 3us; 94us; 4us; 115us; 6us; 120us; 7us; 123us; 8us; 122us; 9us; 121us; 11us; 105us; 13us; 90us; 15us; 104us; 20us; 91us; 21us; 124us; 23us; 75us; 25us; 64us; 26us; 109us; 27us; 112us; 28us; 111us; 29us; 110us; 33us; 114us; 34us; 113us; 46us; 92us; 47us; 106us; 50us; 108us; 51us; 129us; 52us; 103us; 53us; 140us; 55us; 58us; 56us; 139us; 1us; 32768us; 44us; 16us; 5us; 32768us; 40us; 8us; 41us; 9us; 53us; 140us; 55us; 58us; 56us; 139us; 1us; 16487us; 24us; 149us; 1us; 32768us; 23us; 19us; 23us; 16411us; 0us; 107us; 2us; 97us; 3us; 94us; 4us; 115us; 6us; 120us; 7us; 123us; 8us; 122us; 9us; 121us; 11us; 105us; 13us; 90us; 20us; 91us; 21us; 124us; 26us; 109us; 27us; 112us; 28us; 111us; 29us; 110us; 33us; 114us; 34us; 113us; 39us; 53us; 46us; 92us; 47us; 106us; 50us; 108us; 51us; 129us; 1us; 32768us; 17us; 21us; 0us; 16396us; 0us; 16398us; 1us; 32768us; 74us; 141us; 0us; 16399us; 1us; 32768us; 74us; 141us; 0us; 16400us; 1us; 32768us; 74us; 141us; 0us; 16401us; 1us; 32768us; 74us; 141us; 1us; 32768us; 74us; 141us; 0us; 16402us; 1us; 32768us; 74us; 142us; 0us; 16403us; 3us; 32768us; 33us; 144us; 72us; 143us; 74us; 142us; 0us; 16404us; 0us; 16405us; 5us; 16435us; 1us; 84us; 5us; 85us; 31us; 78us; 37us; 80us; 43us; 83us; 0us; 16406us; 27us; 32768us; 0us; 107us; 2us; 97us; 3us; 94us; 4us; 115us; 6us; 120us; 7us; 123us; 8us; 122us; 9us; 121us; 11us; 105us; 13us; 90us; 20us; 91us; 21us; 124us; 23us; 75us; 25us; 63us; 26us; 109us; 27us; 112us; 28us; 111us; 29us; 110us; 33us; 114us; 34us; 113us; 46us; 92us; 47us; 106us; 50us; 108us; 51us; 129us; 53us; 140us; 55us; 58us; 56us; 139us; 0us; 16407us; 1us; 32768us; 74us; 141us; 27us; 32768us; 0us; 107us; 2us; 97us; 3us; 94us; 4us; 115us; 6us; 120us; 7us; 123us; 8us; 122us; 9us; 121us; 11us; 105us; 13us; 90us; 20us; 91us; 21us; 124us; 23us; 75us; 25us; 63us; 26us; 109us; 27us; 112us; 28us; 111us; 29us; 110us; 33us; 114us; 34us; 113us; 46us; 92us; 47us; 106us; 50us; 108us; 51us; 129us; 53us; 140us; 55us; 58us; 56us; 139us; 0us; 16408us; 27us; 32768us; 0us; 107us; 2us; 97us; 3us; 94us; 4us; 115us; 6us; 120us; 7us; 123us; 8us; 122us; 9us; 121us; 11us; 105us; 13us; 90us; 20us; 91us; 21us; 124us; 23us; 75us; 25us; 63us; 26us; 109us; 27us; 112us; 28us; 111us; 29us; 110us; 33us; 114us; 34us; 113us; 46us; 92us; 47us; 106us; 50us; 108us; 51us; 129us; 53us; 140us; 55us; 58us; 56us; 139us; 0us; 16409us; 27us; 32768us; 0us; 107us; 2us; 97us; 3us; 94us; 4us; 115us; 6us; 120us; 7us; 123us; 8us; 122us; 9us; 121us; 11us; 105us; 13us; 90us; 20us; 91us; 21us; 124us; 23us; 75us; 25us; 63us; 26us; 109us; 27us; 112us; 28us; 111us; 29us; 110us; 33us; 114us; 34us; 113us; 46us; 92us; 47us; 106us; 50us; 108us; 51us; 129us; 53us; 140us; 55us; 58us; 56us; 139us; 0us; 16410us; 0us; 16412us; 1us; 16413us; 45us; 51us; 0us; 16414us; 23us; 32768us; 0us; 107us; 2us; 97us; 3us; 94us; 4us; 115us; 6us; 120us; 7us; 123us; 8us; 122us; 9us; 121us; 11us; 105us; 13us; 90us; 20us; 91us; 21us; 124us; 26us; 109us; 27us; 112us; 28us; 111us; 29us; 110us; 33us; 114us; 34us; 113us; 39us; 53us; 46us; 92us; 47us; 106us; 50us; 108us; 51us; 129us; 0us; 16415us; 0us; 16416us; 5us; 16418us; 15us; 104us; 25us; 99us; 52us; 103us; 53us; 140us; 56us; 139us; 0us; 16417us; 0us; 16419us; 0us; 16420us; 0us; 16421us; 2us; 32768us; 18us; 65us; 42us; 61us; 2us; 16425us; 16us; 68us; 42us; 61us; 2us; 32768us; 53us; 140us; 56us; 139us; 0us; 16422us; 3us; 32768us; 53us; 140us; 55us; 58us; 56us; 139us; 6us; 16475us; 18us; 100us; 53us; 140us; 55us; 58us; 56us; 139us; 73us; 137us; 74us; 141us; 3us; 32768us; 53us; 140us; 55us; 58us; 56us; 139us; 0us; 16423us; 0us; 16424us; 3us; 32768us; 53us; 140us; 55us; 58us; 56us; 139us; 0us; 16426us; 1us; 16487us; 24us; 149us; 0us; 16427us; 0us; 16428us; 0us; 16429us; 3us; 16430us; 15us; 104us; 25us; 99us; 52us; 103us; 22us; 32768us; 0us; 107us; 2us; 97us; 3us; 94us; 4us; 115us; 6us; 120us; 7us; 123us; 8us; 122us; 9us; 121us; 11us; 105us; 13us; 90us; 20us; 91us; 21us; 124us; 26us; 109us; 27us; 112us; 28us; 111us; 29us; 110us; 33us; 114us; 34us; 113us; 46us; 92us; 47us; 106us; 50us; 108us; 51us; 129us; 4us; 32768us; 15us; 104us; 17us; 77us; 25us; 99us; 52us; 103us; 0us; 16431us; 3us; 16435us; 1us; 84us; 5us; 85us; 43us; 83us; 0us; 16432us; 3us; 16435us; 1us; 84us; 5us; 85us; 43us; 83us; 0us; 16433us; 0us; 16434us; 0us; 16436us; 0us; 16437us; 4us; 32768us; 12us; 88us; 14us; 87us; 36us; 89us; 48us; 86us; 0us; 16438us; 0us; 16439us; 0us; 16440us; 0us; 16441us; 0us; 16442us; 0us; 16443us; 4us; 32768us; 25us; 63us; 53us; 140us; 55us; 58us; 56us; 139us; 0us; 16444us; 1us; 32768us; 46us; 95us; 4us; 32768us; 25us; 63us; 53us; 140us; 55us; 58us; 56us; 139us; 0us; 16445us; 4us; 32768us; 25us; 63us; 53us; 140us; 55us; 58us; 56us; 139us; 0us; 16446us; 3us; 16475us; 18us; 100us; 73us; 137us; 74us; 141us; 0us; 16447us; 2us; 32768us; 18us; 102us; 45us; 132us; 0us; 16448us; 0us; 16449us; 0us; 16450us; 0us; 16451us; 0us; 16452us; 0us; 16453us; 0us; 16454us; 0us; 16455us; 0us; 16456us; 0us; 16457us; 0us; 16458us; 0us; 16459us; 0us; 16460us; 4us; 32768us; 26us; 116us; 27us; 119us; 28us; 118us; 29us; 117us; 0us; 16461us; 0us; 16462us; 0us; 16463us; 0us; 16464us; 0us; 16465us; 0us; 16466us; 0us; 16467us; 0us; 16468us; 3us; 32768us; 4us; 126us; 10us; 128us; 30us; 125us; 0us; 16469us; 1us; 32768us; 30us; 127us; 0us; 16470us; 0us; 16471us; 1us; 32768us; 74us; 141us; 0us; 16472us; 0us; 16473us; 2us; 16475us; 73us; 137us; 74us; 141us; 0us; 16474us; 1us; 16476us; 39us; 135us; 1us; 16478us; 74us; 141us; 0us; 16477us; 1us; 16480us; 74us; 141us; 0us; 16479us; 0us; 16481us; 0us; 16482us; 0us; 16483us; 0us; 16484us; 0us; 16485us; 1us; 32768us; 23us; 145us; 1us; 32768us; 74us; 142us; 1us; 32768us; 17us; 147us; 0us; 16486us; 0us; 16488us; 27us; 32768us; 0us; 107us; 2us; 97us; 3us; 94us; 4us; 115us; 6us; 120us; 7us; 123us; 8us; 122us; 9us; 121us; 11us; 105us; 13us; 90us; 20us; 91us; 21us; 124us; 23us; 75us; 25us; 63us; 26us; 109us; 27us; 112us; 28us; 111us; 29us; 110us; 33us; 114us; 34us; 113us; 46us; 92us; 47us; 106us; 50us; 108us; 51us; 129us; 53us; 140us; 55us; 58us; 56us; 139us; 2us; 32768us; 32us; 151us; 45us; 153us; 0us; 16489us; 0us; 16490us; 27us; 32768us; 0us; 107us; 2us; 97us; 3us; 94us; 4us; 115us; 6us; 120us; 7us; 123us; 8us; 122us; 9us; 121us; 11us; 105us; 13us; 90us; 20us; 91us; 21us; 124us; 23us; 75us; 25us; 63us; 26us; 109us; 27us; 112us; 28us; 111us; 29us; 110us; 33us; 114us; 34us; 113us; 46us; 92us; 47us; 106us; 50us; 108us; 51us; 129us; 53us; 140us; 55us; 58us; 56us; 139us; 0us; 16491us; |] let _fsyacc_actionTableRowOffsets = [|0us; 13us; 14us; 37us; 38us; 43us; 44us; 46us; 47us; 48us; 49us; 51us; 64us; 65us; 88us; 118us; 120us; 126us; 128us; 130us; 154us; 156us; 157us; 158us; 160us; 161us; 163us; 164us; 166us; 167us; 169us; 171us; 172us; 174us; 175us; 179us; 180us; 181us; 187us; 188us; 216us; 217us; 219us; 247us; 248us; 276us; 277us; 305us; 306us; 307us; 309us; 310us; 334us; 335us; 336us; 342us; 343us; 344us; 345us; 346us; 349us; 352us; 355us; 356us; 360us; 367us; 371us; 372us; 373us; 377us; 378us; 380us; 381us; 382us; 383us; 387us; 410us; 415us; 416us; 420us; 421us; 425us; 426us; 427us; 428us; 429us; 434us; 435us; 436us; 437us; 438us; 439us; 440us; 445us; 446us; 448us; 453us; 454us; 459us; 460us; 464us; 465us; 468us; 469us; 470us; 471us; 472us; 473us; 474us; 475us; 476us; 477us; 478us; 479us; 480us; 481us; 486us; 487us; 488us; 489us; 490us; 491us; 492us; 493us; 494us; 498us; 499us; 501us; 502us; 503us; 505us; 506us; 507us; 510us; 511us; 513us; 515us; 516us; 518us; 519us; 520us; 521us; 522us; 523us; 524us; 526us; 528us; 530us; 531us; 532us; 560us; 563us; 564us; 565us; 593us; |] let _fsyacc_reductionSymbolCounts = [|1us; 1us; 2us; 2us; 1us; 3us; 1us; 1us; 1us; 2us; 0us; 1us; 9us; 2us; 1us; 2us; 2us; 2us; 3us; 2us; 2us; 2us; 2us; 2us; 3us; 2us; 2us; 0us; 1us; 1us; 1us; 3us; 1us; 2us; 0us; 1us; 1us; 1us; 3us; 4us; 1us; 1us; 3us; 2us; 1us; 1us; 1us; 3us; 2us; 2us; 1us; 0us; 1us; 1us; 2us; 2us; 2us; 2us; 1us; 1us; 2us; 3us; 2us; 3us; 4us; 2us; 2us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 2us; 2us; 2us; 2us; 1us; 1us; 1us; 1us; 2us; 3us; 2us; 2us; 1us; 3us; 0us; 1us; 3us; 2us; 2us; 1us; 1us; 1us; 1us; 1us; 1us; 4us; 0us; 1us; 3us; 1us; 3us; |] let _fsyacc_productionToNonTerminalTable = [|0us; 1us; 2us; 3us; 4us; 4us; 5us; 5us; 5us; 6us; 6us; 7us; 8us; 9us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 11us; 11us; 12us; 13us; 13us; 14us; 14us; 15us; 15us; 16us; 16us; 16us; 17us; 17us; 18us; 18us; 19us; 20us; 21us; 21us; 21us; 22us; 22us; 22us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 24us; 25us; 25us; 26us; 26us; 26us; 26us; 26us; 26us; 27us; 27us; 28us; 29us; 30us; 30us; 31us; 31us; 32us; 33us; 33us; |] let _fsyacc_immediateActions = [|65535us; 49152us; 65535us; 49152us; 65535us; 16386us; 65535us; 16387us; 16390us; 16391us; 65535us; 65535us; 16393us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16396us; 16398us; 65535us; 16399us; 65535us; 16400us; 65535us; 16401us; 65535us; 65535us; 16402us; 65535us; 16403us; 65535us; 16404us; 16405us; 65535us; 16406us; 65535us; 16407us; 65535us; 65535us; 16408us; 65535us; 16409us; 65535us; 16410us; 16412us; 65535us; 16414us; 65535us; 16415us; 16416us; 65535us; 16417us; 16419us; 16420us; 16421us; 65535us; 65535us; 65535us; 16422us; 65535us; 65535us; 65535us; 16423us; 16424us; 65535us; 16426us; 65535us; 16427us; 16428us; 16429us; 65535us; 65535us; 65535us; 16431us; 65535us; 16432us; 65535us; 16433us; 16434us; 16436us; 16437us; 65535us; 16438us; 16439us; 16440us; 16441us; 16442us; 16443us; 65535us; 16444us; 65535us; 65535us; 16445us; 65535us; 16446us; 65535us; 16447us; 65535us; 16448us; 16449us; 16450us; 16451us; 16452us; 16453us; 16454us; 16455us; 16456us; 16457us; 16458us; 16459us; 16460us; 65535us; 16461us; 16462us; 16463us; 16464us; 16465us; 16466us; 16467us; 16468us; 65535us; 16469us; 65535us; 16470us; 16471us; 65535us; 16472us; 16473us; 65535us; 16474us; 65535us; 65535us; 16477us; 65535us; 16479us; 16481us; 16482us; 16483us; 16484us; 16485us; 65535us; 65535us; 65535us; 16486us; 16488us; 65535us; 65535us; 16489us; 16490us; 65535us; 16491us; |] let _fsyacc_reductions () = [| # 717 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILInstr array)) in Microsoft.FSharp.Core.Operators.box ( ( raise (Internal.Utilities.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1)) ) : '_starttop_instrs)); # 726 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType)) in Microsoft.FSharp.Core.Operators.box ( ( raise (Internal.Utilities.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1)) ) : '_starttop_typ)); # 735 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType resolved_at_mspec_scope)) in Microsoft.FSharp.Core.Operators.box ( ( # 163 "..\..\absil\ilpars.mly" resolve_mspec_scope _1 [] ) # 163 "..\..\absil\ilpars.mly" : ILType)); # 746 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'instrs2)) in Microsoft.FSharp.Core.Operators.box ( ( # 167 "..\..\absil\ilpars.mly" Array.of_list _1 ) # 167 "..\..\absil\ilpars.mly" : ILInstr array)); # 757 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in Microsoft.FSharp.Core.Operators.box ( ( # 171 "..\..\absil\ilpars.mly" _1 ) # 171 "..\..\absil\ilpars.mly" : 'compQstring)); # 768 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'compQstring)) in let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in Microsoft.FSharp.Core.Operators.box ( ( # 172 "..\..\absil\ilpars.mly" _1 ^ _3 ) # 172 "..\..\absil\ilpars.mly" : 'compQstring)); # 780 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 176 "..\..\absil\ilpars.mly" ".ctor" ) # 176 "..\..\absil\ilpars.mly" : 'methodName)); # 790 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 178 "..\..\absil\ilpars.mly" ".cctor" ) # 178 "..\..\absil\ilpars.mly" : 'methodName)); # 800 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in Microsoft.FSharp.Core.Operators.box ( ( # 180 "..\..\absil\ilpars.mly" _1 ) # 180 "..\..\absil\ilpars.mly" : 'methodName)); # 811 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'instr)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'instrs2)) in Microsoft.FSharp.Core.Operators.box ( ( # 184 "..\..\absil\ilpars.mly" _1 [] :: _2 ) # 184 "..\..\absil\ilpars.mly" : 'instrs2)); # 823 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 185 "..\..\absil\ilpars.mly" [] ) # 185 "..\..\absil\ilpars.mly" : 'instrs2)); # 833 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'methodSpecMaybeArrayMethod)) in Microsoft.FSharp.Core.Operators.box ( ( # 189 "..\..\absil\ilpars.mly" let data,varargs = _1 in mk_mspec_in_typ data,varargs ) # 189 "..\..\absil\ilpars.mly" : 'methodSpec)); # 845 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'callConv)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : ILType resolved_at_mspec_scope)) in let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'methodName)) in let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_actual_tyargs)) in let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArgs0)) in Microsoft.FSharp.Core.Operators.box ( ( # 195 "..\..\absil\ilpars.mly" let callee_class_typ = resolve_mspec_scope_to_current_scope _3 in let gscope = (if Ilx.gen_is_array_ty callee_class_typ then None else Some (tspec_of_typ callee_class_typ)) in let argtys_n_varargs = resolve_mspec_scope_to_formal_scope gscope _8 in let (argtys,varargs) = decode_varargs argtys_n_varargs in let minst = resolve_mspec_scope_to_current_scope _6 in let callee_retty = resolve_mspec_scope_to_formal_scope gscope _2 in (callee_class_typ, _1, _5, argtys, callee_retty, minst), varargs ) # 195 "..\..\absil\ilpars.mly" : 'methodSpecMaybeArrayMethod)); # 867 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ilascii.real_instr)) in Microsoft.FSharp.Core.Operators.box ( ( # 205 "..\..\absil\ilpars.mly" lexing_bytearray := true; _1 ) # 205 "..\..\absil\ilpars.mly" : 'instr_r_head)); # 878 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ilascii.none_instr)) in Microsoft.FSharp.Core.Operators.box ( ( # 209 "..\..\absil\ilpars.mly" (_1 ()) ) # 209 "..\..\absil\ilpars.mly" : 'instr)); # 889 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ilascii.arg_instr)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in Microsoft.FSharp.Core.Operators.box ( ( # 211 "..\..\absil\ilpars.mly" (_1 (uint16 ( ( _2)))) ) # 211 "..\..\absil\ilpars.mly" : 'instr)); # 901 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ilascii.loc_instr)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in Microsoft.FSharp.Core.Operators.box ( ( # 213 "..\..\absil\ilpars.mly" (_1 (uint16 ( ( _2)))) ) # 213 "..\..\absil\ilpars.mly" : 'instr)); # 913 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ilascii.i32_instr)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in Microsoft.FSharp.Core.Operators.box ( ( # 215 "..\..\absil\ilpars.mly" (_1 _2) ) # 215 "..\..\absil\ilpars.mly" : 'instr)); # 925 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ilascii.i32_i32_instr)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in Microsoft.FSharp.Core.Operators.box ( ( # 217 "..\..\absil\ilpars.mly" (_1 (_2,_3)) ) # 217 "..\..\absil\ilpars.mly" : 'instr)); # 938 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ilascii.i64_instr)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int64)) in Microsoft.FSharp.Core.Operators.box ( ( # 219 "..\..\absil\ilpars.mly" (_1 _2) ) # 219 "..\..\absil\ilpars.mly" : 'instr)); # 950 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ilascii.real_instr)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'float64)) in Microsoft.FSharp.Core.Operators.box ( ( # 221 "..\..\absil\ilpars.mly" (_1 (NUM_R8 _2)) ) # 221 "..\..\absil\ilpars.mly" : 'instr)); # 962 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ilascii.real_instr)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int64)) in Microsoft.FSharp.Core.Operators.box ( ( # 223 "..\..\absil\ilpars.mly" (_1 (NUM_R8 (float _2))) ) # 223 "..\..\absil\ilpars.mly" : 'instr)); # 974 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ilascii.method_instr)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'methodSpecMaybeArrayMethod)) in Microsoft.FSharp.Core.Operators.box ( ( # 225 "..\..\absil\ilpars.mly" begin let ((encl_typ, cc, nm, argtys, retty, minst) as data),varargs = _2 in if Ilx.gen_is_array_ty encl_typ then (fun prefixes -> let (shape,ty) = gen_dest_array_ty encl_typ in begin match nm with | "Get" -> I_ldelem_any(shape,ty) | "Set" -> I_stelem_any(shape,ty) | "Address" -> I_ldelema((if prefixes=[Prefix_Readonly] then ReadonlyAddress else NormalAddress), shape,ty) | ".ctor" -> I_newarr(shape,ty) | _ -> failwith "bad method on array type" end) else _1 (mk_mspec_in_typ data, varargs) end ) # 225 "..\..\absil\ilpars.mly" : 'instr)); # 1002 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ilascii.type_instr)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in Microsoft.FSharp.Core.Operators.box ( ( # 243 "..\..\absil\ilpars.mly" (_1 (resolve_mspec_scope_to_current_scope _2)) ) # 243 "..\..\absil\ilpars.mly" : 'instr)); # 1014 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ilascii.int_type_instr)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in Microsoft.FSharp.Core.Operators.box ( ( # 245 "..\..\absil\ilpars.mly" (_1 ( _2,resolve_mspec_scope_to_current_scope _3)) ) # 245 "..\..\absil\ilpars.mly" : 'instr)); # 1027 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ilascii.valuetype_instr)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in Microsoft.FSharp.Core.Operators.box ( ( # 247 "..\..\absil\ilpars.mly" let vtr = match resolve_mspec_scope_to_current_scope _2 with (* Type_boxed tr -> Type_value tr | Type_value vtr as typ -> typ | *) typ -> typ in (_1 vtr) ) # 247 "..\..\absil\ilpars.mly" : 'instr)); # 1044 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ilascii.tok_instr)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in Microsoft.FSharp.Core.Operators.box ( ( # 254 "..\..\absil\ilpars.mly" (_1 (Token_type (resolve_mspec_scope_to_current_scope _2))) ) # 254 "..\..\absil\ilpars.mly" : 'instr)); # 1056 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 261 "..\..\absil\ilpars.mly" no_mspec_scope [] ) # 261 "..\..\absil\ilpars.mly" : 'sigArgs0)); # 1066 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArgs1)) in Microsoft.FSharp.Core.Operators.box ( ( # 262 "..\..\absil\ilpars.mly" _1 ) # 262 "..\..\absil\ilpars.mly" : 'sigArgs0)); # 1077 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArgs1a)) in Microsoft.FSharp.Core.Operators.box ( ( # 266 "..\..\absil\ilpars.mly" ResolvedAtMethodSpecScope (fun c -> List.map (fun obj -> resolve_mspec_scope obj c) (List.rev _1)) ) # 266 "..\..\absil\ilpars.mly" : 'sigArgs1)); # 1088 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArg)) in Microsoft.FSharp.Core.Operators.box ( ( # 270 "..\..\absil\ilpars.mly" [_1] ) # 270 "..\..\absil\ilpars.mly" : 'sigArgs1a)); # 1099 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArgs1a)) in let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArg)) in Microsoft.FSharp.Core.Operators.box ( ( # 272 "..\..\absil\ilpars.mly" _3:: _1 ) # 272 "..\..\absil\ilpars.mly" : 'sigArgs1a)); # 1111 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 276 "..\..\absil\ilpars.mly" no_mspec_scope Sentinel ) # 276 "..\..\absil\ilpars.mly" : 'sigArg)); # 1121 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType resolved_at_mspec_scope)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_id)) in Microsoft.FSharp.Core.Operators.box ( ( # 278 "..\..\absil\ilpars.mly" resolve_mspec_scope_then _1 (fun ty -> no_mspec_scope (SigArg(_2, ty))) ) # 278 "..\..\absil\ilpars.mly" : 'sigArg)); # 1134 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 283 "..\..\absil\ilpars.mly" None ) # 283 "..\..\absil\ilpars.mly" : 'opt_id)); # 1144 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'id)) in Microsoft.FSharp.Core.Operators.box ( ( # 283 "..\..\absil\ilpars.mly" Some _1 ) # 283 "..\..\absil\ilpars.mly" : 'opt_id)); # 1155 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'id)) in Microsoft.FSharp.Core.Operators.box ( ( # 291 "..\..\absil\ilpars.mly" _1 ) # 291 "..\..\absil\ilpars.mly" : string)); # 1166 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in Microsoft.FSharp.Core.Operators.box ( ( # 293 "..\..\absil\ilpars.mly" _1 ) # 293 "..\..\absil\ilpars.mly" : string)); # 1177 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'id)) in Microsoft.FSharp.Core.Operators.box ( ( # 295 "..\..\absil\ilpars.mly" _1 ^"."^ _3 ) # 295 "..\..\absil\ilpars.mly" : string)); # 1189 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'slashedName)) in Microsoft.FSharp.Core.Operators.box ( ( # 299 "..\..\absil\ilpars.mly" let (enc,nm) = _4 in let aref = find_aref _2 in ScopeRef_assembly aref, enc, nm ) # 299 "..\..\absil\ilpars.mly" : 'className)); # 1203 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'slashedName)) in Microsoft.FSharp.Core.Operators.box ( ( # 303 "..\..\absil\ilpars.mly" let enc, nm = _1 in (ScopeRef_local, enc, nm) ) # 303 "..\..\absil\ilpars.mly" : 'className)); # 1214 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in Microsoft.FSharp.Core.Operators.box ( ( # 307 "..\..\absil\ilpars.mly" ([],_1) ) # 307 "..\..\absil\ilpars.mly" : 'slashedName)); # 1225 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'slashedName)) in Microsoft.FSharp.Core.Operators.box ( ( # 309 "..\..\absil\ilpars.mly" let (enc,nm) = _3 in (_1::enc, nm) ) # 309 "..\..\absil\ilpars.mly" : 'slashedName)); # 1237 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'className)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_actual_tyargs)) in Microsoft.FSharp.Core.Operators.box ( ( # 313 "..\..\absil\ilpars.mly" let (a,b,c) = _1 in resolve_mspec_scope_then _2 (fun inst -> no_mspec_scope ( (mk_tspec ( (mk_nested_tref (a,b,c)), inst)))) ) # 313 "..\..\absil\ilpars.mly" : 'typeNameInst)); # 1251 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'className)) in Microsoft.FSharp.Core.Operators.box ( ( # 320 "..\..\absil\ilpars.mly" let (a,b,c) = _1 in no_mspec_scope ( (mk_tspec ( (mk_nested_tref (a,b,c)), mk_empty_gactuals))) ) # 320 "..\..\absil\ilpars.mly" : 'typeName)); # 1263 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeName)) in Microsoft.FSharp.Core.Operators.box ( ( # 326 "..\..\absil\ilpars.mly" resolve_mspec_scope_then _1 (fun tref -> no_mspec_scope (Type_boxed tref)) ) # 326 "..\..\absil\ilpars.mly" : 'typSpec)); # 1275 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType resolved_at_mspec_scope)) in Microsoft.FSharp.Core.Operators.box ( ( # 329 "..\..\absil\ilpars.mly" _1 ) # 329 "..\..\absil\ilpars.mly" : 'typSpec)); # 1286 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : ILType resolved_at_mspec_scope)) in Microsoft.FSharp.Core.Operators.box ( ( # 331 "..\..\absil\ilpars.mly" _2 ) # 331 "..\..\absil\ilpars.mly" : 'typSpec)); # 1297 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'callKind)) in Microsoft.FSharp.Core.Operators.box ( ( # 336 "..\..\absil\ilpars.mly" Callconv (CC_instance,_2) ) # 336 "..\..\absil\ilpars.mly" : 'callConv)); # 1308 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'callKind)) in Microsoft.FSharp.Core.Operators.box ( ( # 338 "..\..\absil\ilpars.mly" Callconv (CC_instance_explicit,_2) ) # 338 "..\..\absil\ilpars.mly" : 'callConv)); # 1319 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'callKind)) in Microsoft.FSharp.Core.Operators.box ( ( # 340 "..\..\absil\ilpars.mly" Callconv (CC_static,_1) ) # 340 "..\..\absil\ilpars.mly" : 'callConv)); # 1330 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 344 "..\..\absil\ilpars.mly" CC_default ) # 344 "..\..\absil\ilpars.mly" : 'callKind)); # 1340 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 346 "..\..\absil\ilpars.mly" CC_default ) # 346 "..\..\absil\ilpars.mly" : 'callKind)); # 1350 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 348 "..\..\absil\ilpars.mly" CC_vararg ) # 348 "..\..\absil\ilpars.mly" : 'callKind)); # 1360 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 350 "..\..\absil\ilpars.mly" CC_cdecl ) # 350 "..\..\absil\ilpars.mly" : 'callKind)); # 1370 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 352 "..\..\absil\ilpars.mly" CC_stdcall ) # 352 "..\..\absil\ilpars.mly" : 'callKind)); # 1380 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 354 "..\..\absil\ilpars.mly" CC_thiscall ) # 354 "..\..\absil\ilpars.mly" : 'callKind)); # 1390 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 356 "..\..\absil\ilpars.mly" CC_fastcall ) # 356 "..\..\absil\ilpars.mly" : 'callKind)); # 1400 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 365 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_String ) # 365 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1410 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 367 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_Object ) # 367 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1420 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInst)) in Microsoft.FSharp.Core.Operators.box ( ( # 369 "..\..\absil\ilpars.mly" resolve_mspec_scope_then _2 (fun tspec -> no_mspec_scope (Type_boxed tspec)) ) # 369 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1432 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInst)) in Microsoft.FSharp.Core.Operators.box ( ( # 372 "..\..\absil\ilpars.mly" resolve_mspec_scope_then _3 (fun tspec -> no_mspec_scope (Type_value tspec)) ) # 372 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1444 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInst)) in Microsoft.FSharp.Core.Operators.box ( ( # 375 "..\..\absil\ilpars.mly" resolve_mspec_scope_then _2 (fun tspec -> no_mspec_scope (Type_value tspec)) ) # 375 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1456 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType resolved_at_mspec_scope)) in Microsoft.FSharp.Core.Operators.box ( ( # 378 "..\..\absil\ilpars.mly" resolve_mspec_scope_then _1 (fun ty -> no_mspec_scope (mk_sdarray_ty ty)) ) # 378 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1467 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType resolved_at_mspec_scope)) in let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'bounds1)) in Microsoft.FSharp.Core.Operators.box ( ( # 380 "..\..\absil\ilpars.mly" resolve_mspec_scope_then _1 (fun ty -> no_mspec_scope (mk_array_ty (ty,ILArrayShape _3))) ) # 380 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1479 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType resolved_at_mspec_scope)) in Microsoft.FSharp.Core.Operators.box ( ( # 382 "..\..\absil\ilpars.mly" resolve_mspec_scope_then _1 (fun ty -> no_mspec_scope (Type_byref ty)) ) # 382 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1490 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType resolved_at_mspec_scope)) in Microsoft.FSharp.Core.Operators.box ( ( # 384 "..\..\absil\ilpars.mly" resolve_mspec_scope_then _1 (fun ty -> no_mspec_scope (Type_ptr ty)) ) # 384 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1501 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 387 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_TypedReference ) # 387 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1511 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 389 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_char ) # 389 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1521 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 391 "..\..\absil\ilpars.mly" no_mspec_scope Type_void ) # 391 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1531 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 393 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_bool ) # 393 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1541 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 395 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_int8 ) # 395 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1551 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 397 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_int16 ) # 397 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1561 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 399 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_int32 ) # 399 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1571 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 401 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_int64 ) # 401 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1581 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 403 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_float32 ) # 403 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1591 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 405 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_float64 ) # 405 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1601 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 407 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_uint8 ) # 407 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1611 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 409 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_uint16 ) # 409 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1621 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 411 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_uint32 ) # 411 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1631 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 413 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_uint64 ) # 413 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1641 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 415 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_uint8 ) # 415 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1651 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 417 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_uint16 ) # 417 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1661 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 419 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_uint32 ) # 419 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1671 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 421 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_uint64 ) # 421 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1681 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 423 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_IntPtr ) # 423 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1691 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 425 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_UIntPtr ) # 425 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1701 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 427 "..\..\absil\ilpars.mly" no_mspec_scope (!parse_ilGlobals).typ_UIntPtr ) # 427 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1711 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in Microsoft.FSharp.Core.Operators.box ( ( # 430 "..\..\absil\ilpars.mly" no_mspec_scope (Type_tyvar (uint16 ( _2))) ) # 430 "..\..\absil\ilpars.mly" : ILType resolved_at_mspec_scope)); # 1722 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'bound)) in Microsoft.FSharp.Core.Operators.box ( ( # 435 "..\..\absil\ilpars.mly" [_1] ) # 435 "..\..\absil\ilpars.mly" : 'bounds1)); # 1733 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'bounds1)) in let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'bound)) in Microsoft.FSharp.Core.Operators.box ( ( # 437 "..\..\absil\ilpars.mly" _1 @ [_3] ) # 437 "..\..\absil\ilpars.mly" : 'bounds1)); # 1745 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 441 "..\..\absil\ilpars.mly" (None, None) ) # 441 "..\..\absil\ilpars.mly" : 'bound)); # 1755 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in Microsoft.FSharp.Core.Operators.box ( ( # 443 "..\..\absil\ilpars.mly" (None, Some _1) ) # 443 "..\..\absil\ilpars.mly" : 'bound)); # 1766 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in Microsoft.FSharp.Core.Operators.box ( ( # 445 "..\..\absil\ilpars.mly" (Some _1, Some (_3 - _1 + 1)) ) # 445 "..\..\absil\ilpars.mly" : 'bound)); # 1778 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in Microsoft.FSharp.Core.Operators.box ( ( # 447 "..\..\absil\ilpars.mly" (Some _1, None) ) # 447 "..\..\absil\ilpars.mly" : 'bound)); # 1789 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int32)) in let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in Microsoft.FSharp.Core.Operators.box ( ( # 454 "..\..\absil\ilpars.mly" (Some _1, Some (_2 - _1 + 1)) ) # 454 "..\..\absil\ilpars.mly" : 'bound)); # 1801 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int32)) in Microsoft.FSharp.Core.Operators.box ( ( # 456 "..\..\absil\ilpars.mly" (Some _1, None) ) # 456 "..\..\absil\ilpars.mly" : 'bound)); # 1812 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in Microsoft.FSharp.Core.Operators.box ( ( # 460 "..\..\absil\ilpars.mly" _1 ) # 460 "..\..\absil\ilpars.mly" : 'id)); # 1823 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in Microsoft.FSharp.Core.Operators.box ( ( # 462 "..\..\absil\ilpars.mly" _1 ) # 462 "..\..\absil\ilpars.mly" : 'id)); # 1834 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int64)) in Microsoft.FSharp.Core.Operators.box ( ( # 466 "..\..\absil\ilpars.mly" int32 _1 ) # 466 "..\..\absil\ilpars.mly" : 'int32)); # 1845 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int64)) in Microsoft.FSharp.Core.Operators.box ( ( # 470 "..\..\absil\ilpars.mly" _1 ) # 470 "..\..\absil\ilpars.mly" : 'int64)); # 1856 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : double)) in Microsoft.FSharp.Core.Operators.box ( ( # 474 "..\..\absil\ilpars.mly" _1 ) # 474 "..\..\absil\ilpars.mly" : 'float64)); # 1867 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'int64)) in Microsoft.FSharp.Core.Operators.box ( ( # 476 "..\..\absil\ilpars.mly" System.BitConverter.Int64BitsToDouble _3 ) # 476 "..\..\absil\ilpars.mly" : 'float64)); # 1878 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> Microsoft.FSharp.Core.Operators.box ( ( # 480 "..\..\absil\ilpars.mly" no_mspec_scope mk_empty_gactuals ) # 480 "..\..\absil\ilpars.mly" : 'opt_actual_tyargs)); # 1888 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'actual_tyargs)) in Microsoft.FSharp.Core.Operators.box ( ( # 482 "..\..\absil\ilpars.mly" resolve_mspec_scope_then _1 (fun res -> no_mspec_scope res) ) # 482 "..\..\absil\ilpars.mly" : 'opt_actual_tyargs)); # 1900 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'actualTypSpecs)) in Microsoft.FSharp.Core.Operators.box ( ( # 487 "..\..\absil\ilpars.mly" _2 ) # 487 "..\..\absil\ilpars.mly" : 'actual_tyargs)); # 1911 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in Microsoft.FSharp.Core.Operators.box ( ( # 491 "..\..\absil\ilpars.mly" resolve_mspec_scope_then _1 (fun res -> no_mspec_scope [ res]) ) # 491 "..\..\absil\ilpars.mly" : 'actualTypSpecs)); # 1923 "ilpars.fs" (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'actualTypSpecs)) in let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in Microsoft.FSharp.Core.Operators.box ( ( # 494 "..\..\absil\ilpars.mly" resolve_mspec_scope_then _1 (fun x -> resolve_mspec_scope_then _3 (fun y -> no_mspec_scope (x @ [ y]))) ) # 494 "..\..\absil\ilpars.mly" : 'actualTypSpecs)); |] # 1938 "ilpars.fs" let tables () : Internal.Utilities.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:Internal.Utilities.Text.Parsing.ParseErrorContext<_>) -> match parse_error_rich with | Some f -> f ctxt | None -> parse_error ctxt.Message); numTerminals = 78; productionToNonTerminalTable = _fsyacc_productionToNonTerminalTable } let engine lexer lexbuf startState = (tables ()).Interpret(lexer, lexbuf, startState) let top_instrs lexer lexbuf : ILInstr array = Microsoft.FSharp.Core.Operators.unbox ((tables ()).Interpret(lexer, lexbuf, 0)) let top_typ lexer lexbuf : ILType = Microsoft.FSharp.Core.Operators.unbox ((tables ()).Interpret(lexer, lexbuf, 2))