diff --git a/Makefile b/Makefile index f35c432dea..86254b5a6c 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,11 @@ include Makefile.config TARGET = ocamlmerlin.native -FAKE_CMI = location asttypes longident parsetree clflags syntaxerr misc DISTNAME = ocamlmerlin-0.1 DISTFILES = configure Makefile README _tags vim $(wildcard *.ml *.mli *.mly *.mll) -OCAMLBUILD=ocamlbuild +OCAMLBUILD=ocamlbuild -Is .,typing,parsing,utils OCAMLFIND=ocamlfind all: $(TARGET) diff --git a/TODO b/TODO new file mode 100644 index 0000000000..9dd9973988 --- /dev/null +++ b/TODO @@ -0,0 +1,3 @@ +- Add command to parse up to next definition +- Handle warnings properly +- Handle arguments in partial let's diff --git a/_tags b/_tags index 8013c1a48c..ce8e385b06 100644 --- a/_tags +++ b/_tags @@ -1,5 +1,5 @@ true: use_menhir, use_menhir_table -true: package(menhirLib), package(compiler-libs.bytecomp), package(yojson), package(findlib) +true: package(menhirLib), package(yojson), package(findlib) : ext_tokens diff --git a/extensions.ml b/extensions.ml index fc64200bc6..a9cb61bee2 100644 --- a/extensions.ml +++ b/extensions.ml @@ -2,7 +2,7 @@ let ident = Ident.create "_" let parse_sig str = let buf = Lexing.from_string str in - Chunk_parser.interface Outline_lexer.token buf + Chunk_parser.interface Lexer.token buf let type_sig env sg = let sg = Typemod.transl_signature env sg in diff --git a/outline_lexer.mli b/lexer.mli similarity index 100% rename from outline_lexer.mli rename to lexer.mli diff --git a/outline_lexer.mll b/lexer.mll similarity index 100% rename from outline_lexer.mll rename to lexer.mll diff --git a/main_args.ml b/main_args.ml new file mode 100644 index 0000000000..567afe1d32 --- /dev/null +++ b/main_args.ml @@ -0,0 +1,829 @@ +(***********************************************************************) +(* *) +(* OCaml *) +(* *) +(* Damien Doligez, projet Para, INRIA Rocquencourt *) +(* *) +(* Copyright 1998 Institut National de Recherche en Informatique et *) +(* en Automatique. All rights reserved. This file is distributed *) +(* under the terms of the Q Public License version 1.0. *) +(* *) +(***********************************************************************) + +(* $Id: main_args.ml 12511 2012-05-30 13:29:48Z lefessan $ *) + +let mk_a f = + "-a", Arg.Unit f, " Build a library" +;; + +let mk_absname f = + "-absname", Arg.Unit f, " Show absolute filenames in error message" +;; + +let mk_annot f = + "-annot", Arg.Unit f, " Save information in .annot" +;; + +let mk_binannot f = + "-bin-annot", Arg.Unit f, " Save typedtree in .cmt" +;; + +let mk_c f = + "-c", Arg.Unit f, " Compile only (do not link)" +;; + +let mk_cc f = + "-cc", Arg.String f, " Use as the C compiler and linker" +;; + +let mk_cclib f = + "-cclib", Arg.String f, " Pass option to the C linker" +;; + +let mk_ccopt f = + "-ccopt", Arg.String f, " Pass option to the C compiler and linker" +;; + +let mk_compact f = + "-compact", Arg.Unit f, " Optimize code size rather than speed" +;; + +let mk_config f = + "-config", Arg.Unit f, " Print configuration values and exit" +;; + +let mk_custom f = + "-custom", Arg.Unit f, " Link in custom mode" +;; + +let mk_dllib f = + "-dllib", Arg.String f, " Use the dynamically-loaded library " +;; + +let mk_dllpath f = + "-dllpath", Arg.String f, + " Add to the run-time search path for shared libraries" +;; + +let mk_dtypes f = + "-dtypes", Arg.Unit f, " (deprecated) same as -annot" +;; + +let mk_for_pack_byt () = + "-for-pack", Arg.String ignore, + " Ignored (for compatibility with ocamlopt)" +;; + +let mk_for_pack_opt f = + "-for-pack", Arg.String f, + " Generate code that can later be `packed' with\n\ + \ ocamlopt -pack -o .cmx" +;; + +let mk_g_byt f = + "-g", Arg.Unit f, " Save debugging information" +;; + +let mk_g_opt f = + "-g", Arg.Unit f, " Record debugging information for exception backtrace" +;; + +let mk_i f = + "-i", Arg.Unit f, " Print inferred interface" +;; + +let mk_I f = + "-I", Arg.String f, " Add to the list of include directories" +;; + +let mk_impl f = + "-impl", Arg.String f, " Compile as a .ml file" +;; + +let mk_init f = + "-init", Arg.String f, " Load instead of default init file" +;; + +let mk_inline f = + "-inline", Arg.Int f, " Set aggressiveness of inlining to " +;; + +let mk_intf f = + "-intf", Arg.String f, " Compile as a .mli file" +;; + +let mk_intf_suffix f = + "-intf-suffix", Arg.String f, + " Suffix for interface files (default: .mli)" +;; + +let mk_intf_suffix_2 f = + "-intf_suffix", Arg.String f, " (deprecated) same as -intf-suffix" +;; + +let mk_labels f = + "-labels", Arg.Unit f, " Use commuting label mode" +;; + +let mk_linkall f = + "-linkall", Arg.Unit f, " Link all modules, even unused ones" +;; + +let mk_make_runtime f = + "-make-runtime", Arg.Unit f, + " Build a runtime system with given C objects and libraries" +;; + +let mk_make_runtime_2 f = + "-make_runtime", Arg.Unit f, " (deprecated) same as -make-runtime" +;; + +let mk_modern f = + "-modern", Arg.Unit f, " (deprecated) same as -labels" +;; + +let mk_no_app_funct f = + "-no-app-funct", Arg.Unit f, " Deactivate applicative functors" +;; + +let mk_noassert f = + "-noassert", Arg.Unit f, " Do not compile assertion checks" +;; + +let mk_noautolink_byt f = + "-noautolink", Arg.Unit f, + " Do not automatically link C libraries specified in .cma files" +;; + +let mk_noautolink_opt f = + "-noautolink", Arg.Unit f, + " Do not automatically link C libraries specified in .cmxa files" +;; + +let mk_nodynlink f = + "-nodynlink", Arg.Unit f, + " Enable optimizations for code that will not be dynlinked" +;; + +let mk_nolabels f = + "-nolabels", Arg.Unit f, " Ignore non-optional labels in types" +;; + +let mk_noprompt f = + "-noprompt", Arg.Unit f, " Suppress all prompts" +;; + +let mk_nopromptcont f = + "-nopromptcont", Arg.Unit f, + " Suppress prompts for continuation lines of multi-line inputs" +;; + +let mk_nostdlib f = + "-nostdlib", Arg.Unit f, + " Do not add default directory to the list of include directories" +;; + +let mk_o f = + "-o", Arg.String f, " Set output file name to " +;; + +let mk_output_obj f = + "-output-obj", Arg.Unit f, " Output a C object file instead of an executable" +;; + +let mk_p f = + "-p", Arg.Unit f, + " Compile and link with profiling support for \"gprof\"\n\ + \ (not supported on all platforms)" +;; + +let mk_pack_byt f = + "-pack", Arg.Unit f, " Package the given .cmo files into one .cmo" +;; + +let mk_pack_opt f = + "-pack", Arg.Unit f, " Package the given .cmx files into one .cmx" +;; + +let mk_pp f = + "-pp", Arg.String f, " Pipe sources through preprocessor " +;; + +let mk_principal f = + "-principal", Arg.Unit f, " Check principality of type inference" +;; + +let mk_rectypes f = + "-rectypes", Arg.Unit f, " Allow arbitrary recursive types" +;; + +let mk_runtime_variant f = + "-runtime-variant", Arg.String f, + " Use the variant of the run-time system" +;; + +let mk_S f = + "-S", Arg.Unit f, " Keep intermediate assembly file" +;; + +let mk_stdin f = + "-stdin", Arg.Unit f, " Read script from standard input" +;; + +let mk_strict_sequence f = + "-strict-sequence", Arg.Unit f, + " Left-hand part of a sequence must have type unit" +;; + +let mk_shared f = + "-shared", Arg.Unit f, " Produce a dynlinkable plugin" +;; + +let mk_thread f = + "-thread", Arg.Unit f, + " Generate code that supports the system threads library" +;; + +let mk_unsafe f = + "-unsafe", Arg.Unit f, + " Do not compile bounds checking on array and string access" +;; + +let mk_use_runtime f = + "-use-runtime", Arg.String f, + " Generate bytecode for the given runtime system" +;; + +let mk_use_runtime_2 f = + "-use_runtime", Arg.String f, + " (deprecated) same as -use-runtime" +;; + +let mk_v f = + "-v", Arg.Unit f, + " Print compiler version and location of standard library and exit" +;; + +let mk_version f = + "-version", Arg.Unit f, " Print version and exit" +;; + +let mk_vnum f = + "-vnum", Arg.Unit f, " Print version number and exit" +;; + +let mk_verbose f = + "-verbose", Arg.Unit f, " Print calls to external commands" +;; + +let mk_vmthread f = + "-vmthread", Arg.Unit f, + " Generate code that supports the threads library with VM-level\n\ + \ scheduling" +;; + +let mk_w f = + "-w", Arg.String f, + Printf.sprintf + " Enable or disable warnings according to :\n\ + \ + enable warnings in \n\ + \ - disable warnings in \n\ + \ @ enable warnings in and treat them as errors\n\ + \ can be:\n\ + \ a single warning number\n\ + \ .. a range of consecutive warning numbers\n\ + \ a predefined set\n\ + \ default setting is %S" Warnings.defaults_w +;; + +let mk_warn_error f = + "-warn-error", Arg.String f, + Printf.sprintf + " Enable or disable error status for warnings according\n\ + \ to . See option -w for the syntax of .\n\ + \ Default setting is %S" Warnings.defaults_warn_error +;; + +let mk_warn_help f = + "-warn-help", Arg.Unit f, " Show description of warning numbers" +;; + +let mk_where f = + "-where", Arg.Unit f, " Print location of standard library and exit" +;; + +let mk_nopervasives f = + "-nopervasives", Arg.Unit f, " (undocumented)" +;; + +let mk_use_prims f = + "-use-prims", Arg.String f, " (undocumented)" +;; + +let mk_dparsetree f = + "-dparsetree", Arg.Unit f, " (undocumented)" +;; + +let mk_drawlambda f = + "-drawlambda", Arg.Unit f, " (undocumented)" +;; + +let mk_dlambda f = + "-dlambda", Arg.Unit f, " (undocumented)" +;; + +let mk_dclambda f = + "-dclambda", Arg.Unit f, " (undocumented)" +;; + +let mk_dinstr f = + "-dinstr", Arg.Unit f, " (undocumented)" +;; + +let mk_dcmm f = + "-dcmm", Arg.Unit f, " (undocumented)" +;; + +let mk_dsel f = + "-dsel", Arg.Unit f, " (undocumented)" +;; + +let mk_dcombine f = + "-dcombine", Arg.Unit f, " (undocumented)" +;; + +let mk_dlive f = + "-dlive", Arg.Unit f, " (undocumented)" +;; + +let mk_dspill f = + "-dspill", Arg.Unit f, " (undocumented)" +;; + +let mk_dsplit f = + "-dsplit", Arg.Unit f, " (undocumented)" +;; + +let mk_dinterf f = + "-dinterf", Arg.Unit f, " (undocumented)" +;; + +let mk_dprefer f = + "-dprefer", Arg.Unit f, " (undocumented)" +;; + +let mk_dalloc f = + "-dalloc", Arg.Unit f, " (undocumented)" +;; + +let mk_dreload f = + "-dreload", Arg.Unit f, " (undocumented)" +;; + +let mk_dscheduling f = + "-dscheduling", Arg.Unit f, " (undocumented)" +;; + +let mk_dlinear f = + "-dlinear", Arg.Unit f, " (undocumented)" +;; + +let mk_dstartup f = + "-dstartup", Arg.Unit f, " (undocumented)" +;; + +let mk__ f = + "-", Arg.String f, + " Treat as a file name (even if it starts with `-')" +;; + +module type Bytecomp_options = sig + val _a : unit -> unit + val _absname : unit -> unit + val _annot : unit -> unit + val _binannot : unit -> unit + val _c : unit -> unit + val _cc : string -> unit + val _cclib : string -> unit + val _ccopt : string -> unit + val _config : unit -> unit + val _custom : unit -> unit + val _dllib : string -> unit + val _dllpath : string -> unit + val _g : unit -> unit + val _i : unit -> unit + val _I : string -> unit + val _impl : string -> unit + val _intf : string -> unit + val _intf_suffix : string -> unit + val _labels : unit -> unit + val _linkall : unit -> unit + val _make_runtime : unit -> unit + val _no_app_funct : unit -> unit + val _noassert : unit -> unit + val _noautolink : unit -> unit + val _nolabels : unit -> unit + val _nostdlib : unit -> unit + val _o : string -> unit + val _output_obj : unit -> unit + val _pack : unit -> unit + val _pp : string -> unit + val _principal : unit -> unit + val _rectypes : unit -> unit + val _runtime_variant : string -> unit + val _strict_sequence : unit -> unit + val _thread : unit -> unit + val _vmthread : unit -> unit + val _unsafe : unit -> unit + val _use_runtime : string -> unit + val _v : unit -> unit + val _version : unit -> unit + val _vnum : unit -> unit + val _verbose : unit -> unit + val _w : string -> unit + val _warn_error : string -> unit + val _warn_help : unit -> unit + val _where : unit -> unit + + val _nopervasives : unit -> unit + val _use_prims : string -> unit + val _dparsetree : unit -> unit + val _drawlambda : unit -> unit + val _dlambda : unit -> unit + val _dinstr : unit -> unit + + val anonymous : string -> unit +end;; + +module type Bytetop_options = sig + val _absname : unit -> unit + val _I : string -> unit + val _init : string -> unit + val _labels : unit -> unit + val _no_app_funct : unit -> unit + val _noassert : unit -> unit + val _nolabels : unit -> unit + val _noprompt : unit -> unit + val _nopromptcont : unit -> unit + val _nostdlib : unit -> unit + val _principal : unit -> unit + val _rectypes : unit -> unit + val _stdin: unit -> unit + val _strict_sequence : unit -> unit + val _unsafe : unit -> unit + val _version : unit -> unit + val _vnum : unit -> unit + val _w : string -> unit + val _warn_error : string -> unit + val _warn_help : unit -> unit + + val _dparsetree : unit -> unit + val _drawlambda : unit -> unit + val _dlambda : unit -> unit + val _dinstr : unit -> unit + + val anonymous : string -> unit +end;; + +module type Optcomp_options = sig + val _a : unit -> unit + val _absname : unit -> unit + val _annot : unit -> unit + val _binannot : unit -> unit + val _c : unit -> unit + val _cc : string -> unit + val _cclib : string -> unit + val _ccopt : string -> unit + val _compact : unit -> unit + val _config : unit -> unit + val _for_pack : string -> unit + val _g : unit -> unit + val _i : unit -> unit + val _I : string -> unit + val _impl : string -> unit + val _inline : int -> unit + val _intf : string -> unit + val _intf_suffix : string -> unit + val _labels : unit -> unit + val _linkall : unit -> unit + val _no_app_funct : unit -> unit + val _noassert : unit -> unit + val _noautolink : unit -> unit + val _nodynlink : unit -> unit + val _nolabels : unit -> unit + val _nostdlib : unit -> unit + val _o : string -> unit + val _output_obj : unit -> unit + val _p : unit -> unit + val _pack : unit -> unit + val _pp : string -> unit + val _principal : unit -> unit + val _rectypes : unit -> unit + val _runtime_variant : string -> unit + val _S : unit -> unit + val _strict_sequence : unit -> unit + val _shared : unit -> unit + val _thread : unit -> unit + val _unsafe : unit -> unit + val _v : unit -> unit + val _version : unit -> unit + val _vnum : unit -> unit + val _verbose : unit -> unit + val _w : string -> unit + val _warn_error : string -> unit + val _warn_help : unit -> unit + val _where : unit -> unit + + val _nopervasives : unit -> unit + val _dparsetree : unit -> unit + val _drawlambda : unit -> unit + val _dlambda : unit -> unit + val _dclambda : unit -> unit + val _dcmm : unit -> unit + val _dsel : unit -> unit + val _dcombine : unit -> unit + val _dlive : unit -> unit + val _dspill : unit -> unit + val _dsplit : unit -> unit + val _dinterf : unit -> unit + val _dprefer : unit -> unit + val _dalloc : unit -> unit + val _dreload : unit -> unit + val _dscheduling : unit -> unit + val _dlinear : unit -> unit + val _dstartup : unit -> unit + + val anonymous : string -> unit +end;; + +module type Opttop_options = sig + val _absname : unit -> unit + val _compact : unit -> unit + val _I : string -> unit + val _init : string -> unit + val _inline : int -> unit + val _labels : unit -> unit + val _no_app_funct : unit -> unit + val _noassert : unit -> unit + val _nolabels : unit -> unit + val _noprompt : unit -> unit + val _nopromptcont : unit -> unit + val _nostdlib : unit -> unit + val _principal : unit -> unit + val _rectypes : unit -> unit + val _S : unit -> unit + val _stdin : unit -> unit + val _strict_sequence : unit -> unit + val _unsafe : unit -> unit + val _version : unit -> unit + val _vnum : unit -> unit + val _w : string -> unit + val _warn_error : string -> unit + val _warn_help : unit -> unit + + val _dparsetree : unit -> unit + val _drawlambda : unit -> unit + val _dlambda : unit -> unit + val _dclambda : unit -> unit + val _dcmm : unit -> unit + val _dsel : unit -> unit + val _dcombine : unit -> unit + val _dlive : unit -> unit + val _dspill : unit -> unit + val _dsplit : unit -> unit + val _dinterf : unit -> unit + val _dprefer : unit -> unit + val _dalloc : unit -> unit + val _dreload : unit -> unit + val _dscheduling : unit -> unit + val _dlinear : unit -> unit + val _dstartup : unit -> unit + + val anonymous : string -> unit +end;; + +module type Arg_list = sig + val list : (string * Arg.spec * string) list +end;; + +module Make_bytecomp_options (F : Bytecomp_options) = +struct + let list = [ + mk_a F._a; + mk_absname F._absname; + mk_annot F._annot; + mk_binannot F._binannot; + mk_c F._c; + mk_cc F._cc; + mk_cclib F._cclib; + mk_ccopt F._ccopt; + mk_config F._config; + mk_custom F._custom; + mk_dllib F._dllib; + mk_dllpath F._dllpath; + mk_dtypes F._annot; + mk_for_pack_byt (); + mk_g_byt F._g; + mk_i F._i; + mk_I F._I; + mk_impl F._impl; + mk_intf F._intf; + mk_intf_suffix F._intf_suffix; + mk_intf_suffix_2 F._intf_suffix; + mk_labels F._labels; + mk_linkall F._linkall; + mk_make_runtime F._make_runtime; + mk_make_runtime_2 F._make_runtime; + mk_modern F._labels; + mk_no_app_funct F._no_app_funct; + mk_noassert F._noassert; + mk_noautolink_byt F._noautolink; + mk_nolabels F._nolabels; + mk_nostdlib F._nostdlib; + mk_o F._o; + mk_output_obj F._output_obj; + mk_pack_byt F._pack; + mk_pp F._pp; + mk_principal F._principal; + mk_rectypes F._rectypes; + mk_runtime_variant F._runtime_variant; + mk_strict_sequence F._strict_sequence; + mk_thread F._thread; + mk_unsafe F._unsafe; + mk_use_runtime F._use_runtime; + mk_use_runtime_2 F._use_runtime; + mk_v F._v; + mk_version F._version; + mk_vnum F._vnum; + mk_verbose F._verbose; + mk_vmthread F._vmthread; + mk_w F._w; + mk_warn_error F._warn_error; + mk_warn_help F._warn_help; + mk_where F._where; + + mk_nopervasives F._nopervasives; + mk_use_prims F._use_prims; + mk_dparsetree F._dparsetree; + mk_drawlambda F._drawlambda; + mk_dlambda F._dlambda; + mk_dinstr F._dinstr; + + mk__ F.anonymous; + ] +end;; + +module Make_bytetop_options (F : Bytetop_options) = +struct + let list = [ + mk_absname F._absname; + mk_I F._I; + mk_init F._init; + mk_labels F._labels; + mk_no_app_funct F._no_app_funct; + mk_noassert F._noassert; + mk_nolabels F._nolabels; + mk_noprompt F._noprompt; + mk_nopromptcont F._nopromptcont; + mk_nostdlib F._nostdlib; + mk_principal F._principal; + mk_rectypes F._rectypes; + mk_stdin F._stdin; + mk_strict_sequence F._strict_sequence; + mk_unsafe F._unsafe; + mk_version F._version; + mk_vnum F._vnum; + mk_w F._w; + mk_warn_error F._warn_error; + mk_warn_help F._warn_help; + + mk_dparsetree F._dparsetree; + mk_drawlambda F._drawlambda; + mk_dlambda F._dlambda; + mk_dinstr F._dinstr; + + mk__ F.anonymous; + ] +end;; + +module Make_optcomp_options (F : Optcomp_options) = +struct + let list = [ + mk_a F._a; + mk_absname F._absname; + mk_annot F._annot; + mk_binannot F._binannot; + mk_c F._c; + mk_cc F._cc; + mk_cclib F._cclib; + mk_ccopt F._ccopt; + mk_compact F._compact; + mk_config F._config; + mk_dtypes F._annot; + mk_for_pack_opt F._for_pack; + mk_g_opt F._g; + mk_i F._i; + mk_I F._I; + mk_impl F._impl; + mk_inline F._inline; + mk_intf F._intf; + mk_intf_suffix F._intf_suffix; + mk_labels F._labels; + mk_linkall F._linkall; + mk_no_app_funct F._no_app_funct; + mk_noassert F._noassert; + mk_noautolink_opt F._noautolink; + mk_nodynlink F._nodynlink; + mk_nolabels F._nolabels; + mk_nostdlib F._nostdlib; + mk_o F._o; + mk_output_obj F._output_obj; + mk_p F._p; + mk_pack_opt F._pack; + mk_pp F._pp; + mk_principal F._principal; + mk_rectypes F._rectypes; + mk_runtime_variant F._runtime_variant; + mk_S F._S; + mk_strict_sequence F._strict_sequence; + mk_shared F._shared; + mk_thread F._thread; + mk_unsafe F._unsafe; + mk_v F._v; + mk_version F._version; + mk_vnum F._vnum; + mk_verbose F._verbose; + mk_w F._w; + mk_warn_error F._warn_error; + mk_warn_help F._warn_help; + mk_where F._where; + + mk_nopervasives F._nopervasives; + mk_dparsetree F._dparsetree; + mk_drawlambda F._drawlambda; + mk_dlambda F._dlambda; + mk_dclambda F._dclambda; + mk_dcmm F._dcmm; + mk_dsel F._dsel; + mk_dcombine F._dcombine; + mk_dlive F._dlive; + mk_dspill F._dspill; + mk_dsplit F._dsplit; + mk_dinterf F._dinterf; + mk_dprefer F._dprefer; + mk_dalloc F._dalloc; + mk_dreload F._dreload; + mk_dscheduling F._dscheduling; + mk_dlinear F._dlinear; + mk_dstartup F._dstartup; + + mk__ F.anonymous; + ] +end;; + +module Make_opttop_options (F : Opttop_options) = struct + let list = [ + mk_absname F._absname; + mk_compact F._compact; + mk_I F._I; + mk_init F._init; + mk_inline F._inline; + mk_labels F._labels; + mk_no_app_funct F._no_app_funct; + mk_noassert F._noassert; + mk_nolabels F._nolabels; + mk_noprompt F._noprompt; + mk_nopromptcont F._nopromptcont; + mk_nostdlib F._nostdlib; + mk_principal F._principal; + mk_rectypes F._rectypes; + mk_S F._S; + mk_stdin F._stdin; + mk_strict_sequence F._strict_sequence; + mk_unsafe F._unsafe; + mk_version F._version; + mk_vnum F._vnum; + mk_w F._w; + mk_warn_error F._warn_error; + mk_warn_help F._warn_help; + + mk_dparsetree F._dparsetree; + mk_drawlambda F._drawlambda; + mk_dclambda F._dclambda; + mk_dcmm F._dcmm; + mk_dsel F._dsel; + mk_dcombine F._dcombine; + mk_dlive F._dlive; + mk_dspill F._dspill; + mk_dsplit F._dsplit; + mk_dinterf F._dinterf; + mk_dprefer F._dprefer; + mk_dalloc F._dalloc; + mk_dreload F._dreload; + mk_dscheduling F._dscheduling; + mk_dlinear F._dlinear; + mk_dstartup F._dstartup; + + mk__ F.anonymous; + ] +end;; diff --git a/main_args.mli b/main_args.mli new file mode 100644 index 0000000000..2cc301559a --- /dev/null +++ b/main_args.mli @@ -0,0 +1,229 @@ +(***********************************************************************) +(* *) +(* OCaml *) +(* *) +(* Damien Doligez, projet Para, INRIA Rocquencourt *) +(* *) +(* Copyright 1998 Institut National de Recherche en Informatique et *) +(* en Automatique. All rights reserved. This file is distributed *) +(* under the terms of the Q Public License version 1.0. *) +(* *) +(***********************************************************************) + +(* $Id: main_args.mli 12511 2012-05-30 13:29:48Z lefessan $ *) + +module type Bytecomp_options = + sig + val _a : unit -> unit + val _absname : unit -> unit + val _annot : unit -> unit + val _binannot : unit -> unit + val _c : unit -> unit + val _cc : string -> unit + val _cclib : string -> unit + val _ccopt : string -> unit + val _config : unit -> unit + val _custom : unit -> unit + val _dllib : string -> unit + val _dllpath : string -> unit + val _g : unit -> unit + val _i : unit -> unit + val _I : string -> unit + val _impl : string -> unit + val _intf : string -> unit + val _intf_suffix : string -> unit + val _labels : unit -> unit + val _linkall : unit -> unit + val _make_runtime : unit -> unit + val _no_app_funct : unit -> unit + val _noassert : unit -> unit + val _noautolink : unit -> unit + val _nolabels : unit -> unit + val _nostdlib : unit -> unit + val _o : string -> unit + val _output_obj : unit -> unit + val _pack : unit -> unit + val _pp : string -> unit + val _principal : unit -> unit + val _rectypes : unit -> unit + val _runtime_variant : string -> unit + val _strict_sequence : unit -> unit + val _thread : unit -> unit + val _vmthread : unit -> unit + val _unsafe : unit -> unit + val _use_runtime : string -> unit + val _v : unit -> unit + val _version : unit -> unit + val _vnum : unit -> unit + val _verbose : unit -> unit + val _w : string -> unit + val _warn_error : string -> unit + val _warn_help : unit -> unit + val _where : unit -> unit + + val _nopervasives : unit -> unit + val _use_prims : string -> unit + val _dparsetree : unit -> unit + val _drawlambda : unit -> unit + val _dlambda : unit -> unit + val _dinstr : unit -> unit + + val anonymous : string -> unit + end +;; + +module type Bytetop_options = sig + val _absname : unit -> unit + val _I : string -> unit + val _init : string -> unit + val _labels : unit -> unit + val _no_app_funct : unit -> unit + val _noassert : unit -> unit + val _nolabels : unit -> unit + val _noprompt : unit -> unit + val _nopromptcont : unit -> unit + val _nostdlib : unit -> unit + val _principal : unit -> unit + val _rectypes : unit -> unit + val _stdin : unit -> unit + val _strict_sequence : unit -> unit + val _unsafe : unit -> unit + val _version : unit -> unit + val _vnum : unit -> unit + val _w : string -> unit + val _warn_error : string -> unit + val _warn_help : unit -> unit + + val _dparsetree : unit -> unit + val _drawlambda : unit -> unit + val _dlambda : unit -> unit + val _dinstr : unit -> unit + + val anonymous : string -> unit +end;; + +module type Optcomp_options = sig + val _a : unit -> unit + val _absname : unit -> unit + val _annot : unit -> unit + val _binannot : unit -> unit + val _c : unit -> unit + val _cc : string -> unit + val _cclib : string -> unit + val _ccopt : string -> unit + val _compact : unit -> unit + val _config : unit -> unit + val _for_pack : string -> unit + val _g : unit -> unit + val _i : unit -> unit + val _I : string -> unit + val _impl : string -> unit + val _inline : int -> unit + val _intf : string -> unit + val _intf_suffix : string -> unit + val _labels : unit -> unit + val _linkall : unit -> unit + val _no_app_funct : unit -> unit + val _noassert : unit -> unit + val _noautolink : unit -> unit + val _nodynlink : unit -> unit + val _nolabels : unit -> unit + val _nostdlib : unit -> unit + val _o : string -> unit + val _output_obj : unit -> unit + val _p : unit -> unit + val _pack : unit -> unit + val _pp : string -> unit + val _principal : unit -> unit + val _rectypes : unit -> unit + val _runtime_variant : string -> unit + val _S : unit -> unit + val _strict_sequence : unit -> unit + val _shared : unit -> unit + val _thread : unit -> unit + val _unsafe : unit -> unit + val _v : unit -> unit + val _version : unit -> unit + val _vnum : unit -> unit + val _verbose : unit -> unit + val _w : string -> unit + val _warn_error : string -> unit + val _warn_help : unit -> unit + val _where : unit -> unit + + val _nopervasives : unit -> unit + val _dparsetree : unit -> unit + val _drawlambda : unit -> unit + val _dlambda : unit -> unit + val _dclambda : unit -> unit + val _dcmm : unit -> unit + val _dsel : unit -> unit + val _dcombine : unit -> unit + val _dlive : unit -> unit + val _dspill : unit -> unit + val _dsplit : unit -> unit + val _dinterf : unit -> unit + val _dprefer : unit -> unit + val _dalloc : unit -> unit + val _dreload : unit -> unit + val _dscheduling : unit -> unit + val _dlinear : unit -> unit + val _dstartup : unit -> unit + + val anonymous : string -> unit +end;; + +module type Opttop_options = sig + val _absname : unit -> unit + val _compact : unit -> unit + val _I : string -> unit + val _init : string -> unit + val _inline : int -> unit + val _labels : unit -> unit + val _no_app_funct : unit -> unit + val _noassert : unit -> unit + val _nolabels : unit -> unit + val _noprompt : unit -> unit + val _nopromptcont : unit -> unit + val _nostdlib : unit -> unit + val _principal : unit -> unit + val _rectypes : unit -> unit + val _S : unit -> unit + val _stdin : unit -> unit + val _strict_sequence : unit -> unit + val _unsafe : unit -> unit + val _version : unit -> unit + val _vnum : unit -> unit + val _w : string -> unit + val _warn_error : string -> unit + val _warn_help : unit -> unit + + val _dparsetree : unit -> unit + val _drawlambda : unit -> unit + val _dlambda : unit -> unit + val _dclambda : unit -> unit + val _dcmm : unit -> unit + val _dsel : unit -> unit + val _dcombine : unit -> unit + val _dlive : unit -> unit + val _dspill : unit -> unit + val _dsplit : unit -> unit + val _dinterf : unit -> unit + val _dprefer : unit -> unit + val _dalloc : unit -> unit + val _dreload : unit -> unit + val _dscheduling : unit -> unit + val _dlinear : unit -> unit + val _dstartup : unit -> unit + + val anonymous : string -> unit +end;; + +module type Arg_list = sig + val list : (string * Arg.spec * string) list +end;; + +module Make_bytecomp_options (F : Bytecomp_options) : Arg_list;; +module Make_bytetop_options (F : Bytetop_options) : Arg_list;; +module Make_optcomp_options (F : Optcomp_options) : Arg_list;; +module Make_opttop_options (F : Opttop_options) : Arg_list;; diff --git a/ocamlmerlin.ml b/ocamlmerlin.ml index 4cba765b62..1ff48a34e8 100644 --- a/ocamlmerlin.ml +++ b/ocamlmerlin.ml @@ -162,7 +162,7 @@ let command_type : command = fun state -> function | [`String "expression"; `String expr] -> let lexbuf = Lexing.from_string expr in let env = Typer.env state.types in - let expression = Chunk_parser.top_expr Outline_lexer.token lexbuf in + let expression = Chunk_parser.top_expr Lexer.token lexbuf in let (str, sg, _) = Typemod.type_toplevel_phrase env Parsetree.([{ pstr_desc = Pstr_eval expression ; pstr_loc = Location.curr lexbuf }]) @@ -626,9 +626,25 @@ module Options = Main_args.Make_bytetop_options (struct let anonymous s = unexpected_argument s end);; +(* Initialize the search path. + The current directory is always searched first, + then the directories specified with the -I option (in command-line order), + then the standard library directory (unless the -nostdlib option is given). + *) + +let init_path () = + let dirs = + if !Clflags.use_threads then "+threads" :: !Clflags.include_dirs + else if !Clflags.use_vmthreads then "+vmthreads" :: !Clflags.include_dirs + else !Clflags.include_dirs in + let exp_dirs = + List.map (Misc.expand_directory Config.standard_library) dirs in + Config.load_path := "" :: List.rev_append exp_dirs (Clflags.std_include_dir ()); + Env.reset_cache () + let main () = Arg.parse Options.list unexpected_argument "TODO"; - Compile.init_path (); + init_path (); set_default_path (); Findlib.init (); main_loop () diff --git a/outline.ml b/outline.ml index 6d93ca43dd..a0370e2f53 100644 --- a/outline.ml +++ b/outline.ml @@ -100,7 +100,7 @@ let parse_step ?(rollback=0) ?bufpos ?(exns=[]) ~goteof history buf = Outline_utils.reset ~rollback (); let history', kind, tokens = parse_with history ~parser:Outline_parser.implementation - ~lexer:Outline_lexer.token + ~lexer:Lexer.token ?bufpos ~goteof buf in Outline_utils.reset_get_offset (); diff --git a/outline_parser.mly b/outline_parser.mly index 5d4a45cfc9..4942b5515a 100644 --- a/outline_parser.mly +++ b/outline_parser.mly @@ -219,6 +219,7 @@ The precedences must be listed from low to high. implementation: | top_structure EOF { () } | AND { emit_top Rollback $endpos } + | BAR { emit_top Rollback $endpos } | EOF { () } | SEMISEMI { () } ; diff --git a/parsing/lexer.ml b/parsing/lexer.ml deleted file mode 100644 index 013ee999c0..0000000000 --- a/parsing/lexer.ml +++ /dev/null @@ -1,1858 +0,0 @@ -# 17 "parsing/lexer.mll" - -open Lexing -open Misc -open Parser - -type error = - | Illegal_character of char - | Illegal_escape of string - | Unterminated_comment of Location.t - | Unterminated_string - | Unterminated_string_in_comment of Location.t - | Keyword_as_label of string - | Literal_overflow of string -;; - -exception Error of error * Location.t;; - -(* The table of keywords *) - -let keyword_table = - create_hashtable 149 [ - "and", AND; - "as", AS; - "assert", ASSERT; - "begin", BEGIN; - "class", CLASS; - "constraint", CONSTRAINT; - "do", DO; - "done", DONE; - "downto", DOWNTO; - "else", ELSE; - "end", END; - "exception", EXCEPTION; - "external", EXTERNAL; - "false", FALSE; - "for", FOR; - "fun", FUN; - "function", FUNCTION; - "functor", FUNCTOR; - "if", IF; - "in", IN; - "include", INCLUDE; - "inherit", INHERIT; - "initializer", INITIALIZER; - "lazy", LAZY; - "let", LET; - "match", MATCH; - "method", METHOD; - "module", MODULE; - "mutable", MUTABLE; - "new", NEW; - "object", OBJECT; - "of", OF; - "open", OPEN; - "or", OR; -(* "parser", PARSER; *) - "private", PRIVATE; - "rec", REC; - "sig", SIG; - "struct", STRUCT; - "then", THEN; - "to", TO; - "true", TRUE; - "try", TRY; - "type", TYPE; - "val", VAL; - "virtual", VIRTUAL; - "when", WHEN; - "while", WHILE; - "with", WITH; - - "mod", INFIXOP3("mod"); - "land", INFIXOP3("land"); - "lor", INFIXOP3("lor"); - "lxor", INFIXOP3("lxor"); - "lsl", INFIXOP4("lsl"); - "lsr", INFIXOP4("lsr"); - "asr", INFIXOP4("asr") -] - -(* To buffer string literals *) - -let initial_string_buffer = String.create 256 -let string_buff = ref initial_string_buffer -let string_index = ref 0 - -let reset_string_buffer () = - string_buff := initial_string_buffer; - string_index := 0 - -let store_string_char c = - if !string_index >= String.length (!string_buff) then begin - let new_buff = String.create (String.length (!string_buff) * 2) in - String.blit (!string_buff) 0 new_buff 0 (String.length (!string_buff)); - string_buff := new_buff - end; - String.unsafe_set (!string_buff) (!string_index) c; - incr string_index - -let store_lexeme lexbuf = - let s = Lexing.lexeme lexbuf in - for i = 0 to String.length s - 1 do - store_string_char s.[i]; - done - -let get_stored_string () = - let s = String.sub (!string_buff) 0 (!string_index) in - string_buff := initial_string_buffer; - s - -(* To store the position of the beginning of a string and comment *) -let string_start_loc = ref Location.none;; -let comment_start_loc = ref [];; -let in_comment () = !comment_start_loc <> [];; -let is_in_string = ref false -let in_string () = !is_in_string -let print_warnings = ref true - -(* To translate escape sequences *) - -let char_for_backslash = function - | 'n' -> '\010' - | 'r' -> '\013' - | 'b' -> '\008' - | 't' -> '\009' - | c -> c - -let char_for_decimal_code lexbuf i = - let c = 100 * (Char.code(Lexing.lexeme_char lexbuf i) - 48) + - 10 * (Char.code(Lexing.lexeme_char lexbuf (i+1)) - 48) + - (Char.code(Lexing.lexeme_char lexbuf (i+2)) - 48) in - if (c < 0 || c > 255) then - if in_comment () - then 'x' - else raise (Error(Illegal_escape (Lexing.lexeme lexbuf), - Location.curr lexbuf)) - else Char.chr c - -let char_for_hexadecimal_code lexbuf i = - let d1 = Char.code (Lexing.lexeme_char lexbuf i) in - let val1 = if d1 >= 97 then d1 - 87 - else if d1 >= 65 then d1 - 55 - else d1 - 48 - in - let d2 = Char.code (Lexing.lexeme_char lexbuf (i+1)) in - let val2 = if d2 >= 97 then d2 - 87 - else if d2 >= 65 then d2 - 55 - else d2 - 48 - in - Char.chr (val1 * 16 + val2) - -(* To convert integer literals, allowing max_int + 1 (PR#4210) *) - -let cvt_int_literal s = - - int_of_string ("-" ^ s) -let cvt_int32_literal s = - Int32.neg (Int32.of_string ("-" ^ String.sub s 0 (String.length s - 1))) -let cvt_int64_literal s = - Int64.neg (Int64.of_string ("-" ^ String.sub s 0 (String.length s - 1))) -let cvt_nativeint_literal s = - Nativeint.neg (Nativeint.of_string ("-" ^ String.sub s 0 (String.length s - 1))) - -(* Remove underscores from float literals *) - -let remove_underscores s = - let l = String.length s in - let rec remove src dst = - if src >= l then - if dst >= l then s else String.sub s 0 dst - else - match s.[src] with - '_' -> remove (src + 1) dst - | c -> s.[dst] <- c; remove (src + 1) (dst + 1) - in remove 0 0 - -(* Update the current location with file name and line number. *) - -let update_loc lexbuf file line absolute chars = - let pos = lexbuf.lex_curr_p in - let new_file = match file with - | None -> pos.pos_fname - | Some s -> s - in - lexbuf.lex_curr_p <- { pos with - pos_fname = new_file; - pos_lnum = if absolute then line else pos.pos_lnum + line; - pos_bol = pos.pos_cnum - chars; - } -;; - -(* Error report *) - -open Format - -let report_error ppf = function - | Illegal_character c -> - fprintf ppf "Illegal character (%s)" (Char.escaped c) - | Illegal_escape s -> - fprintf ppf "Illegal backslash escape in string or character (%s)" s - | Unterminated_comment _ -> - fprintf ppf "Comment not terminated" - | Unterminated_string -> - fprintf ppf "String literal not terminated" - | Unterminated_string_in_comment _ -> - fprintf ppf "This comment contains an unterminated string literal" - | Keyword_as_label kwd -> - fprintf ppf "`%s' is a keyword, it cannot be used as label name" kwd - | Literal_overflow ty -> - fprintf ppf "Integer literal exceeds the range of representable integers of type %s" ty -;; - - -# 215 "parsing/lexer.ml" -let __ocaml_lex_tables = { - Lexing.lex_base = - "\000\000\180\255\181\255\224\000\003\001\038\001\073\001\108\001\ - \196\255\143\001\180\001\032\000\204\255\067\000\217\001\252\001\ - \069\000\072\000\085\000\031\002\221\255\223\255\226\255\066\002\ - \123\000\101\002\093\000\047\001\240\255\120\002\153\002\226\002\ - \178\003\145\004\237\004\189\005\127\000\001\000\255\255\156\006\ - \186\006\251\255\138\007\105\008\248\255\241\255\242\255\243\255\ - \095\000\045\003\093\000\112\000\055\003\253\003\008\006\103\002\ - \173\004\133\000\122\008\098\000\237\000\114\000\239\255\238\255\ - \234\255\097\005\078\003\115\000\237\255\026\004\117\000\236\255\ - \022\006\118\000\235\255\117\000\232\255\147\008\231\255\044\007\ - \016\005\004\000\230\255\007\000\009\001\045\001\008\000\005\000\ - \230\255\214\008\249\008\030\009\065\009\218\255\214\255\215\255\ - \216\255\212\255\100\009\205\255\206\255\207\255\202\255\199\255\ - \135\009\195\255\197\255\170\009\205\009\240\009\103\003\244\255\ - \006\000\245\255\246\255\062\002\253\255\127\000\127\000\255\255\ - \254\255\002\010\131\000\255\000\176\000\252\255\251\255\250\255\ - \014\007\145\004\219\000\249\255\162\004\220\000\248\255\213\007\ - \229\000\247\255\077\004\247\255\248\255\009\000\249\255\075\010\ - \255\255\250\255\109\010\237\004\253\255\015\001\012\001\001\005\ - \252\255\148\010\251\255\237\000\240\000\018\000\027\001\246\000\ - \046\001\248\000\012\000\255\255"; - Lexing.lex_backtrk = - "\255\255\255\255\255\255\073\000\070\000\069\000\063\000\061\000\ - \255\255\057\000\054\000\052\000\255\255\047\000\046\000\044\000\ - \042\000\038\000\036\000\065\000\255\255\255\255\255\255\027\000\ - \026\000\033\000\031\000\030\000\255\255\010\000\010\000\009\000\ - \008\000\005\000\003\000\002\000\001\000\000\000\255\255\068\000\ - \255\255\255\255\255\255\006\000\255\255\255\255\255\255\255\255\ - \255\255\011\000\255\255\255\255\255\255\010\000\010\000\010\000\ - \011\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\021\000\021\000\021\000\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\022\000\255\255\072\000\255\255\255\255\ - \255\255\025\000\255\255\255\255\255\255\255\255\255\255\025\000\ - \255\255\028\000\071\000\066\000\035\000\255\255\255\255\255\255\ - \255\255\255\255\045\000\255\255\255\255\255\255\255\255\255\255\ - \055\000\255\255\255\255\067\000\062\000\064\000\255\255\255\255\ - \010\000\255\255\255\255\011\000\255\255\011\000\011\000\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\006\000\255\255\008\000\ - \255\255\255\255\005\000\005\000\255\255\001\000\001\000\255\255\ - \255\255\255\255\255\255\002\000\255\255\255\255\001\000\255\255\ - \255\255\255\255\255\255\255\255"; - Lexing.lex_default = - "\001\000\000\000\000\000\255\255\255\255\255\255\255\255\255\255\ - \000\000\255\255\255\255\255\255\000\000\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\000\000\000\000\000\000\255\255\ - \255\255\255\255\255\255\059\000\000\000\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\000\000\255\255\ - \255\255\000\000\255\255\255\255\000\000\000\000\000\000\000\000\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\064\000\255\255\255\255\255\255\000\000\000\000\ - \000\000\255\255\255\255\255\255\000\000\255\255\255\255\000\000\ - \255\255\255\255\000\000\255\255\000\000\255\255\000\000\083\000\ - \255\255\255\255\000\000\083\000\084\000\083\000\086\000\255\255\ - \000\000\255\255\255\255\255\255\255\255\000\000\000\000\000\000\ - \000\000\000\000\255\255\000\000\000\000\000\000\000\000\000\000\ - \255\255\000\000\000\000\255\255\255\255\255\255\111\000\000\000\ - \255\255\000\000\000\000\122\000\000\000\255\255\255\255\000\000\ - \000\000\255\255\255\255\255\255\255\255\000\000\000\000\000\000\ - \255\255\255\255\255\255\000\000\255\255\255\255\000\000\255\255\ - \255\255\000\000\139\000\000\000\000\000\255\255\000\000\145\000\ - \000\000\000\000\255\255\255\255\000\000\255\255\255\255\255\255\ - \000\000\255\255\000\000\255\255\255\255\157\000\160\000\255\255\ - \160\000\255\255\255\255\000\000"; - Lexing.lex_trans = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\036\000\038\000\038\000\036\000\037\000\082\000\088\000\ - \113\000\082\000\088\000\142\000\081\000\087\000\163\000\000\000\ - \000\000\000\000\000\000\000\000\158\000\000\000\000\000\000\000\ - \036\000\007\000\028\000\024\000\005\000\003\000\023\000\027\000\ - \026\000\021\000\025\000\006\000\020\000\019\000\018\000\003\000\ - \030\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\ - \029\000\029\000\017\000\016\000\015\000\014\000\009\000\033\000\ - \004\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\013\000\102\000\012\000\004\000\035\000\ - \022\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\011\000\010\000\008\000\034\000\100\000\ - \097\000\099\000\096\000\093\000\080\000\095\000\094\000\075\000\ - \036\000\063\000\057\000\036\000\057\000\055\000\055\000\056\000\ - \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ - \056\000\062\000\068\000\080\000\071\000\074\000\076\000\036\000\ - \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ - \120\000\119\000\127\000\079\000\079\000\079\000\079\000\079\000\ - \079\000\079\000\079\000\079\000\079\000\056\000\056\000\056\000\ - \056\000\056\000\056\000\056\000\056\000\056\000\056\000\101\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\126\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\061\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \002\000\003\000\131\000\134\000\003\000\003\000\003\000\255\255\ - \255\255\124\000\003\000\003\000\137\000\003\000\003\000\003\000\ - \156\000\157\000\255\255\082\000\062\000\150\000\081\000\161\000\ - \150\000\150\000\003\000\162\000\003\000\003\000\003\000\003\000\ - \003\000\000\000\000\000\000\000\004\000\159\000\126\000\004\000\ - \004\000\004\000\000\000\086\000\150\000\004\000\004\000\150\000\ - \004\000\004\000\004\000\000\000\000\000\000\000\085\000\082\000\ - \159\000\061\000\081\000\000\000\060\000\004\000\003\000\004\000\ - \004\000\004\000\004\000\004\000\000\000\000\000\000\000\005\000\ - \000\000\000\000\005\000\005\000\005\000\085\000\000\000\084\000\ - \005\000\005\000\000\000\005\000\005\000\005\000\255\255\000\000\ - \000\000\000\000\000\000\000\000\003\000\000\000\003\000\000\000\ - \005\000\004\000\005\000\005\000\005\000\005\000\005\000\000\000\ - \000\000\000\000\090\000\000\000\000\000\090\000\090\000\090\000\ - \000\000\000\000\000\000\090\000\090\000\000\000\090\000\109\000\ - \090\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ - \000\000\004\000\000\000\090\000\005\000\090\000\090\000\090\000\ - \090\000\090\000\000\000\058\000\000\000\107\000\000\000\000\000\ - \107\000\107\000\107\000\000\000\000\000\000\000\107\000\107\000\ - \000\000\107\000\107\000\107\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\005\000\000\000\005\000\000\000\107\000\090\000\ - \107\000\108\000\107\000\107\000\107\000\000\000\000\000\000\000\ - \005\000\000\000\000\000\005\000\005\000\005\000\000\000\000\000\ - \000\000\005\000\005\000\000\000\005\000\005\000\005\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\090\000\000\000\090\000\ - \000\000\005\000\107\000\005\000\005\000\005\000\005\000\005\000\ - \000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\ - \005\000\005\000\005\000\000\000\000\000\000\000\005\000\005\000\ - \000\000\005\000\005\000\005\000\000\000\000\000\000\000\000\000\ - \107\000\000\000\107\000\000\000\106\000\005\000\005\000\000\000\ - \005\000\005\000\005\000\005\000\005\000\000\000\000\000\000\000\ - \000\000\000\000\005\000\000\000\000\000\005\000\005\000\005\000\ - \000\000\000\000\000\000\005\000\005\000\000\000\005\000\005\000\ - \005\000\255\255\000\000\005\000\105\000\005\000\000\000\000\000\ - \000\000\103\000\005\000\005\000\000\000\005\000\005\000\005\000\ - \005\000\005\000\000\000\255\255\000\000\005\000\000\000\000\000\ - \005\000\005\000\005\000\000\000\000\000\000\000\005\000\005\000\ - \000\000\098\000\005\000\005\000\000\000\255\255\255\255\255\255\ - \104\000\000\000\005\000\000\000\000\000\000\000\005\000\005\000\ - \005\000\005\000\005\000\005\000\005\000\000\000\000\000\000\000\ - \090\000\000\000\000\000\090\000\090\000\090\000\000\000\000\000\ - \124\000\090\000\090\000\123\000\090\000\091\000\090\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\005\000\000\000\005\000\ - \000\000\090\000\005\000\090\000\090\000\092\000\090\000\090\000\ - \000\000\000\000\000\000\005\000\000\000\125\000\005\000\005\000\ - \089\000\000\000\000\000\000\000\005\000\005\000\000\000\005\000\ - \005\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \005\000\000\000\005\000\000\000\005\000\090\000\005\000\005\000\ - \005\000\005\000\005\000\000\000\000\000\000\000\003\000\000\000\ - \000\000\003\000\003\000\003\000\000\000\000\000\078\000\077\000\ - \003\000\000\000\003\000\003\000\003\000\000\000\000\000\055\000\ - \055\000\000\000\121\000\090\000\000\000\090\000\000\000\003\000\ - \005\000\003\000\003\000\003\000\003\000\003\000\049\000\000\000\ - \029\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\ - \029\000\029\000\000\000\046\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\048\000\005\000\000\000\ - \005\000\000\000\000\000\003\000\046\000\000\000\055\000\049\000\ - \000\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\ - \029\000\029\000\029\000\047\000\000\000\045\000\000\000\029\000\ - \000\000\000\000\000\000\050\000\000\000\048\000\048\000\000\000\ - \000\000\003\000\000\000\003\000\047\000\046\000\045\000\000\000\ - \051\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\052\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \029\000\000\000\000\000\050\000\000\000\000\000\048\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\047\000\000\000\045\000\ - \051\000\031\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\052\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\000\000\255\255\000\000\ - \000\000\031\000\000\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\049\000\049\000\049\000\ - \049\000\049\000\049\000\049\000\049\000\049\000\049\000\053\000\ - \053\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\ - \053\000\113\000\048\000\000\000\112\000\000\000\000\000\000\000\ - \053\000\053\000\053\000\053\000\053\000\053\000\069\000\069\000\ - \069\000\069\000\069\000\069\000\069\000\069\000\069\000\069\000\ - \000\000\116\000\000\000\000\000\049\000\000\000\115\000\118\000\ - \000\000\117\000\048\000\000\000\000\000\000\000\000\000\000\000\ - \053\000\053\000\053\000\053\000\053\000\053\000\000\000\000\000\ - \000\000\000\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\000\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\032\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\000\000\000\000\000\000\ - \000\000\032\000\000\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\053\000\053\000\053\000\ - \053\000\053\000\053\000\053\000\053\000\053\000\053\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\053\000\053\000\ - \053\000\053\000\053\000\053\000\000\000\000\000\000\000\000\000\ - \000\000\046\000\070\000\070\000\070\000\070\000\070\000\070\000\ - \070\000\070\000\070\000\070\000\000\000\000\000\000\000\142\000\ - \000\000\000\000\141\000\000\000\053\000\000\000\053\000\053\000\ - \053\000\053\000\053\000\053\000\000\000\000\000\000\000\114\000\ - \000\000\047\000\000\000\045\000\000\000\000\000\000\000\144\000\ - \000\000\000\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\000\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\143\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\039\000\000\000\000\000\039\000\039\000\039\000\ - \000\000\000\000\000\000\039\000\039\000\000\000\039\000\039\000\ - \039\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\ - \132\000\132\000\132\000\039\000\000\000\039\000\039\000\039\000\ - \043\000\039\000\133\000\133\000\133\000\133\000\133\000\133\000\ - \133\000\133\000\133\000\133\000\000\000\056\000\056\000\056\000\ - \056\000\056\000\056\000\056\000\056\000\056\000\056\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\000\ - \042\000\000\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\056\000\039\000\039\000\039\000\ - \000\000\039\000\039\000\039\000\000\000\000\000\000\000\039\000\ - \039\000\080\000\039\000\039\000\039\000\151\000\151\000\151\000\ - \151\000\151\000\151\000\151\000\151\000\151\000\151\000\039\000\ - \000\000\039\000\039\000\039\000\039\000\039\000\000\000\000\000\ - \080\000\152\000\152\000\152\000\152\000\152\000\152\000\152\000\ - \152\000\152\000\152\000\000\000\000\000\000\000\000\000\000\000\ - \079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\ - \079\000\079\000\000\000\039\000\040\000\140\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \000\000\039\000\000\000\039\000\000\000\000\000\000\000\000\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \000\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\ - \072\000\072\000\072\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\072\000\072\000\072\000\072\000\072\000\072\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\072\000\072\000\072\000\072\000\072\000\072\000\ - \000\000\000\000\000\000\000\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\032\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \000\000\000\000\000\000\000\000\032\000\000\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\073\000\073\000\ - \073\000\073\000\073\000\073\000\073\000\073\000\073\000\073\000\ - \000\000\000\000\000\000\000\000\046\000\000\000\000\000\073\000\ - \073\000\073\000\073\000\073\000\073\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\054\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\047\000\000\000\045\000\073\000\ - \073\000\073\000\073\000\073\000\073\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\000\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\000\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\039\000\000\000\000\000\ - \039\000\039\000\039\000\000\000\000\000\000\000\039\000\039\000\ - \000\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\039\000\000\000\ - \039\000\039\000\039\000\039\000\039\000\000\000\000\000\000\000\ - \000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\041\000\000\000\000\000\000\000\ - \000\000\000\000\039\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\000\000\000\000\000\000\ - \039\000\040\000\039\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\085\000\082\000\000\000\ - \000\000\081\000\000\000\000\000\000\000\000\000\135\000\135\000\ - \135\000\135\000\135\000\135\000\135\000\135\000\135\000\135\000\ - \000\000\000\000\000\000\000\000\085\000\000\000\084\000\135\000\ - \135\000\135\000\135\000\135\000\135\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\079\000\079\000\079\000\079\000\ - \079\000\079\000\079\000\079\000\079\000\079\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\135\000\ - \135\000\135\000\135\000\135\000\135\000\000\000\000\000\000\000\ - \000\000\000\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\000\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\042\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\044\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\000\000\000\000\000\000\ - \000\000\042\000\000\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\136\000\136\000\136\000\ - \136\000\136\000\136\000\136\000\136\000\136\000\136\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\136\000\136\000\ - \136\000\136\000\136\000\136\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\255\255\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\136\000\136\000\ - \136\000\136\000\136\000\136\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\000\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\000\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\039\000\000\000\000\000\039\000\039\000\039\000\ - \000\000\000\000\000\000\039\000\039\000\000\000\039\000\039\000\ - \039\000\000\000\067\000\000\000\067\000\000\000\000\000\000\000\ - \000\000\067\000\000\000\039\000\000\000\039\000\039\000\039\000\ - \039\000\039\000\066\000\066\000\066\000\066\000\066\000\066\000\ - \066\000\066\000\066\000\066\000\077\000\000\000\000\000\077\000\ - \077\000\077\000\000\000\000\000\000\000\077\000\077\000\000\000\ - \077\000\077\000\077\000\000\000\000\000\000\000\000\000\039\000\ - \000\000\000\000\000\000\000\000\000\000\077\000\000\000\077\000\ - \077\000\077\000\077\000\077\000\000\000\000\000\067\000\000\000\ - \000\000\000\000\000\000\000\000\067\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\039\000\000\000\039\000\ - \067\000\000\000\000\000\000\000\067\000\000\000\067\000\000\000\ - \000\000\077\000\065\000\000\000\000\000\000\000\000\000\005\000\ - \000\000\000\000\005\000\005\000\005\000\000\000\000\000\000\000\ - \005\000\005\000\000\000\005\000\005\000\005\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\077\000\ - \005\000\077\000\005\000\005\000\005\000\005\000\005\000\000\000\ - \000\000\000\000\090\000\000\000\000\000\090\000\090\000\090\000\ - \000\000\000\000\000\000\090\000\090\000\000\000\090\000\090\000\ - \090\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\090\000\005\000\090\000\090\000\090\000\ - \090\000\090\000\000\000\000\000\000\000\000\000\000\000\090\000\ - \000\000\000\000\090\000\090\000\090\000\000\000\000\000\000\000\ - \090\000\090\000\000\000\090\000\090\000\090\000\000\000\000\000\ - \000\000\000\000\005\000\000\000\005\000\000\000\000\000\090\000\ - \090\000\000\000\090\000\090\000\090\000\090\000\090\000\000\000\ - \000\000\000\000\090\000\000\000\000\000\090\000\090\000\090\000\ - \000\000\000\000\000\000\090\000\090\000\000\000\090\000\090\000\ - \090\000\000\000\000\000\000\000\000\000\090\000\000\000\090\000\ - \000\000\000\000\255\255\090\000\090\000\090\000\090\000\090\000\ - \090\000\090\000\000\000\000\000\000\000\005\000\000\000\000\000\ - \005\000\005\000\005\000\000\000\000\000\000\000\005\000\005\000\ - \000\000\005\000\005\000\005\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\090\000\000\000\090\000\000\000\005\000\090\000\ - \005\000\005\000\005\000\005\000\005\000\000\000\000\000\000\000\ - \005\000\000\000\000\000\005\000\005\000\005\000\000\000\000\000\ - \000\000\005\000\005\000\000\000\005\000\005\000\005\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\090\000\000\000\090\000\ - \000\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\ - \000\000\000\000\000\000\107\000\000\000\000\000\107\000\107\000\ - \107\000\000\000\000\000\000\000\107\000\107\000\000\000\107\000\ - \107\000\107\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \005\000\000\000\005\000\000\000\107\000\005\000\107\000\107\000\ - \107\000\107\000\107\000\000\000\000\000\000\000\107\000\000\000\ - \000\000\107\000\107\000\107\000\000\000\000\000\000\000\107\000\ - \107\000\000\000\107\000\107\000\107\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\005\000\000\000\005\000\000\000\107\000\ - \107\000\107\000\107\000\107\000\107\000\107\000\000\000\000\000\ - \000\000\090\000\000\000\000\000\090\000\090\000\090\000\000\000\ - \000\000\000\000\090\000\090\000\000\000\090\000\090\000\090\000\ - \000\000\000\000\130\000\000\000\130\000\000\000\107\000\000\000\ - \107\000\130\000\090\000\107\000\090\000\090\000\090\000\090\000\ - \090\000\000\000\129\000\129\000\129\000\129\000\129\000\129\000\ - \129\000\129\000\129\000\129\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\107\000\000\000\107\000\000\000\000\000\090\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\150\000\000\000\000\000\ - \149\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\ - \000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\148\000\090\000\148\000\090\000\000\000\ - \130\000\000\000\148\000\000\000\130\000\000\000\130\000\000\000\ - \000\000\000\000\128\000\147\000\147\000\147\000\147\000\147\000\ - \147\000\147\000\147\000\147\000\147\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\ - \153\000\153\000\153\000\153\000\153\000\153\000\153\000\148\000\ - \000\000\000\000\000\000\000\000\000\000\148\000\153\000\153\000\ - \153\000\153\000\153\000\153\000\000\000\000\000\000\000\000\000\ - \000\000\148\000\000\000\000\000\000\000\148\000\000\000\148\000\ - \000\000\000\000\000\000\146\000\154\000\154\000\154\000\154\000\ - \154\000\154\000\154\000\154\000\154\000\154\000\153\000\153\000\ - \153\000\153\000\153\000\153\000\000\000\154\000\154\000\154\000\ - \154\000\154\000\154\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\154\000\154\000\154\000\ - \154\000\154\000\154\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\255\255\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000"; - Lexing.lex_check = - "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\000\000\000\000\037\000\000\000\000\000\081\000\087\000\ - \112\000\083\000\086\000\141\000\083\000\086\000\162\000\255\255\ - \255\255\255\255\255\255\255\255\157\000\255\255\255\255\255\255\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\011\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\000\ - \016\000\013\000\017\000\018\000\024\000\017\000\017\000\026\000\ - \036\000\059\000\048\000\036\000\048\000\050\000\050\000\048\000\ - \048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\ - \048\000\061\000\067\000\024\000\070\000\073\000\075\000\036\000\ - \051\000\051\000\051\000\051\000\051\000\051\000\051\000\051\000\ - \117\000\118\000\122\000\024\000\024\000\024\000\024\000\024\000\ - \024\000\024\000\024\000\024\000\024\000\057\000\057\000\057\000\ - \057\000\057\000\057\000\057\000\057\000\057\000\057\000\013\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\124\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\060\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\003\000\130\000\133\000\003\000\003\000\003\000\083\000\ - \086\000\123\000\003\000\003\000\136\000\003\000\003\000\003\000\ - \155\000\156\000\157\000\084\000\060\000\150\000\084\000\159\000\ - \149\000\149\000\003\000\161\000\003\000\003\000\003\000\003\000\ - \003\000\255\255\255\255\255\255\004\000\158\000\123\000\004\000\ - \004\000\004\000\255\255\084\000\150\000\004\000\004\000\149\000\ - \004\000\004\000\004\000\255\255\255\255\255\255\085\000\085\000\ - \160\000\027\000\085\000\255\255\027\000\004\000\003\000\004\000\ - \004\000\004\000\004\000\004\000\255\255\255\255\255\255\005\000\ - \255\255\255\255\005\000\005\000\005\000\085\000\255\255\085\000\ - \005\000\005\000\255\255\005\000\005\000\005\000\027\000\255\255\ - \255\255\255\255\255\255\255\255\003\000\255\255\003\000\255\255\ - \005\000\004\000\005\000\005\000\005\000\005\000\005\000\255\255\ - \255\255\255\255\006\000\255\255\255\255\006\000\006\000\006\000\ - \255\255\255\255\255\255\006\000\006\000\255\255\006\000\006\000\ - \006\000\255\255\255\255\255\255\255\255\255\255\255\255\004\000\ - \255\255\004\000\255\255\006\000\005\000\006\000\006\000\006\000\ - \006\000\006\000\255\255\027\000\255\255\007\000\255\255\255\255\ - \007\000\007\000\007\000\255\255\255\255\255\255\007\000\007\000\ - \255\255\007\000\007\000\007\000\255\255\255\255\255\255\255\255\ - \255\255\255\255\005\000\255\255\005\000\255\255\007\000\006\000\ - \007\000\007\000\007\000\007\000\007\000\255\255\255\255\255\255\ - \009\000\255\255\255\255\009\000\009\000\009\000\255\255\255\255\ - \255\255\009\000\009\000\255\255\009\000\009\000\009\000\255\255\ - \255\255\255\255\255\255\255\255\255\255\006\000\255\255\006\000\ - \255\255\009\000\007\000\009\000\009\000\009\000\009\000\009\000\ - \255\255\255\255\255\255\255\255\255\255\010\000\255\255\255\255\ - \010\000\010\000\010\000\255\255\255\255\255\255\010\000\010\000\ - \255\255\010\000\010\000\010\000\255\255\255\255\255\255\255\255\ - \007\000\255\255\007\000\255\255\009\000\009\000\010\000\255\255\ - \010\000\010\000\010\000\010\000\010\000\255\255\255\255\255\255\ - \255\255\255\255\014\000\255\255\255\255\014\000\014\000\014\000\ - \255\255\255\255\255\255\014\000\014\000\255\255\014\000\014\000\ - \014\000\084\000\255\255\009\000\009\000\009\000\255\255\255\255\ - \255\255\010\000\010\000\014\000\255\255\014\000\014\000\014\000\ - \014\000\014\000\255\255\158\000\255\255\015\000\255\255\255\255\ - \015\000\015\000\015\000\255\255\255\255\255\255\015\000\015\000\ - \255\255\015\000\015\000\015\000\255\255\085\000\160\000\027\000\ - \010\000\255\255\010\000\255\255\255\255\255\255\015\000\014\000\ - \015\000\015\000\015\000\015\000\015\000\255\255\255\255\255\255\ - \019\000\255\255\255\255\019\000\019\000\019\000\255\255\255\255\ - \115\000\019\000\019\000\115\000\019\000\019\000\019\000\255\255\ - \255\255\255\255\255\255\255\255\255\255\014\000\255\255\014\000\ - \255\255\019\000\015\000\019\000\019\000\019\000\019\000\019\000\ - \255\255\255\255\255\255\023\000\255\255\115\000\023\000\023\000\ - \023\000\255\255\255\255\255\255\023\000\023\000\255\255\023\000\ - \023\000\023\000\255\255\255\255\255\255\255\255\255\255\255\255\ - \015\000\255\255\015\000\255\255\023\000\019\000\023\000\023\000\ - \023\000\023\000\023\000\255\255\255\255\255\255\025\000\255\255\ - \255\255\025\000\025\000\025\000\255\255\255\255\025\000\025\000\ - \025\000\255\255\025\000\025\000\025\000\255\255\255\255\055\000\ - \055\000\255\255\115\000\019\000\255\255\019\000\255\255\025\000\ - \023\000\025\000\025\000\025\000\025\000\025\000\029\000\255\255\ - \029\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\ - \029\000\029\000\255\255\055\000\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\029\000\023\000\255\255\ - \023\000\255\255\255\255\025\000\029\000\255\255\055\000\030\000\ - \255\255\030\000\030\000\030\000\030\000\030\000\030\000\030\000\ - \030\000\030\000\030\000\055\000\255\255\055\000\255\255\029\000\ - \255\255\255\255\255\255\030\000\255\255\029\000\030\000\255\255\ - \255\255\025\000\255\255\025\000\029\000\030\000\029\000\255\255\ - \030\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\030\000\255\255\255\255\255\255\255\255\255\255\255\255\ - \030\000\255\255\255\255\030\000\255\255\255\255\030\000\255\255\ - \255\255\255\255\255\255\255\255\255\255\030\000\255\255\030\000\ - \030\000\031\000\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\030\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\255\255\115\000\255\255\ - \255\255\031\000\255\255\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\049\000\049\000\049\000\ - \049\000\049\000\049\000\049\000\049\000\049\000\049\000\052\000\ - \052\000\052\000\052\000\052\000\052\000\052\000\052\000\052\000\ - \052\000\110\000\049\000\255\255\110\000\255\255\255\255\255\255\ - \052\000\052\000\052\000\052\000\052\000\052\000\066\000\066\000\ - \066\000\066\000\066\000\066\000\066\000\066\000\066\000\066\000\ - \255\255\110\000\255\255\255\255\049\000\255\255\110\000\110\000\ - \255\255\110\000\049\000\255\255\255\255\255\255\255\255\255\255\ - \052\000\052\000\052\000\052\000\052\000\052\000\255\255\255\255\ - \255\255\255\255\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\255\255\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\032\000\031\000\031\000\031\000\031\000\031\000\031\000\ - \031\000\031\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\255\255\255\255\255\255\ - \255\255\032\000\255\255\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\053\000\053\000\053\000\ - \053\000\053\000\053\000\053\000\053\000\053\000\053\000\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\053\000\053\000\ - \053\000\053\000\053\000\053\000\255\255\255\255\255\255\255\255\ - \255\255\053\000\069\000\069\000\069\000\069\000\069\000\069\000\ - \069\000\069\000\069\000\069\000\255\255\255\255\255\255\138\000\ - \255\255\255\255\138\000\255\255\053\000\255\255\053\000\053\000\ - \053\000\053\000\053\000\053\000\255\255\255\255\255\255\110\000\ - \255\255\053\000\255\255\053\000\255\255\255\255\255\255\138\000\ - \255\255\255\255\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\255\255\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\138\000\032\000\032\000\032\000\032\000\032\000\032\000\ - \032\000\032\000\033\000\255\255\255\255\033\000\033\000\033\000\ - \255\255\255\255\255\255\033\000\033\000\255\255\033\000\033\000\ - \033\000\129\000\129\000\129\000\129\000\129\000\129\000\129\000\ - \129\000\129\000\129\000\033\000\255\255\033\000\033\000\033\000\ - \033\000\033\000\132\000\132\000\132\000\132\000\132\000\132\000\ - \132\000\132\000\132\000\132\000\255\255\056\000\056\000\056\000\ - \056\000\056\000\056\000\056\000\056\000\056\000\056\000\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\033\000\ - \033\000\255\255\033\000\033\000\033\000\033\000\033\000\033\000\ - \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ - \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ - \033\000\033\000\033\000\033\000\056\000\033\000\034\000\033\000\ - \255\255\034\000\034\000\034\000\255\255\255\255\255\255\034\000\ - \034\000\080\000\034\000\034\000\034\000\147\000\147\000\147\000\ - \147\000\147\000\147\000\147\000\147\000\147\000\147\000\034\000\ - \255\255\034\000\034\000\034\000\034\000\034\000\255\255\255\255\ - \080\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\ - \151\000\151\000\151\000\255\255\255\255\255\255\255\255\255\255\ - \080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\ - \080\000\080\000\255\255\034\000\034\000\138\000\034\000\034\000\ - \034\000\034\000\034\000\034\000\034\000\034\000\034\000\034\000\ - \034\000\034\000\034\000\034\000\034\000\034\000\034\000\034\000\ - \034\000\034\000\034\000\034\000\034\000\034\000\034\000\034\000\ - \255\255\034\000\255\255\034\000\255\255\255\255\255\255\255\255\ - \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ - \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ - \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ - \255\255\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ - \033\000\065\000\065\000\065\000\065\000\065\000\065\000\065\000\ - \065\000\065\000\065\000\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\065\000\065\000\065\000\065\000\065\000\065\000\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\065\000\065\000\065\000\065\000\065\000\065\000\ - \255\255\255\255\255\255\255\255\034\000\034\000\034\000\034\000\ - \034\000\034\000\034\000\034\000\034\000\034\000\034\000\034\000\ - \034\000\034\000\034\000\034\000\034\000\034\000\034\000\034\000\ - \034\000\034\000\034\000\034\000\035\000\034\000\034\000\034\000\ - \034\000\034\000\034\000\034\000\034\000\035\000\035\000\035\000\ - \035\000\035\000\035\000\035\000\035\000\035\000\035\000\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\035\000\035\000\ - \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ - \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ - \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ - \255\255\255\255\255\255\255\255\035\000\255\255\035\000\035\000\ - \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ - \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ - \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ - \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ - \255\255\255\255\255\255\255\255\255\255\255\255\072\000\072\000\ - \072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\ - \255\255\255\255\255\255\255\255\054\000\255\255\255\255\072\000\ - \072\000\072\000\072\000\072\000\072\000\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\054\000\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\054\000\255\255\054\000\072\000\ - \072\000\072\000\072\000\072\000\072\000\035\000\035\000\035\000\ - \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ - \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ - \035\000\035\000\035\000\035\000\255\255\035\000\035\000\035\000\ - \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ - \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ - \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ - \035\000\035\000\035\000\035\000\255\255\035\000\035\000\035\000\ - \035\000\035\000\035\000\035\000\035\000\039\000\255\255\255\255\ - \039\000\039\000\039\000\255\255\255\255\255\255\039\000\039\000\ - \255\255\039\000\039\000\039\000\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\039\000\255\255\ - \039\000\039\000\039\000\039\000\039\000\255\255\255\255\255\255\ - \255\255\040\000\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\255\255\255\255\255\255\ - \255\255\255\255\039\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\255\255\255\255\255\255\ - \039\000\040\000\039\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\079\000\079\000\255\255\ - \255\255\079\000\255\255\255\255\255\255\255\255\128\000\128\000\ - \128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\ - \255\255\255\255\255\255\255\255\079\000\255\255\079\000\128\000\ - \128\000\128\000\128\000\128\000\128\000\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\079\000\079\000\079\000\079\000\ - \079\000\079\000\079\000\079\000\079\000\079\000\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\128\000\ - \128\000\128\000\128\000\128\000\128\000\255\255\255\255\255\255\ - \255\255\255\255\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\255\255\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\042\000\040\000\040\000\040\000\040\000\040\000\040\000\ - \040\000\040\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\255\255\255\255\255\255\ - \255\255\255\255\255\255\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\255\255\255\255\255\255\ - \255\255\042\000\255\255\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\135\000\135\000\135\000\ - \135\000\135\000\135\000\135\000\135\000\135\000\135\000\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\135\000\135\000\ - \135\000\135\000\135\000\135\000\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\079\000\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\135\000\135\000\ - \135\000\135\000\135\000\135\000\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\255\255\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\255\255\042\000\042\000\042\000\042\000\042\000\042\000\ - \042\000\042\000\043\000\255\255\255\255\043\000\043\000\043\000\ - \255\255\255\255\255\255\043\000\043\000\255\255\043\000\043\000\ - \043\000\255\255\058\000\255\255\058\000\255\255\255\255\255\255\ - \255\255\058\000\255\255\043\000\255\255\043\000\043\000\043\000\ - \043\000\043\000\058\000\058\000\058\000\058\000\058\000\058\000\ - \058\000\058\000\058\000\058\000\077\000\255\255\255\255\077\000\ - \077\000\077\000\255\255\255\255\255\255\077\000\077\000\255\255\ - \077\000\077\000\077\000\255\255\255\255\255\255\255\255\043\000\ - \255\255\255\255\255\255\255\255\255\255\077\000\255\255\077\000\ - \077\000\077\000\077\000\077\000\255\255\255\255\058\000\255\255\ - \255\255\255\255\255\255\255\255\058\000\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\043\000\255\255\043\000\ - \058\000\255\255\255\255\255\255\058\000\255\255\058\000\255\255\ - \255\255\077\000\058\000\255\255\255\255\255\255\255\255\089\000\ - \255\255\255\255\089\000\089\000\089\000\255\255\255\255\255\255\ - \089\000\089\000\255\255\089\000\089\000\089\000\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\077\000\ - \089\000\077\000\089\000\089\000\089\000\089\000\089\000\255\255\ - \255\255\255\255\090\000\255\255\255\255\090\000\090\000\090\000\ - \255\255\255\255\255\255\090\000\090\000\255\255\090\000\090\000\ - \090\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\090\000\089\000\090\000\090\000\090\000\ - \090\000\090\000\255\255\255\255\255\255\255\255\255\255\091\000\ - \255\255\255\255\091\000\091\000\091\000\255\255\255\255\255\255\ - \091\000\091\000\255\255\091\000\091\000\091\000\255\255\255\255\ - \255\255\255\255\089\000\255\255\089\000\255\255\255\255\090\000\ - \091\000\255\255\091\000\091\000\091\000\091\000\091\000\255\255\ - \255\255\255\255\092\000\255\255\255\255\092\000\092\000\092\000\ - \255\255\255\255\255\255\092\000\092\000\255\255\092\000\092\000\ - \092\000\255\255\255\255\255\255\255\255\090\000\255\255\090\000\ - \255\255\255\255\058\000\092\000\091\000\092\000\092\000\092\000\ - \092\000\092\000\255\255\255\255\255\255\098\000\255\255\255\255\ - \098\000\098\000\098\000\255\255\255\255\255\255\098\000\098\000\ - \255\255\098\000\098\000\098\000\255\255\255\255\255\255\255\255\ - \255\255\255\255\091\000\255\255\091\000\255\255\098\000\092\000\ - \098\000\098\000\098\000\098\000\098\000\255\255\255\255\255\255\ - \104\000\255\255\255\255\104\000\104\000\104\000\255\255\255\255\ - \255\255\104\000\104\000\255\255\104\000\104\000\104\000\255\255\ - \255\255\255\255\255\255\255\255\255\255\092\000\255\255\092\000\ - \255\255\104\000\098\000\104\000\104\000\104\000\104\000\104\000\ - \255\255\255\255\255\255\107\000\255\255\255\255\107\000\107\000\ - \107\000\255\255\255\255\255\255\107\000\107\000\255\255\107\000\ - \107\000\107\000\255\255\255\255\255\255\255\255\255\255\255\255\ - \098\000\255\255\098\000\255\255\107\000\104\000\107\000\107\000\ - \107\000\107\000\107\000\255\255\255\255\255\255\108\000\255\255\ - \255\255\108\000\108\000\108\000\255\255\255\255\255\255\108\000\ - \108\000\255\255\108\000\108\000\108\000\255\255\255\255\255\255\ - \255\255\255\255\255\255\104\000\255\255\104\000\255\255\108\000\ - \107\000\108\000\108\000\108\000\108\000\108\000\255\255\255\255\ - \255\255\109\000\255\255\255\255\109\000\109\000\109\000\255\255\ - \255\255\255\255\109\000\109\000\255\255\109\000\109\000\109\000\ - \255\255\255\255\121\000\255\255\121\000\255\255\107\000\255\255\ - \107\000\121\000\109\000\108\000\109\000\109\000\109\000\109\000\ - \109\000\255\255\121\000\121\000\121\000\121\000\121\000\121\000\ - \121\000\121\000\121\000\121\000\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\108\000\255\255\108\000\255\255\255\255\109\000\255\255\ - \255\255\255\255\255\255\255\255\255\255\143\000\255\255\255\255\ - \143\000\255\255\255\255\255\255\255\255\255\255\121\000\255\255\ - \255\255\255\255\255\255\255\255\121\000\255\255\255\255\255\255\ - \255\255\255\255\255\255\143\000\109\000\143\000\109\000\255\255\ - \121\000\255\255\143\000\255\255\121\000\255\255\121\000\255\255\ - \255\255\255\255\121\000\143\000\143\000\143\000\143\000\143\000\ - \143\000\143\000\143\000\143\000\143\000\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\146\000\146\000\146\000\ - \146\000\146\000\146\000\146\000\146\000\146\000\146\000\143\000\ - \255\255\255\255\255\255\255\255\255\255\143\000\146\000\146\000\ - \146\000\146\000\146\000\146\000\255\255\255\255\255\255\255\255\ - \255\255\143\000\255\255\255\255\255\255\143\000\255\255\143\000\ - \255\255\255\255\255\255\143\000\153\000\153\000\153\000\153\000\ - \153\000\153\000\153\000\153\000\153\000\153\000\146\000\146\000\ - \146\000\146\000\146\000\146\000\255\255\153\000\153\000\153\000\ - \153\000\153\000\153\000\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\153\000\153\000\153\000\ - \153\000\153\000\153\000\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\143\000\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255"; - Lexing.lex_base_code = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\010\000\ - \036\000\000\000\012\000\000\000\000\000\002\000\000\000\000\000\ - \027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\ - \000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000"; - Lexing.lex_backtrk_code = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\012\000\000\000\000\000\000\000\000\000\000\000\027\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\039\000\039\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000"; - Lexing.lex_default_code = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\019\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000"; - Lexing.lex_trans_code = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\001\000\000\000\036\000\036\000\000\000\036\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \001\000\000\000\000\000\001\000\022\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\007\000\001\000\000\000\000\000\ - \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ - \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ - \004\000\004\000\004\000\004\000\001\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ - \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000"; - Lexing.lex_check_code = - "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\024\000\084\000\143\000\149\000\084\000\143\000\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \024\000\255\255\084\000\000\000\085\000\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\079\000\080\000\255\255\255\255\ - \024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ - \024\000\024\000\079\000\079\000\079\000\079\000\079\000\079\000\ - \079\000\079\000\079\000\079\000\080\000\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\080\000\080\000\080\000\080\000\ - \080\000\080\000\080\000\080\000\080\000\080\000\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \084\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255"; - Lexing.lex_code = - "\255\004\255\255\005\255\255\007\255\006\255\255\003\255\000\004\ - \001\005\255\007\255\255\006\255\007\255\255\000\004\001\005\003\ - \006\002\007\255\001\255\255\000\001\255"; -} - -let rec token lexbuf = - lexbuf.Lexing.lex_mem <- Array.create 8 (-1) ; __ocaml_lex_token_rec lexbuf 0 -and __ocaml_lex_token_rec lexbuf __ocaml_lex_state = - match Lexing.new_engine __ocaml_lex_tables __ocaml_lex_state lexbuf with - | 0 -> -# 255 "parsing/lexer.mll" - ( update_loc lexbuf None 1 false 0; - token lexbuf - ) -# 1184 "parsing/lexer.ml" - - | 1 -> -# 259 "parsing/lexer.mll" - ( token lexbuf ) -# 1189 "parsing/lexer.ml" - - | 2 -> -# 261 "parsing/lexer.mll" - ( UNDERSCORE ) -# 1194 "parsing/lexer.ml" - - | 3 -> -# 263 "parsing/lexer.mll" - ( TILDE ) -# 1199 "parsing/lexer.ml" - - | 4 -> -# 265 "parsing/lexer.mll" - ( let s = Lexing.lexeme lexbuf in - let name = String.sub s 1 (String.length s - 2) in - if Hashtbl.mem keyword_table name then - raise (Error(Keyword_as_label name, Location.curr lexbuf)); - LABEL name ) -# 1208 "parsing/lexer.ml" - - | 5 -> -# 270 "parsing/lexer.mll" - ( QUESTION ) -# 1213 "parsing/lexer.ml" - - | 6 -> -# 271 "parsing/lexer.mll" - ( QUESTIONQUESTION ) -# 1218 "parsing/lexer.ml" - - | 7 -> -# 273 "parsing/lexer.mll" - ( let s = Lexing.lexeme lexbuf in - let name = String.sub s 1 (String.length s - 2) in - if Hashtbl.mem keyword_table name then - raise (Error(Keyword_as_label name, Location.curr lexbuf)); - OPTLABEL name ) -# 1227 "parsing/lexer.ml" - - | 8 -> -# 279 "parsing/lexer.mll" - ( let s = Lexing.lexeme lexbuf in - try - Hashtbl.find keyword_table s - with Not_found -> - LIDENT s ) -# 1236 "parsing/lexer.ml" - - | 9 -> -# 285 "parsing/lexer.mll" - ( UIDENT(Lexing.lexeme lexbuf) ) -# 1241 "parsing/lexer.ml" - - | 10 -> -# 287 "parsing/lexer.mll" - ( try - INT (cvt_int_literal (Lexing.lexeme lexbuf)) - with Failure _ -> - raise (Error(Literal_overflow "int", Location.curr lexbuf)) - ) -# 1250 "parsing/lexer.ml" - - | 11 -> -# 293 "parsing/lexer.mll" - ( FLOAT (remove_underscores(Lexing.lexeme lexbuf)) ) -# 1255 "parsing/lexer.ml" - - | 12 -> -# 295 "parsing/lexer.mll" - ( try - INT32 (cvt_int32_literal (Lexing.lexeme lexbuf)) - with Failure _ -> - raise (Error(Literal_overflow "int32", Location.curr lexbuf)) ) -# 1263 "parsing/lexer.ml" - - | 13 -> -# 300 "parsing/lexer.mll" - ( try - INT64 (cvt_int64_literal (Lexing.lexeme lexbuf)) - with Failure _ -> - raise (Error(Literal_overflow "int64", Location.curr lexbuf)) ) -# 1271 "parsing/lexer.ml" - - | 14 -> -# 305 "parsing/lexer.mll" - ( try - NATIVEINT (cvt_nativeint_literal (Lexing.lexeme lexbuf)) - with Failure _ -> - raise (Error(Literal_overflow "nativeint", Location.curr lexbuf)) ) -# 1279 "parsing/lexer.ml" - - | 15 -> -# 310 "parsing/lexer.mll" - ( reset_string_buffer(); - is_in_string := true; - let string_start = lexbuf.lex_start_p in - string_start_loc := Location.curr lexbuf; - string lexbuf; - is_in_string := false; - lexbuf.lex_start_p <- string_start; - STRING (get_stored_string()) ) -# 1291 "parsing/lexer.ml" - - | 16 -> -# 319 "parsing/lexer.mll" - ( update_loc lexbuf None 1 false 1; - CHAR (Lexing.lexeme_char lexbuf 1) ) -# 1297 "parsing/lexer.ml" - - | 17 -> -# 322 "parsing/lexer.mll" - ( CHAR(Lexing.lexeme_char lexbuf 1) ) -# 1302 "parsing/lexer.ml" - - | 18 -> -# 324 "parsing/lexer.mll" - ( CHAR(char_for_backslash (Lexing.lexeme_char lexbuf 2)) ) -# 1307 "parsing/lexer.ml" - - | 19 -> -# 326 "parsing/lexer.mll" - ( CHAR(char_for_decimal_code lexbuf 2) ) -# 1312 "parsing/lexer.ml" - - | 20 -> -# 328 "parsing/lexer.mll" - ( CHAR(char_for_hexadecimal_code lexbuf 3) ) -# 1317 "parsing/lexer.ml" - - | 21 -> -# 330 "parsing/lexer.mll" - ( let l = Lexing.lexeme lexbuf in - let esc = String.sub l 1 (String.length l - 1) in - raise (Error(Illegal_escape esc, Location.curr lexbuf)) - ) -# 1325 "parsing/lexer.ml" - - | 22 -> -# 335 "parsing/lexer.mll" - ( let start_loc = Location.curr lexbuf in - comment_start_loc := [start_loc]; - reset_string_buffer (); - let end_loc = comment lexbuf in - let s = get_stored_string () in - reset_string_buffer (); - COMMENT (s, { start_loc with Location.loc_end = end_loc.Location.loc_end }) - ) -# 1337 "parsing/lexer.ml" - - | 23 -> -# 344 "parsing/lexer.mll" - ( let loc = Location.curr lexbuf in - if !print_warnings then - Location.prerr_warning loc Warnings.Comment_start; - comment_start_loc := [loc]; - reset_string_buffer (); - let end_loc = comment lexbuf in - let s = get_stored_string () in - reset_string_buffer (); - COMMENT (s, { loc with Location.loc_end = end_loc.Location.loc_end }) - ) -# 1351 "parsing/lexer.ml" - - | 24 -> -# 355 "parsing/lexer.mll" - ( let loc = Location.curr lexbuf in - Location.prerr_warning loc Warnings.Comment_not_end; - lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_curr_pos - 1; - let curpos = lexbuf.lex_curr_p in - lexbuf.lex_curr_p <- { curpos with pos_cnum = curpos.pos_cnum - 1 }; - STAR - ) -# 1362 "parsing/lexer.ml" - - | 25 -> -let -# 362 "parsing/lexer.mll" - num -# 1368 "parsing/lexer.ml" -= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_mem.(0) lexbuf.Lexing.lex_mem.(1) -and -# 363 "parsing/lexer.mll" - name -# 1373 "parsing/lexer.ml" -= Lexing.sub_lexeme_opt lexbuf lexbuf.Lexing.lex_mem.(3) lexbuf.Lexing.lex_mem.(2) in -# 365 "parsing/lexer.mll" - ( update_loc lexbuf name (int_of_string num) true 0; - token lexbuf - ) -# 1379 "parsing/lexer.ml" - - | 26 -> -# 368 "parsing/lexer.mll" - ( SHARP ) -# 1384 "parsing/lexer.ml" - - | 27 -> -# 369 "parsing/lexer.mll" - ( AMPERSAND ) -# 1389 "parsing/lexer.ml" - - | 28 -> -# 370 "parsing/lexer.mll" - ( AMPERAMPER ) -# 1394 "parsing/lexer.ml" - - | 29 -> -# 371 "parsing/lexer.mll" - ( BACKQUOTE ) -# 1399 "parsing/lexer.ml" - - | 30 -> -# 372 "parsing/lexer.mll" - ( QUOTE ) -# 1404 "parsing/lexer.ml" - - | 31 -> -# 373 "parsing/lexer.mll" - ( LPAREN ) -# 1409 "parsing/lexer.ml" - - | 32 -> -# 374 "parsing/lexer.mll" - ( RPAREN ) -# 1414 "parsing/lexer.ml" - - | 33 -> -# 375 "parsing/lexer.mll" - ( STAR ) -# 1419 "parsing/lexer.ml" - - | 34 -> -# 376 "parsing/lexer.mll" - ( COMMA ) -# 1424 "parsing/lexer.ml" - - | 35 -> -# 377 "parsing/lexer.mll" - ( MINUSGREATER ) -# 1429 "parsing/lexer.ml" - - | 36 -> -# 378 "parsing/lexer.mll" - ( DOT ) -# 1434 "parsing/lexer.ml" - - | 37 -> -# 379 "parsing/lexer.mll" - ( DOTDOT ) -# 1439 "parsing/lexer.ml" - - | 38 -> -# 380 "parsing/lexer.mll" - ( COLON ) -# 1444 "parsing/lexer.ml" - - | 39 -> -# 381 "parsing/lexer.mll" - ( COLONCOLON ) -# 1449 "parsing/lexer.ml" - - | 40 -> -# 382 "parsing/lexer.mll" - ( COLONEQUAL ) -# 1454 "parsing/lexer.ml" - - | 41 -> -# 383 "parsing/lexer.mll" - ( COLONGREATER ) -# 1459 "parsing/lexer.ml" - - | 42 -> -# 384 "parsing/lexer.mll" - ( SEMI ) -# 1464 "parsing/lexer.ml" - - | 43 -> -# 385 "parsing/lexer.mll" - ( SEMISEMI ) -# 1469 "parsing/lexer.ml" - - | 44 -> -# 386 "parsing/lexer.mll" - ( LESS ) -# 1474 "parsing/lexer.ml" - - | 45 -> -# 387 "parsing/lexer.mll" - ( LESSMINUS ) -# 1479 "parsing/lexer.ml" - - | 46 -> -# 388 "parsing/lexer.mll" - ( EQUAL ) -# 1484 "parsing/lexer.ml" - - | 47 -> -# 389 "parsing/lexer.mll" - ( LBRACKET ) -# 1489 "parsing/lexer.ml" - - | 48 -> -# 390 "parsing/lexer.mll" - ( LBRACKETBAR ) -# 1494 "parsing/lexer.ml" - - | 49 -> -# 391 "parsing/lexer.mll" - ( LBRACKETLESS ) -# 1499 "parsing/lexer.ml" - - | 50 -> -# 392 "parsing/lexer.mll" - ( LBRACKETGREATER ) -# 1504 "parsing/lexer.ml" - - | 51 -> -# 393 "parsing/lexer.mll" - ( RBRACKET ) -# 1509 "parsing/lexer.ml" - - | 52 -> -# 394 "parsing/lexer.mll" - ( LBRACE ) -# 1514 "parsing/lexer.ml" - - | 53 -> -# 395 "parsing/lexer.mll" - ( LBRACELESS ) -# 1519 "parsing/lexer.ml" - - | 54 -> -# 396 "parsing/lexer.mll" - ( BAR ) -# 1524 "parsing/lexer.ml" - - | 55 -> -# 397 "parsing/lexer.mll" - ( BARBAR ) -# 1529 "parsing/lexer.ml" - - | 56 -> -# 398 "parsing/lexer.mll" - ( BARRBRACKET ) -# 1534 "parsing/lexer.ml" - - | 57 -> -# 399 "parsing/lexer.mll" - ( GREATER ) -# 1539 "parsing/lexer.ml" - - | 58 -> -# 400 "parsing/lexer.mll" - ( GREATERRBRACKET ) -# 1544 "parsing/lexer.ml" - - | 59 -> -# 401 "parsing/lexer.mll" - ( RBRACE ) -# 1549 "parsing/lexer.ml" - - | 60 -> -# 402 "parsing/lexer.mll" - ( GREATERRBRACE ) -# 1554 "parsing/lexer.ml" - - | 61 -> -# 403 "parsing/lexer.mll" - ( BANG ) -# 1559 "parsing/lexer.ml" - - | 62 -> -# 405 "parsing/lexer.mll" - ( INFIXOP0 "!=" ) -# 1564 "parsing/lexer.ml" - - | 63 -> -# 406 "parsing/lexer.mll" - ( PLUS ) -# 1569 "parsing/lexer.ml" - - | 64 -> -# 407 "parsing/lexer.mll" - ( PLUSDOT ) -# 1574 "parsing/lexer.ml" - - | 65 -> -# 408 "parsing/lexer.mll" - ( MINUS ) -# 1579 "parsing/lexer.ml" - - | 66 -> -# 409 "parsing/lexer.mll" - ( MINUSDOT ) -# 1584 "parsing/lexer.ml" - - | 67 -> -# 412 "parsing/lexer.mll" - ( PREFIXOP(Lexing.lexeme lexbuf) ) -# 1589 "parsing/lexer.ml" - - | 68 -> -# 414 "parsing/lexer.mll" - ( PREFIXOP(Lexing.lexeme lexbuf) ) -# 1594 "parsing/lexer.ml" - - | 69 -> -# 416 "parsing/lexer.mll" - ( INFIXOP0(Lexing.lexeme lexbuf) ) -# 1599 "parsing/lexer.ml" - - | 70 -> -# 418 "parsing/lexer.mll" - ( INFIXOP1(Lexing.lexeme lexbuf) ) -# 1604 "parsing/lexer.ml" - - | 71 -> -# 420 "parsing/lexer.mll" - ( INFIXOP2(Lexing.lexeme lexbuf) ) -# 1609 "parsing/lexer.ml" - - | 72 -> -# 422 "parsing/lexer.mll" - ( INFIXOP4(Lexing.lexeme lexbuf) ) -# 1614 "parsing/lexer.ml" - - | 73 -> -# 424 "parsing/lexer.mll" - ( INFIXOP3(Lexing.lexeme lexbuf) ) -# 1619 "parsing/lexer.ml" - - | 74 -> -# 425 "parsing/lexer.mll" - ( EOF ) -# 1624 "parsing/lexer.ml" - - | 75 -> -# 427 "parsing/lexer.mll" - ( raise (Error(Illegal_character (Lexing.lexeme_char lexbuf 0), - Location.curr lexbuf)) - ) -# 1631 "parsing/lexer.ml" - - | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec lexbuf __ocaml_lex_state - -and comment lexbuf = - __ocaml_lex_comment_rec lexbuf 110 -and __ocaml_lex_comment_rec lexbuf __ocaml_lex_state = - match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with - | 0 -> -# 433 "parsing/lexer.mll" - ( comment_start_loc := (Location.curr lexbuf) :: !comment_start_loc; - store_lexeme lexbuf; - comment lexbuf; - ) -# 1645 "parsing/lexer.ml" - - | 1 -> -# 438 "parsing/lexer.mll" - ( match !comment_start_loc with - | [] -> assert false - | [_] -> comment_start_loc := []; Location.curr lexbuf - | _ :: l -> comment_start_loc := l; - store_lexeme lexbuf; - comment lexbuf; - ) -# 1656 "parsing/lexer.ml" - - | 2 -> -# 446 "parsing/lexer.mll" - ( - string_start_loc := Location.curr lexbuf; - store_string_char '"'; - is_in_string := true; - begin try string lexbuf - with Error (Unterminated_string, _) -> - match !comment_start_loc with - | [] -> assert false - | loc :: _ -> - let start = List.hd (List.rev !comment_start_loc) in - comment_start_loc := []; - raise (Error (Unterminated_string_in_comment start, loc)) - end; - is_in_string := false; - store_string_char '"'; - comment lexbuf ) -# 1676 "parsing/lexer.ml" - - | 3 -> -# 463 "parsing/lexer.mll" - ( store_lexeme lexbuf; comment lexbuf ) -# 1681 "parsing/lexer.ml" - - | 4 -> -# 465 "parsing/lexer.mll" - ( update_loc lexbuf None 1 false 1; - store_lexeme lexbuf; - comment lexbuf - ) -# 1689 "parsing/lexer.ml" - - | 5 -> -# 470 "parsing/lexer.mll" - ( store_lexeme lexbuf; comment lexbuf ) -# 1694 "parsing/lexer.ml" - - | 6 -> -# 472 "parsing/lexer.mll" - ( store_lexeme lexbuf; comment lexbuf ) -# 1699 "parsing/lexer.ml" - - | 7 -> -# 474 "parsing/lexer.mll" - ( store_lexeme lexbuf; comment lexbuf ) -# 1704 "parsing/lexer.ml" - - | 8 -> -# 476 "parsing/lexer.mll" - ( store_lexeme lexbuf; comment lexbuf ) -# 1709 "parsing/lexer.ml" - - | 9 -> -# 478 "parsing/lexer.mll" - ( match !comment_start_loc with - | [] -> assert false - | loc :: _ -> - let start = List.hd (List.rev !comment_start_loc) in - comment_start_loc := []; - raise (Error (Unterminated_comment start, loc)) - ) -# 1720 "parsing/lexer.ml" - - | 10 -> -# 486 "parsing/lexer.mll" - ( update_loc lexbuf None 1 false 0; - store_lexeme lexbuf; - comment lexbuf - ) -# 1728 "parsing/lexer.ml" - - | 11 -> -# 491 "parsing/lexer.mll" - ( store_lexeme lexbuf; comment lexbuf ) -# 1733 "parsing/lexer.ml" - - | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_comment_rec lexbuf __ocaml_lex_state - -and string lexbuf = - lexbuf.Lexing.lex_mem <- Array.create 2 (-1) ; __ocaml_lex_string_rec lexbuf 138 -and __ocaml_lex_string_rec lexbuf __ocaml_lex_state = - match Lexing.new_engine __ocaml_lex_tables __ocaml_lex_state lexbuf with - | 0 -> -# 495 "parsing/lexer.mll" - ( () ) -# 1744 "parsing/lexer.ml" - - | 1 -> -let -# 496 "parsing/lexer.mll" - space -# 1750 "parsing/lexer.ml" -= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_mem.(0) lexbuf.Lexing.lex_curr_pos in -# 497 "parsing/lexer.mll" - ( update_loc lexbuf None 1 false (String.length space); - string lexbuf - ) -# 1756 "parsing/lexer.ml" - - | 2 -> -# 501 "parsing/lexer.mll" - ( store_string_char(char_for_backslash(Lexing.lexeme_char lexbuf 1)); - string lexbuf ) -# 1762 "parsing/lexer.ml" - - | 3 -> -# 504 "parsing/lexer.mll" - ( store_string_char(char_for_decimal_code lexbuf 1); - string lexbuf ) -# 1768 "parsing/lexer.ml" - - | 4 -> -# 507 "parsing/lexer.mll" - ( store_string_char(char_for_hexadecimal_code lexbuf 2); - string lexbuf ) -# 1774 "parsing/lexer.ml" - - | 5 -> -# 510 "parsing/lexer.mll" - ( if in_comment () - then string lexbuf - else begin -(* Should be an error, but we are very lax. - raise (Error (Illegal_escape (Lexing.lexeme lexbuf), - Location.curr lexbuf)) -*) - let loc = Location.curr lexbuf in - Location.prerr_warning loc Warnings.Illegal_backslash; - store_string_char (Lexing.lexeme_char lexbuf 0); - store_string_char (Lexing.lexeme_char lexbuf 1); - string lexbuf - end - ) -# 1792 "parsing/lexer.ml" - - | 6 -> -# 525 "parsing/lexer.mll" - ( if not (in_comment ()) then - Location.prerr_warning (Location.curr lexbuf) Warnings.Eol_in_string; - update_loc lexbuf None 1 false 0; - store_lexeme lexbuf; - string lexbuf - ) -# 1802 "parsing/lexer.ml" - - | 7 -> -# 532 "parsing/lexer.mll" - ( is_in_string := false; - raise (Error (Unterminated_string, !string_start_loc)) ) -# 1808 "parsing/lexer.ml" - - | 8 -> -# 535 "parsing/lexer.mll" - ( store_string_char(Lexing.lexeme_char lexbuf 0); - string lexbuf ) -# 1814 "parsing/lexer.ml" - - | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_string_rec lexbuf __ocaml_lex_state - -and skip_sharp_bang lexbuf = - __ocaml_lex_skip_sharp_bang_rec lexbuf 155 -and __ocaml_lex_skip_sharp_bang_rec lexbuf __ocaml_lex_state = - match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with - | 0 -> -# 540 "parsing/lexer.mll" - ( update_loc lexbuf None 3 false 0 ) -# 1825 "parsing/lexer.ml" - - | 1 -> -# 542 "parsing/lexer.mll" - ( update_loc lexbuf None 1 false 0 ) -# 1830 "parsing/lexer.ml" - - | 2 -> -# 543 "parsing/lexer.mll" - ( () ) -# 1835 "parsing/lexer.ml" - - | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_skip_sharp_bang_rec lexbuf __ocaml_lex_state - -;; - -# 545 "parsing/lexer.mll" - - let token_with_comments = token - - let last_comments = ref [] - let rec token lexbuf = - match token_with_comments lexbuf with - COMMENT (s, comment_loc) -> - last_comments := (s, comment_loc) :: !last_comments; - token lexbuf - | tok -> tok - let comments () = List.rev !last_comments - let init () = - is_in_string := false; - last_comments := []; - comment_start_loc := [] - - -# 1859 "parsing/lexer.ml" diff --git a/parsing/lexer.mli b/parsing/lexer.mli deleted file mode 100644 index 5472c8eb06..0000000000 --- a/parsing/lexer.mli +++ /dev/null @@ -1,43 +0,0 @@ -(***********************************************************************) -(* *) -(* OCaml *) -(* *) -(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *) -(* *) -(* Copyright 1996 Institut National de Recherche en Informatique et *) -(* en Automatique. All rights reserved. This file is distributed *) -(* under the terms of the Q Public License version 1.0. *) -(* *) -(***********************************************************************) - -(* $Id: lexer.mli 12511 2012-05-30 13:29:48Z lefessan $ *) - -(* The lexical analyzer *) - -val init : unit -> unit -val token: Lexing.lexbuf -> Parser.token -val skip_sharp_bang: Lexing.lexbuf -> unit - -type error = - | Illegal_character of char - | Illegal_escape of string - | Unterminated_comment of Location.t - | Unterminated_string - | Unterminated_string_in_comment of Location.t - | Keyword_as_label of string - | Literal_overflow of string -;; - -exception Error of error * Location.t - -open Format - -val report_error: formatter -> error -> unit - -val in_comment : unit -> bool;; -val in_string : unit -> bool;; - - -val print_warnings : bool ref -val comments : unit -> (string * Location.t) list -val token_with_comments : Lexing.lexbuf -> Parser.token diff --git a/parsing/lexer.mll b/parsing/lexer.mll deleted file mode 100644 index 9f2f4b20af..0000000000 --- a/parsing/lexer.mll +++ /dev/null @@ -1,561 +0,0 @@ -(***********************************************************************) -(* *) -(* OCaml *) -(* *) -(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *) -(* *) -(* Copyright 1996 Institut National de Recherche en Informatique et *) -(* en Automatique. All rights reserved. This file is distributed *) -(* under the terms of the Q Public License version 1.0. *) -(* *) -(***********************************************************************) - -(* $Id: lexer.mll 12511 2012-05-30 13:29:48Z lefessan $ *) - -(* The lexer definition *) - -{ -open Lexing -open Misc -open Parser - -type error = - | Illegal_character of char - | Illegal_escape of string - | Unterminated_comment of Location.t - | Unterminated_string - | Unterminated_string_in_comment of Location.t - | Keyword_as_label of string - | Literal_overflow of string -;; - -exception Error of error * Location.t;; - -(* The table of keywords *) - -let keyword_table = - create_hashtable 149 [ - "and", AND; - "as", AS; - "assert", ASSERT; - "begin", BEGIN; - "class", CLASS; - "constraint", CONSTRAINT; - "do", DO; - "done", DONE; - "downto", DOWNTO; - "else", ELSE; - "end", END; - "exception", EXCEPTION; - "external", EXTERNAL; - "false", FALSE; - "for", FOR; - "fun", FUN; - "function", FUNCTION; - "functor", FUNCTOR; - "if", IF; - "in", IN; - "include", INCLUDE; - "inherit", INHERIT; - "initializer", INITIALIZER; - "lazy", LAZY; - "let", LET; - "match", MATCH; - "method", METHOD; - "module", MODULE; - "mutable", MUTABLE; - "new", NEW; - "object", OBJECT; - "of", OF; - "open", OPEN; - "or", OR; -(* "parser", PARSER; *) - "private", PRIVATE; - "rec", REC; - "sig", SIG; - "struct", STRUCT; - "then", THEN; - "to", TO; - "true", TRUE; - "try", TRY; - "type", TYPE; - "val", VAL; - "virtual", VIRTUAL; - "when", WHEN; - "while", WHILE; - "with", WITH; - - "mod", INFIXOP3("mod"); - "land", INFIXOP3("land"); - "lor", INFIXOP3("lor"); - "lxor", INFIXOP3("lxor"); - "lsl", INFIXOP4("lsl"); - "lsr", INFIXOP4("lsr"); - "asr", INFIXOP4("asr") -] - -(* To buffer string literals *) - -let initial_string_buffer = String.create 256 -let string_buff = ref initial_string_buffer -let string_index = ref 0 - -let reset_string_buffer () = - string_buff := initial_string_buffer; - string_index := 0 - -let store_string_char c = - if !string_index >= String.length (!string_buff) then begin - let new_buff = String.create (String.length (!string_buff) * 2) in - String.blit (!string_buff) 0 new_buff 0 (String.length (!string_buff)); - string_buff := new_buff - end; - String.unsafe_set (!string_buff) (!string_index) c; - incr string_index - -let store_lexeme lexbuf = - let s = Lexing.lexeme lexbuf in - for i = 0 to String.length s - 1 do - store_string_char s.[i]; - done - -let get_stored_string () = - let s = String.sub (!string_buff) 0 (!string_index) in - string_buff := initial_string_buffer; - s - -(* To store the position of the beginning of a string and comment *) -let string_start_loc = ref Location.none;; -let comment_start_loc = ref [];; -let in_comment () = !comment_start_loc <> [];; -let is_in_string = ref false -let in_string () = !is_in_string -let print_warnings = ref true - -(* To translate escape sequences *) - -let char_for_backslash = function - | 'n' -> '\010' - | 'r' -> '\013' - | 'b' -> '\008' - | 't' -> '\009' - | c -> c - -let char_for_decimal_code lexbuf i = - let c = 100 * (Char.code(Lexing.lexeme_char lexbuf i) - 48) + - 10 * (Char.code(Lexing.lexeme_char lexbuf (i+1)) - 48) + - (Char.code(Lexing.lexeme_char lexbuf (i+2)) - 48) in - if (c < 0 || c > 255) then - if in_comment () - then 'x' - else raise (Error(Illegal_escape (Lexing.lexeme lexbuf), - Location.curr lexbuf)) - else Char.chr c - -let char_for_hexadecimal_code lexbuf i = - let d1 = Char.code (Lexing.lexeme_char lexbuf i) in - let val1 = if d1 >= 97 then d1 - 87 - else if d1 >= 65 then d1 - 55 - else d1 - 48 - in - let d2 = Char.code (Lexing.lexeme_char lexbuf (i+1)) in - let val2 = if d2 >= 97 then d2 - 87 - else if d2 >= 65 then d2 - 55 - else d2 - 48 - in - Char.chr (val1 * 16 + val2) - -(* To convert integer literals, allowing max_int + 1 (PR#4210) *) - -let cvt_int_literal s = - - int_of_string ("-" ^ s) -let cvt_int32_literal s = - Int32.neg (Int32.of_string ("-" ^ String.sub s 0 (String.length s - 1))) -let cvt_int64_literal s = - Int64.neg (Int64.of_string ("-" ^ String.sub s 0 (String.length s - 1))) -let cvt_nativeint_literal s = - Nativeint.neg (Nativeint.of_string ("-" ^ String.sub s 0 (String.length s - 1))) - -(* Remove underscores from float literals *) - -let remove_underscores s = - let l = String.length s in - let rec remove src dst = - if src >= l then - if dst >= l then s else String.sub s 0 dst - else - match s.[src] with - '_' -> remove (src + 1) dst - | c -> s.[dst] <- c; remove (src + 1) (dst + 1) - in remove 0 0 - -(* Update the current location with file name and line number. *) - -let update_loc lexbuf file line absolute chars = - let pos = lexbuf.lex_curr_p in - let new_file = match file with - | None -> pos.pos_fname - | Some s -> s - in - lexbuf.lex_curr_p <- { pos with - pos_fname = new_file; - pos_lnum = if absolute then line else pos.pos_lnum + line; - pos_bol = pos.pos_cnum - chars; - } -;; - -(* Error report *) - -open Format - -let report_error ppf = function - | Illegal_character c -> - fprintf ppf "Illegal character (%s)" (Char.escaped c) - | Illegal_escape s -> - fprintf ppf "Illegal backslash escape in string or character (%s)" s - | Unterminated_comment _ -> - fprintf ppf "Comment not terminated" - | Unterminated_string -> - fprintf ppf "String literal not terminated" - | Unterminated_string_in_comment _ -> - fprintf ppf "This comment contains an unterminated string literal" - | Keyword_as_label kwd -> - fprintf ppf "`%s' is a keyword, it cannot be used as label name" kwd - | Literal_overflow ty -> - fprintf ppf "Integer literal exceeds the range of representable integers of type %s" ty -;; - -} - -let newline = ('\010' | '\013' | "\013\010") -let blank = [' ' '\009' '\012'] -let lowercase = ['a'-'z' '\223'-'\246' '\248'-'\255' '_'] -let uppercase = ['A'-'Z' '\192'-'\214' '\216'-'\222'] -let identchar = - ['A'-'Z' 'a'-'z' '_' '\192'-'\214' '\216'-'\246' '\248'-'\255' '\'' '0'-'9'] -let symbolchar = - ['!' '$' '%' '&' '*' '+' '-' '.' '/' ':' '<' '=' '>' '?' '@' '^' '|' '~'] -let decimal_literal = - ['0'-'9'] ['0'-'9' '_']* -let hex_literal = - '0' ['x' 'X'] ['0'-'9' 'A'-'F' 'a'-'f']['0'-'9' 'A'-'F' 'a'-'f' '_']* -let oct_literal = - '0' ['o' 'O'] ['0'-'7'] ['0'-'7' '_']* -let bin_literal = - '0' ['b' 'B'] ['0'-'1'] ['0'-'1' '_']* -let int_literal = - decimal_literal | hex_literal | oct_literal | bin_literal -let float_literal = - ['0'-'9'] ['0'-'9' '_']* - ('.' ['0'-'9' '_']* )? - (['e' 'E'] ['+' '-']? ['0'-'9'] ['0'-'9' '_']*)? - -rule token = parse - | newline - { update_loc lexbuf None 1 false 0; - token lexbuf - } - | blank + - { token lexbuf } - | "_" - { UNDERSCORE } - | "~" - { TILDE } - | "~" lowercase identchar * ':' - { let s = Lexing.lexeme lexbuf in - let name = String.sub s 1 (String.length s - 2) in - if Hashtbl.mem keyword_table name then - raise (Error(Keyword_as_label name, Location.curr lexbuf)); - LABEL name } - | "?" { QUESTION } - | "??" { QUESTIONQUESTION } - | "?" lowercase identchar * ':' - { let s = Lexing.lexeme lexbuf in - let name = String.sub s 1 (String.length s - 2) in - if Hashtbl.mem keyword_table name then - raise (Error(Keyword_as_label name, Location.curr lexbuf)); - OPTLABEL name } - | lowercase identchar * - { let s = Lexing.lexeme lexbuf in - try - Hashtbl.find keyword_table s - with Not_found -> - LIDENT s } - | uppercase identchar * - { UIDENT(Lexing.lexeme lexbuf) } (* No capitalized keywords *) - | int_literal - { try - INT (cvt_int_literal (Lexing.lexeme lexbuf)) - with Failure _ -> - raise (Error(Literal_overflow "int", Location.curr lexbuf)) - } - | float_literal - { FLOAT (remove_underscores(Lexing.lexeme lexbuf)) } - | int_literal "l" - { try - INT32 (cvt_int32_literal (Lexing.lexeme lexbuf)) - with Failure _ -> - raise (Error(Literal_overflow "int32", Location.curr lexbuf)) } - | int_literal "L" - { try - INT64 (cvt_int64_literal (Lexing.lexeme lexbuf)) - with Failure _ -> - raise (Error(Literal_overflow "int64", Location.curr lexbuf)) } - | int_literal "n" - { try - NATIVEINT (cvt_nativeint_literal (Lexing.lexeme lexbuf)) - with Failure _ -> - raise (Error(Literal_overflow "nativeint", Location.curr lexbuf)) } - | "\"" - { reset_string_buffer(); - is_in_string := true; - let string_start = lexbuf.lex_start_p in - string_start_loc := Location.curr lexbuf; - string lexbuf; - is_in_string := false; - lexbuf.lex_start_p <- string_start; - STRING (get_stored_string()) } - | "'" newline "'" - { update_loc lexbuf None 1 false 1; - CHAR (Lexing.lexeme_char lexbuf 1) } - | "'" [^ '\\' '\'' '\010' '\013'] "'" - { CHAR(Lexing.lexeme_char lexbuf 1) } - | "'\\" ['\\' '\'' '"' 'n' 't' 'b' 'r' ' '] "'" - { CHAR(char_for_backslash (Lexing.lexeme_char lexbuf 2)) } - | "'\\" ['0'-'9'] ['0'-'9'] ['0'-'9'] "'" - { CHAR(char_for_decimal_code lexbuf 2) } - | "'\\" 'x' ['0'-'9' 'a'-'f' 'A'-'F'] ['0'-'9' 'a'-'f' 'A'-'F'] "'" - { CHAR(char_for_hexadecimal_code lexbuf 3) } - | "'\\" _ - { let l = Lexing.lexeme lexbuf in - let esc = String.sub l 1 (String.length l - 1) in - raise (Error(Illegal_escape esc, Location.curr lexbuf)) - } - | "(*" - { let start_loc = Location.curr lexbuf in - comment_start_loc := [start_loc]; - reset_string_buffer (); - let end_loc = comment lexbuf in - let s = get_stored_string () in - reset_string_buffer (); - COMMENT (s, { start_loc with Location.loc_end = end_loc.Location.loc_end }) - } - | "(*)" - { let loc = Location.curr lexbuf in - if !print_warnings then - Location.prerr_warning loc Warnings.Comment_start; - comment_start_loc := [loc]; - reset_string_buffer (); - let end_loc = comment lexbuf in - let s = get_stored_string () in - reset_string_buffer (); - COMMENT (s, { loc with Location.loc_end = end_loc.Location.loc_end }) - } - | "*)" - { let loc = Location.curr lexbuf in - Location.prerr_warning loc Warnings.Comment_not_end; - lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_curr_pos - 1; - let curpos = lexbuf.lex_curr_p in - lexbuf.lex_curr_p <- { curpos with pos_cnum = curpos.pos_cnum - 1 }; - STAR - } - | "#" [' ' '\t']* (['0'-'9']+ as num) [' ' '\t']* - ("\"" ([^ '\010' '\013' '"' ] * as name) "\"")? - [^ '\010' '\013'] * newline - { update_loc lexbuf name (int_of_string num) true 0; - token lexbuf - } - | "#" { SHARP } - | "&" { AMPERSAND } - | "&&" { AMPERAMPER } - | "`" { BACKQUOTE } - | "'" { QUOTE } - | "(" { LPAREN } - | ")" { RPAREN } - | "*" { STAR } - | "," { COMMA } - | "->" { MINUSGREATER } - | "." { DOT } - | ".." { DOTDOT } - | ":" { COLON } - | "::" { COLONCOLON } - | ":=" { COLONEQUAL } - | ":>" { COLONGREATER } - | ";" { SEMI } - | ";;" { SEMISEMI } - | "<" { LESS } - | "<-" { LESSMINUS } - | "=" { EQUAL } - | "[" { LBRACKET } - | "[|" { LBRACKETBAR } - | "[<" { LBRACKETLESS } - | "[>" { LBRACKETGREATER } - | "]" { RBRACKET } - | "{" { LBRACE } - | "{<" { LBRACELESS } - | "|" { BAR } - | "||" { BARBAR } - | "|]" { BARRBRACKET } - | ">" { GREATER } - | ">]" { GREATERRBRACKET } - | "}" { RBRACE } - | ">}" { GREATERRBRACE } - | "!" { BANG } - - | "!=" { INFIXOP0 "!=" } - | "+" { PLUS } - | "+." { PLUSDOT } - | "-" { MINUS } - | "-." { MINUSDOT } - - | "!" symbolchar + - { PREFIXOP(Lexing.lexeme lexbuf) } - | ['~' '?'] symbolchar + - { PREFIXOP(Lexing.lexeme lexbuf) } - | ['=' '<' '>' '|' '&' '$'] symbolchar * - { INFIXOP0(Lexing.lexeme lexbuf) } - | ['@' '^'] symbolchar * - { INFIXOP1(Lexing.lexeme lexbuf) } - | ['+' '-'] symbolchar * - { INFIXOP2(Lexing.lexeme lexbuf) } - | "**" symbolchar * - { INFIXOP4(Lexing.lexeme lexbuf) } - | ['*' '/' '%'] symbolchar * - { INFIXOP3(Lexing.lexeme lexbuf) } - | eof { EOF } - | _ - { raise (Error(Illegal_character (Lexing.lexeme_char lexbuf 0), - Location.curr lexbuf)) - } - -and comment = parse - "(*" - { comment_start_loc := (Location.curr lexbuf) :: !comment_start_loc; - store_lexeme lexbuf; - comment lexbuf; - } - | "*)" - { match !comment_start_loc with - | [] -> assert false - | [_] -> comment_start_loc := []; Location.curr lexbuf - | _ :: l -> comment_start_loc := l; - store_lexeme lexbuf; - comment lexbuf; - } - | "\"" - { - string_start_loc := Location.curr lexbuf; - store_string_char '"'; - is_in_string := true; - begin try string lexbuf - with Error (Unterminated_string, _) -> - match !comment_start_loc with - | [] -> assert false - | loc :: _ -> - let start = List.hd (List.rev !comment_start_loc) in - comment_start_loc := []; - raise (Error (Unterminated_string_in_comment start, loc)) - end; - is_in_string := false; - store_string_char '"'; - comment lexbuf } - | "''" - { store_lexeme lexbuf; comment lexbuf } - | "'" newline "'" - { update_loc lexbuf None 1 false 1; - store_lexeme lexbuf; - comment lexbuf - } - | "'" [^ '\\' '\'' '\010' '\013' ] "'" - { store_lexeme lexbuf; comment lexbuf } - | "'\\" ['\\' '"' '\'' 'n' 't' 'b' 'r' ' '] "'" - { store_lexeme lexbuf; comment lexbuf } - | "'\\" ['0'-'9'] ['0'-'9'] ['0'-'9'] "'" - { store_lexeme lexbuf; comment lexbuf } - | "'\\" 'x' ['0'-'9' 'a'-'f' 'A'-'F'] ['0'-'9' 'a'-'f' 'A'-'F'] "'" - { store_lexeme lexbuf; comment lexbuf } - | eof - { match !comment_start_loc with - | [] -> assert false - | loc :: _ -> - let start = List.hd (List.rev !comment_start_loc) in - comment_start_loc := []; - raise (Error (Unterminated_comment start, loc)) - } - | newline - { update_loc lexbuf None 1 false 0; - store_lexeme lexbuf; - comment lexbuf - } - | _ - { store_lexeme lexbuf; comment lexbuf } - -and string = parse - '"' - { () } - | '\\' newline ([' ' '\t'] * as space) - { update_loc lexbuf None 1 false (String.length space); - string lexbuf - } - | '\\' ['\\' '\'' '"' 'n' 't' 'b' 'r' ' '] - { store_string_char(char_for_backslash(Lexing.lexeme_char lexbuf 1)); - string lexbuf } - | '\\' ['0'-'9'] ['0'-'9'] ['0'-'9'] - { store_string_char(char_for_decimal_code lexbuf 1); - string lexbuf } - | '\\' 'x' ['0'-'9' 'a'-'f' 'A'-'F'] ['0'-'9' 'a'-'f' 'A'-'F'] - { store_string_char(char_for_hexadecimal_code lexbuf 2); - string lexbuf } - | '\\' _ - { if in_comment () - then string lexbuf - else begin -(* Should be an error, but we are very lax. - raise (Error (Illegal_escape (Lexing.lexeme lexbuf), - Location.curr lexbuf)) -*) - let loc = Location.curr lexbuf in - Location.prerr_warning loc Warnings.Illegal_backslash; - store_string_char (Lexing.lexeme_char lexbuf 0); - store_string_char (Lexing.lexeme_char lexbuf 1); - string lexbuf - end - } - | newline - { if not (in_comment ()) then - Location.prerr_warning (Location.curr lexbuf) Warnings.Eol_in_string; - update_loc lexbuf None 1 false 0; - store_lexeme lexbuf; - string lexbuf - } - | eof - { is_in_string := false; - raise (Error (Unterminated_string, !string_start_loc)) } - | _ - { store_string_char(Lexing.lexeme_char lexbuf 0); - string lexbuf } - -and skip_sharp_bang = parse - | "#!" [^ '\n']* '\n' [^ '\n']* "\n!#\n" - { update_loc lexbuf None 3 false 0 } - | "#!" [^ '\n']* '\n' - { update_loc lexbuf None 1 false 0 } - | "" { () } - -{ - let token_with_comments = token - - let last_comments = ref [] - let rec token lexbuf = - match token_with_comments lexbuf with - COMMENT (s, comment_loc) -> - last_comments := (s, comment_loc) :: !last_comments; - token lexbuf - | tok -> tok - let comments () = List.rev !last_comments - let init () = - is_in_string := false; - last_comments := []; - comment_start_loc := [] - -} diff --git a/parsing/location.ml b/parsing/location.ml index 947c1a6f56..63af9743ec 100644 --- a/parsing/location.ml +++ b/parsing/location.ml @@ -271,7 +271,19 @@ let print_warning loc ppf w = end ;; -let prerr_warning loc w = print_warning loc err_formatter w;; +let warnings = ref [] +let prerr_warning loc w = + let ppf, to_string = + let b = Buffer.create 32 in + let ppf = Format.formatter_of_buffer b in + ppf, + (fun () -> + Format.pp_print_flush ppf (); + Buffer.contents b) + in + print_warning loc ppf w; + warnings := (loc, to_string ()) :: !warnings +;; let echo_eof () = print_newline (); diff --git a/parsing/location.mli b/parsing/location.mli index fd24721428..3dc4c289a6 100644 --- a/parsing/location.mli +++ b/parsing/location.mli @@ -54,7 +54,10 @@ val print_loc: formatter -> t -> unit val print_error: formatter -> t -> unit val print_error_cur_file: formatter -> unit val print_warning: t -> formatter -> Warnings.t -> unit -val prerr_warning: t -> Warnings.t -> unit + +val prerr_warning : t -> Warnings.t -> unit +val warnings : (t * string) list ref + val echo_eof: unit -> unit val reset: unit -> unit diff --git a/parsing/parser.ml b/parsing/parser.ml deleted file mode 100644 index 66c69ce5d0..0000000000 --- a/parsing/parser.ml +++ /dev/null @@ -1,9089 +0,0 @@ -type token = - | AMPERAMPER - | AMPERSAND - | AND - | AS - | ASSERT - | BACKQUOTE - | BANG - | BAR - | BARBAR - | BARRBRACKET - | BEGIN - | CHAR of (char) - | CLASS - | COLON - | COLONCOLON - | COLONEQUAL - | COLONGREATER - | COMMA - | CONSTRAINT - | DO - | DONE - | DOT - | DOTDOT - | DOWNTO - | ELSE - | END - | EOF - | EQUAL - | EXCEPTION - | EXTERNAL - | FALSE - | FLOAT of (string) - | FOR - | FUN - | FUNCTION - | FUNCTOR - | GREATER - | GREATERRBRACE - | GREATERRBRACKET - | IF - | IN - | INCLUDE - | INFIXOP0 of (string) - | INFIXOP1 of (string) - | INFIXOP2 of (string) - | INFIXOP3 of (string) - | INFIXOP4 of (string) - | INHERIT - | INITIALIZER - | INT of (int) - | INT32 of (int32) - | INT64 of (int64) - | LABEL of (string) - | LAZY - | LBRACE - | LBRACELESS - | LBRACKET - | LBRACKETBAR - | LBRACKETLESS - | LBRACKETGREATER - | LESS - | LESSMINUS - | LET - | LIDENT of (string) - | LPAREN - | MATCH - | METHOD - | MINUS - | MINUSDOT - | MINUSGREATER - | MODULE - | MUTABLE - | NATIVEINT of (nativeint) - | NEW - | OBJECT - | OF - | OPEN - | OPTLABEL of (string) - | OR - | PLUS - | PLUSDOT - | PREFIXOP of (string) - | PRIVATE - | QUESTION - | QUESTIONQUESTION - | QUOTE - | RBRACE - | RBRACKET - | REC - | RPAREN - | SEMI - | SEMISEMI - | SHARP - | SIG - | STAR - | STRING of (string) - | STRUCT - | THEN - | TILDE - | TO - | TRUE - | TRY - | TYPE - | UIDENT of (string) - | UNDERSCORE - | VAL - | VIRTUAL - | WHEN - | WHILE - | WITH - | COMMENT of (string * Location.t) - -open Parsing;; -let _ = parse_error;; -# 18 "parsing/parser.mly" -open Location -open Asttypes -open Longident -open Parsetree - -let mktyp d = - { ptyp_desc = d; ptyp_loc = symbol_rloc() } -let mkpat d = - { ppat_desc = d; ppat_loc = symbol_rloc() } -let mkexp d = - { pexp_desc = d; pexp_loc = symbol_rloc() } -let mkmty d = - { pmty_desc = d; pmty_loc = symbol_rloc() } -let mksig d = - { psig_desc = d; psig_loc = symbol_rloc() } -let mkmod d = - { pmod_desc = d; pmod_loc = symbol_rloc() } -let mkstr d = - { pstr_desc = d; pstr_loc = symbol_rloc() } -let mkfield d = - { pfield_desc = d; pfield_loc = symbol_rloc() } -let mkclass d = - { pcl_desc = d; pcl_loc = symbol_rloc() } -let mkcty d = - { pcty_desc = d; pcty_loc = symbol_rloc() } -let mkctf d = - { pctf_desc = d; pctf_loc = symbol_rloc () } -let mkcf d = - { pcf_desc = d; pcf_loc = symbol_rloc () } -let mkrhs rhs pos = mkloc rhs (rhs_loc pos) -let mkoption d = - { ptyp_desc = Ptyp_constr(mknoloc (Ldot (Lident "*predef*", "option")), [d]); - ptyp_loc = d.ptyp_loc} - -let reloc_pat x = { x with ppat_loc = symbol_rloc () };; -let reloc_exp x = { x with pexp_loc = symbol_rloc () };; - -let mkoperator name pos = - let loc = rhs_loc pos in - { pexp_desc = Pexp_ident(mkloc (Lident name) loc); pexp_loc = loc } - -let mkpatvar name pos = - { ppat_desc = Ppat_var (mkrhs name pos); ppat_loc = rhs_loc pos } - -(* - Ghost expressions and patterns: - expressions and patterns that do not appear explicitly in the - source file they have the loc_ghost flag set to true. - Then the profiler will not try to instrument them and the - -stypes option will not try to display their type. - - Every grammar rule that generates an element with a location must - make at most one non-ghost element, the topmost one. - - How to tell whether your location must be ghost: - A location corresponds to a range of characters in the source file. - If the location contains a piece of code that is syntactically - valid (according to the documentation), and corresponds to the - AST node, then the location must be real; in all other cases, - it must be ghost. -*) -let ghexp d = { pexp_desc = d; pexp_loc = symbol_gloc () };; -let ghpat d = { ppat_desc = d; ppat_loc = symbol_gloc () };; -let ghtyp d = { ptyp_desc = d; ptyp_loc = symbol_gloc () };; - -let mkassert e = - match e with - | {pexp_desc = Pexp_construct ({ txt = Lident "false" }, None , false); - pexp_loc = _ } -> - mkexp (Pexp_assertfalse) - | _ -> mkexp (Pexp_assert (e)) -;; - -let mkinfix arg1 name arg2 = - mkexp(Pexp_apply(mkoperator name 2, ["", arg1; "", arg2])) - -let neg_float_string f = - if String.length f > 0 && f.[0] = '-' - then String.sub f 1 (String.length f - 1) - else "-" ^ f - -let mkuminus name arg = - match name, arg.pexp_desc with - | "-", Pexp_constant(Const_int n) -> - mkexp(Pexp_constant(Const_int(-n))) - | "-", Pexp_constant(Const_int32 n) -> - mkexp(Pexp_constant(Const_int32(Int32.neg n))) - | "-", Pexp_constant(Const_int64 n) -> - mkexp(Pexp_constant(Const_int64(Int64.neg n))) - | "-", Pexp_constant(Const_nativeint n) -> - mkexp(Pexp_constant(Const_nativeint(Nativeint.neg n))) - | ("-" | "-."), Pexp_constant(Const_float f) -> - mkexp(Pexp_constant(Const_float(neg_float_string f))) - | _ -> - mkexp(Pexp_apply(mkoperator ("~" ^ name) 1, ["", arg])) - -let mkuplus name arg = - let desc = arg.pexp_desc in - match name, desc with - | "+", Pexp_constant(Const_int _) - | "+", Pexp_constant(Const_int32 _) - | "+", Pexp_constant(Const_int64 _) - | "+", Pexp_constant(Const_nativeint _) - | ("+" | "+."), Pexp_constant(Const_float _) -> mkexp desc - | _ -> - mkexp(Pexp_apply(mkoperator ("~" ^ name) 1, ["", arg])) - -let mkexp_cons args loc = - {pexp_desc = Pexp_construct(mkloc (Lident "::") Location.none, - Some args, false); pexp_loc = loc} - -let mkpat_cons args loc = - {ppat_desc = Ppat_construct(mkloc (Lident "::") Location.none, - Some args, false); ppat_loc = loc} - -let rec mktailexp = function - [] -> - ghexp(Pexp_construct(mkloc (Lident "[]") Location.none, None, false)) - | e1 :: el -> - let exp_el = mktailexp el in - let l = {loc_start = e1.pexp_loc.loc_start; - loc_end = exp_el.pexp_loc.loc_end; - loc_ghost = true} - in - let arg = {pexp_desc = Pexp_tuple [e1; exp_el]; pexp_loc = l} in - mkexp_cons arg l - -let rec mktailpat = function - [] -> - ghpat(Ppat_construct(mkloc (Lident "[]") Location.none, None, false)) - | p1 :: pl -> - let pat_pl = mktailpat pl in - let l = {loc_start = p1.ppat_loc.loc_start; - loc_end = pat_pl.ppat_loc.loc_end; - loc_ghost = true} - in - let arg = {ppat_desc = Ppat_tuple [p1; pat_pl]; ppat_loc = l} in - mkpat_cons arg l - -let ghstrexp e = - { pstr_desc = Pstr_eval e; pstr_loc = {e.pexp_loc with loc_ghost = true} } - -let array_function str name = - mknoloc (Ldot(Lident str, (if !Clflags.fast then "unsafe_" ^ name else name))) - -let rec deep_mkrangepat c1 c2 = - if c1 = c2 then ghpat(Ppat_constant(Const_char c1)) else - ghpat(Ppat_or(ghpat(Ppat_constant(Const_char c1)), - deep_mkrangepat (Char.chr(Char.code c1 + 1)) c2)) - -let rec mkrangepat c1 c2 = - if c1 > c2 then mkrangepat c2 c1 else - if c1 = c2 then mkpat(Ppat_constant(Const_char c1)) else - reloc_pat (deep_mkrangepat c1 c2) - -let syntax_error () = - raise Syntaxerr.Escape_error - -let unclosed opening_name opening_num closing_name closing_num = - raise(Syntaxerr.Error(Syntaxerr.Unclosed(rhs_loc opening_num, opening_name, - rhs_loc closing_num, closing_name))) - -let bigarray_function str name = - mkloc (Ldot(Ldot(Lident "Bigarray", str), name)) Location.none - -let bigarray_untuplify = function - { pexp_desc = Pexp_tuple explist; pexp_loc = _ } -> explist - | exp -> [exp] - -let bigarray_get arr arg = - let get = if !Clflags.fast then "unsafe_get" else "get" in - match bigarray_untuplify arg with - [c1] -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Array1" get)), - ["", arr; "", c1])) - | [c1;c2] -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Array2" get)), - ["", arr; "", c1; "", c2])) - | [c1;c2;c3] -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Array3" get)), - ["", arr; "", c1; "", c2; "", c3])) - | coords -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Genarray" "get")), - ["", arr; "", ghexp(Pexp_array coords)])) - -let bigarray_set arr arg newval = - let set = if !Clflags.fast then "unsafe_set" else "set" in - match bigarray_untuplify arg with - [c1] -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Array1" set)), - ["", arr; "", c1; "", newval])) - | [c1;c2] -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Array2" set)), - ["", arr; "", c1; "", c2; "", newval])) - | [c1;c2;c3] -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Array3" set)), - ["", arr; "", c1; "", c2; "", c3; "", newval])) - | coords -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Genarray" "set")), - ["", arr; - "", ghexp(Pexp_array coords); - "", newval])) - -let lapply p1 p2 = - if !Clflags.applicative_functors - then Lapply(p1, p2) - else raise (Syntaxerr.Error(Syntaxerr.Applicative_path (symbol_rloc()))) - -let exp_of_label lbl pos = - mkexp (Pexp_ident(mkrhs (Lident(Longident.last lbl)) pos)) - -let pat_of_label lbl pos = - mkpat (Ppat_var (mkrhs (Longident.last lbl) pos)) - -let check_variable vl loc v = - if List.mem v vl then - raise Syntaxerr.(Error(Variable_in_scope(loc,v))) - -let varify_constructors var_names t = - let rec loop t = - let desc = - match t.ptyp_desc with - | Ptyp_any -> Ptyp_any - | Ptyp_var x -> - check_variable var_names t.ptyp_loc x; - Ptyp_var x - | Ptyp_arrow (label,core_type,core_type') -> - Ptyp_arrow(label, loop core_type, loop core_type') - | Ptyp_tuple lst -> Ptyp_tuple (List.map loop lst) - | Ptyp_constr( { txt = Lident s }, []) when List.mem s var_names -> - Ptyp_var s - | Ptyp_constr(longident, lst) -> - Ptyp_constr(longident, List.map loop lst) - | Ptyp_object lst -> - Ptyp_object (List.map loop_core_field lst) - | Ptyp_class (longident, lst, lbl_list) -> - Ptyp_class (longident, List.map loop lst, lbl_list) - | Ptyp_alias(core_type, string) -> - check_variable var_names t.ptyp_loc string; - Ptyp_alias(loop core_type, string) - | Ptyp_variant(row_field_list, flag, lbl_lst_option) -> - Ptyp_variant(List.map loop_row_field row_field_list, - flag, lbl_lst_option) - | Ptyp_poly(string_lst, core_type) -> - List.iter (check_variable var_names t.ptyp_loc) string_lst; - Ptyp_poly(string_lst, loop core_type) - | Ptyp_package(longident,lst) -> - Ptyp_package(longident,List.map (fun (n,typ) -> (n,loop typ) ) lst) - in - {t with ptyp_desc = desc} - and loop_core_field t = - let desc = - match t.pfield_desc with - | Pfield(n,typ) -> - Pfield(n,loop typ) - | Pfield_var -> - Pfield_var - in - { t with pfield_desc=desc} - and loop_row_field = - function - | Rtag(label,flag,lst) -> - Rtag(label,flag,List.map loop lst) - | Rinherit t -> - Rinherit (loop t) - in - loop t - -let wrap_type_annotation newtypes core_type body = - let exp = mkexp(Pexp_constraint(body,Some core_type,None)) in - let exp = - List.fold_right (fun newtype exp -> mkexp (Pexp_newtype (newtype, exp))) - newtypes exp - in - (exp, ghtyp(Ptyp_poly(newtypes,varify_constructors newtypes core_type))) - -# 394 "parsing/parser.ml" -let yytransl_const = [| - 257 (* AMPERAMPER *); - 258 (* AMPERSAND *); - 259 (* AND *); - 260 (* AS *); - 261 (* ASSERT *); - 262 (* BACKQUOTE *); - 263 (* BANG *); - 264 (* BAR *); - 265 (* BARBAR *); - 266 (* BARRBRACKET *); - 267 (* BEGIN *); - 269 (* CLASS *); - 270 (* COLON *); - 271 (* COLONCOLON *); - 272 (* COLONEQUAL *); - 273 (* COLONGREATER *); - 274 (* COMMA *); - 275 (* CONSTRAINT *); - 276 (* DO *); - 277 (* DONE *); - 278 (* DOT *); - 279 (* DOTDOT *); - 280 (* DOWNTO *); - 281 (* ELSE *); - 282 (* END *); - 0 (* EOF *); - 283 (* EQUAL *); - 284 (* EXCEPTION *); - 285 (* EXTERNAL *); - 286 (* FALSE *); - 288 (* FOR *); - 289 (* FUN *); - 290 (* FUNCTION *); - 291 (* FUNCTOR *); - 292 (* GREATER *); - 293 (* GREATERRBRACE *); - 294 (* GREATERRBRACKET *); - 295 (* IF *); - 296 (* IN *); - 297 (* INCLUDE *); - 303 (* INHERIT *); - 304 (* INITIALIZER *); - 309 (* LAZY *); - 310 (* LBRACE *); - 311 (* LBRACELESS *); - 312 (* LBRACKET *); - 313 (* LBRACKETBAR *); - 314 (* LBRACKETLESS *); - 315 (* LBRACKETGREATER *); - 316 (* LESS *); - 317 (* LESSMINUS *); - 318 (* LET *); - 320 (* LPAREN *); - 321 (* MATCH *); - 322 (* METHOD *); - 323 (* MINUS *); - 324 (* MINUSDOT *); - 325 (* MINUSGREATER *); - 326 (* MODULE *); - 327 (* MUTABLE *); - 329 (* NEW *); - 330 (* OBJECT *); - 331 (* OF *); - 332 (* OPEN *); - 334 (* OR *); - 335 (* PLUS *); - 336 (* PLUSDOT *); - 338 (* PRIVATE *); - 339 (* QUESTION *); - 340 (* QUESTIONQUESTION *); - 341 (* QUOTE *); - 342 (* RBRACE *); - 343 (* RBRACKET *); - 344 (* REC *); - 345 (* RPAREN *); - 346 (* SEMI *); - 347 (* SEMISEMI *); - 348 (* SHARP *); - 349 (* SIG *); - 350 (* STAR *); - 352 (* STRUCT *); - 353 (* THEN *); - 354 (* TILDE *); - 355 (* TO *); - 356 (* TRUE *); - 357 (* TRY *); - 358 (* TYPE *); - 360 (* UNDERSCORE *); - 361 (* VAL *); - 362 (* VIRTUAL *); - 363 (* WHEN *); - 364 (* WHILE *); - 365 (* WITH *); - 0|] - -let yytransl_block = [| - 268 (* CHAR *); - 287 (* FLOAT *); - 298 (* INFIXOP0 *); - 299 (* INFIXOP1 *); - 300 (* INFIXOP2 *); - 301 (* INFIXOP3 *); - 302 (* INFIXOP4 *); - 305 (* INT *); - 306 (* INT32 *); - 307 (* INT64 *); - 308 (* LABEL *); - 319 (* LIDENT *); - 328 (* NATIVEINT *); - 333 (* OPTLABEL *); - 337 (* PREFIXOP *); - 351 (* STRING *); - 359 (* UIDENT *); - 366 (* COMMENT *); - 0|] - -let yylhs = "\255\255\ -\001\000\002\000\003\000\003\000\003\000\003\000\008\000\008\000\ -\004\000\004\000\012\000\012\000\012\000\012\000\012\000\012\000\ -\012\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ -\013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ -\013\000\013\000\006\000\006\000\018\000\018\000\018\000\018\000\ -\018\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\ -\011\000\011\000\011\000\011\000\011\000\027\000\027\000\027\000\ -\028\000\028\000\032\000\015\000\015\000\015\000\015\000\015\000\ -\015\000\015\000\015\000\007\000\007\000\007\000\035\000\035\000\ -\035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ -\035\000\035\000\036\000\036\000\037\000\037\000\039\000\030\000\ -\030\000\040\000\043\000\043\000\043\000\042\000\042\000\048\000\ -\048\000\044\000\044\000\044\000\044\000\049\000\049\000\049\000\ -\049\000\049\000\049\000\049\000\049\000\053\000\054\000\054\000\ -\054\000\055\000\055\000\057\000\057\000\057\000\057\000\057\000\ -\057\000\057\000\059\000\059\000\060\000\060\000\061\000\061\000\ -\062\000\062\000\063\000\063\000\063\000\045\000\045\000\045\000\ -\045\000\045\000\072\000\072\000\072\000\072\000\075\000\076\000\ -\076\000\077\000\077\000\078\000\078\000\078\000\078\000\078\000\ -\079\000\079\000\079\000\081\000\080\000\080\000\082\000\064\000\ -\038\000\038\000\083\000\031\000\031\000\084\000\009\000\009\000\ -\009\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\ -\046\000\089\000\089\000\086\000\086\000\085\000\085\000\087\000\ -\088\000\088\000\016\000\016\000\016\000\016\000\016\000\016\000\ -\016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ -\016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ -\016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ -\016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ -\016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ -\016\000\016\000\016\000\091\000\091\000\091\000\091\000\091\000\ -\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\ -\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\ -\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\ -\091\000\091\000\091\000\091\000\091\000\091\000\091\000\050\000\ -\050\000\107\000\107\000\108\000\108\000\108\000\108\000\109\000\ -\020\000\020\000\071\000\071\000\110\000\110\000\110\000\110\000\ -\111\000\111\000\070\000\070\000\070\000\093\000\093\000\094\000\ -\094\000\094\000\113\000\113\000\095\000\095\000\103\000\103\000\ -\114\000\114\000\114\000\115\000\115\000\106\000\106\000\104\000\ -\104\000\067\000\067\000\067\000\067\000\067\000\056\000\056\000\ -\056\000\056\000\056\000\056\000\056\000\056\000\056\000\090\000\ -\090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\ -\090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\ -\090\000\090\000\090\000\090\000\116\000\116\000\120\000\120\000\ -\119\000\119\000\119\000\119\000\121\000\121\000\023\000\023\000\ -\024\000\024\000\122\000\125\000\125\000\124\000\124\000\124\000\ -\124\000\124\000\124\000\124\000\124\000\124\000\123\000\123\000\ -\123\000\128\000\128\000\129\000\129\000\131\000\131\000\131\000\ -\132\000\130\000\130\000\130\000\047\000\047\000\126\000\126\000\ -\133\000\025\000\025\000\135\000\135\000\135\000\135\000\127\000\ -\127\000\138\000\034\000\034\000\139\000\139\000\139\000\139\000\ -\140\000\140\000\112\000\112\000\068\000\068\000\022\000\022\000\ -\142\000\142\000\142\000\142\000\142\000\137\000\137\000\143\000\ -\143\000\143\000\143\000\143\000\143\000\143\000\143\000\143\000\ -\143\000\143\000\143\000\143\000\143\000\143\000\143\000\143\000\ -\143\000\017\000\017\000\151\000\150\000\150\000\147\000\147\000\ -\148\000\148\000\146\000\146\000\152\000\152\000\153\000\153\000\ -\145\000\145\000\149\000\149\000\073\000\073\000\051\000\051\000\ -\136\000\136\000\144\000\144\000\144\000\154\000\065\000\102\000\ -\102\000\102\000\102\000\102\000\102\000\102\000\117\000\117\000\ -\117\000\117\000\117\000\117\000\117\000\117\000\117\000\117\000\ -\117\000\029\000\029\000\021\000\021\000\155\000\155\000\155\000\ -\155\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\ -\155\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\ -\155\000\134\000\134\000\134\000\134\000\134\000\101\000\101\000\ -\026\000\026\000\026\000\026\000\026\000\100\000\100\000\118\000\ -\118\000\014\000\014\000\141\000\141\000\141\000\033\000\033\000\ -\074\000\074\000\052\000\052\000\005\000\005\000\005\000\005\000\ -\005\000\005\000\005\000\010\000\010\000\010\000\010\000\010\000\ -\010\000\096\000\019\000\019\000\097\000\097\000\069\000\069\000\ -\066\000\066\000\041\000\041\000\058\000\058\000\092\000\092\000\ -\105\000\105\000\098\000\098\000\099\000\099\000\000\000\000\000\ -\000\000\000\000\000\000" - -let yylen = "\002\000\ -\002\000\002\000\002\000\002\000\002\000\001\000\001\000\002\000\ -\001\000\002\000\001\000\002\000\003\000\003\000\003\000\002\000\ -\002\000\001\000\003\000\003\000\008\000\004\000\004\000\005\000\ -\005\000\003\000\003\000\004\000\006\000\008\000\006\000\005\000\ -\005\000\004\000\001\000\002\000\000\000\001\000\003\000\003\000\ -\002\000\003\000\006\000\002\000\003\000\004\000\003\000\003\000\ -\005\000\002\000\002\000\003\000\002\000\002\000\004\000\006\000\ -\001\000\003\000\005\000\001\000\003\000\003\000\008\000\003\000\ -\004\000\003\000\003\000\000\000\002\000\003\000\004\000\006\000\ -\002\000\003\000\003\000\003\000\003\000\005\000\002\000\002\000\ -\002\000\003\000\002\000\006\000\001\000\003\000\003\000\003\000\ -\001\000\004\000\002\000\004\000\002\000\000\000\003\000\003\000\ -\002\000\001\000\002\000\002\000\005\000\004\000\001\000\003\000\ -\003\000\005\000\005\000\003\000\003\000\002\000\003\000\005\000\ -\000\000\000\000\002\000\004\000\002\000\002\000\001\000\001\000\ -\002\000\002\000\002\000\000\000\006\000\005\000\005\000\006\000\ -\007\000\007\000\005\000\008\000\011\000\001\000\006\000\004\000\ -\005\000\003\000\004\000\001\000\003\000\003\000\002\000\003\000\ -\000\000\000\000\002\000\002\000\002\000\001\000\001\000\002\000\ -\005\000\005\000\003\000\005\000\006\000\006\000\003\000\003\000\ -\003\000\001\000\005\000\003\000\001\000\005\000\001\000\002\000\ -\003\000\005\000\002\000\005\000\002\000\004\000\002\000\002\000\ -\001\000\001\000\001\000\000\000\002\000\001\000\003\000\001\000\ -\001\000\003\000\001\000\002\000\005\000\006\000\005\000\003\000\ -\003\000\006\000\005\000\005\000\004\000\001\000\002\000\002\000\ -\006\000\004\000\005\000\009\000\003\000\008\000\003\000\003\000\ -\003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ -\003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ -\002\000\002\000\005\000\007\000\007\000\007\000\003\000\002\000\ -\002\000\003\000\003\000\001\000\001\000\001\000\001\000\003\000\ -\003\000\003\000\002\000\003\000\004\000\003\000\005\000\005\000\ -\005\000\005\000\005\000\005\000\005\000\005\000\003\000\003\000\ -\004\000\004\000\002\000\004\000\004\000\002\000\002\000\002\000\ -\004\000\004\000\002\000\003\000\004\000\006\000\005\000\001\000\ -\002\000\001\000\001\000\002\000\002\000\002\000\002\000\001\000\ -\001\000\003\000\001\000\002\000\002\000\007\000\008\000\003\000\ -\001\000\003\000\002\000\002\000\005\000\002\000\004\000\001\000\ -\002\000\005\000\002\000\004\000\003\000\003\000\003\000\001\000\ -\001\000\003\000\002\000\003\000\001\000\003\000\005\000\001\000\ -\003\000\002\000\004\000\002\000\002\000\002\000\001\000\003\000\ -\001\000\002\000\002\000\003\000\008\000\003\000\002\000\001\000\ -\001\000\001\000\003\000\001\000\001\000\002\000\003\000\003\000\ -\004\000\004\000\004\000\002\000\004\000\003\000\003\000\005\000\ -\005\000\004\000\006\000\006\000\003\000\003\000\001\000\003\000\ -\001\000\002\000\004\000\003\000\003\000\001\000\001\000\002\000\ -\001\000\003\000\004\000\003\000\000\000\000\000\002\000\003\000\ -\002\000\003\000\004\000\006\000\006\000\008\000\000\000\001\000\ -\003\000\003\000\002\000\001\000\003\000\000\000\001\000\003\000\ -\003\000\000\000\001\000\001\000\001\000\003\000\001\000\003\000\ -\002\000\000\000\002\000\000\000\002\000\004\000\002\000\001\000\ -\003\000\004\000\001\000\003\000\006\000\005\000\004\000\004\000\ -\001\000\002\000\002\000\003\000\001\000\003\000\001\000\004\000\ -\001\000\006\000\004\000\005\000\003\000\001\000\003\000\002\000\ -\001\000\001\000\002\000\004\000\003\000\002\000\003\000\004\000\ -\006\000\003\000\004\000\005\000\004\000\002\000\004\000\006\000\ -\004\000\001\000\003\000\004\000\001\000\003\000\001\000\003\000\ -\001\000\001\000\004\000\001\000\001\000\000\000\001\000\003\000\ -\003\000\000\000\001\000\002\000\001\000\003\000\001\000\003\000\ -\001\000\003\000\003\000\002\000\001\000\003\000\001\000\001\000\ -\001\000\001\000\001\000\001\000\001\000\001\000\001\000\002\000\ -\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\ -\002\000\001\000\001\000\001\000\003\000\001\000\001\000\001\000\ -\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\ -\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\ -\001\000\001\000\002\000\001\000\001\000\001\000\001\000\003\000\ -\001\000\002\000\002\000\001\000\001\000\001\000\003\000\001\000\ -\003\000\001\000\003\000\001\000\003\000\004\000\001\000\003\000\ -\001\000\003\000\001\000\003\000\001\000\003\000\001\000\002\000\ -\002\000\001\000\001\000\002\000\003\000\003\000\003\000\003\000\ -\003\000\002\000\000\000\001\000\001\000\001\000\000\000\001\000\ -\000\000\001\000\000\000\001\000\000\000\001\000\000\000\001\000\ -\000\000\001\000\001\000\001\000\001\000\001\000\002\000\002\000\ -\002\000\002\000\002\000" - -let yydefred = "\000\000\ -\000\000\068\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\217\001\000\000\000\000\000\000\012\002\219\001\ -\000\000\000\000\000\000\000\000\000\000\216\001\220\001\221\001\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\059\002\060\002\000\000\222\001\000\000\000\000\000\000\ -\061\002\062\002\000\000\000\000\218\001\013\002\000\000\000\000\ -\018\002\000\000\063\002\000\000\000\000\000\000\000\000\000\000\ -\035\000\007\002\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\236\000\237\000\064\002\000\000\006\000\000\000\065\002\ -\000\000\000\000\000\000\000\000\011\000\000\000\066\002\000\000\ -\000\000\000\000\009\000\034\002\000\000\236\001\000\000\035\002\ -\020\002\067\002\029\002\000\000\000\000\238\000\000\000\239\000\ -\235\001\234\001\042\002\007\001\243\000\000\000\000\000\000\000\ -\052\002\000\000\089\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\073\001\000\000\072\001\076\001\ -\000\000\177\000\077\001\223\001\074\001\056\002\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\048\001\000\000\011\001\215\001\000\000\ -\000\000\010\002\000\000\000\000\003\001\000\000\000\000\000\000\ -\044\002\000\000\000\002\255\001\000\000\254\001\000\000\001\002\ -\250\001\252\001\239\001\240\001\241\001\242\001\243\001\251\001\ -\000\000\000\000\000\000\253\001\000\000\000\000\000\000\011\002\ -\249\001\000\000\000\000\000\000\000\000\000\000\000\000\027\002\ -\000\000\008\001\000\000\000\000\114\000\000\000\006\001\000\000\ -\000\000\000\000\000\000\132\001\131\001\000\000\105\001\000\000\ -\120\001\000\000\000\000\001\000\000\000\036\000\041\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\ -\019\001\000\000\000\000\225\000\226\000\000\000\002\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\003\000\004\000\005\000\008\000\012\000\000\000\000\000\000\000\ -\010\000\017\000\016\000\032\002\244\001\247\001\248\001\245\001\ -\246\001\238\001\033\002\000\000\000\000\000\000\000\000\244\000\ -\242\000\000\000\000\000\165\000\000\000\000\000\000\000\000\000\ -\000\000\045\000\000\000\000\000\000\000\000\000\176\000\014\002\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\063\001\000\000\000\000\000\000\084\001\000\000\000\000\000\000\ -\000\000\000\000\000\000\225\001\224\001\226\001\227\001\228\001\ -\178\000\000\000\179\000\173\000\230\001\229\001\231\001\232\001\ -\233\001\184\000\000\000\171\000\016\002\078\001\000\000\000\000\ -\175\000\000\000\000\000\000\000\000\000\000\000\193\000\040\001\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\001\255\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\025\001\000\000\000\000\241\000\000\000\000\000\240\000\ -\000\000\237\001\000\000\000\000\000\000\057\000\000\000\000\000\ -\000\000\000\000\047\000\000\000\000\000\235\000\234\000\000\000\ -\039\000\040\000\000\000\124\001\000\000\000\000\000\000\000\000\ -\123\001\000\000\000\000\000\000\019\002\008\002\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\169\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\024\001\022\001\012\001\021\001\017\001\000\000\ -\000\000\000\000\000\000\162\000\000\000\000\000\000\000\000\000\ -\000\000\068\000\000\000\000\000\023\002\060\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\070\000\040\002\038\002\ -\037\002\041\002\000\000\039\002\013\000\015\000\014\000\021\002\ -\030\002\000\000\000\000\000\000\000\000\246\000\000\000\000\000\ -\000\000\088\000\000\000\000\000\133\001\000\000\000\000\000\000\ -\046\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\169\001\170\001\000\000\209\001\000\000\000\000\000\000\000\000\ -\000\000\161\001\000\000\000\000\000\000\075\001\000\000\000\000\ -\080\001\079\001\000\000\071\001\000\000\066\001\000\000\000\000\ -\000\000\000\000\067\001\000\000\000\000\000\000\000\000\000\000\ -\000\000\087\001\000\000\086\001\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\043\001\000\000\041\001\038\001\000\000\ -\000\000\000\000\000\000\027\000\000\000\026\000\020\000\019\000\ -\000\000\000\000\047\001\000\000\050\001\000\000\000\000\010\001\ -\009\001\000\000\005\001\004\001\002\001\001\001\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\033\001\ -\029\001\000\000\000\000\000\000\013\001\061\001\000\000\062\001\ -\060\001\245\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\028\002\000\000\111\000\000\000\000\000\000\000\000\000\ -\000\000\115\000\119\000\120\000\197\000\000\000\000\000\121\001\ -\106\001\000\000\109\001\122\001\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\074\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\085\000\000\000\000\000\000\000\075\000\000\000\000\000\ -\000\000\022\002\000\000\000\000\000\000\164\000\000\000\000\000\ -\095\000\000\000\000\000\000\000\090\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\182\001\000\000\213\001\ -\174\001\000\000\000\000\000\000\000\000\207\001\000\000\168\001\ -\000\000\000\000\000\000\171\001\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\046\002\045\002\000\000\015\002\000\000\ -\000\000\100\001\000\000\064\001\000\000\000\000\000\000\000\000\ -\000\000\082\001\081\001\085\001\083\001\000\000\090\001\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\017\002\174\000\ -\000\000\000\000\000\000\000\000\000\000\034\000\000\000\000\000\ -\028\000\000\000\023\000\022\000\000\000\000\000\191\000\026\001\ -\189\000\000\000\000\000\000\000\035\001\000\000\036\001\000\000\ -\032\001\000\000\015\001\000\000\000\000\000\000\000\000\000\000\ -\058\000\000\000\000\000\000\000\000\000\000\000\121\000\054\002\ -\000\000\122\000\000\000\000\000\000\000\117\000\118\000\000\000\ -\125\001\004\002\005\002\000\000\000\000\006\002\000\000\000\000\ -\000\000\000\000\135\001\000\000\000\000\203\000\248\000\247\000\ -\000\000\254\000\252\000\000\000\250\000\000\000\000\000\161\000\ -\000\000\000\000\000\000\067\000\066\000\000\000\062\000\061\000\ -\000\000\000\000\000\000\147\001\000\000\024\002\000\000\000\000\ -\000\000\000\000\000\000\071\000\253\000\251\000\249\000\000\000\ -\134\001\129\001\000\000\000\000\000\000\000\000\000\000\000\000\ -\134\000\000\000\140\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\091\000\000\000\103\000\093\000\193\001\000\000\191\001\ -\000\000\000\000\178\001\000\000\000\000\000\000\000\000\173\001\ -\000\000\212\001\000\000\000\000\000\000\000\000\175\001\210\001\ -\000\000\000\000\000\000\000\000\000\000\043\000\000\000\000\000\ -\000\000\000\000\058\002\099\001\000\000\000\000\194\000\089\001\ -\088\001\186\000\181\000\172\000\170\000\183\000\000\000\044\001\ -\039\001\000\000\000\000\032\000\000\000\033\000\000\000\025\000\ -\024\000\000\000\190\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\034\001\000\000\014\001\000\000\059\001\000\000\000\000\ -\000\000\112\000\000\000\000\000\000\000\000\000\000\000\050\002\ -\000\000\000\000\000\000\003\002\112\001\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\137\001\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\127\001\000\000\000\000\086\000\000\000\000\000\000\000\025\002\ -\166\000\000\000\000\000\000\000\000\000\000\000\000\000\146\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\099\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\179\001\000\000\197\001\ -\000\000\000\000\000\000\183\001\181\001\157\001\214\001\000\000\ -\211\001\185\001\208\001\000\000\172\001\203\001\000\000\176\001\ -\000\000\000\000\000\000\104\001\160\001\000\000\000\000\092\001\ -\091\001\042\001\000\000\000\000\029\000\031\000\028\001\000\000\ -\000\000\156\001\000\000\000\000\000\000\187\001\000\000\000\000\ -\000\000\160\000\000\000\116\000\000\000\048\002\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\ -\000\000\144\001\136\001\000\000\000\000\000\000\000\000\108\001\ -\000\000\000\000\000\000\163\000\072\000\000\000\000\000\000\000\ -\000\000\000\000\148\001\000\000\000\000\000\000\000\000\000\000\ -\142\000\141\000\000\000\000\000\000\000\092\000\138\000\000\000\ -\000\000\097\000\000\000\000\000\109\000\000\000\108\000\105\000\ -\104\000\192\001\199\001\000\000\180\001\000\000\000\000\000\000\ -\201\001\204\001\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\037\001\206\000\000\000\000\000\056\000\123\000\ -\000\000\000\000\000\000\131\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\128\001\000\000\000\000\000\000\000\000\026\002\ -\139\000\000\000\144\000\000\000\000\000\000\000\000\000\147\000\ -\150\000\151\000\136\000\000\000\096\000\102\000\000\000\000\000\ -\000\000\184\001\158\001\177\001\000\000\204\000\000\000\000\000\ -\030\000\000\000\030\001\000\000\190\001\000\000\000\000\000\000\ -\000\000\126\000\000\000\127\000\000\000\000\000\000\000\000\000\ -\145\001\116\001\142\001\159\000\000\000\150\001\154\001\109\001\ -\084\000\137\000\152\000\148\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\149\000\000\000\101\000\107\000\106\000\200\001\ -\069\001\031\001\188\001\129\000\130\000\000\000\000\000\125\000\ -\128\000\000\000\146\001\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\135\000\000\000\132\000\118\001\000\000\ -\000\000\000\000\000\000\000\000\155\000\000\000\000\000\000\000\ -\156\000\000\000\000\000\000\000\157\000\158\000\154\000\153\000\ -\133\000" - -let yydgoto = "\006\000\ -\051\000\068\000\072\000\079\000\090\000\052\000\069\000\073\000\ -\053\000\081\000\082\000\083\000\140\000\055\000\204\001\056\000\ -\236\002\057\000\162\000\119\001\058\000\206\003\094\003\206\000\ -\042\001\059\000\139\001\133\001\205\001\106\000\034\001\134\001\ -\206\001\035\003\007\001\134\002\129\002\194\001\130\002\107\000\ -\035\001\039\001\149\002\066\003\056\003\094\001\235\001\191\003\ -\067\003\246\000\167\002\068\003\196\000\197\000\144\001\067\001\ -\098\002\249\002\244\003\254\002\255\002\099\002\100\002\247\002\ -\060\000\000\004\071\002\207\003\009\003\072\002\126\003\057\003\ -\002\002\059\003\183\003\184\003\027\004\096\004\147\004\097\004\ -\098\004\008\004\196\001\036\001\031\002\204\002\032\002\030\002\ -\076\001\057\001\061\000\135\000\098\001\095\001\062\000\063\000\ -\182\002\064\000\065\000\146\000\066\000\067\000\147\000\156\000\ -\113\001\153\000\248\000\249\000\188\001\122\001\073\002\208\003\ -\096\001\148\000\149\000\059\001\133\000\250\001\051\001\060\001\ -\052\001\207\000\208\000\107\002\013\003\010\003\001\004\209\000\ -\149\001\210\000\168\003\237\001\011\003\012\003\157\003\251\001\ -\003\002\002\004\036\003\086\004\087\001\004\002\253\001\163\002\ -\087\003\070\003\071\003\072\003\215\003\238\003\239\003\201\003\ -\044\004\164\002\187\000" - -let yysindex = "\029\005\ -\201\040\000\000\215\033\116\033\133\002\000\000\247\048\214\255\ -\247\048\255\042\000\000\162\000\006\255\095\003\000\000\000\000\ -\095\003\195\046\029\000\040\045\051\255\000\000\000\000\000\000\ -\247\048\026\049\250\001\078\043\157\043\242\002\000\000\240\038\ -\040\045\000\000\000\000\253\002\000\000\145\001\251\000\046\001\ -\000\000\000\000\247\048\026\041\000\000\000\000\040\045\028\003\ -\000\000\040\045\000\000\008\003\032\003\032\003\181\001\134\049\ -\000\000\000\000\247\048\244\001\137\048\094\002\247\048\040\045\ -\040\045\000\000\000\000\000\000\082\000\000\000\214\255\000\000\ -\162\001\051\002\058\002\066\001\000\000\058\034\000\000\162\002\ -\162\002\162\002\000\000\000\000\106\002\000\000\189\049\000\000\ -\000\000\000\000\000\000\203\001\088\039\000\000\245\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\242\002\107\002\101\002\ -\000\000\215\002\000\000\193\002\235\255\123\050\050\003\070\003\ -\086\003\078\048\170\001\051\047\110\047\108\041\147\003\042\255\ -\213\003\137\003\233\001\149\003\000\000\110\003\000\000\000\000\ -\103\045\000\000\000\000\000\000\000\000\000\000\166\047\076\003\ -\115\003\185\001\201\040\120\003\110\003\245\000\000\000\166\003\ -\154\000\164\003\139\255\000\000\119\003\000\000\000\000\178\003\ -\135\003\000\000\170\050\146\003\000\000\146\003\124\003\046\001\ -\000\000\166\047\000\000\000\000\247\048\000\000\141\003\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\051\255\000\000\000\000\000\000\247\048\000\000\ -\000\000\120\255\151\003\134\003\143\003\214\255\033\002\000\000\ -\225\003\000\000\166\047\143\002\000\000\110\003\000\000\032\003\ -\032\003\145\003\071\001\000\000\000\000\249\003\000\000\196\003\ -\000\000\010\002\246\003\000\000\185\003\000\000\000\000\023\002\ -\040\045\040\045\040\045\040\045\040\045\040\045\040\045\040\045\ -\040\045\040\045\040\045\040\045\040\045\040\045\040\045\040\045\ -\040\045\040\045\040\045\040\045\040\045\245\000\040\045\203\002\ -\247\048\247\048\212\003\214\003\212\003\192\048\245\000\000\000\ -\000\000\040\045\245\000\000\000\000\000\179\002\000\000\173\003\ -\095\003\013\002\045\003\046\001\028\003\095\003\192\003\197\001\ -\000\000\000\000\000\000\000\000\000\000\162\002\162\002\162\002\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\071\002\189\003\233\002\166\047\000\000\ -\000\000\038\004\193\002\000\000\101\002\071\001\235\003\168\001\ -\183\005\000\000\186\051\040\045\033\004\176\042\000\000\000\000\ -\024\004\020\004\005\000\216\003\078\048\189\041\166\047\203\003\ -\000\000\166\047\034\004\221\003\000\000\221\003\147\003\211\003\ -\213\003\252\003\191\001\000\000\000\000\000\000\000\000\000\000\ -\000\000\166\047\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\253\003\000\000\000\000\000\000\237\001\253\003\ -\000\000\218\003\014\042\040\045\040\045\103\045\000\000\000\000\ -\064\000\055\004\040\045\224\003\040\045\230\255\159\002\051\255\ -\152\002\170\001\040\045\000\000\000\000\170\001\040\045\214\003\ -\103\255\040\045\092\255\077\003\033\002\132\001\026\001\162\045\ -\078\003\000\000\011\004\038\001\000\000\084\029\177\029\000\000\ -\239\003\000\000\029\000\062\004\079\004\000\000\056\004\013\002\ -\051\255\237\003\000\000\054\002\190\002\000\000\000\000\118\001\ -\000\000\000\000\182\003\000\000\251\255\028\003\063\004\214\255\ -\000\000\040\045\166\047\192\039\000\000\000\000\099\051\099\051\ -\094\051\250\003\170\050\094\051\083\003\083\003\083\003\083\003\ -\192\001\039\004\039\004\083\003\192\001\192\001\094\051\192\001\ -\192\001\000\000\039\004\170\050\040\045\040\045\040\045\030\004\ -\245\000\245\000\000\000\000\000\000\000\000\000\000\000\094\051\ -\101\002\090\004\193\002\000\000\019\004\081\004\032\004\013\002\ -\251\003\000\000\000\000\245\003\000\000\000\000\004\002\255\003\ -\214\255\129\001\110\003\249\003\085\004\000\000\000\000\000\000\ -\000\000\000\000\078\004\000\000\000\000\000\000\000\000\000\000\ -\000\000\103\001\040\045\040\045\040\045\000\000\026\001\101\002\ -\040\004\000\000\012\000\021\004\000\000\024\046\023\004\026\004\ -\000\000\033\005\029\000\185\000\176\002\223\031\214\255\145\001\ -\000\000\000\000\028\004\000\000\045\002\109\004\186\051\061\004\ -\098\004\000\000\036\004\017\001\059\255\000\000\098\002\166\047\ -\000\000\000\000\186\255\000\000\037\004\000\000\095\003\166\047\ -\166\047\166\047\000\000\166\047\166\047\131\255\155\003\086\000\ -\042\004\000\000\186\051\000\000\008\004\101\004\101\004\119\004\ -\103\002\047\004\074\004\000\000\070\004\000\000\000\000\166\047\ -\246\049\126\004\095\049\000\000\013\002\000\000\000\000\000\000\ -\032\000\000\000\000\000\170\050\000\000\170\050\116\004\000\000\ -\000\000\170\050\000\000\000\000\000\000\000\000\104\004\040\045\ -\166\047\040\045\197\007\040\045\095\042\221\045\118\004\000\000\ -\000\000\040\045\040\045\096\255\000\000\000\000\129\004\000\000\ -\000\000\000\000\166\047\013\002\143\003\013\002\040\000\120\003\ -\136\004\000\000\186\051\000\000\186\051\147\004\040\045\147\004\ -\060\255\000\000\000\000\000\000\000\000\166\047\071\001\000\000\ -\000\000\014\030\000\000\000\000\134\004\154\004\079\255\029\050\ -\072\003\165\255\113\255\040\045\038\004\101\002\095\004\000\000\ -\186\051\057\004\095\255\084\004\056\007\191\000\118\002\148\004\ -\158\004\000\000\142\004\013\002\060\004\000\000\186\051\199\002\ -\071\004\000\000\076\050\015\000\150\255\000\000\146\004\071\001\ -\000\000\214\255\126\051\114\002\000\000\024\046\112\004\223\031\ -\102\004\045\002\093\004\157\004\112\004\000\000\112\004\000\000\ -\000\000\167\004\152\004\092\004\177\002\000\000\079\000\000\000\ -\130\004\183\005\145\001\000\000\186\051\121\004\178\004\100\004\ -\183\005\114\004\186\051\000\000\000\000\040\045\000\000\203\003\ -\115\004\000\000\143\004\000\000\142\003\191\004\191\004\191\004\ -\203\003\000\000\000\000\000\000\000\000\177\002\000\000\103\045\ -\156\255\186\051\040\045\128\004\131\004\186\051\000\000\000\000\ -\132\004\040\045\064\000\040\045\013\002\000\000\104\255\133\255\ -\000\000\101\255\000\000\000\000\040\045\040\045\000\000\000\000\ -\000\000\214\255\155\004\024\001\000\000\159\004\000\000\040\045\ -\000\000\209\050\000\000\137\004\123\004\186\051\055\004\121\000\ -\000\000\245\003\051\255\013\002\139\004\196\004\000\000\000\000\ -\114\002\000\000\074\002\162\004\163\004\000\000\000\000\055\004\ -\000\000\000\000\000\000\200\030\107\030\000\000\000\000\198\004\ -\081\255\227\004\000\000\074\255\217\004\000\000\000\000\000\000\ -\176\004\000\000\000\000\177\004\000\000\180\004\170\050\000\000\ -\228\004\219\004\230\004\000\000\000\000\051\255\000\000\000\000\ -\046\001\085\003\244\004\000\000\000\000\000\000\013\002\255\003\ -\013\002\245\003\236\004\000\000\000\000\000\000\000\000\065\002\ -\000\000\000\000\113\040\237\004\192\004\183\005\194\004\231\004\ -\000\000\186\004\000\000\005\002\251\046\186\051\185\003\114\002\ -\251\000\000\000\192\048\000\000\000\000\000\000\194\000\000\000\ -\211\000\006\005\000\000\112\004\220\000\197\000\216\051\000\000\ -\102\002\000\000\179\004\186\051\180\002\003\005\000\000\000\000\ -\130\004\202\004\186\051\186\051\100\004\000\000\028\004\214\255\ -\206\004\247\004\000\000\000\000\166\047\215\255\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\103\045\000\000\ -\000\000\170\050\022\002\000\000\009\000\000\000\187\004\000\000\ -\000\000\170\050\000\000\000\000\155\004\000\005\186\051\214\255\ -\190\004\000\000\040\045\000\000\181\004\000\000\051\255\120\003\ -\125\002\000\000\186\051\020\005\175\004\207\004\214\003\000\000\ -\214\003\184\004\214\003\000\000\000\000\227\004\207\004\144\000\ -\162\004\144\000\183\005\183\005\000\000\186\051\040\045\040\045\ -\040\045\126\051\100\004\013\002\120\003\108\003\071\001\170\001\ -\000\000\191\000\245\003\000\000\245\003\013\002\186\051\000\000\ -\000\000\006\002\016\001\045\002\183\005\186\051\230\002\000\000\ -\215\004\021\005\114\002\126\051\197\002\139\046\000\000\031\001\ -\166\047\148\255\021\003\192\048\112\004\000\000\180\002\000\000\ -\186\051\204\000\003\005\000\000\000\000\000\000\000\000\032\001\ -\000\000\000\000\000\000\145\001\000\000\000\000\067\000\000\000\ -\186\051\206\004\224\004\000\000\000\000\040\045\220\003\000\000\ -\000\000\000\000\225\004\177\002\000\000\000\000\000\000\186\051\ -\015\005\000\000\221\045\039\051\170\001\000\000\044\005\120\003\ -\033\002\000\000\241\004\000\000\214\003\000\000\214\003\083\046\ -\035\005\214\003\098\003\121\001\218\004\000\000\227\004\214\003\ -\216\004\000\000\000\000\022\255\000\000\028\004\025\005\000\000\ -\170\050\170\050\170\050\000\000\000\000\139\002\189\003\189\003\ -\012\001\091\255\000\000\201\002\202\002\212\002\240\004\222\004\ -\000\000\000\000\150\001\126\051\183\005\000\000\000\000\000\000\ -\114\002\000\000\145\001\094\001\000\000\126\051\000\000\000\000\ -\000\000\000\000\000\000\057\005\000\000\188\000\186\051\130\004\ -\000\000\000\000\206\004\186\051\039\005\166\047\051\255\232\004\ -\036\005\040\045\000\000\000\000\037\005\181\004\000\000\000\000\ -\054\005\059\005\156\051\000\000\186\051\063\005\040\045\053\005\ -\162\004\144\000\067\005\162\004\001\005\183\005\186\051\017\005\ -\032\002\032\002\000\000\186\051\002\005\186\051\129\001\000\000\ -\000\000\126\051\000\000\186\051\065\002\231\002\141\001\000\000\ -\000\000\000\000\000\000\030\005\000\000\000\000\114\002\018\000\ -\186\051\000\000\000\000\000\000\206\004\000\000\250\000\120\003\ -\000\000\040\045\000\000\186\051\000\000\216\051\216\051\155\004\ -\073\005\000\000\186\051\000\000\040\045\216\004\227\004\216\051\ -\000\000\000\000\000\000\000\000\013\002\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\253\004\207\004\214\003\101\002\ -\162\004\080\005\000\000\126\051\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\083\005\040\045\000\000\ -\000\000\022\005\000\000\245\003\217\004\214\003\214\003\095\005\ -\214\003\214\003\186\051\000\000\186\051\000\000\000\000\097\005\ -\098\005\216\051\099\005\103\005\000\000\092\005\216\051\216\051\ -\000\000\186\051\186\051\040\045\000\000\000\000\000\000\000\000\ -\000\000" - -let yyrindex = "\000\000\ -\122\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\058\255\000\000\000\000\000\000\000\000\ -\000\000\000\000\222\047\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\022\048\023\009\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\169\000\000\000\ -\000\000\000\000\000\000\052\000\000\000\000\000\000\000\245\001\ -\000\000\000\000\000\000\000\000\055\000\055\000\133\009\005\029\ -\000\000\000\000\245\012\000\000\209\013\063\014\099\013\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\040\005\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\126\006\000\000\000\000\173\014\000\000\ -\000\000\000\000\000\000\000\000\000\000\022\048\000\000\058\255\ -\000\000\217\037\000\000\071\005\235\037\000\000\000\000\000\000\ -\041\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\163\034\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\022\003\242\037\140\003\027\015\071\255\217\255\ -\000\000\136\255\000\000\000\000\075\000\000\000\000\000\000\000\ -\235\001\000\000\141\255\022\000\000\000\161\003\000\000\000\000\ -\000\000\000\000\000\000\000\000\041\005\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\236\043\059\044\000\000\000\000\138\044\217\044\046\005\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\038\038\000\000\055\000\ -\055\000\000\000\223\002\000\000\000\000\069\038\000\000\000\000\ -\000\000\000\000\000\000\000\000\022\048\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\031\021\000\000\137\015\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\150\008\171\011\000\000\ -\000\000\000\000\247\015\000\000\000\000\058\255\000\000\000\000\ -\000\000\000\000\000\000\000\000\245\001\000\000\036\000\182\002\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\092\038\071\005\000\000\058\255\055\005\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\174\255\000\000\103\000\000\000\000\000\106\005\160\255\ -\000\000\246\023\146\006\022\000\000\000\161\003\049\005\000\000\ -\050\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\101\016\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\113\000\000\000\099\002\ -\000\000\227\000\000\000\000\000\000\000\000\000\096\038\010\004\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\222\047\000\000\115\038\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\043\003\ -\000\000\000\000\222\047\000\000\000\000\245\001\072\036\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\026\024\124\024\ -\222\024\141\021\097\026\064\025\251\021\105\022\215\022\069\023\ -\249\018\211\016\065\017\179\023\103\019\213\019\162\025\067\020\ -\177\020\000\000\175\017\195\026\000\000\000\000\000\000\243\009\ -\025\012\135\012\000\000\000\000\000\000\000\000\000\000\004\026\ -\058\255\178\000\071\005\000\000\051\004\000\000\000\000\000\000\ -\000\000\000\000\104\006\052\007\000\000\000\000\000\000\000\000\ -\000\000\000\000\118\007\168\028\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\058\255\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\254\004\254\004\000\000\000\000\000\000\000\000\ -\000\000\000\000\160\001\000\000\183\004\109\029\000\000\000\000\ -\000\000\000\000\039\030\178\032\000\000\000\000\000\000\000\000\ -\000\000\000\000\150\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\227\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\042\001\058\005\058\005\089\001\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\039\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\097\255\000\000\046\000\000\000\127\255\000\000\000\000\ -\000\000\185\255\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\096\001\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\104\037\ -\000\000\000\000\000\000\000\000\000\000\045\004\000\000\120\001\ -\123\003\000\000\000\000\000\000\000\000\000\000\223\002\000\000\ -\000\000\127\001\000\000\000\000\000\000\096\038\000\000\000\000\ -\000\051\000\000\000\000\000\000\221\036\058\255\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\252\036\000\000\023\037\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\055\005\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\037\001\069\001\136\005\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\113\005\000\000\000\000\000\000\000\000\ -\202\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\057\000\ -\163\000\000\000\000\000\000\000\178\006\020\007\071\026\104\027\ -\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\039\000\000\000\029\018\000\000\ -\000\000\167\038\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\088\005\089\005\089\005\000\000\000\000\139\018\ -\000\000\000\000\000\000\000\000\156\001\000\000\017\035\096\036\ -\000\000\127\036\000\000\228\035\215\001\000\000\000\000\000\000\ -\097\010\000\000\000\000\207\010\000\000\061\011\037\027\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\124\002\015\033\000\000\032\007\000\000\000\000\000\000\ -\000\000\050\037\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\034\035\177\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\022\048\000\000\ -\169\000\000\000\085\001\000\000\000\000\000\000\000\000\000\000\ -\000\000\246\051\000\000\000\000\000\000\000\000\000\000\000\000\ -\117\005\000\000\000\000\000\000\132\030\000\000\000\000\000\000\ -\202\029\000\000\000\000\000\000\053\002\000\000\225\030\000\000\ -\062\031\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\130\027\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\197\255\000\000\134\040\132\005\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\135\037\ -\000\000\000\000\000\000\231\000\096\005\088\005\000\000\000\000\ -\000\000\100\005\000\000\000\000\000\000\154\036\227\255\000\000\ -\089\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\062\002\000\000\055\005\000\000\ -\000\000\000\000\138\004\000\000\081\037\000\000\000\000\000\000\ -\000\000\000\000\000\000\237\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\202\007\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\155\031\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\190\003\000\000\000\000\066\000\190\037\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\223\000\000\000\000\000\181\036\000\000\ -\075\005\000\000\000\000\000\000\148\035\003\036\000\000\000\000\ -\228\027\070\028\163\028\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\053\003\000\000\000\000\000\000\000\000\117\035\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\083\001\000\000\000\000\000\000\202\029\ -\000\000\000\000\248\031\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\089\005\000\000\000\000\024\255\000\000\000\000\000\000\000\000\ -\149\007\141\032\000\000\000\000\020\052\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\088\005\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\085\032\000\000\102\003\129\005\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\075\005\212\036\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\096\005\088\005\000\000\101\005\ -\089\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\027\036\234\032\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000" - -let yygindex = "\000\000\ -\000\000\000\000\000\000\000\000\000\000\023\006\220\004\089\006\ -\253\255\000\002\099\000\239\255\128\255\002\001\182\254\117\006\ -\152\253\020\000\168\255\243\254\240\002\160\004\107\254\162\005\ -\235\004\208\004\161\254\000\000\013\000\000\000\234\004\083\004\ -\213\253\000\000\000\000\085\002\000\000\000\000\133\003\141\005\ -\248\255\034\255\029\004\053\253\153\252\002\000\013\003\249\002\ -\000\000\117\003\161\253\226\255\121\003\000\000\000\000\193\255\ -\000\000\070\255\000\000\000\000\000\000\000\000\000\000\093\002\ -\231\255\041\253\083\255\010\252\050\253\196\002\187\252\001\253\ -\144\253\167\002\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\076\004\221\004\110\005\169\004\248\003\000\000\ -\000\000\250\255\017\000\157\254\187\000\185\254\246\000\058\004\ -\000\000\000\000\000\000\146\255\193\005\209\005\000\000\173\006\ -\109\255\000\000\025\255\000\000\214\005\141\004\211\253\140\004\ -\190\254\093\003\000\000\000\000\000\000\149\255\193\004\093\006\ -\000\000\061\005\000\000\000\000\076\002\034\253\141\002\080\255\ -\000\000\237\254\000\000\182\253\068\003\000\000\000\000\160\253\ -\221\254\147\002\060\003\000\000\254\255\035\254\054\254\152\003\ -\225\252\064\254\165\253\042\254\033\003\173\002\000\000\000\000\ -\000\000\000\000\000\000" - -let yytablesize = 13692 -let yytable = "\074\000\ -\080\000\152\000\092\000\108\000\050\001\252\001\103\000\194\000\ -\115\001\102\001\116\001\130\000\129\001\031\001\191\001\086\001\ -\136\000\231\001\236\001\129\000\099\000\063\002\038\002\095\000\ -\231\002\100\000\148\001\156\002\186\000\188\000\039\002\083\002\ -\237\002\174\002\058\003\069\000\145\003\147\003\150\003\154\002\ -\200\000\142\000\145\000\202\000\143\003\140\003\211\000\102\002\ -\177\003\155\002\124\001\038\000\056\001\056\001\037\000\231\003\ -\073\003\216\003\012\004\199\000\083\003\087\002\017\001\018\001\ -\019\001\077\003\248\002\078\003\233\001\049\003\014\002\097\001\ -\214\000\215\000\014\001\238\000\121\004\247\000\015\003\251\000\ -\095\003\255\000\180\002\008\001\031\004\137\000\049\002\155\003\ -\152\003\186\000\078\004\059\002\236\001\102\003\028\003\235\002\ -\015\002\014\002\121\001\054\000\120\003\076\000\056\002\116\003\ -\073\001\074\001\084\004\047\001\109\000\058\002\117\003\119\003\ -\021\003\051\002\138\000\170\002\194\003\085\004\236\001\125\001\ -\051\002\237\002\130\000\015\002\155\001\123\002\054\001\156\004\ -\157\004\184\001\194\002\141\001\118\003\126\001\153\003\053\001\ -\127\001\163\004\108\001\057\002\056\001\110\002\201\000\157\002\ -\159\002\075\001\139\000\037\004\156\003\021\003\056\001\054\000\ -\054\000\049\000\237\002\104\003\014\002\181\002\097\000\095\001\ -\014\002\038\004\236\001\054\001\019\003\252\002\097\000\016\003\ -\022\002\095\001\023\002\237\002\237\002\102\001\076\000\230\001\ -\016\001\081\000\060\002\236\001\099\004\100\000\015\002\029\003\ -\057\001\255\003\015\002\185\004\236\001\121\003\104\004\247\003\ -\189\004\190\004\057\001\097\000\055\001\185\003\203\001\199\000\ -\252\003\022\003\135\001\126\002\154\002\236\001\203\001\090\003\ -\128\001\126\002\154\002\179\003\154\002\097\003\224\003\169\003\ -\054\001\195\002\189\001\145\001\146\001\053\001\192\003\121\001\ -\109\001\053\001\218\002\056\001\119\002\044\002\056\001\049\002\ -\178\001\055\001\047\002\203\001\039\004\054\000\047\003\030\004\ -\202\003\047\002\138\004\045\002\105\003\195\001\095\001\014\002\ -\048\001\095\001\019\002\020\003\221\001\222\001\223\001\207\001\ -\047\002\185\001\186\001\102\001\009\002\040\001\247\000\102\001\ -\088\002\240\002\029\002\242\002\103\002\096\001\019\003\057\001\ -\108\004\150\004\057\001\126\000\097\000\057\002\141\000\096\001\ -\047\002\228\003\226\001\144\000\108\000\144\002\055\001\219\002\ -\049\000\185\002\047\002\069\000\134\000\104\001\186\001\193\000\ -\005\002\198\000\054\000\054\000\172\004\052\001\012\002\225\003\ -\069\000\058\003\158\004\038\000\009\002\041\001\037\000\186\001\ -\101\001\042\003\004\004\006\004\098\000\069\000\046\002\069\000\ -\069\000\189\001\243\002\015\002\023\004\009\002\047\002\016\002\ -\008\000\047\002\049\001\058\003\069\000\038\000\017\002\179\003\ -\037\000\018\002\189\001\104\002\098\000\101\004\055\002\130\000\ -\036\002\037\002\010\002\121\001\156\002\140\004\254\000\104\001\ -\084\003\229\003\145\002\198\002\096\001\046\003\097\001\096\001\ -\180\003\069\000\151\004\127\004\057\002\000\001\001\001\069\000\ -\051\001\130\000\155\002\126\000\049\001\126\000\126\000\126\000\ -\220\002\070\002\002\001\056\004\236\001\218\003\219\003\186\001\ -\103\003\154\002\126\000\052\001\092\001\207\001\088\003\052\001\ -\126\000\069\000\115\003\141\000\069\000\252\001\101\001\143\004\ -\113\003\172\002\101\001\135\003\126\002\098\001\109\002\003\001\ -\111\002\049\004\189\001\149\004\050\001\004\001\002\003\139\001\ -\049\001\118\001\057\002\126\000\108\002\251\002\253\002\085\003\ -\113\000\137\003\093\001\058\003\100\004\003\003\199\002\030\001\ -\145\000\081\000\114\002\115\002\141\000\058\003\001\003\005\001\ -\237\002\170\004\006\001\113\000\097\001\059\004\081\000\167\004\ -\134\000\008\000\113\000\145\000\126\000\207\001\051\001\220\003\ -\184\002\197\003\145\000\081\000\197\003\081\000\081\000\253\003\ -\189\002\190\002\191\002\197\003\192\002\193\002\107\001\113\000\ -\113\000\169\002\081\000\162\002\171\003\131\002\173\003\145\000\ -\140\002\141\002\058\002\197\003\084\003\126\002\124\000\130\000\ -\211\002\058\003\113\000\098\001\058\002\055\002\042\004\150\002\ -\166\001\049\001\145\000\006\003\194\001\244\000\254\003\081\000\ -\057\002\124\000\154\002\051\004\055\002\081\000\166\001\203\003\ -\124\000\121\001\075\000\168\002\033\003\211\001\106\001\104\000\ -\017\002\219\001\030\001\105\000\081\000\013\004\236\001\158\002\ -\082\003\113\000\106\004\097\001\178\002\124\000\124\000\081\000\ -\198\003\145\000\081\000\205\003\065\002\144\002\055\002\049\001\ -\126\000\084\003\045\004\058\003\034\003\100\003\097\001\226\003\ -\124\000\126\000\207\001\199\003\196\001\127\003\172\002\126\000\ -\084\003\166\001\204\003\076\002\103\001\047\004\126\000\126\000\ -\126\000\058\002\195\000\126\000\223\002\065\000\225\002\130\000\ -\229\002\066\002\055\002\166\001\185\000\055\002\233\002\070\002\ -\196\001\207\001\166\001\126\000\194\001\015\001\012\000\124\000\ -\244\000\207\001\153\004\207\001\098\000\179\002\109\004\098\000\ -\098\000\014\004\195\001\250\002\126\000\013\000\014\000\126\000\ -\065\002\098\000\098\000\020\004\083\004\104\001\022\004\098\000\ -\194\001\141\000\021\000\049\001\128\003\195\001\098\000\049\001\ -\098\000\098\000\136\003\182\000\128\003\035\004\195\001\005\004\ -\252\001\126\000\058\001\196\001\137\002\098\000\077\002\213\000\ -\134\000\207\001\185\000\098\000\098\000\103\004\047\002\036\000\ -\093\002\204\000\141\000\038\003\089\003\040\000\132\002\130\000\ -\060\003\063\004\098\000\236\001\049\000\205\000\098\000\150\002\ -\074\004\090\001\098\000\194\001\126\000\165\003\050\003\139\001\ -\098\000\077\000\207\001\048\002\094\002\095\002\029\001\048\000\ -\092\004\195\001\113\002\064\002\139\001\098\000\073\004\098\000\ -\098\000\182\000\098\003\036\004\047\002\036\002\053\002\096\002\ -\058\001\139\001\098\000\139\001\139\001\098\000\026\002\138\002\ -\133\002\130\000\015\002\207\001\093\004\015\000\016\002\107\003\ -\139\001\053\002\216\000\151\000\027\002\017\002\112\003\192\000\ -\018\002\048\002\207\001\144\004\207\001\207\001\107\001\094\004\ -\113\002\107\001\123\003\137\000\191\001\139\001\097\002\239\001\ -\028\001\053\002\215\001\107\001\130\003\139\001\193\003\240\001\ -\048\001\213\003\057\002\139\001\228\000\229\000\124\003\126\000\ -\107\001\207\001\107\001\107\001\091\000\216\001\145\004\049\000\ -\138\000\193\000\139\001\139\001\009\001\111\000\095\004\107\001\ -\112\000\127\000\033\002\086\000\110\000\139\001\240\003\212\000\ -\139\001\126\000\029\001\046\000\049\001\239\002\049\000\057\002\ -\049\000\126\000\126\000\126\000\107\001\126\000\126\000\028\002\ -\139\000\127\002\189\003\021\004\107\001\237\000\150\000\049\000\ -\000\003\101\001\107\001\217\001\207\001\223\003\207\001\085\001\ -\218\001\126\000\131\004\049\000\029\001\178\003\136\001\199\001\ -\239\000\107\001\107\001\119\001\103\001\137\002\130\000\162\002\ -\151\000\018\004\164\004\137\001\107\001\065\000\190\003\107\001\ -\065\000\103\001\126\000\029\001\029\001\029\001\126\000\126\000\ -\172\002\130\001\065\000\097\000\200\001\072\004\103\001\089\000\ -\103\001\103\001\201\001\247\000\126\000\086\000\156\001\065\000\ -\065\000\065\000\065\000\213\003\130\001\103\001\152\001\029\001\ -\138\001\127\000\058\002\127\000\127\000\127\000\065\000\126\000\ -\130\000\202\001\032\001\085\001\221\003\077\004\227\003\250\000\ -\127\000\153\001\103\001\203\001\090\002\248\003\127\000\249\003\ -\175\003\251\003\103\001\065\000\160\002\157\001\061\004\176\003\ -\103\001\121\001\126\002\065\000\033\001\086\000\110\000\058\002\ -\171\002\065\000\053\003\018\000\234\003\010\001\142\001\103\001\ -\103\001\120\001\061\003\089\000\011\001\193\000\065\000\126\000\ -\065\000\065\000\103\001\141\003\157\001\103\001\047\002\060\003\ -\183\002\207\001\084\000\065\000\151\000\207\002\065\000\089\000\ -\143\001\062\003\065\000\207\001\193\000\224\001\012\000\063\003\ -\192\000\064\003\127\000\142\003\097\000\048\004\112\004\130\000\ -\048\002\060\003\126\001\065\003\085\000\013\000\014\000\190\003\ -\020\001\015\002\036\002\086\000\087\000\016\002\160\002\158\001\ -\157\001\126\000\021\000\091\002\017\002\224\001\105\000\018\002\ -\130\001\036\002\036\002\161\002\247\000\241\003\050\002\156\001\ -\049\000\037\001\053\004\065\004\037\003\066\004\036\002\213\000\ -\070\004\207\001\126\001\080\004\130\000\025\004\075\004\036\000\ -\088\000\126\002\162\004\089\000\070\002\040\000\151\000\097\000\ -\198\001\130\000\085\001\036\002\141\000\213\001\111\004\126\002\ -\038\001\070\002\193\000\036\002\078\000\071\000\157\001\026\004\ -\181\001\036\002\182\001\032\004\102\004\086\000\110\000\048\000\ -\088\004\048\001\183\001\225\001\081\004\082\004\120\001\212\003\ -\036\002\036\002\176\003\178\003\040\004\037\000\092\002\203\001\ -\193\001\060\003\089\000\036\002\105\000\127\000\227\001\141\000\ -\228\001\087\004\166\003\060\003\127\000\127\000\127\000\048\001\ -\229\001\127\000\110\000\224\001\012\000\157\001\041\004\037\000\ -\224\001\049\000\138\001\130\001\143\000\126\002\115\004\159\000\ -\141\004\127\000\089\000\013\000\014\000\160\000\126\000\043\001\ -\096\000\193\000\096\000\124\004\110\000\146\004\130\001\018\003\ -\021\000\161\000\127\000\131\000\061\002\127\000\143\000\049\000\ -\142\004\015\002\096\000\096\000\189\000\016\002\062\002\060\003\ -\158\001\250\000\178\003\203\000\017\002\213\000\204\000\018\002\ -\044\001\220\000\190\000\191\000\096\000\036\000\126\000\127\000\ -\074\002\094\001\205\000\040\000\045\001\094\001\154\004\126\001\ -\126\000\084\001\127\001\089\001\096\000\168\004\096\000\094\001\ -\096\000\161\004\044\000\015\004\071\004\226\000\227\000\228\000\ -\229\000\090\001\207\001\090\001\208\001\048\000\016\004\169\004\ -\141\000\087\000\120\001\018\000\176\004\177\004\018\000\179\004\ -\180\004\060\003\209\001\210\001\167\003\231\000\232\000\204\000\ -\018\000\018\000\196\002\174\004\017\002\086\000\110\000\018\002\ -\057\002\234\000\235\000\205\000\197\002\018\000\018\000\018\000\ -\018\000\049\001\057\002\131\000\099\001\058\001\058\001\058\001\ -\237\000\068\001\100\001\018\000\018\000\101\002\166\001\104\001\ -\193\004\053\002\131\000\105\001\193\000\134\000\107\001\126\000\ -\058\001\053\002\126\000\069\001\070\001\071\001\051\002\082\001\ -\083\001\018\000\053\002\018\000\111\001\046\001\015\002\046\001\ -\110\001\018\000\016\002\082\001\088\001\193\000\094\000\018\000\ -\094\000\017\002\072\001\058\001\018\002\127\000\096\000\015\002\ -\112\001\128\000\117\001\016\002\018\000\123\001\018\000\018\000\ -\094\000\094\000\017\002\114\001\126\000\054\004\049\001\130\001\ -\096\000\018\000\131\001\077\001\018\000\132\001\140\001\127\000\ -\018\000\126\000\094\000\150\001\058\001\147\001\188\002\127\000\ -\127\000\127\000\151\001\127\000\127\000\078\001\079\001\080\001\ -\220\000\154\001\094\000\015\002\094\000\072\001\094\000\016\002\ -\161\000\072\001\187\001\197\001\151\000\202\002\017\002\127\000\ -\072\001\018\002\214\001\072\001\081\001\001\000\002\000\003\000\ -\004\000\005\000\193\000\089\000\193\000\227\000\228\000\229\000\ -\232\001\238\001\096\000\096\000\006\002\007\002\008\002\096\000\ -\120\001\011\002\138\001\020\002\127\000\127\000\021\002\126\000\ -\141\000\024\002\025\002\082\001\231\000\232\000\040\002\138\001\ -\157\001\128\000\127\000\055\001\055\001\055\001\042\002\082\002\ -\234\000\235\000\075\002\084\002\138\001\053\002\138\001\138\001\ -\128\000\085\002\086\002\089\002\229\000\127\000\055\001\237\000\ -\058\001\106\002\116\002\138\001\118\002\041\001\121\002\122\002\ -\124\002\126\002\135\002\136\002\053\002\128\002\143\002\058\001\ -\193\000\146\002\053\002\053\002\053\002\154\000\131\000\058\001\ -\058\001\055\001\184\000\058\001\094\000\008\000\053\002\158\001\ -\138\001\170\002\173\002\175\002\176\002\187\002\138\001\203\002\ -\021\000\177\002\200\002\058\001\206\002\127\000\094\000\208\002\ -\209\002\087\000\210\002\213\002\087\000\138\001\221\002\222\002\ -\232\002\238\002\055\001\053\002\058\001\244\002\087\000\131\000\ -\138\001\248\002\014\003\138\001\065\002\025\003\030\003\027\003\ -\040\003\039\003\043\003\087\000\076\003\087\000\087\000\242\001\ -\041\003\243\001\244\001\245\001\048\003\224\001\085\001\152\002\ -\074\003\131\000\087\000\075\003\079\003\081\003\166\001\127\000\ -\166\001\166\001\166\001\080\003\086\003\091\003\166\001\092\003\ -\094\000\094\000\093\003\166\001\247\001\094\000\096\003\166\001\ -\166\001\166\001\001\002\248\001\099\003\017\002\101\003\087\000\ -\166\001\166\001\166\001\166\001\058\001\087\000\089\000\249\001\ -\108\003\125\003\166\001\109\003\111\003\129\003\139\003\166\001\ -\151\003\132\003\132\000\138\003\087\000\166\001\166\001\133\003\ -\144\003\146\003\154\003\158\003\159\003\160\003\055\001\087\000\ -\161\003\162\003\087\000\164\003\166\001\163\003\170\003\241\001\ -\166\001\174\003\181\003\166\001\166\001\055\001\188\003\182\003\ -\186\003\187\003\166\001\055\002\128\000\055\001\055\001\200\003\ -\008\000\055\001\222\003\210\003\166\001\166\001\217\003\166\001\ -\166\001\166\001\179\002\230\003\166\001\232\003\235\003\243\003\ -\245\003\055\001\237\003\028\004\166\001\079\002\081\002\166\001\ -\246\003\250\003\029\004\166\001\052\004\055\004\008\000\131\000\ -\151\002\058\004\055\001\153\002\127\000\128\000\062\004\064\004\ -\069\004\076\004\148\003\079\004\090\004\055\002\091\004\055\002\ -\055\002\055\002\105\004\110\004\055\002\055\002\114\004\116\004\ -\113\004\058\001\132\000\118\004\132\000\132\000\132\000\128\000\ -\119\004\058\001\058\001\058\001\123\004\058\001\058\001\125\004\ -\128\004\132\000\055\002\135\004\127\000\133\004\130\004\132\000\ -\242\001\055\002\243\001\244\001\245\001\171\004\127\000\085\001\ -\152\002\058\001\148\004\159\004\055\002\055\002\166\004\234\001\ -\173\004\076\001\055\001\175\004\178\004\076\001\183\004\184\004\ -\186\004\076\001\132\000\076\001\187\004\247\001\188\004\076\001\ -\076\001\037\000\058\001\076\001\248\001\031\002\058\001\131\000\ -\021\000\244\001\007\000\021\000\076\001\094\000\238\001\089\000\ -\249\001\247\001\245\001\130\001\058\001\021\000\021\000\193\001\ -\155\000\155\000\180\000\132\000\057\002\166\002\047\002\049\002\ -\058\002\027\001\021\000\021\000\021\000\021\000\048\002\058\001\ -\057\002\103\001\050\002\051\002\012\001\125\002\212\001\241\002\ -\021\000\021\000\117\002\137\004\172\003\127\000\076\001\120\002\ -\120\001\234\001\069\003\017\004\252\000\253\000\034\004\196\003\ -\139\004\195\003\201\002\068\004\089\004\128\000\021\000\076\001\ -\076\001\024\003\076\001\076\001\142\002\034\002\021\000\205\002\ -\220\001\158\000\190\001\186\002\021\000\224\002\228\002\131\000\ -\153\002\062\001\105\002\165\004\076\001\126\004\153\002\055\001\ -\153\002\021\000\127\000\021\000\021\000\003\004\129\004\055\001\ -\055\001\055\001\079\002\055\001\055\001\019\004\021\000\127\000\ -\209\003\021\000\117\004\046\004\000\000\021\000\242\001\132\000\ -\243\001\244\001\245\001\000\000\000\000\085\001\246\001\055\001\ -\000\000\000\000\245\002\000\000\246\002\000\000\132\000\000\000\ -\000\000\131\000\000\000\000\000\000\000\132\000\132\000\132\000\ -\000\000\008\003\132\000\247\001\000\000\000\000\000\000\000\000\ -\055\001\000\000\248\001\000\000\055\001\128\000\000\000\000\000\ -\026\003\000\000\132\000\000\000\000\000\089\000\249\001\234\001\ -\000\000\000\000\055\001\000\000\000\000\127\000\044\003\000\000\ -\000\000\000\000\000\000\132\000\000\000\000\000\132\000\000\000\ -\000\000\000\000\000\000\080\000\000\000\055\001\000\000\166\002\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\132\000\000\000\000\000\000\000\000\000\159\001\160\001\161\001\ -\162\001\163\001\164\001\165\001\166\001\167\001\168\001\169\001\ -\170\001\171\001\172\001\173\001\174\001\175\001\176\001\177\001\ -\000\000\179\001\000\000\180\001\000\000\128\000\000\000\234\001\ -\000\000\106\003\234\001\132\000\153\002\110\003\192\001\000\000\ -\000\000\000\000\000\000\000\000\234\001\079\000\131\000\000\000\ -\234\001\000\000\000\000\000\000\096\000\020\002\000\000\000\000\ -\000\000\234\001\234\001\234\001\234\001\153\002\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\134\003\000\000\214\003\ -\234\001\065\001\000\000\000\000\152\001\065\001\000\000\128\000\ -\000\000\065\001\000\000\065\001\000\000\000\000\058\001\065\001\ -\065\001\000\000\000\000\166\002\149\003\234\001\000\000\020\002\ -\131\000\000\000\000\000\000\000\065\001\234\001\000\000\000\000\ -\000\000\070\001\000\000\234\001\000\000\070\001\000\000\000\000\ -\000\000\070\001\000\000\070\001\000\000\000\000\132\000\070\001\ -\234\001\000\000\234\001\234\001\000\000\000\000\000\000\000\000\ -\000\000\100\000\000\000\000\000\070\001\234\001\000\000\000\000\ -\234\001\000\000\166\002\000\000\234\001\000\000\065\001\041\002\ -\132\000\043\002\000\000\000\000\000\000\166\002\000\000\052\002\ -\132\000\132\000\132\000\054\002\132\000\132\000\058\002\065\001\ -\065\001\000\000\065\001\065\001\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\211\003\000\000\000\000\070\001\131\000\ -\132\000\000\000\058\001\000\000\065\001\096\000\153\002\000\000\ -\000\000\000\000\000\000\000\000\214\003\000\000\000\000\070\001\ -\070\001\000\000\070\001\070\001\128\000\000\000\000\000\000\000\ -\050\004\132\000\094\000\068\001\000\000\132\000\132\000\068\001\ -\000\000\000\000\000\000\068\001\070\001\068\001\233\003\234\001\ -\000\000\068\001\234\001\132\000\131\000\068\001\202\000\000\000\ -\000\000\112\002\242\003\000\000\234\001\000\000\068\001\000\000\ -\234\001\131\000\000\000\080\000\055\001\021\002\132\000\031\003\ -\000\000\234\001\234\001\234\001\234\001\007\004\128\000\000\000\ -\080\000\000\000\000\000\000\000\254\000\000\000\000\000\000\000\ -\234\001\000\000\000\000\000\000\000\000\080\000\166\002\080\000\ -\080\000\032\003\000\000\000\001\001\001\024\004\000\000\139\002\ -\068\001\000\000\000\000\000\000\080\000\234\001\000\000\021\002\ -\002\001\000\000\000\000\000\000\000\000\234\001\132\000\050\004\ -\043\004\068\001\068\001\234\001\068\001\068\001\000\000\058\001\ -\000\000\000\000\000\000\000\000\000\000\079\000\000\000\000\000\ -\234\001\080\000\234\001\234\001\000\000\003\001\068\001\080\000\ -\000\000\000\000\079\000\004\001\000\000\234\001\000\000\057\004\ -\234\001\000\000\000\000\000\000\234\001\128\000\080\000\079\000\ -\055\001\079\000\079\000\094\000\152\001\188\000\000\000\152\001\ -\132\000\080\000\000\000\000\000\080\000\005\001\079\000\000\000\ -\006\001\152\001\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\152\001\152\001\ -\152\001\152\001\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\128\000\079\000\000\000\152\001\000\000\234\002\ -\000\000\079\000\000\000\000\000\078\002\000\000\000\000\128\000\ -\000\000\100\000\000\000\000\000\100\000\100\000\107\004\000\000\ -\079\000\000\000\152\001\000\000\000\000\000\000\100\000\100\000\ -\000\000\000\000\152\001\079\000\100\000\000\000\079\000\000\000\ -\152\001\000\000\000\000\100\000\122\004\100\000\100\000\000\000\ -\023\003\000\000\000\000\000\000\000\000\152\001\132\004\152\001\ -\152\001\000\000\100\000\134\004\000\000\136\004\000\000\000\000\ -\100\000\100\000\152\001\246\002\242\001\152\001\243\001\244\001\ -\245\001\152\001\000\000\254\001\246\001\055\001\000\000\100\000\ -\152\004\000\000\000\000\100\000\000\000\132\000\000\000\100\000\ -\000\000\255\001\000\000\155\004\000\000\100\000\236\001\000\002\ -\000\000\226\002\160\004\000\000\000\000\000\000\000\000\000\000\ -\248\001\000\000\100\000\000\000\100\000\100\000\202\000\000\000\ -\000\000\202\000\227\002\089\000\249\001\000\000\202\000\100\000\ -\202\000\000\000\100\000\202\000\202\000\132\000\000\000\202\000\ -\000\000\202\000\202\000\202\000\000\000\000\000\202\000\132\000\ -\202\000\000\000\202\000\202\000\000\000\000\000\000\000\000\000\ -\114\003\000\000\181\004\202\000\182\004\000\000\202\000\202\000\ -\000\000\122\003\000\000\000\000\000\000\202\000\202\000\000\000\ -\000\000\191\004\192\004\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\202\000\000\000\000\000\000\000\ -\202\000\000\000\000\000\202\000\202\000\000\000\000\000\000\000\ -\000\000\000\000\202\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\202\000\202\000\000\000\202\000\ -\202\000\202\000\202\000\000\000\009\002\000\000\000\000\202\000\ -\000\000\202\000\000\000\000\000\202\000\000\000\132\000\202\000\ -\000\000\132\000\000\000\202\000\000\000\188\000\188\000\188\000\ -\188\000\000\000\000\000\000\000\000\000\188\000\188\000\188\000\ -\000\000\000\000\188\000\188\000\188\000\188\000\188\000\188\000\ -\188\000\188\000\188\000\000\000\000\000\188\000\188\000\188\000\ -\188\000\188\000\188\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\188\000\188\000\132\000\000\000\188\000\188\000\188\000\ -\188\000\188\000\188\000\188\000\188\000\188\000\000\000\000\000\ -\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\188\000\000\000\188\000\000\000\000\000\000\000\188\000\ -\188\000\188\000\188\000\188\000\000\000\000\000\000\000\000\000\ -\000\000\188\000\000\000\188\000\188\000\188\000\000\000\000\000\ -\000\000\000\000\000\000\188\000\188\000\000\000\188\000\188\000\ -\188\000\188\000\246\000\188\000\000\000\000\000\188\000\236\003\ -\188\000\000\000\000\000\188\000\000\000\000\000\188\000\000\000\ -\000\000\000\000\188\000\000\000\000\000\000\000\132\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\009\004\010\004\011\004\236\001\236\001\ -\236\001\236\001\000\000\000\000\236\001\236\001\236\001\236\001\ -\236\001\236\001\236\001\236\001\236\001\236\001\236\001\236\001\ -\236\001\236\001\236\001\236\001\236\001\000\000\236\001\236\001\ -\236\001\236\001\236\001\236\001\236\001\236\001\000\000\000\000\ -\000\000\000\000\236\001\236\001\000\000\000\000\236\001\236\001\ -\236\001\236\001\236\001\236\001\236\001\236\001\236\001\236\001\ -\236\001\236\001\236\001\000\000\236\001\236\001\236\001\236\001\ -\000\000\000\000\236\001\215\001\236\001\236\001\236\001\000\000\ -\236\001\236\001\236\001\236\001\236\001\000\000\236\001\236\001\ -\253\000\000\000\236\001\236\001\236\001\236\001\236\001\236\001\ -\000\000\236\001\000\000\000\000\236\001\236\001\000\000\236\001\ -\236\001\236\001\236\001\000\000\236\001\236\001\000\000\236\001\ -\236\001\236\001\236\001\000\000\236\001\236\001\000\000\236\001\ -\000\000\000\000\000\000\236\001\009\002\009\002\009\002\009\002\ -\009\002\000\000\009\002\009\002\009\002\009\002\009\002\009\002\ -\009\002\009\002\009\002\009\002\009\002\009\002\009\002\009\002\ -\009\002\009\002\000\000\000\000\009\002\009\002\009\002\009\002\ -\009\002\009\002\009\002\009\002\000\000\000\000\000\000\000\000\ -\009\002\009\002\000\000\000\000\009\002\009\002\009\002\009\002\ -\009\002\009\002\009\002\009\002\009\002\009\002\009\002\009\002\ -\009\002\000\000\009\002\009\002\009\002\009\002\000\000\000\000\ -\009\002\000\000\009\002\009\002\009\002\000\000\009\002\009\002\ -\009\002\009\002\009\002\000\000\009\002\009\002\251\000\000\000\ -\009\002\009\002\009\002\009\002\009\002\009\002\000\000\009\002\ -\000\000\000\000\009\002\009\002\000\000\009\002\009\002\009\002\ -\009\002\000\000\009\002\009\002\000\000\009\002\009\002\009\002\ -\009\002\000\000\009\002\009\002\000\000\009\002\000\000\000\000\ -\000\000\009\002\246\000\246\000\246\000\246\000\000\000\000\000\ -\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\ -\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\ -\246\000\000\000\246\000\246\000\246\000\246\000\246\000\246\000\ -\246\000\246\000\000\000\000\000\000\000\000\000\246\000\246\000\ -\000\000\000\000\246\000\246\000\246\000\246\000\246\000\246\000\ -\246\000\246\000\246\000\246\000\246\000\246\000\246\000\000\000\ -\246\000\246\000\246\000\246\000\000\000\000\000\246\000\000\000\ -\246\000\246\000\246\000\000\000\246\000\246\000\246\000\246\000\ -\246\000\000\000\246\000\246\000\249\000\000\000\246\000\246\000\ -\246\000\246\000\246\000\246\000\000\000\246\000\000\000\000\000\ -\246\000\246\000\000\000\246\000\246\000\246\000\246\000\000\000\ -\246\000\246\000\000\000\246\000\246\000\246\000\246\000\000\000\ -\246\000\246\000\000\000\246\000\000\000\000\000\000\000\246\000\ -\253\000\253\000\253\000\253\000\000\000\000\000\253\000\253\000\ -\253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ -\253\000\253\000\253\000\253\000\253\000\253\000\253\000\000\000\ -\253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ -\000\000\000\000\000\000\000\000\253\000\253\000\000\000\000\000\ -\253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ -\253\000\253\000\253\000\253\000\253\000\000\000\253\000\253\000\ -\253\000\253\000\000\000\000\000\253\000\000\000\253\000\253\000\ -\253\000\000\000\253\000\253\000\253\000\253\000\253\000\000\000\ -\253\000\253\000\018\001\000\000\253\000\253\000\253\000\253\000\ -\253\000\253\000\000\000\253\000\000\000\000\000\253\000\253\000\ -\000\000\253\000\253\000\253\000\253\000\000\000\253\000\253\000\ -\000\000\253\000\253\000\253\000\253\000\000\000\253\000\253\000\ -\000\000\253\000\000\000\000\000\000\000\253\000\251\000\251\000\ -\251\000\251\000\000\000\000\000\251\000\251\000\251\000\251\000\ -\251\000\251\000\251\000\251\000\251\000\251\000\251\000\251\000\ -\251\000\251\000\251\000\251\000\251\000\000\000\251\000\251\000\ -\251\000\251\000\251\000\251\000\251\000\251\000\000\000\000\000\ -\000\000\000\000\251\000\251\000\000\000\000\000\251\000\251\000\ -\251\000\251\000\251\000\251\000\251\000\251\000\251\000\251\000\ -\251\000\251\000\251\000\000\000\251\000\251\000\251\000\251\000\ -\000\000\000\000\251\000\000\000\251\000\251\000\251\000\000\000\ -\251\000\251\000\251\000\251\000\251\000\000\000\251\000\251\000\ -\020\001\000\000\251\000\251\000\251\000\251\000\251\000\251\000\ -\000\000\251\000\000\000\000\000\251\000\251\000\000\000\251\000\ -\251\000\251\000\251\000\000\000\251\000\251\000\000\000\251\000\ -\251\000\251\000\251\000\000\000\251\000\251\000\000\000\251\000\ -\000\000\000\000\000\000\251\000\249\000\249\000\249\000\249\000\ -\000\000\000\000\249\000\249\000\249\000\249\000\249\000\249\000\ -\249\000\249\000\249\000\249\000\249\000\249\000\249\000\249\000\ -\249\000\249\000\249\000\000\000\249\000\249\000\249\000\249\000\ -\249\000\249\000\249\000\249\000\000\000\000\000\000\000\000\000\ -\249\000\249\000\000\000\000\000\249\000\249\000\249\000\249\000\ -\249\000\249\000\249\000\249\000\249\000\249\000\249\000\249\000\ -\249\000\000\000\249\000\249\000\249\000\249\000\000\000\000\000\ -\249\000\000\000\249\000\249\000\249\000\000\000\249\000\249\000\ -\249\000\249\000\249\000\000\000\249\000\249\000\023\001\000\000\ -\249\000\249\000\249\000\249\000\249\000\249\000\000\000\249\000\ -\000\000\000\000\249\000\249\000\000\000\249\000\249\000\249\000\ -\249\000\000\000\249\000\249\000\000\000\249\000\249\000\249\000\ -\249\000\000\000\249\000\249\000\000\000\249\000\000\000\000\000\ -\000\000\249\000\018\001\018\001\018\001\018\001\018\001\000\000\ -\018\001\018\001\018\001\018\001\018\001\018\001\018\001\018\001\ -\018\001\018\001\018\001\018\001\018\001\018\001\018\001\018\001\ -\000\000\000\000\018\001\018\001\018\001\018\001\018\001\018\001\ -\018\001\018\001\000\000\000\000\000\000\000\000\018\001\018\001\ -\000\000\000\000\018\001\018\001\018\001\018\001\018\001\018\001\ -\018\001\018\001\018\001\018\001\018\001\018\001\018\001\000\000\ -\018\001\018\001\018\001\018\001\000\000\000\000\018\001\000\000\ -\018\001\018\001\018\001\000\000\018\001\018\001\018\001\018\001\ -\018\001\000\000\018\001\018\001\238\000\000\000\018\001\018\001\ -\018\001\018\001\018\001\018\001\000\000\018\001\000\000\000\000\ -\018\001\018\001\000\000\018\001\018\001\018\001\000\000\000\000\ -\018\001\018\001\000\000\018\001\018\001\018\001\018\001\000\000\ -\018\001\018\001\000\000\018\001\000\000\000\000\000\000\018\001\ -\020\001\020\001\020\001\020\001\020\001\000\000\020\001\020\001\ -\020\001\020\001\020\001\020\001\020\001\020\001\020\001\020\001\ -\020\001\020\001\020\001\020\001\020\001\020\001\000\000\000\000\ -\020\001\020\001\020\001\020\001\020\001\020\001\020\001\020\001\ -\000\000\000\000\000\000\000\000\020\001\020\001\000\000\000\000\ -\020\001\020\001\020\001\020\001\020\001\020\001\020\001\020\001\ -\020\001\020\001\020\001\020\001\020\001\000\000\020\001\020\001\ -\020\001\020\001\000\000\000\000\020\001\000\000\020\001\020\001\ -\020\001\000\000\020\001\020\001\020\001\020\001\020\001\000\000\ -\020\001\020\001\239\000\000\000\020\001\020\001\020\001\020\001\ -\020\001\020\001\000\000\020\001\000\000\000\000\020\001\020\001\ -\000\000\020\001\020\001\020\001\000\000\000\000\020\001\020\001\ -\000\000\020\001\020\001\020\001\020\001\000\000\020\001\020\001\ -\000\000\020\001\000\000\000\000\000\000\020\001\023\001\023\001\ -\023\001\023\001\023\001\000\000\023\001\023\001\023\001\023\001\ -\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\ -\023\001\023\001\023\001\023\001\000\000\000\000\023\001\023\001\ -\023\001\023\001\023\001\023\001\023\001\023\001\000\000\000\000\ -\000\000\000\000\023\001\023\001\000\000\000\000\023\001\023\001\ -\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\ -\023\001\023\001\023\001\000\000\023\001\023\001\023\001\023\001\ -\000\000\000\000\023\001\000\000\023\001\023\001\023\001\000\000\ -\023\001\023\001\023\001\023\001\023\001\000\000\023\001\023\001\ -\187\000\000\000\023\001\023\001\023\001\023\001\023\001\023\001\ -\000\000\023\001\000\000\000\000\023\001\023\001\000\000\023\001\ -\023\001\023\001\000\000\000\000\023\001\023\001\000\000\023\001\ -\023\001\023\001\023\001\000\000\023\001\023\001\000\000\023\001\ -\000\000\000\000\000\000\023\001\238\000\238\000\238\000\238\000\ -\000\000\000\000\000\000\000\000\238\000\238\000\238\000\000\000\ -\000\000\238\000\238\000\238\000\238\000\238\000\238\000\238\000\ -\238\000\238\000\238\000\000\000\238\000\238\000\238\000\238\000\ -\238\000\238\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\238\000\238\000\000\000\000\000\238\000\238\000\238\000\238\000\ -\238\000\238\000\238\000\238\000\238\000\000\000\000\000\000\000\ -\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\238\000\000\000\238\000\000\000\000\000\000\000\238\000\238\000\ -\238\000\238\000\238\000\000\000\000\000\000\000\198\000\000\000\ -\238\000\238\000\238\000\238\000\238\000\000\000\000\000\238\000\ -\000\000\000\000\238\000\238\000\000\000\238\000\238\000\238\000\ -\238\000\000\000\238\000\000\000\000\000\238\000\238\000\238\000\ -\000\000\000\000\238\000\000\000\000\000\238\000\000\000\000\000\ -\000\000\238\000\239\000\239\000\239\000\239\000\000\000\000\000\ -\000\000\000\000\239\000\239\000\239\000\000\000\000\000\239\000\ -\239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\ -\239\000\000\000\239\000\239\000\239\000\239\000\239\000\239\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\239\000\239\000\ -\000\000\000\000\239\000\239\000\239\000\239\000\239\000\239\000\ -\239\000\239\000\239\000\000\000\000\000\000\000\239\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\ -\239\000\000\000\000\000\000\000\239\000\239\000\239\000\239\000\ -\239\000\000\000\000\000\000\000\232\000\000\000\239\000\239\000\ -\239\000\239\000\239\000\000\000\000\000\239\000\000\000\000\000\ -\239\000\239\000\000\000\239\000\239\000\239\000\239\000\000\000\ -\239\000\000\000\000\000\239\000\239\000\239\000\000\000\000\000\ -\239\000\000\000\000\000\239\000\000\000\000\000\000\000\239\000\ -\187\000\187\000\187\000\187\000\000\000\000\000\000\000\000\000\ -\187\000\187\000\187\000\000\000\000\000\187\000\187\000\187\000\ -\187\000\187\000\187\000\187\000\187\000\187\000\000\000\000\000\ -\187\000\187\000\187\000\187\000\187\000\187\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\187\000\187\000\000\000\000\000\ -\187\000\187\000\187\000\187\000\187\000\187\000\187\000\187\000\ -\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\187\000\000\000\187\000\000\000\ -\000\000\000\000\187\000\187\000\187\000\187\000\187\000\000\000\ -\000\000\000\000\233\000\000\000\187\000\000\000\187\000\187\000\ -\187\000\000\000\000\000\000\000\000\000\000\000\187\000\187\000\ -\000\000\187\000\187\000\187\000\000\000\000\000\187\000\000\000\ -\000\000\187\000\000\000\187\000\000\000\000\000\187\000\000\000\ -\000\000\187\000\000\000\000\000\000\000\187\000\198\000\198\000\ -\198\000\198\000\000\000\000\000\000\000\000\000\198\000\198\000\ -\198\000\000\000\000\000\198\000\198\000\198\000\198\000\198\000\ -\000\000\198\000\198\000\198\000\000\000\000\000\198\000\198\000\ -\198\000\198\000\198\000\198\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\198\000\198\000\000\000\000\000\198\000\198\000\ -\198\000\198\000\198\000\198\000\198\000\198\000\198\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\198\000\000\000\198\000\000\000\000\000\000\000\ -\198\000\198\000\198\000\198\000\198\000\000\000\000\000\000\000\ -\199\000\000\000\198\000\000\000\198\000\198\000\198\000\000\000\ -\000\000\000\000\000\000\000\000\198\000\198\000\000\000\198\000\ -\198\000\198\000\198\000\000\000\198\000\000\000\000\000\198\000\ -\000\000\198\000\000\000\000\000\198\000\000\000\000\000\198\000\ -\000\000\000\000\000\000\198\000\232\000\232\000\232\000\232\000\ -\000\000\000\000\000\000\000\000\232\000\232\000\232\000\000\000\ -\000\000\232\000\232\000\232\000\232\000\232\000\232\000\232\000\ -\232\000\232\000\000\000\000\000\232\000\232\000\232\000\232\000\ -\232\000\232\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\232\000\232\000\000\000\000\000\232\000\232\000\232\000\232\000\ -\232\000\232\000\232\000\232\000\232\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\232\000\000\000\232\000\000\000\000\000\000\000\232\000\232\000\ -\232\000\232\000\232\000\000\000\000\000\000\000\200\000\000\000\ -\232\000\000\000\232\000\232\000\232\000\000\000\000\000\000\000\ -\000\000\000\000\232\000\232\000\000\000\232\000\232\000\232\000\ -\000\000\000\000\232\000\000\000\000\000\232\000\000\000\232\000\ -\000\000\000\000\232\000\000\000\000\000\232\000\000\000\000\000\ -\000\000\232\000\233\000\233\000\233\000\233\000\000\000\000\000\ -\000\000\000\000\233\000\233\000\233\000\000\000\000\000\233\000\ -\233\000\233\000\233\000\233\000\233\000\233\000\233\000\233\000\ -\000\000\000\000\233\000\233\000\233\000\233\000\233\000\233\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\233\000\233\000\ -\000\000\000\000\233\000\233\000\233\000\233\000\233\000\233\000\ -\233\000\233\000\233\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\ -\233\000\000\000\000\000\000\000\233\000\233\000\233\000\233\000\ -\233\000\000\000\000\000\000\000\192\000\000\000\233\000\000\000\ -\233\000\233\000\233\000\000\000\000\000\000\000\000\000\000\000\ -\233\000\233\000\000\000\233\000\233\000\233\000\000\000\000\000\ -\233\000\000\000\000\000\233\000\000\000\233\000\000\000\000\000\ -\233\000\000\000\000\000\233\000\000\000\000\000\000\000\233\000\ -\199\000\199\000\199\000\199\000\000\000\000\000\000\000\000\000\ -\199\000\199\000\199\000\000\000\000\000\199\000\199\000\199\000\ -\199\000\199\000\199\000\199\000\199\000\199\000\000\000\000\000\ -\199\000\199\000\199\000\199\000\199\000\199\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\199\000\199\000\000\000\000\000\ -\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\ -\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\199\000\000\000\199\000\000\000\ -\000\000\000\000\199\000\199\000\199\000\199\000\199\000\000\000\ -\000\000\000\000\210\000\000\000\199\000\000\000\199\000\199\000\ -\199\000\000\000\000\000\000\000\000\000\000\000\199\000\199\000\ -\000\000\199\000\199\000\199\000\000\000\000\000\199\000\000\000\ -\000\000\199\000\000\000\199\000\000\000\000\000\199\000\000\000\ -\000\000\199\000\000\000\000\000\000\000\199\000\200\000\200\000\ -\200\000\200\000\000\000\000\000\000\000\000\000\200\000\200\000\ -\200\000\000\000\000\000\200\000\200\000\200\000\200\000\200\000\ -\200\000\200\000\200\000\200\000\000\000\000\000\200\000\200\000\ -\200\000\200\000\200\000\200\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\200\000\200\000\000\000\000\000\200\000\200\000\ -\200\000\200\000\200\000\200\000\200\000\200\000\200\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\200\000\000\000\200\000\000\000\000\000\000\000\ -\200\000\200\000\200\000\200\000\200\000\000\000\000\000\000\000\ -\211\000\000\000\200\000\000\000\200\000\200\000\200\000\000\000\ -\000\000\000\000\000\000\000\000\200\000\200\000\000\000\200\000\ -\200\000\200\000\000\000\000\000\200\000\000\000\000\000\200\000\ -\000\000\200\000\000\000\000\000\200\000\000\000\000\000\200\000\ -\000\000\000\000\000\000\200\000\192\000\192\000\192\000\192\000\ -\000\000\000\000\000\000\000\000\000\000\192\000\192\000\000\000\ -\000\000\192\000\192\000\192\000\192\000\192\000\192\000\192\000\ -\192\000\192\000\000\000\000\000\192\000\192\000\192\000\192\000\ -\192\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\192\000\192\000\000\000\000\000\192\000\192\000\192\000\192\000\ -\192\000\192\000\192\000\192\000\192\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\192\000\000\000\192\000\000\000\000\000\000\000\192\000\192\000\ -\192\000\192\000\192\000\000\000\000\000\000\000\216\000\000\000\ -\192\000\000\000\192\000\192\000\192\000\000\000\000\000\000\000\ -\000\000\000\000\192\000\192\000\000\000\192\000\192\000\192\000\ -\192\000\000\000\192\000\000\000\000\000\192\000\000\000\192\000\ -\000\000\000\000\192\000\000\000\000\000\192\000\000\000\000\000\ -\000\000\192\000\210\000\210\000\210\000\210\000\000\000\000\000\ -\000\000\000\000\210\000\210\000\210\000\000\000\000\000\210\000\ -\210\000\210\000\210\000\210\000\210\000\210\000\210\000\210\000\ -\000\000\000\000\210\000\210\000\210\000\210\000\210\000\210\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\210\000\210\000\ -\000\000\000\000\210\000\210\000\210\000\210\000\210\000\210\000\ -\000\000\210\000\210\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\210\000\000\000\ -\210\000\000\000\000\000\000\000\210\000\210\000\210\000\210\000\ -\210\000\000\000\000\000\000\000\195\000\000\000\210\000\000\000\ -\210\000\210\000\210\000\000\000\000\000\000\000\000\000\000\000\ -\210\000\210\000\000\000\210\000\210\000\210\000\210\000\000\000\ -\210\000\000\000\000\000\210\000\000\000\210\000\000\000\000\000\ -\210\000\000\000\000\000\210\000\000\000\000\000\000\000\210\000\ -\211\000\211\000\211\000\211\000\000\000\000\000\000\000\000\000\ -\211\000\211\000\211\000\000\000\000\000\211\000\211\000\211\000\ -\211\000\211\000\211\000\211\000\211\000\211\000\000\000\000\000\ -\211\000\211\000\211\000\211\000\211\000\211\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\211\000\211\000\000\000\000\000\ -\211\000\211\000\211\000\211\000\211\000\211\000\000\000\211\000\ -\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\211\000\000\000\211\000\000\000\ -\000\000\000\000\211\000\211\000\211\000\211\000\211\000\000\000\ -\000\000\000\000\196\000\000\000\211\000\000\000\211\000\211\000\ -\211\000\000\000\000\000\000\000\000\000\000\000\211\000\211\000\ -\000\000\211\000\211\000\211\000\211\000\000\000\211\000\000\000\ -\000\000\211\000\000\000\211\000\000\000\000\000\211\000\000\000\ -\000\000\211\000\000\000\000\000\000\000\211\000\216\000\216\000\ -\216\000\216\000\000\000\000\000\000\000\000\000\216\000\216\000\ -\216\000\000\000\000\000\216\000\216\000\216\000\216\000\216\000\ -\216\000\216\000\216\000\216\000\000\000\000\000\216\000\216\000\ -\216\000\216\000\216\000\216\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\216\000\216\000\000\000\000\000\216\000\216\000\ -\216\000\216\000\216\000\216\000\000\000\216\000\216\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\216\000\000\000\216\000\000\000\000\000\000\000\ -\216\000\216\000\216\000\216\000\216\000\000\000\000\000\000\000\ -\209\000\000\000\216\000\000\000\216\000\216\000\216\000\000\000\ -\000\000\000\000\000\000\000\000\216\000\216\000\000\000\216\000\ -\216\000\216\000\216\000\000\000\216\000\000\000\000\000\216\000\ -\000\000\216\000\000\000\000\000\216\000\000\000\000\000\216\000\ -\000\000\000\000\000\000\216\000\195\000\195\000\195\000\195\000\ -\000\000\000\000\000\000\000\000\000\000\195\000\195\000\000\000\ -\000\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\ -\195\000\195\000\000\000\000\000\195\000\195\000\195\000\195\000\ -\195\000\195\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\195\000\195\000\000\000\000\000\195\000\195\000\195\000\195\000\ -\195\000\195\000\195\000\195\000\195\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\195\000\000\000\195\000\000\000\000\000\000\000\195\000\195\000\ -\195\000\195\000\195\000\000\000\000\000\000\000\214\000\000\000\ -\195\000\000\000\195\000\195\000\195\000\000\000\000\000\000\000\ -\000\000\000\000\195\000\195\000\000\000\195\000\195\000\195\000\ -\195\000\000\000\195\000\000\000\000\000\195\000\000\000\195\000\ -\000\000\000\000\195\000\000\000\000\000\195\000\000\000\000\000\ -\000\000\195\000\196\000\196\000\196\000\196\000\000\000\000\000\ -\000\000\000\000\000\000\196\000\196\000\000\000\000\000\196\000\ -\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\ -\000\000\000\000\196\000\196\000\196\000\196\000\196\000\196\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\196\000\196\000\ -\000\000\000\000\196\000\196\000\196\000\196\000\196\000\196\000\ -\196\000\196\000\196\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\196\000\000\000\ -\196\000\000\000\000\000\000\000\196\000\196\000\196\000\196\000\ -\196\000\000\000\000\000\000\000\215\000\000\000\196\000\000\000\ -\196\000\196\000\196\000\000\000\000\000\000\000\000\000\000\000\ -\196\000\196\000\000\000\196\000\196\000\196\000\196\000\000\000\ -\196\000\000\000\000\000\196\000\000\000\196\000\000\000\000\000\ -\196\000\000\000\000\000\196\000\000\000\000\000\000\000\196\000\ -\209\000\209\000\209\000\209\000\000\000\000\000\000\000\000\000\ -\209\000\209\000\209\000\000\000\000\000\209\000\209\000\209\000\ -\209\000\209\000\209\000\209\000\209\000\209\000\000\000\000\000\ -\209\000\209\000\209\000\209\000\209\000\209\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\209\000\209\000\000\000\000\000\ -\209\000\209\000\209\000\209\000\209\000\000\000\000\000\209\000\ -\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\209\000\000\000\209\000\000\000\ -\000\000\000\000\209\000\209\000\209\000\209\000\209\000\000\000\ -\000\000\000\000\212\000\000\000\209\000\000\000\209\000\209\000\ -\209\000\000\000\000\000\000\000\000\000\000\000\209\000\209\000\ -\000\000\209\000\209\000\209\000\209\000\000\000\000\000\000\000\ -\000\000\209\000\000\000\209\000\000\000\000\000\209\000\000\000\ -\000\000\209\000\000\000\000\000\000\000\209\000\214\000\214\000\ -\214\000\214\000\000\000\000\000\000\000\000\000\214\000\214\000\ -\214\000\000\000\000\000\214\000\214\000\214\000\214\000\214\000\ -\214\000\214\000\214\000\214\000\000\000\000\000\214\000\214\000\ -\214\000\214\000\214\000\214\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\214\000\214\000\000\000\000\000\214\000\214\000\ -\214\000\214\000\214\000\000\000\000\000\214\000\214\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\214\000\000\000\214\000\000\000\000\000\000\000\ -\214\000\214\000\214\000\214\000\214\000\000\000\000\000\000\000\ -\213\000\000\000\214\000\000\000\214\000\214\000\214\000\000\000\ -\000\000\000\000\000\000\000\000\214\000\214\000\000\000\214\000\ -\214\000\214\000\214\000\000\000\000\000\000\000\000\000\214\000\ -\000\000\214\000\000\000\000\000\214\000\000\000\000\000\214\000\ -\000\000\000\000\000\000\214\000\215\000\215\000\215\000\215\000\ -\000\000\000\000\000\000\000\000\215\000\215\000\215\000\000\000\ -\000\000\215\000\215\000\215\000\215\000\215\000\215\000\215\000\ -\215\000\215\000\000\000\000\000\215\000\215\000\215\000\215\000\ -\215\000\215\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\215\000\215\000\000\000\000\000\215\000\215\000\215\000\215\000\ -\215\000\000\000\000\000\215\000\215\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\215\000\000\000\215\000\000\000\000\000\000\000\215\000\215\000\ -\215\000\215\000\215\000\000\000\000\000\000\000\168\000\000\000\ -\215\000\000\000\215\000\215\000\215\000\000\000\000\000\000\000\ -\000\000\000\000\215\000\215\000\000\000\215\000\215\000\215\000\ -\215\000\000\000\000\000\000\000\000\000\215\000\000\000\215\000\ -\000\000\000\000\215\000\000\000\000\000\215\000\000\000\000\000\ -\000\000\215\000\212\000\212\000\212\000\212\000\000\000\000\000\ -\000\000\000\000\212\000\212\000\212\000\000\000\000\000\212\000\ -\212\000\212\000\212\000\212\000\212\000\212\000\212\000\212\000\ -\000\000\000\000\212\000\212\000\212\000\212\000\212\000\212\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\212\000\212\000\ -\000\000\000\000\212\000\212\000\212\000\212\000\212\000\000\000\ -\000\000\212\000\212\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\212\000\000\000\ -\212\000\000\000\000\000\000\000\212\000\212\000\212\000\212\000\ -\212\000\000\000\000\000\000\000\205\000\000\000\212\000\000\000\ -\212\000\212\000\212\000\000\000\000\000\000\000\000\000\000\000\ -\212\000\212\000\000\000\212\000\212\000\212\000\212\000\000\000\ -\000\000\000\000\000\000\212\000\000\000\212\000\000\000\000\000\ -\212\000\000\000\000\000\212\000\000\000\000\000\000\000\212\000\ -\213\000\213\000\213\000\213\000\000\000\000\000\000\000\000\000\ -\213\000\213\000\213\000\000\000\000\000\213\000\213\000\213\000\ -\213\000\213\000\213\000\213\000\213\000\213\000\000\000\000\000\ -\213\000\213\000\213\000\213\000\213\000\213\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\213\000\213\000\000\000\000\000\ -\213\000\213\000\213\000\213\000\213\000\000\000\000\000\213\000\ -\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\213\000\000\000\213\000\000\000\ -\000\000\000\000\213\000\213\000\213\000\213\000\213\000\000\000\ -\000\000\000\000\217\000\000\000\213\000\000\000\213\000\213\000\ -\213\000\000\000\000\000\000\000\000\000\000\000\213\000\213\000\ -\000\000\213\000\213\000\213\000\213\000\000\000\000\000\000\000\ -\000\000\213\000\000\000\213\000\000\000\000\000\213\000\000\000\ -\000\000\213\000\000\000\000\000\000\000\213\000\168\000\168\000\ -\168\000\168\000\000\000\000\000\000\000\000\000\168\000\168\000\ -\168\000\000\000\000\000\168\000\168\000\168\000\168\000\168\000\ -\168\000\168\000\168\000\168\000\000\000\000\000\168\000\168\000\ -\168\000\168\000\168\000\168\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\168\000\168\000\000\000\000\000\168\000\168\000\ -\168\000\168\000\168\000\168\000\168\000\168\000\168\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\168\000\000\000\000\000\000\000\000\000\000\000\ -\168\000\000\000\000\000\168\000\168\000\000\000\000\000\000\000\ -\219\000\000\000\168\000\000\000\168\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\168\000\168\000\000\000\168\000\ -\168\000\168\000\168\000\000\000\168\000\000\000\000\000\168\000\ -\000\000\168\000\000\000\000\000\168\000\000\000\000\000\168\000\ -\000\000\000\000\000\000\168\000\205\000\205\000\205\000\205\000\ -\000\000\000\000\000\000\000\000\205\000\205\000\205\000\000\000\ -\000\000\205\000\205\000\000\000\205\000\205\000\205\000\205\000\ -\205\000\205\000\000\000\000\000\205\000\205\000\205\000\205\000\ -\205\000\205\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\205\000\205\000\000\000\000\000\205\000\205\000\205\000\205\000\ -\000\000\000\000\000\000\205\000\205\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\205\000\000\000\205\000\000\000\000\000\000\000\205\000\000\000\ -\000\000\205\000\205\000\000\000\000\000\000\000\207\000\000\000\ -\205\000\000\000\205\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\205\000\205\000\000\000\205\000\205\000\205\000\ -\205\000\000\000\000\000\000\000\000\000\205\000\000\000\205\000\ -\000\000\000\000\205\000\000\000\000\000\205\000\000\000\000\000\ -\000\000\205\000\217\000\217\000\217\000\217\000\000\000\000\000\ -\000\000\000\000\217\000\217\000\217\000\000\000\000\000\217\000\ -\217\000\000\000\217\000\217\000\217\000\217\000\217\000\217\000\ -\000\000\000\000\217\000\217\000\217\000\217\000\217\000\217\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\217\000\217\000\ -\000\000\000\000\217\000\217\000\217\000\000\000\000\000\000\000\ -\000\000\217\000\217\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\217\000\000\000\ -\217\000\000\000\000\000\000\000\217\000\000\000\000\000\217\000\ -\217\000\000\000\000\000\000\000\208\000\000\000\217\000\000\000\ -\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\217\000\217\000\000\000\217\000\217\000\217\000\217\000\000\000\ -\000\000\000\000\000\000\217\000\000\000\217\000\000\000\000\000\ -\217\000\000\000\000\000\217\000\000\000\000\000\000\000\217\000\ -\219\000\219\000\219\000\219\000\000\000\000\000\000\000\000\000\ -\219\000\219\000\219\000\000\000\000\000\219\000\219\000\000\000\ -\219\000\219\000\219\000\219\000\219\000\219\000\000\000\000\000\ -\219\000\219\000\219\000\219\000\219\000\219\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\219\000\219\000\000\000\000\000\ -\219\000\219\000\219\000\000\000\000\000\000\000\000\000\219\000\ -\219\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\219\000\000\000\219\000\000\000\ -\000\000\000\000\219\000\000\000\000\000\219\000\219\000\000\000\ -\000\000\000\000\218\000\000\000\219\000\000\000\219\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\219\000\219\000\ -\000\000\219\000\219\000\219\000\219\000\000\000\000\000\000\000\ -\000\000\219\000\000\000\219\000\000\000\000\000\219\000\000\000\ -\000\000\219\000\000\000\000\000\000\000\219\000\207\000\207\000\ -\207\000\207\000\000\000\000\000\000\000\000\000\207\000\207\000\ -\207\000\000\000\000\000\207\000\207\000\000\000\207\000\207\000\ -\207\000\207\000\207\000\207\000\000\000\000\000\207\000\207\000\ -\207\000\207\000\207\000\207\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\207\000\207\000\000\000\000\000\207\000\207\000\ -\207\000\000\000\000\000\000\000\000\000\207\000\207\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\207\000\000\000\207\000\000\000\000\000\000\000\ -\207\000\223\000\000\000\207\000\207\000\000\000\000\000\000\000\ -\000\000\000\000\207\000\000\000\207\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\207\000\207\000\000\000\207\000\ -\207\000\207\000\207\000\000\000\000\000\000\000\000\000\207\000\ -\000\000\207\000\000\000\000\000\207\000\000\000\000\000\207\000\ -\000\000\000\000\000\000\207\000\208\000\208\000\208\000\208\000\ -\000\000\000\000\000\000\000\000\208\000\208\000\208\000\000\000\ -\000\000\208\000\208\000\000\000\208\000\208\000\208\000\208\000\ -\208\000\208\000\000\000\000\000\208\000\208\000\208\000\208\000\ -\208\000\208\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\208\000\208\000\000\000\000\000\208\000\208\000\208\000\000\000\ -\000\000\000\000\000\000\208\000\208\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\222\000\000\000\000\000\000\000\000\000\ -\208\000\000\000\208\000\000\000\000\000\000\000\208\000\000\000\ -\000\000\208\000\208\000\000\000\000\000\000\000\000\000\000\000\ -\208\000\000\000\208\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\208\000\208\000\000\000\208\000\208\000\208\000\ -\208\000\000\000\000\000\000\000\000\000\208\000\000\000\208\000\ -\000\000\000\000\208\000\000\000\000\000\208\000\000\000\000\000\ -\000\000\208\000\218\000\218\000\218\000\218\000\000\000\000\000\ -\000\000\000\000\218\000\218\000\218\000\000\000\000\000\218\000\ -\218\000\000\000\218\000\218\000\218\000\218\000\218\000\218\000\ -\000\000\000\000\218\000\218\000\218\000\218\000\218\000\218\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\218\000\218\000\ -\000\000\000\000\218\000\218\000\218\000\221\000\000\000\000\000\ -\000\000\218\000\218\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\218\000\000\000\ -\218\000\000\000\000\000\000\000\218\000\077\001\000\000\218\000\ -\218\000\077\001\000\000\000\000\000\000\077\001\218\000\077\001\ -\218\000\000\000\000\000\077\001\077\001\000\000\000\000\077\001\ -\218\000\218\000\000\000\218\000\218\000\218\000\218\000\000\000\ -\077\001\000\000\000\000\218\000\000\000\218\000\000\000\000\000\ -\218\000\223\000\000\000\218\000\223\000\000\000\000\000\218\000\ -\000\000\223\000\223\000\223\000\000\000\000\000\223\000\223\000\ -\000\000\223\000\223\000\223\000\223\000\223\000\223\000\000\000\ -\000\000\223\000\223\000\223\000\000\000\223\000\223\000\000\000\ -\000\000\000\000\077\001\000\000\000\000\000\000\223\000\046\001\ -\000\000\223\000\223\000\000\000\000\000\000\000\000\000\000\000\ -\223\000\223\000\000\000\077\001\077\001\000\000\077\001\077\001\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\223\000\ -\000\000\000\000\000\000\223\000\000\000\000\000\223\000\223\000\ -\077\001\000\000\000\000\000\000\000\000\223\000\000\000\223\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\223\000\ -\223\000\000\000\223\000\223\000\223\000\223\000\000\000\000\000\ -\000\000\000\000\223\000\222\000\223\000\000\000\222\000\223\000\ -\000\000\000\000\223\000\222\000\222\000\222\000\223\000\000\000\ -\222\000\222\000\000\000\222\000\222\000\222\000\222\000\222\000\ -\222\000\000\000\000\000\222\000\222\000\222\000\000\000\222\000\ -\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\222\000\220\000\000\000\222\000\222\000\000\000\000\000\000\000\ -\000\000\000\000\222\000\222\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\222\000\000\000\000\000\000\000\222\000\000\000\000\000\ -\222\000\222\000\000\000\000\000\000\000\000\000\000\000\222\000\ -\000\000\222\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\222\000\222\000\000\000\222\000\222\000\222\000\222\000\ -\000\000\000\000\000\000\000\000\222\000\221\000\222\000\000\000\ -\221\000\222\000\000\000\000\000\222\000\221\000\000\000\221\000\ -\222\000\000\000\221\000\221\000\000\000\221\000\221\000\221\000\ -\221\000\221\000\221\000\000\000\000\000\221\000\221\000\221\000\ -\000\000\221\000\221\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\221\000\045\001\000\000\221\000\221\000\000\000\ -\000\000\000\000\000\000\000\000\221\000\221\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\221\000\000\000\000\000\000\000\221\000\ -\000\000\000\000\221\000\221\000\000\000\000\000\000\000\000\000\ -\000\000\221\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\221\000\221\000\000\000\221\000\221\000\ -\221\000\221\000\000\000\000\000\000\000\000\000\221\000\046\001\ -\221\000\000\000\046\001\221\000\000\000\000\000\221\000\046\001\ -\000\000\046\001\221\000\000\000\046\001\046\001\000\000\046\001\ -\046\001\046\001\046\001\046\001\046\001\000\000\000\000\046\001\ -\046\001\046\001\000\000\046\001\046\001\000\000\000\000\000\000\ -\224\000\000\000\000\000\000\000\046\001\000\000\000\000\046\001\ -\046\001\000\000\000\000\000\000\000\000\000\000\046\001\046\001\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\046\001\000\000\000\000\ -\000\000\046\001\000\000\000\000\046\001\046\001\000\000\000\000\ -\000\000\000\000\000\000\046\001\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\046\001\046\001\000\000\ -\046\001\046\001\046\001\046\001\000\000\000\000\000\000\000\000\ -\046\001\220\000\046\001\000\000\220\000\046\001\000\000\000\000\ -\046\001\220\000\000\000\220\000\046\001\000\000\220\000\220\000\ -\000\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\ -\000\000\220\000\220\000\220\000\000\000\220\000\220\000\000\000\ -\000\000\000\000\231\000\000\000\000\000\000\000\220\000\000\000\ -\000\000\220\000\220\000\000\000\000\000\000\000\000\000\000\000\ -\220\000\220\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\000\ -\000\000\000\000\000\000\220\000\000\000\000\000\220\000\220\000\ -\000\000\000\000\000\000\000\000\000\000\220\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\000\ -\220\000\000\000\220\000\220\000\220\000\220\000\000\000\000\000\ -\000\000\000\000\220\000\045\001\220\000\000\000\045\001\220\000\ -\000\000\000\000\220\000\045\001\000\000\045\001\220\000\000\000\ -\045\001\045\001\000\000\045\001\045\001\045\001\045\001\045\001\ -\045\001\000\000\000\000\045\001\045\001\045\001\000\000\045\001\ -\045\001\000\000\000\000\000\000\227\000\000\000\000\000\000\000\ -\045\001\000\000\000\000\045\001\045\001\000\000\000\000\000\000\ -\000\000\000\000\045\001\045\001\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\045\001\000\000\000\000\000\000\045\001\094\001\000\000\ -\045\001\045\001\094\001\000\000\000\000\000\000\094\001\045\001\ -\094\001\000\000\000\000\000\000\094\001\000\000\000\000\000\000\ -\094\001\045\001\045\001\000\000\045\001\045\001\045\001\045\001\ -\224\000\094\001\000\000\224\000\045\001\000\000\045\001\000\000\ -\224\000\045\001\224\000\000\000\045\001\224\000\224\000\000\000\ -\045\001\224\000\000\000\224\000\224\000\224\000\000\000\000\000\ -\224\000\224\000\224\000\000\000\224\000\224\000\000\000\000\000\ -\000\000\201\000\000\000\000\000\000\000\224\000\000\000\000\000\ -\224\000\224\000\000\000\094\001\000\000\000\000\000\000\224\000\ -\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\094\001\094\001\224\000\094\001\ -\094\001\000\000\224\000\000\000\000\000\224\000\224\000\000\000\ -\000\000\000\000\000\000\000\000\224\000\000\000\000\000\000\000\ -\000\000\094\001\000\000\000\000\000\000\000\000\224\000\224\000\ -\000\000\224\000\224\000\224\000\224\000\000\000\000\000\000\000\ -\000\000\224\000\231\000\224\000\000\000\231\000\224\000\000\000\ -\000\000\224\000\231\000\000\000\231\000\224\000\000\000\231\000\ -\231\000\000\000\000\000\231\000\000\000\231\000\231\000\231\000\ -\000\000\000\000\231\000\231\000\231\000\000\000\231\000\231\000\ -\000\000\000\000\000\000\230\000\000\000\000\000\000\000\231\000\ -\000\000\000\000\231\000\231\000\000\000\000\000\000\000\000\000\ -\000\000\231\000\231\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\231\000\000\000\000\000\000\000\231\000\000\000\000\000\231\000\ -\231\000\000\000\000\000\000\000\000\000\000\000\231\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\231\000\231\000\000\000\231\000\231\000\231\000\231\000\000\000\ -\000\000\000\000\000\000\231\000\227\000\231\000\000\000\227\000\ -\231\000\000\000\000\000\231\000\227\000\000\000\227\000\231\000\ -\000\000\227\000\227\000\000\000\000\000\227\000\000\000\227\000\ -\227\000\227\000\000\000\000\000\227\000\227\000\227\000\000\000\ -\227\000\227\000\000\000\000\000\000\000\229\000\000\000\000\000\ -\000\000\227\000\000\000\000\000\227\000\227\000\000\000\000\000\ -\000\000\000\000\000\000\227\000\227\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\227\000\000\000\000\000\000\000\227\000\093\001\ -\000\000\227\000\227\000\093\001\000\000\000\000\000\000\093\001\ -\227\000\093\001\000\000\000\000\000\000\093\001\000\000\000\000\ -\000\000\093\001\227\000\227\000\000\000\227\000\227\000\227\000\ -\227\000\201\000\093\001\000\000\201\000\227\000\000\000\227\000\ -\000\000\201\000\227\000\201\000\000\000\227\000\201\000\201\000\ -\000\000\227\000\201\000\000\000\201\000\201\000\201\000\000\000\ -\000\000\201\000\201\000\201\000\000\000\201\000\201\000\000\000\ -\000\000\000\000\228\000\000\000\000\000\000\000\201\000\073\000\ -\000\000\201\000\201\000\000\000\093\001\000\000\000\000\000\000\ -\201\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\093\001\093\001\201\000\ -\093\001\093\001\000\000\201\000\000\000\000\000\201\000\201\000\ -\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\ -\000\000\000\000\093\001\000\000\000\000\000\000\000\000\201\000\ -\201\000\000\000\201\000\201\000\201\000\201\000\000\000\000\000\ -\000\000\000\000\201\000\230\000\201\000\000\000\230\000\201\000\ -\000\000\000\000\201\000\230\000\000\000\230\000\201\000\000\000\ -\230\000\230\000\000\000\000\000\230\000\000\000\230\000\230\000\ -\230\000\000\000\000\000\230\000\230\000\230\000\000\000\230\000\ -\230\000\000\000\000\000\000\000\167\000\000\000\000\000\000\000\ -\230\000\000\000\000\000\230\000\230\000\000\000\000\000\000\000\ -\000\000\000\000\230\000\230\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\230\000\000\000\000\000\000\000\230\000\000\000\000\000\ -\230\000\230\000\000\000\000\000\000\000\000\000\000\000\230\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\230\000\230\000\000\000\230\000\230\000\230\000\230\000\ -\000\000\000\000\000\000\000\000\230\000\229\000\230\000\000\000\ -\229\000\230\000\000\000\000\000\230\000\229\000\000\000\229\000\ -\230\000\000\000\229\000\229\000\000\000\000\000\229\000\000\000\ -\229\000\229\000\229\000\000\000\000\000\229\000\229\000\229\000\ -\000\000\229\000\229\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\229\000\000\000\016\002\229\000\229\000\000\000\ -\000\000\000\000\000\000\000\000\229\000\229\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\229\000\000\000\000\000\000\000\229\000\ -\000\000\000\000\229\000\229\000\000\000\000\000\000\000\000\000\ -\000\000\229\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\229\000\229\000\000\000\229\000\229\000\ -\229\000\229\000\228\000\000\000\000\000\228\000\229\000\073\000\ -\229\000\000\000\228\000\229\000\228\000\000\000\229\000\228\000\ -\228\000\000\000\229\000\228\000\073\000\228\000\228\000\228\000\ -\000\000\000\000\228\000\228\000\228\000\000\000\228\000\228\000\ -\000\000\073\000\000\000\073\000\073\000\000\000\000\000\228\000\ -\000\000\202\001\228\000\228\000\000\000\000\000\000\000\000\000\ -\073\000\228\000\228\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\228\000\000\000\000\000\000\000\228\000\000\000\000\000\228\000\ -\228\000\000\000\000\000\000\000\000\000\073\000\228\000\000\000\ -\000\000\000\000\000\000\073\000\000\000\000\000\000\000\000\000\ -\228\000\228\000\000\000\228\000\228\000\228\000\228\000\000\000\ -\000\000\000\000\073\000\228\000\167\000\228\000\000\000\167\000\ -\228\000\000\000\000\000\228\000\167\000\073\000\167\000\228\000\ -\073\000\167\000\167\000\000\000\000\000\167\000\000\000\167\000\ -\167\000\167\000\000\000\000\000\167\000\167\000\167\000\000\000\ -\167\000\167\000\000\000\000\000\000\000\000\000\205\001\000\000\ -\000\000\167\000\000\000\000\000\167\000\167\000\000\000\000\000\ -\000\000\000\000\000\000\167\000\167\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\167\000\000\000\000\000\000\000\167\000\000\000\ -\000\000\167\000\167\000\000\000\000\000\000\000\000\000\000\000\ -\167\000\000\000\000\000\078\002\000\000\000\000\000\000\000\000\ -\000\000\000\000\167\000\167\000\000\000\167\000\000\000\167\000\ -\167\000\000\000\000\000\000\000\000\000\167\000\000\000\167\000\ -\000\000\000\000\167\000\000\000\016\002\167\000\016\002\016\002\ -\016\002\167\000\000\000\000\000\016\002\000\000\000\000\000\000\ -\000\000\016\002\000\000\000\000\000\000\016\002\016\002\016\002\ -\000\000\000\000\000\000\167\001\000\000\000\000\016\002\016\002\ -\016\002\016\002\000\000\242\001\000\000\243\001\244\001\245\001\ -\016\002\000\000\254\001\246\001\000\000\016\002\000\000\000\000\ -\000\000\000\000\000\000\016\002\016\002\000\000\000\000\000\000\ -\255\001\000\000\000\000\000\000\000\000\000\000\000\002\000\000\ -\247\001\000\000\016\002\016\002\000\000\000\000\016\002\248\001\ -\080\002\016\002\016\002\000\000\000\000\000\000\000\000\000\000\ -\016\002\000\000\089\000\249\001\000\000\000\000\000\000\000\000\ -\000\000\000\000\016\002\016\002\000\000\016\002\016\002\016\002\ -\016\002\202\001\016\002\202\001\202\001\202\001\000\000\000\000\ -\000\000\202\001\016\002\016\002\000\000\016\002\202\001\000\000\ -\000\000\016\002\202\001\202\001\202\001\000\000\000\000\000\000\ -\206\001\000\000\000\000\202\001\202\001\202\001\202\001\000\000\ -\242\001\000\000\243\001\244\001\245\001\202\001\000\000\254\001\ -\246\001\000\000\202\001\000\000\000\000\000\000\000\000\000\000\ -\202\001\202\001\000\000\000\000\000\000\255\001\000\000\000\000\ -\000\000\000\000\000\000\000\002\000\000\247\001\000\000\202\001\ -\202\001\000\000\000\000\202\001\248\001\000\000\202\001\202\001\ -\000\000\000\000\000\000\000\000\000\000\202\001\000\000\089\000\ -\249\001\000\000\000\000\000\000\002\003\000\000\000\000\202\001\ -\202\001\000\000\202\001\202\001\202\001\202\001\205\001\202\001\ -\205\001\205\001\205\001\003\003\000\000\000\000\205\001\202\001\ -\202\001\000\000\202\001\205\001\000\000\000\000\202\001\205\001\ -\205\001\205\001\000\000\000\000\000\000\165\001\000\000\000\000\ -\205\001\205\001\205\001\205\001\000\000\242\001\000\000\243\001\ -\244\001\245\001\205\001\000\000\254\001\004\003\000\000\205\001\ -\000\000\000\000\000\000\000\000\000\000\205\001\205\001\000\000\ -\000\000\000\000\255\001\000\000\000\000\000\000\000\000\005\003\ -\000\002\000\000\247\001\000\000\205\001\000\000\000\000\000\000\ -\205\001\248\001\000\000\205\001\205\001\000\000\000\000\000\000\ -\000\000\006\003\205\001\000\000\007\003\249\001\000\000\000\000\ -\000\000\002\003\000\000\000\000\205\001\205\001\000\000\205\001\ -\205\001\205\001\205\001\167\001\000\000\167\001\167\001\167\001\ -\003\003\000\000\000\000\167\001\205\001\000\000\000\000\205\001\ -\167\001\000\000\000\000\205\001\167\001\167\001\167\001\000\000\ -\000\000\000\000\163\001\000\000\000\000\167\001\167\001\167\001\ -\167\001\000\000\242\001\000\000\243\001\244\001\245\001\167\001\ -\000\000\254\001\004\003\000\000\167\001\000\000\000\000\000\000\ -\000\000\000\000\167\001\167\001\000\000\000\000\000\000\255\001\ -\000\000\000\000\000\000\000\000\000\000\000\002\000\000\247\001\ -\000\000\167\001\000\000\000\000\000\000\167\001\248\001\000\000\ -\167\001\167\001\000\000\000\000\000\000\000\000\006\003\167\001\ -\000\000\007\003\249\001\000\000\000\000\000\000\000\000\000\000\ -\000\000\167\001\167\001\000\000\167\001\167\001\167\001\000\000\ -\206\001\167\001\206\001\206\001\206\001\000\000\000\000\000\000\ -\206\001\167\001\000\000\000\000\167\001\206\001\000\000\000\000\ -\167\001\206\001\206\001\206\001\000\000\000\000\000\000\164\001\ -\000\000\000\000\206\001\206\001\206\001\206\001\000\000\242\001\ -\000\000\243\001\244\001\245\001\206\001\000\000\254\001\246\001\ -\000\000\206\001\000\000\000\000\000\000\165\002\000\000\206\001\ -\206\001\000\000\000\000\000\000\255\001\000\000\000\000\000\000\ -\000\000\000\000\000\002\000\000\247\001\000\000\206\001\000\000\ -\148\003\000\000\206\001\248\001\000\000\206\001\206\001\000\000\ -\000\000\000\000\000\000\000\000\206\001\000\000\089\000\249\001\ -\000\000\000\000\000\000\000\000\000\000\000\000\206\001\206\001\ -\000\000\206\001\206\001\206\001\206\001\165\001\000\000\165\001\ -\165\001\165\001\000\000\000\000\000\000\165\001\206\001\000\000\ -\000\000\206\001\165\001\000\000\000\000\206\001\165\001\165\001\ -\165\001\000\000\000\000\000\000\162\001\000\000\000\000\165\001\ -\165\001\165\001\165\001\000\000\000\000\000\000\000\000\000\000\ -\000\000\165\001\000\000\000\000\000\000\000\000\165\001\000\000\ -\000\000\000\000\000\000\000\000\165\001\165\001\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\165\001\000\000\000\000\000\000\165\001\ -\000\000\000\000\000\000\165\001\000\000\000\000\000\000\000\000\ -\000\000\165\001\000\000\000\000\151\001\000\000\000\000\000\000\ -\000\000\000\000\000\000\165\001\165\001\000\000\165\001\165\001\ -\165\001\165\001\163\001\000\000\163\001\163\001\163\001\000\000\ -\000\000\000\000\163\001\165\001\000\000\000\000\165\001\163\001\ -\000\000\000\000\165\001\163\001\163\001\163\001\000\000\000\000\ -\000\000\159\001\000\000\000\000\163\001\163\001\163\001\163\001\ -\000\000\000\000\000\000\000\000\000\000\000\000\163\001\000\000\ -\000\000\000\000\000\000\163\001\000\000\000\000\000\000\000\000\ -\000\000\163\001\163\001\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\163\001\000\000\000\000\000\000\163\001\000\000\000\000\000\000\ -\163\001\000\000\000\000\000\000\000\000\000\000\163\001\000\000\ -\000\000\149\001\000\000\000\000\000\000\000\000\000\000\000\000\ -\163\001\163\001\000\000\163\001\163\001\163\001\163\001\164\001\ -\000\000\164\001\164\001\164\001\000\000\000\000\000\000\164\001\ -\163\001\000\000\000\000\163\001\164\001\000\000\000\000\163\001\ -\164\001\164\001\164\001\000\000\000\000\000\000\064\000\000\000\ -\000\000\164\001\164\001\164\001\164\001\000\000\242\001\000\000\ -\243\001\244\001\245\001\164\001\000\000\254\001\246\001\000\000\ -\164\001\000\000\000\000\000\000\165\002\000\000\164\001\164\001\ -\000\000\000\000\000\000\255\001\000\000\000\000\000\000\000\000\ -\000\000\000\002\000\000\247\001\000\000\164\001\000\000\000\000\ -\000\000\164\001\248\001\000\000\000\000\164\001\000\000\000\000\ -\000\000\000\000\000\000\164\001\000\000\089\000\249\001\000\000\ -\000\000\000\000\000\000\000\000\000\000\164\001\164\001\000\000\ -\164\001\164\001\164\001\164\001\162\001\000\000\162\001\162\001\ -\162\001\000\000\000\000\000\000\162\001\164\001\000\000\000\000\ -\164\001\162\001\000\000\000\000\164\001\162\001\162\001\162\001\ -\000\000\000\000\000\000\000\000\000\000\000\000\162\001\162\001\ -\162\001\162\001\000\000\077\000\000\000\000\000\000\000\000\000\ -\162\001\000\000\000\000\000\000\000\000\162\001\000\000\000\000\ -\000\000\000\000\000\000\162\001\162\001\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\151\001\000\000\000\000\151\001\ -\000\000\000\000\162\001\000\000\000\000\000\000\162\001\000\000\ -\000\000\151\001\162\001\000\000\000\000\000\000\000\000\000\000\ -\162\001\000\000\000\000\000\000\000\000\000\000\151\001\151\001\ -\151\001\151\001\162\001\162\001\000\000\162\001\162\001\162\001\ -\162\001\159\001\000\000\159\001\159\001\151\001\000\000\000\000\ -\000\000\159\001\162\001\000\000\000\000\162\001\159\001\000\000\ -\000\000\162\001\159\001\159\001\159\001\000\000\000\000\000\000\ -\000\000\000\000\151\001\159\001\159\001\159\001\159\001\000\000\ -\000\000\000\000\151\001\000\000\000\000\159\001\070\000\000\000\ -\151\001\000\000\159\001\000\000\000\000\000\000\000\000\000\000\ -\159\001\159\001\000\000\000\000\000\000\151\001\000\000\151\001\ -\151\001\149\001\000\000\000\000\149\001\000\000\000\000\159\001\ -\000\000\000\000\151\001\159\001\000\000\151\001\149\001\159\001\ -\000\000\151\001\000\000\000\000\000\000\159\001\000\000\000\000\ -\000\000\000\000\000\000\149\001\149\001\149\001\149\001\159\001\ -\159\001\000\000\159\001\159\001\159\001\159\001\064\000\000\000\ -\000\000\000\000\149\001\000\000\000\000\000\000\000\000\159\001\ -\000\000\000\000\159\001\064\000\000\000\000\000\159\001\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\149\001\ -\064\000\064\000\064\000\064\000\000\000\000\000\000\000\149\001\ -\000\000\000\000\000\000\000\000\000\000\149\001\000\000\064\000\ -\000\000\013\001\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\149\001\000\000\149\001\149\001\000\000\000\000\ -\000\000\000\000\000\000\000\000\064\000\000\000\000\000\149\001\ -\000\000\000\000\149\001\000\000\064\000\000\000\149\001\000\000\ -\000\000\000\000\064\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\064\000\ -\000\000\064\000\064\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\064\000\000\000\000\000\064\000\ -\007\000\008\000\009\000\064\000\000\000\000\000\010\000\011\000\ -\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\000\ -\014\000\015\000\016\000\017\000\018\000\019\000\000\000\000\000\ -\000\000\000\000\020\000\000\000\021\000\000\000\000\000\000\000\ -\000\000\000\000\009\002\000\000\022\000\023\000\024\000\000\000\ -\025\000\026\000\027\000\028\000\029\000\000\000\000\000\000\000\ -\000\000\030\000\031\000\032\000\033\000\000\000\034\000\035\000\ -\000\000\036\000\000\000\037\000\038\000\039\000\000\000\040\000\ -\000\000\000\000\041\000\042\000\043\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\078\000\071\000\ -\000\000\000\000\045\000\000\000\000\000\000\000\000\000\046\000\ -\047\000\048\000\049\000\007\000\008\000\009\000\000\000\050\000\ -\000\000\010\000\011\000\012\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\013\000\014\000\015\000\016\000\017\000\018\000\ -\019\000\000\000\000\000\000\000\000\000\020\000\000\000\021\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\000\ -\023\000\024\000\000\000\025\000\026\000\027\000\028\000\029\000\ -\002\002\000\000\000\000\000\000\030\000\031\000\032\000\033\000\ -\000\000\034\000\035\000\000\000\036\000\000\000\037\000\038\000\ -\039\000\025\002\040\000\000\000\000\000\041\000\042\000\043\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\071\000\000\000\000\000\045\000\000\000\000\000\ -\000\000\000\000\046\000\047\000\048\000\049\000\007\000\008\000\ -\009\000\000\000\050\000\000\000\010\000\011\000\012\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\013\000\014\000\015\000\ -\016\000\017\000\018\000\019\000\000\000\000\000\000\000\000\000\ -\020\000\000\000\021\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\022\000\023\000\024\000\000\000\025\000\026\000\ -\027\000\028\000\029\000\000\000\026\002\000\000\000\000\030\000\ -\031\000\032\000\033\000\000\000\034\000\035\000\000\000\036\000\ -\000\000\037\000\038\000\039\000\000\000\040\000\000\000\000\000\ -\041\000\042\000\043\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\143\001\000\000\071\000\000\000\000\000\ -\045\000\000\000\000\000\000\000\000\000\046\000\047\000\048\000\ -\049\000\000\000\009\002\000\000\000\000\050\000\009\002\000\000\ -\009\002\000\000\009\002\000\000\009\002\000\000\009\002\009\002\ -\009\002\009\002\000\000\009\002\009\002\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\009\002\009\002\009\002\009\002\ -\009\002\009\002\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\009\002\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\009\002\009\002\009\002\009\002\009\002\ -\009\002\000\000\009\002\009\002\000\000\000\000\000\000\000\000\ -\009\002\009\002\009\002\140\001\000\000\009\002\000\000\009\002\ -\009\002\000\000\009\002\000\000\000\000\000\000\009\002\009\002\ -\000\000\009\002\000\000\000\000\000\000\009\002\000\000\000\000\ -\009\002\009\002\000\000\009\002\009\002\009\002\009\002\000\000\ -\000\000\009\002\141\001\000\000\009\002\000\000\009\002\000\000\ -\009\002\009\002\009\002\000\000\000\000\009\002\000\000\000\000\ -\002\002\000\000\000\000\002\002\000\000\000\000\000\000\000\000\ -\002\002\000\000\063\000\000\000\000\000\002\002\002\002\000\000\ -\000\000\025\002\000\000\002\002\025\002\000\000\020\002\000\000\ -\000\000\000\000\002\002\000\000\002\002\002\002\025\002\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\002\002\000\000\025\002\025\002\025\002\025\002\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\110\001\ -\000\000\000\000\025\002\000\000\000\000\000\000\002\002\000\000\ -\020\002\000\000\000\000\000\000\000\000\000\000\002\002\000\000\ -\000\000\000\000\000\000\002\002\002\002\000\000\000\000\111\001\ -\016\002\000\000\000\000\000\000\000\000\000\000\016\002\025\002\ -\000\000\000\000\000\000\002\002\002\002\025\002\000\000\000\000\ -\000\000\000\000\000\000\000\000\026\002\000\000\002\002\026\002\ -\000\000\002\002\025\002\000\000\025\002\016\002\113\001\016\002\ -\000\000\026\002\000\000\000\000\000\000\000\000\000\000\025\002\ -\016\002\000\000\025\002\000\000\000\000\000\000\026\002\026\002\ -\026\002\026\002\000\000\143\001\000\000\000\000\143\001\000\000\ -\000\000\114\001\000\000\143\001\000\000\026\002\000\000\000\000\ -\143\001\000\000\000\000\000\000\000\000\000\000\143\001\000\000\ -\000\000\000\000\000\000\000\000\000\000\143\001\000\000\143\001\ -\143\001\000\000\000\000\017\002\115\001\000\000\000\000\000\000\ -\000\000\017\002\026\002\000\000\143\001\000\000\000\000\000\000\ -\026\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\026\002\000\000\026\002\ -\017\002\143\001\017\002\117\001\000\000\000\000\000\000\000\000\ -\209\001\143\001\026\002\017\002\082\000\026\002\000\000\143\001\ -\000\000\000\000\000\000\140\001\000\000\000\000\140\001\000\000\ -\000\000\000\000\000\000\140\001\000\000\000\000\143\001\143\001\ -\140\001\209\001\000\000\000\000\000\000\000\000\140\001\000\000\ -\000\000\143\001\000\000\076\000\143\001\140\001\000\000\140\001\ -\140\001\000\000\141\001\000\000\000\000\141\001\000\000\000\000\ -\000\000\000\000\141\001\000\000\140\001\000\000\000\000\141\001\ -\000\000\000\000\000\000\000\000\000\000\141\001\077\000\000\000\ -\000\000\000\000\063\000\000\000\141\001\063\000\141\001\141\001\ -\000\000\140\001\000\000\000\000\000\000\000\000\000\000\063\000\ -\000\000\140\001\000\000\141\001\000\000\000\000\000\000\140\001\ -\000\000\083\000\000\000\000\000\063\000\063\000\063\000\063\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\140\001\140\001\ -\141\001\000\000\000\000\063\000\000\000\000\000\000\000\110\001\ -\141\001\140\001\110\001\000\000\140\001\000\000\141\001\000\000\ -\078\000\000\000\000\000\000\000\110\001\000\000\000\000\000\000\ -\063\000\000\000\110\001\000\000\000\000\141\001\141\001\111\001\ -\063\000\110\001\111\001\110\001\110\001\000\000\063\000\054\000\ -\141\001\000\000\000\000\141\001\111\001\000\000\000\000\000\000\ -\110\001\000\000\111\001\063\000\000\000\063\000\063\000\000\000\ -\000\000\111\001\000\000\111\001\111\001\000\000\113\001\000\000\ -\063\000\113\001\000\000\063\000\000\000\110\001\055\000\000\000\ -\111\001\000\000\000\000\113\001\000\000\110\001\000\000\000\000\ -\000\000\113\001\000\000\110\001\000\000\000\000\000\000\000\000\ -\113\001\114\001\113\001\113\001\114\001\111\001\000\000\000\000\ -\000\000\000\000\110\001\110\001\000\000\111\001\114\001\113\001\ -\000\000\000\000\000\000\111\001\114\001\110\001\000\000\000\000\ -\110\001\000\000\000\000\114\001\115\001\114\001\114\001\115\001\ -\000\000\000\000\111\001\111\001\113\001\059\000\000\000\000\000\ -\000\000\115\001\114\001\000\000\113\001\111\001\000\000\115\001\ -\111\001\000\000\113\001\000\000\000\000\000\000\115\001\000\000\ -\115\001\115\001\000\000\117\001\000\000\000\000\117\001\114\001\ -\051\000\113\001\113\001\000\000\082\000\115\001\000\000\114\001\ -\117\001\000\000\000\000\000\000\113\001\114\001\117\001\113\001\ -\000\000\082\000\138\001\000\000\000\000\117\001\000\000\117\001\ -\117\001\053\000\115\001\000\000\114\001\114\001\082\000\000\000\ -\082\000\082\000\115\001\076\000\117\001\000\000\000\000\114\001\ -\115\001\000\000\114\001\000\000\000\000\082\000\000\000\000\000\ -\076\000\000\000\000\000\000\000\000\000\000\000\000\000\115\001\ -\115\001\117\001\000\000\000\000\000\000\076\000\077\000\076\000\ -\076\000\117\001\115\001\000\000\000\000\115\001\000\000\117\001\ -\000\000\000\000\082\000\077\000\076\000\050\000\000\000\000\000\ -\082\000\000\000\000\000\000\000\000\000\000\000\117\001\117\001\ -\077\000\083\000\077\000\077\000\000\000\000\000\000\000\082\000\ -\000\000\117\001\000\000\000\000\117\001\000\000\083\000\077\000\ -\000\000\076\000\082\000\000\000\044\000\082\000\000\000\076\000\ -\000\000\000\000\000\000\083\000\000\000\083\000\083\000\000\000\ -\078\000\000\000\000\000\000\000\000\000\000\000\076\000\000\000\ -\000\000\000\000\083\000\052\000\077\000\078\000\000\000\042\000\ -\000\000\076\000\077\000\000\000\076\000\000\000\000\000\054\000\ -\000\000\000\000\078\000\000\000\078\000\078\000\000\000\000\000\ -\000\000\077\000\048\000\000\000\054\000\000\000\000\000\083\000\ -\000\000\078\000\000\000\000\000\077\000\083\000\000\000\077\000\ -\000\000\054\000\000\000\054\000\054\000\000\000\055\000\000\000\ -\000\000\000\000\000\000\000\000\083\000\000\000\000\000\054\000\ -\054\000\000\000\000\000\055\000\000\000\000\000\078\000\083\000\ -\000\000\000\000\083\000\000\000\078\000\000\000\000\000\000\000\ -\055\000\000\000\055\000\055\000\000\000\054\000\049\000\000\000\ -\000\000\000\000\000\000\078\000\000\000\054\000\055\000\055\000\ -\000\000\000\000\000\000\054\000\000\000\000\000\078\000\000\000\ -\000\000\078\000\000\000\000\000\000\000\059\000\000\000\000\000\ -\059\000\000\000\054\000\054\000\055\000\000\000\000\000\000\000\ -\000\000\000\000\059\000\000\000\055\000\054\000\000\000\000\000\ -\000\000\000\000\055\000\000\000\000\000\000\000\000\000\059\000\ -\051\000\059\000\059\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\055\000\055\000\000\000\000\000\051\000\059\000\000\000\ -\000\000\000\000\138\001\000\000\055\000\000\000\000\000\000\000\ -\000\000\053\000\051\000\000\000\051\000\051\000\000\000\138\001\ -\000\000\000\000\000\000\059\000\000\000\000\000\053\000\000\000\ -\000\000\051\000\000\000\059\000\138\001\000\000\138\001\138\001\ -\000\000\059\000\000\000\053\000\000\000\053\000\053\000\000\000\ -\000\000\000\000\000\000\138\001\000\000\000\000\051\000\000\000\ -\059\000\059\000\053\000\000\000\000\000\000\000\051\000\000\000\ -\000\000\000\000\000\000\059\000\051\000\050\000\000\000\000\000\ -\138\001\000\000\000\000\000\000\000\000\000\000\000\000\053\000\ -\138\001\000\000\050\000\051\000\051\000\000\000\138\001\053\000\ -\000\000\000\000\000\000\000\000\000\000\053\000\051\000\050\000\ -\000\000\050\000\050\000\000\000\044\000\138\001\138\001\000\000\ -\000\000\000\000\000\000\000\000\053\000\053\000\050\000\000\000\ -\138\001\044\000\000\000\000\000\000\000\000\000\000\000\053\000\ -\000\000\000\000\000\000\052\000\000\000\000\000\044\000\042\000\ -\044\000\044\000\000\000\050\000\000\000\000\000\000\000\000\000\ -\052\000\000\000\000\000\050\000\042\000\044\000\000\000\000\000\ -\000\000\050\000\048\000\000\000\000\000\052\000\000\000\052\000\ -\052\000\042\000\000\000\042\000\042\000\000\000\000\000\048\000\ -\050\000\050\000\044\000\000\000\052\000\000\000\000\000\000\000\ -\042\000\000\000\044\000\050\000\048\000\000\000\048\000\048\000\ -\044\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\052\000\000\000\048\000\000\000\042\000\000\000\044\000\ -\044\000\052\000\000\000\000\000\000\000\042\000\049\000\052\000\ -\000\000\000\000\044\000\042\000\000\000\000\000\000\000\000\000\ -\048\000\000\000\000\000\049\000\000\000\000\000\052\000\052\000\ -\048\000\000\000\042\000\042\000\000\000\000\000\048\000\000\000\ -\049\000\052\000\049\000\049\000\000\000\042\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\048\000\048\000\049\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\049\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\049\000\000\000\000\000\000\000\ -\163\000\164\000\049\000\000\000\007\000\008\000\165\000\000\000\ -\166\000\000\000\010\000\011\000\000\000\000\000\167\000\168\000\ -\000\000\049\000\049\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\169\000\000\000\049\000\015\000\016\000\017\000\ -\018\000\019\000\000\000\170\000\000\000\000\000\020\000\000\000\ -\000\000\171\000\172\000\173\000\174\000\175\000\000\000\000\000\ -\022\000\023\000\024\000\000\000\025\000\026\000\027\000\028\000\ -\029\000\000\000\000\000\176\000\000\000\102\000\031\000\032\000\ -\033\000\000\000\177\000\178\000\000\000\179\000\000\000\037\000\ -\038\000\039\000\000\000\000\000\000\000\180\000\181\000\182\000\ -\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\184\000\000\000\000\000\000\000\000\000\185\000\045\000\000\000\ -\000\000\000\000\000\000\046\000\047\000\000\000\049\000\000\000\ -\163\000\164\000\000\000\050\000\007\000\008\000\165\000\000\000\ -\166\000\000\000\010\000\011\000\000\000\000\000\000\000\168\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\169\000\000\000\000\000\015\000\016\000\017\000\ -\018\000\019\000\000\000\170\000\000\000\000\000\020\000\000\000\ -\000\000\171\000\172\000\173\000\174\000\175\000\000\000\000\000\ -\022\000\023\000\024\000\000\000\025\000\026\000\027\000\028\000\ -\029\000\000\000\000\000\176\000\000\000\102\000\031\000\032\000\ -\033\000\000\000\177\000\178\000\000\000\179\000\000\000\037\000\ -\038\000\039\000\000\000\000\000\000\000\180\000\181\000\182\000\ -\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\184\000\000\000\000\000\000\000\000\000\185\000\045\000\000\000\ -\000\000\000\000\000\000\046\000\047\000\000\000\049\000\000\000\ -\163\000\164\000\000\000\050\000\007\000\008\000\165\000\000\000\ -\166\000\000\000\010\000\011\000\000\000\000\000\000\000\168\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\169\000\000\000\000\000\015\000\016\000\017\000\ -\018\000\019\000\000\000\170\000\000\000\000\000\020\000\000\000\ -\000\000\171\000\172\000\173\000\174\000\175\000\000\000\000\000\ -\022\000\023\000\024\000\000\000\025\000\026\000\027\000\028\000\ -\029\000\000\000\000\000\176\000\000\000\102\000\031\000\032\000\ -\033\000\000\000\177\000\178\000\000\000\000\000\000\000\037\000\ -\038\000\039\000\000\000\000\000\000\000\180\000\181\000\182\000\ -\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\185\000\045\000\000\000\ -\000\000\000\000\000\000\046\000\047\000\000\000\049\000\000\000\ -\217\001\000\000\000\000\050\000\217\001\000\000\217\001\000\000\ -\217\001\000\000\217\001\000\000\217\001\000\000\217\001\217\001\ -\000\000\217\001\217\001\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\217\001\000\000\000\000\217\001\217\001\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\217\001\217\001\217\001\217\001\000\000\217\001\000\000\ -\217\001\217\001\000\000\000\000\000\000\000\000\000\000\217\001\ -\217\001\000\000\000\000\217\001\000\000\217\001\000\000\000\000\ -\217\001\000\000\000\000\000\000\000\000\217\001\008\000\217\001\ -\151\002\000\000\000\000\217\001\000\000\000\000\217\001\217\001\ -\000\000\217\001\217\001\000\000\217\001\168\001\000\000\217\001\ -\000\000\168\001\217\001\000\000\217\001\000\000\000\000\217\001\ -\217\001\000\000\000\000\217\001\000\000\000\000\168\001\000\000\ -\168\001\000\000\000\000\155\001\000\000\000\000\000\000\168\001\ -\168\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\242\001\168\001\243\001\244\001\245\001\000\000\000\000\254\001\ -\246\001\000\000\000\000\000\000\168\001\168\001\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\255\001\000\000\000\000\ -\000\000\000\000\000\000\000\002\168\001\247\001\000\000\168\001\ -\000\000\000\000\168\001\000\000\248\001\007\000\008\000\009\000\ -\000\000\000\000\000\000\010\000\011\000\012\000\000\000\089\000\ -\249\001\000\000\155\001\168\001\000\000\000\000\000\000\168\001\ -\000\000\168\001\000\000\168\001\013\000\014\000\015\000\016\000\ -\017\000\018\000\019\000\000\000\168\001\000\000\168\001\020\000\ -\000\000\021\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\022\000\023\000\024\000\000\000\025\000\026\000\027\000\ -\028\000\029\000\000\000\000\000\000\000\000\000\030\000\031\000\ -\032\000\033\000\000\000\034\000\035\000\000\000\036\000\000\000\ -\037\000\038\000\039\000\000\000\040\000\000\000\000\000\041\000\ -\042\000\043\000\000\000\000\000\000\000\000\000\007\000\008\000\ -\009\000\000\000\000\000\044\000\010\000\011\000\012\000\045\000\ -\000\000\000\000\000\000\000\000\046\000\047\000\048\000\049\000\ -\000\000\000\000\000\000\000\000\050\000\013\000\014\000\015\000\ -\016\000\017\000\018\000\019\000\000\000\000\000\000\000\000\000\ -\020\000\000\000\021\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\022\000\023\000\024\000\000\000\025\000\026\000\ -\027\000\028\000\029\000\000\000\000\000\000\000\000\000\030\000\ -\031\000\032\000\033\000\000\000\034\000\035\000\000\000\036\000\ -\000\000\037\000\038\000\039\000\000\000\040\000\000\000\000\000\ -\041\000\042\000\043\000\000\000\163\000\164\000\000\000\000\000\ -\000\000\008\000\021\001\000\000\166\000\000\000\000\000\113\000\ -\045\000\000\000\000\000\168\000\000\000\046\000\047\000\048\000\ -\049\000\000\000\000\000\000\000\000\000\050\000\169\000\000\000\ -\000\000\015\000\016\000\000\000\000\000\000\000\000\000\170\000\ -\000\000\000\000\000\000\000\000\000\000\171\000\172\000\173\000\ -\174\000\175\000\000\000\000\000\022\000\023\000\024\000\000\000\ -\053\001\115\000\000\000\116\000\117\000\000\000\000\000\176\000\ -\000\000\000\000\086\000\054\001\000\000\000\000\063\001\023\001\ -\000\000\064\001\000\000\037\000\000\000\000\000\000\000\000\000\ -\000\000\180\000\065\001\025\001\026\001\163\000\164\000\000\000\ -\000\000\000\000\008\000\021\001\184\000\166\000\000\000\123\000\ -\113\000\185\000\045\000\013\002\168\000\000\000\000\000\046\000\ -\000\000\066\001\049\000\125\000\000\000\000\000\000\000\169\000\ -\000\000\000\000\015\000\016\000\000\000\000\000\000\000\000\000\ -\170\000\000\000\000\000\000\000\000\000\000\000\171\000\172\000\ -\173\000\174\000\175\000\000\000\000\000\022\000\023\000\024\000\ -\000\000\053\001\115\000\000\000\116\000\117\000\000\000\000\000\ -\176\000\000\000\000\000\086\000\054\001\000\000\000\000\063\001\ -\023\001\000\000\064\001\000\000\037\000\000\000\000\000\000\000\ -\000\000\000\000\180\000\065\001\025\001\026\001\163\000\164\000\ -\000\000\000\000\000\000\008\000\021\001\184\000\166\000\000\000\ -\123\000\113\000\185\000\045\000\000\000\168\000\000\000\000\000\ -\046\000\000\000\000\000\049\000\125\000\000\000\000\000\000\000\ -\169\000\000\000\000\000\015\000\016\000\000\000\000\000\000\000\ -\000\000\170\000\000\000\000\000\000\000\000\000\000\000\171\000\ -\172\000\173\000\174\000\175\000\000\000\000\000\022\000\023\000\ -\024\000\000\000\053\001\115\000\000\000\116\000\117\000\000\000\ -\000\000\176\000\000\000\000\000\086\000\054\001\000\000\000\000\ -\063\001\023\001\000\000\064\001\000\000\037\000\000\000\000\000\ -\000\000\000\000\000\000\180\000\065\001\025\001\026\001\163\000\ -\164\000\000\000\000\000\000\000\008\000\021\001\184\000\166\000\ -\000\000\123\000\113\000\185\000\045\000\000\000\168\000\000\000\ -\000\000\046\000\000\000\035\002\049\000\125\000\000\000\000\000\ -\000\000\169\000\000\000\000\000\015\000\016\000\000\000\000\000\ -\000\000\000\000\170\000\000\000\000\000\000\000\000\000\000\000\ -\171\000\172\000\173\000\174\000\175\000\000\000\000\000\022\000\ -\023\000\024\000\000\000\053\001\115\000\000\000\116\000\117\000\ -\000\000\000\000\176\000\000\000\000\000\086\000\054\001\000\000\ -\000\000\063\001\023\001\000\000\064\001\000\000\037\000\000\000\ -\000\000\000\000\000\000\000\000\180\000\065\001\025\001\026\001\ -\163\000\164\000\000\000\000\000\000\000\008\000\021\001\184\000\ -\166\000\000\000\123\000\113\000\185\000\045\000\000\000\168\000\ -\000\000\000\000\046\000\000\000\230\002\049\000\125\000\000\000\ -\000\000\000\000\169\000\000\000\000\000\015\000\016\000\000\000\ -\000\000\000\000\000\000\170\000\000\000\000\000\000\000\000\000\ -\000\000\171\000\172\000\173\000\174\000\175\000\000\000\000\000\ -\022\000\023\000\024\000\000\000\053\001\115\000\000\000\116\000\ -\117\000\000\000\000\000\176\000\000\000\000\000\086\000\054\001\ -\000\000\000\000\063\001\023\001\000\000\064\001\000\000\037\000\ -\000\000\000\000\000\000\000\000\000\000\180\000\065\001\025\001\ -\026\001\000\000\000\000\007\000\008\000\009\000\000\000\000\000\ -\184\000\010\000\011\000\123\000\000\000\185\000\045\000\000\000\ -\000\000\000\000\000\000\046\000\000\000\000\000\049\000\125\000\ -\101\000\000\000\000\000\000\000\015\000\016\000\017\000\018\000\ -\019\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\000\ -\023\000\024\000\000\000\025\000\026\000\027\000\028\000\029\000\ -\000\000\000\000\000\000\000\000\102\000\031\000\032\000\033\000\ -\000\000\034\000\035\000\000\000\000\000\000\000\037\000\038\000\ -\039\000\000\000\000\000\000\000\000\000\041\000\042\000\043\000\ -\000\000\000\000\007\000\008\000\009\000\000\000\000\000\000\000\ -\010\000\011\000\000\000\000\000\000\000\045\000\000\000\000\000\ -\000\000\000\000\046\000\047\000\000\000\049\000\000\000\000\000\ -\000\000\000\000\050\000\015\000\016\000\017\000\018\000\019\000\ -\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\022\000\023\000\ -\024\000\000\000\025\000\026\000\027\000\028\000\029\000\000\000\ -\000\000\000\000\000\000\102\000\031\000\032\000\033\000\000\000\ -\034\000\035\000\000\000\000\000\000\000\037\000\038\000\039\000\ -\000\000\000\000\000\000\000\000\041\000\042\000\043\000\000\000\ -\000\000\007\000\008\000\009\000\154\000\000\000\157\000\010\000\ -\011\000\000\000\000\000\000\000\045\000\000\000\000\000\000\000\ -\000\000\046\000\047\000\000\000\049\000\000\000\000\000\000\000\ -\000\000\050\000\015\000\016\000\017\000\018\000\019\000\000\000\ -\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\022\000\023\000\024\000\ -\000\000\025\000\026\000\027\000\028\000\029\000\000\000\000\000\ -\000\000\000\000\102\000\031\000\032\000\033\000\000\000\034\000\ -\035\000\000\000\000\000\000\000\037\000\038\000\039\000\000\000\ -\000\000\000\000\000\000\041\000\042\000\043\000\000\000\000\000\ -\059\002\059\002\059\002\000\000\000\000\000\000\059\002\059\002\ -\000\000\000\000\000\000\045\000\000\000\000\000\000\000\000\000\ -\046\000\047\000\000\000\049\000\000\000\000\000\000\000\000\000\ -\050\000\059\002\059\002\059\002\059\002\059\002\000\000\000\000\ -\000\000\000\000\059\002\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\059\002\059\002\059\002\000\000\ -\059\002\059\002\059\002\059\002\059\002\000\000\000\000\000\000\ -\000\000\059\002\059\002\059\002\059\002\000\000\059\002\059\002\ -\000\000\000\000\000\000\059\002\059\002\059\002\000\000\000\000\ -\000\000\000\000\059\002\059\002\059\002\000\000\000\000\060\002\ -\060\002\060\002\000\000\000\000\247\001\060\002\060\002\000\000\ -\000\000\000\000\059\002\000\000\000\000\000\000\000\000\059\002\ -\059\002\000\000\059\002\000\000\000\000\000\000\000\000\059\002\ -\060\002\060\002\060\002\060\002\060\002\000\000\000\000\000\000\ -\000\000\060\002\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\060\002\060\002\060\002\000\000\060\002\ -\060\002\060\002\060\002\060\002\000\000\000\000\000\000\000\000\ -\060\002\060\002\060\002\060\002\000\000\060\002\060\002\000\000\ -\000\000\000\000\060\002\060\002\060\002\000\000\000\000\000\000\ -\000\000\060\002\060\002\060\002\000\000\000\000\061\002\061\002\ -\061\002\000\000\000\000\248\001\061\002\061\002\000\000\000\000\ -\000\000\060\002\000\000\000\000\000\000\000\000\060\002\060\002\ -\000\000\060\002\000\000\000\000\000\000\000\000\060\002\061\002\ -\061\002\061\002\061\002\061\002\000\000\000\000\000\000\000\000\ -\061\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\061\002\061\002\061\002\000\000\061\002\061\002\ -\061\002\061\002\061\002\000\000\000\000\000\000\000\000\061\002\ -\061\002\061\002\061\002\000\000\061\002\061\002\000\000\000\000\ -\000\000\061\002\061\002\061\002\000\000\000\000\000\000\000\000\ -\061\002\061\002\061\002\000\000\000\000\062\002\062\002\062\002\ -\000\000\000\000\245\001\062\002\062\002\000\000\000\000\000\000\ -\061\002\000\000\000\000\000\000\000\000\061\002\061\002\000\000\ -\061\002\000\000\000\000\000\000\000\000\061\002\062\002\062\002\ -\062\002\062\002\062\002\000\000\000\000\000\000\000\000\062\002\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\062\002\062\002\062\002\000\000\062\002\062\002\062\002\ -\062\002\062\002\000\000\000\000\000\000\000\000\062\002\062\002\ -\062\002\062\002\000\000\062\002\062\002\000\000\000\000\000\000\ -\062\002\062\002\062\002\000\000\000\000\000\000\000\000\062\002\ -\062\002\062\002\000\000\000\000\007\000\008\000\009\000\000\000\ -\000\000\246\001\010\000\011\000\000\000\000\000\000\000\062\002\ -\000\000\000\000\000\000\000\000\062\002\062\002\000\000\062\002\ -\000\000\000\000\000\000\000\000\062\002\015\000\016\000\017\000\ -\018\000\019\000\000\000\000\000\000\000\000\000\020\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\022\000\023\000\024\000\000\000\025\000\026\000\027\000\028\000\ -\029\000\000\000\000\000\000\000\000\000\102\000\031\000\032\000\ -\033\000\000\000\034\000\035\000\008\000\000\000\000\000\037\000\ -\038\000\039\000\113\000\000\000\000\000\000\000\041\000\042\000\ -\043\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\015\000\016\000\045\000\000\000\ -\000\000\000\000\000\000\046\000\047\000\000\000\049\000\000\000\ -\000\000\000\000\000\000\050\000\000\000\000\000\000\000\022\000\ -\023\000\024\000\114\000\000\000\115\000\000\000\116\000\117\000\ -\000\000\000\000\000\000\000\000\000\000\086\000\091\001\008\000\ -\000\000\119\000\000\000\092\001\000\000\113\000\037\000\067\002\ -\000\000\000\000\127\001\120\000\000\000\121\000\000\000\000\000\ -\000\000\122\000\000\000\000\000\068\002\000\000\000\000\015\000\ -\016\000\000\000\123\000\000\000\000\000\045\000\000\000\000\000\ -\124\000\000\000\046\000\000\000\000\000\049\000\125\000\000\000\ -\000\000\093\001\022\000\023\000\024\000\114\000\000\000\115\000\ -\000\000\116\000\117\000\000\000\000\000\000\000\000\000\000\000\ -\086\000\069\002\008\000\000\000\119\000\000\000\000\000\000\000\ -\113\000\037\000\126\001\000\000\000\000\127\001\120\000\000\000\ -\121\000\000\000\000\000\000\000\122\000\000\000\000\000\068\002\ -\000\000\000\000\015\000\016\000\000\000\123\000\000\000\000\000\ -\045\000\000\000\000\000\124\000\000\000\046\000\000\000\000\000\ -\049\000\125\000\000\000\000\000\000\000\022\000\023\000\024\000\ -\114\000\000\000\115\000\000\000\116\000\117\000\000\000\000\000\ -\000\000\000\000\000\000\086\000\069\002\008\000\000\000\119\000\ -\000\000\000\000\000\000\113\000\037\000\147\002\000\000\000\000\ -\000\000\120\000\000\000\121\000\000\000\000\000\000\000\122\000\ -\000\000\000\000\148\002\000\000\000\000\015\000\016\000\000\000\ -\123\000\000\000\000\000\045\000\000\000\000\000\124\000\000\000\ -\046\000\000\000\000\000\049\000\125\000\000\000\000\000\000\000\ -\022\000\023\000\024\000\114\000\000\000\115\000\000\000\116\000\ -\117\000\000\000\000\000\000\000\000\000\000\000\086\000\046\001\ -\008\000\000\000\119\000\000\000\000\000\000\000\113\000\037\000\ -\067\004\000\000\000\000\000\000\120\000\000\000\121\000\000\000\ -\000\000\000\000\122\000\000\000\000\000\068\002\000\000\000\000\ -\015\000\016\000\000\000\123\000\000\000\000\000\045\000\000\000\ -\000\000\124\000\000\000\046\000\000\000\000\000\049\000\125\000\ -\000\000\000\000\000\000\022\000\023\000\024\000\114\000\000\000\ -\115\000\000\000\116\000\117\000\000\000\000\000\000\000\000\000\ -\008\000\086\000\069\002\000\000\000\000\119\000\113\000\000\000\ -\000\000\000\000\037\000\000\000\000\000\000\000\000\000\120\000\ -\000\000\121\000\000\000\000\000\000\000\122\000\000\000\000\000\ -\015\000\016\000\000\000\000\000\000\000\000\000\123\000\000\000\ -\000\000\045\000\000\000\000\000\124\000\000\000\046\000\000\000\ -\000\000\049\000\125\000\022\000\023\000\024\000\114\000\000\000\ -\115\000\000\000\116\000\117\000\000\000\000\000\000\000\000\000\ -\008\000\086\000\046\001\000\000\000\000\119\000\113\000\033\004\ -\000\000\000\000\037\000\000\000\000\000\000\000\000\000\120\000\ -\000\000\121\000\000\000\000\000\000\000\122\000\000\000\000\000\ -\015\000\016\000\000\000\000\000\000\000\000\000\123\000\000\000\ -\000\000\045\000\000\000\000\000\124\000\000\000\046\000\000\000\ -\000\000\049\000\125\000\022\000\023\000\024\000\114\000\000\000\ -\115\000\000\000\116\000\117\000\000\000\000\000\000\000\000\000\ -\008\000\086\000\118\000\000\000\000\000\119\000\113\000\000\000\ -\000\000\000\000\037\000\000\000\000\000\000\000\000\000\120\000\ -\000\000\121\000\000\000\000\000\000\000\122\000\000\000\000\000\ -\015\000\016\000\000\000\000\000\000\000\000\000\123\000\000\000\ -\000\000\045\000\000\000\000\000\124\000\000\000\046\000\000\000\ -\000\000\049\000\125\000\022\000\023\000\024\000\114\000\000\000\ -\115\000\000\000\116\000\117\000\000\000\000\000\000\000\000\000\ -\008\000\086\000\046\001\000\000\000\000\119\000\113\000\000\000\ -\000\000\000\000\037\000\000\000\000\000\000\000\000\000\120\000\ -\000\000\121\000\000\000\000\000\000\000\122\000\000\000\000\000\ -\015\000\016\000\000\000\000\000\000\000\000\000\123\000\000\000\ -\000\000\045\000\000\000\000\000\124\000\000\000\046\000\000\000\ -\000\000\049\000\125\000\022\000\023\000\024\000\000\000\053\001\ -\115\000\000\000\116\000\117\000\000\000\000\000\000\000\000\000\ -\000\000\086\000\054\001\008\000\000\000\119\000\000\000\061\001\ -\000\000\113\000\037\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\121\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\154\000\000\000\015\000\016\000\000\000\123\000\000\000\ -\000\000\045\000\000\000\000\000\000\000\000\000\046\000\000\000\ -\000\000\049\000\125\000\000\000\000\000\000\000\022\000\023\000\ -\024\000\000\000\053\001\115\000\000\000\116\000\117\000\000\000\ -\000\000\000\000\000\000\008\000\086\000\054\001\000\000\000\000\ -\119\000\113\000\000\000\000\000\000\000\037\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\121\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\015\000\016\000\000\000\000\000\000\000\ -\000\000\123\000\000\000\000\000\045\000\000\000\000\000\000\000\ -\000\000\046\000\000\000\000\000\049\000\125\000\022\000\023\000\ -\024\000\000\000\053\001\115\000\000\000\116\000\117\000\000\000\ -\000\000\000\000\000\000\055\002\086\000\054\001\000\000\000\000\ -\119\000\055\002\000\000\000\000\000\000\037\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\121\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\055\002\055\002\000\000\000\000\000\000\ -\000\000\123\000\000\000\000\000\045\000\000\000\000\000\000\000\ -\000\000\046\000\000\000\000\000\049\000\125\000\055\002\055\002\ -\055\002\000\000\055\002\055\002\000\000\055\002\055\002\000\000\ -\000\000\000\000\000\000\043\002\055\002\055\002\000\000\000\000\ -\055\002\043\002\000\000\000\000\000\000\055\002\000\000\000\000\ -\000\000\000\000\000\000\000\000\055\002\000\000\000\000\000\000\ -\000\000\000\000\000\000\043\002\043\002\000\000\000\000\000\000\ -\000\000\055\002\000\000\000\000\055\002\000\000\000\000\000\000\ -\000\000\055\002\000\000\000\000\055\002\055\002\043\002\043\002\ -\043\002\000\000\043\002\043\002\000\000\043\002\043\002\000\000\ -\000\000\000\000\000\000\008\000\043\002\043\002\000\000\000\000\ -\043\002\113\000\000\000\000\000\000\000\043\002\000\000\000\000\ -\000\000\000\000\000\000\000\000\043\002\000\000\000\000\000\000\ -\000\000\000\000\000\000\015\000\016\000\000\000\000\000\000\000\ -\000\000\043\002\000\000\000\000\043\002\000\000\000\000\000\000\ -\000\000\043\002\000\000\000\000\043\002\043\002\022\000\023\000\ -\024\000\000\000\000\000\115\000\000\000\116\000\117\000\000\000\ -\000\000\000\000\000\000\000\000\086\000\046\001\008\000\009\000\ -\119\000\000\000\000\000\010\000\011\000\037\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\121\000\000\000\240\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\015\000\016\000\ -\000\000\123\000\000\000\000\000\045\000\000\000\000\000\000\000\ -\000\000\046\000\000\000\000\000\049\000\125\000\000\000\000\000\ -\000\000\022\000\023\000\024\000\241\000\000\000\026\000\027\000\ -\028\000\029\000\000\000\000\000\000\000\008\000\009\000\086\000\ -\093\000\000\000\010\000\011\000\000\000\000\000\000\000\000\000\ -\037\000\038\000\000\000\000\000\000\000\242\000\000\000\000\000\ -\000\000\043\000\000\000\243\000\000\000\015\000\016\000\000\000\ -\000\000\000\000\000\000\000\000\244\000\000\000\000\000\045\000\ -\000\000\000\000\245\000\000\000\046\000\000\000\000\000\049\000\ -\022\000\023\000\024\000\241\000\000\000\026\000\027\000\028\000\ -\029\000\000\000\000\000\000\000\008\000\009\000\086\000\093\000\ -\000\000\010\000\011\000\000\000\000\000\000\000\000\000\037\000\ -\038\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\ -\043\000\000\000\243\000\000\000\015\000\016\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\045\000\008\000\ -\009\000\245\000\000\000\046\000\010\000\011\000\049\000\022\000\ -\023\000\024\000\000\000\000\000\026\000\027\000\028\000\029\000\ -\000\000\000\000\000\000\000\000\000\000\086\000\093\000\015\000\ -\016\000\000\000\000\000\000\000\000\000\000\000\037\000\038\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\043\000\ -\000\000\000\000\022\000\023\000\024\000\000\000\000\000\026\000\ -\027\000\028\000\029\000\000\000\000\000\045\000\000\000\000\000\ -\143\000\093\000\046\000\000\000\000\000\049\000\214\002\217\000\ -\218\000\037\000\038\000\000\000\000\000\000\000\000\000\219\000\ -\000\000\000\000\043\000\000\000\215\002\220\000\221\000\216\002\ -\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\045\000\223\000\000\000\000\000\000\000\046\000\000\000\000\000\ -\049\000\000\000\224\000\000\000\000\000\000\000\217\000\218\000\ -\225\000\226\000\227\000\228\000\229\000\000\000\219\000\000\000\ -\000\000\000\000\000\000\000\000\220\000\221\000\000\000\222\000\ -\000\000\000\000\230\000\000\000\000\000\000\000\000\000\000\000\ -\223\000\231\000\232\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\224\000\000\000\000\000\233\000\234\000\235\000\225\000\ -\226\000\227\000\228\000\229\000\000\000\000\000\000\000\217\002\ -\000\000\000\000\000\000\000\000\237\000\163\000\164\000\000\000\ -\000\000\230\000\000\000\021\001\000\000\166\000\000\000\000\000\ -\231\000\232\000\000\000\000\000\168\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\233\000\234\000\235\000\000\000\169\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\236\000\ -\170\000\000\000\000\000\237\000\000\000\000\000\171\000\172\000\ -\173\000\174\000\175\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\217\000\218\000\ -\176\000\000\000\000\000\000\000\000\000\000\000\219\000\022\001\ -\023\001\000\000\000\000\000\000\220\000\221\000\000\000\222\000\ -\000\000\000\000\180\000\024\001\025\001\026\001\212\002\000\000\ -\223\000\000\000\000\000\000\000\000\000\027\001\000\000\000\000\ -\000\000\224\000\185\000\000\000\000\000\217\000\218\000\225\000\ -\226\000\227\000\228\000\229\000\000\000\219\000\000\000\000\000\ -\000\000\000\000\000\000\220\000\221\000\000\000\222\000\000\000\ -\000\000\230\000\000\000\000\000\000\000\000\000\000\000\223\000\ -\231\000\232\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\224\000\000\000\000\000\233\000\234\000\235\000\225\000\226\000\ -\227\000\228\000\229\000\000\000\217\000\218\000\000\000\000\000\ -\000\000\000\000\000\000\237\000\219\000\000\000\000\000\000\000\ -\230\000\000\000\220\000\221\000\000\000\222\000\000\000\231\000\ -\232\000\000\000\000\000\000\000\000\000\000\000\223\000\000\000\ -\000\000\000\000\233\000\234\000\235\000\000\000\000\000\224\000\ -\000\000\000\000\017\003\000\000\000\000\225\000\226\000\227\000\ -\228\000\229\000\237\000\163\000\164\000\000\000\000\000\000\000\ -\000\000\021\001\000\000\166\000\000\000\000\000\000\000\230\000\ -\000\000\000\000\168\000\000\000\000\000\000\000\231\000\232\000\ -\000\000\000\000\000\000\000\000\000\000\169\000\000\000\000\000\ -\000\000\233\000\234\000\235\000\000\000\000\000\170\000\000\000\ -\000\000\045\003\000\000\000\000\171\000\172\000\173\000\174\000\ -\175\000\237\000\217\000\218\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\219\000\000\000\000\000\000\000\176\000\000\000\ -\220\000\221\000\000\000\222\000\000\000\022\001\023\001\000\000\ -\000\000\000\000\000\000\000\000\223\000\000\000\000\000\000\000\ -\180\000\024\001\025\001\026\001\000\000\224\000\000\000\000\000\ -\000\000\217\000\218\000\225\000\226\000\227\000\228\000\229\000\ -\185\000\219\000\000\000\000\000\000\000\000\000\000\000\220\000\ -\221\000\000\000\131\003\000\000\000\000\230\000\000\000\000\000\ -\000\000\000\000\000\000\223\000\231\000\232\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\224\000\000\000\000\000\233\000\ -\234\000\235\000\225\000\226\000\227\000\228\000\229\000\000\000\ -\198\000\198\000\000\000\000\000\000\000\000\000\000\000\237\000\ -\198\000\000\000\000\000\000\000\230\000\000\000\198\000\198\000\ -\000\000\000\000\000\000\231\000\232\000\000\000\000\000\000\000\ -\000\000\000\000\198\000\000\000\000\000\000\000\233\000\234\000\ -\235\000\000\000\000\000\198\000\000\000\000\000\000\000\217\000\ -\218\000\198\000\198\000\198\000\198\000\198\000\237\000\219\000\ -\000\000\000\000\000\000\000\000\000\000\220\000\000\000\000\000\ -\000\000\000\000\000\000\198\000\000\000\000\000\000\000\000\000\ -\000\000\223\000\198\000\198\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\224\000\000\000\000\000\198\000\198\000\198\000\ -\225\000\226\000\227\000\228\000\229\000\198\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\198\000\217\000\218\000\ -\000\000\000\000\230\000\217\000\218\000\000\000\219\000\000\000\ -\000\000\231\000\232\000\000\000\220\000\000\000\000\000\000\000\ -\000\000\220\000\000\000\000\000\233\000\234\000\235\000\000\000\ -\223\000\000\000\000\000\000\000\000\000\223\000\000\000\060\004\ -\000\000\224\000\000\000\000\000\237\000\000\000\224\000\225\000\ -\226\000\227\000\228\000\229\000\225\000\226\000\227\000\228\000\ -\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\230\000\000\000\000\000\000\000\000\000\230\000\000\000\ -\231\000\232\000\000\000\000\000\000\000\231\000\232\000\000\000\ -\000\000\000\000\000\000\233\000\234\000\235\000\000\000\000\000\ -\000\000\234\000\235\000\000\000\000\000\051\003\000\000\243\001\ -\244\001\245\001\000\000\237\000\052\003\246\001\000\000\000\000\ -\237\000\000\000\000\000\000\000\000\000\000\000\000\000\053\003\ -\000\000\000\000\054\003\000\000\000\000\000\000\000\000\000\000\ -\055\003\000\000\247\001\242\001\000\000\243\001\244\001\245\001\ -\000\000\248\001\254\001\246\001\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\089\000\249\001\000\000\000\000\ -\255\001\000\000\000\000\000\000\000\000\000\000\000\002\000\000\ -\226\002\242\001\000\000\243\001\244\001\245\001\000\000\248\001\ -\254\001\246\001\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\120\004\089\000\249\001\000\000\000\000\255\001\000\000\ -\000\000\000\000\000\000\000\000\000\002\000\000\247\001\242\001\ -\000\000\243\001\244\001\245\001\000\000\248\001\254\001\246\001\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\089\000\249\001\000\000\000\000\255\001\000\000\000\000\000\000\ -\000\000\000\000\000\002\000\000\226\002\198\001\000\000\198\001\ -\198\001\198\001\000\000\248\001\198\001\198\001\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\000\000\089\000\249\001\ -\000\000\000\000\198\001\000\000\000\000\000\000\000\000\000\000\ -\198\001\000\000\198\001\153\001\000\000\153\001\153\001\153\001\ -\000\000\198\001\153\001\153\001\000\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\198\001\198\001\000\000\000\000\ -\153\001\000\000\000\000\000\000\000\000\000\000\153\001\000\000\ -\153\001\000\000\000\000\000\000\000\000\000\000\000\000\153\001\ -\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\000\000\153\001\153\001" - -let yycheck = "\003\000\ -\004\000\027\000\005\000\012\000\115\000\041\001\010\000\038\000\ -\156\000\138\000\158\000\018\000\186\000\102\000\246\000\123\000\ -\020\000\031\001\038\001\018\000\008\000\117\001\094\001\007\000\ -\070\002\009\000\203\000\242\001\032\000\033\000\097\001\131\001\ -\076\002\255\001\147\002\000\000\252\002\253\002\005\003\242\001\ -\044\000\025\000\026\000\047\000\251\002\249\002\050\000\147\001\ -\048\003\242\001\179\000\000\000\116\000\117\000\000\000\125\003\ -\152\002\089\003\162\003\043\000\165\002\136\001\080\000\081\000\ -\082\000\157\002\007\001\159\002\035\001\144\002\000\001\135\000\ -\053\000\054\000\078\000\059\000\067\004\061\000\000\001\063\000\ -\177\002\000\000\024\001\071\000\188\003\035\001\063\001\014\001\ -\008\001\093\000\069\001\000\001\022\001\198\002\000\001\000\001\ -\000\001\027\001\162\000\001\000\000\001\003\000\000\001\000\001\ -\063\001\064\001\016\001\114\000\103\001\086\001\215\002\216\002\ -\000\001\056\001\064\001\094\001\064\003\027\001\022\001\000\001\ -\063\001\165\002\129\000\027\001\213\000\200\001\000\001\118\004\ -\119\004\240\000\000\001\195\000\000\001\014\001\054\001\000\001\ -\017\001\128\004\000\001\037\001\000\001\155\001\044\000\243\001\ -\244\001\104\001\096\001\000\001\075\001\000\001\010\001\053\000\ -\054\000\103\001\198\002\000\001\086\001\099\001\063\001\000\001\ -\090\001\014\001\092\001\037\001\000\001\106\001\063\001\089\001\ -\060\001\010\001\062\001\215\002\216\002\000\001\076\000\030\001\ -\078\000\000\000\087\001\109\001\028\004\165\000\086\001\089\001\ -\000\001\152\003\090\001\178\004\092\001\089\001\038\004\142\003\ -\183\004\184\004\010\001\063\001\000\001\054\003\103\001\183\000\ -\151\003\089\001\190\000\109\001\151\002\109\001\103\001\173\002\ -\089\001\109\001\157\002\051\003\159\002\179\002\000\001\034\003\ -\090\001\087\001\244\000\200\000\201\000\086\001\062\003\031\001\ -\086\001\090\001\045\002\087\001\195\001\000\001\090\001\104\001\ -\236\000\037\001\008\001\103\001\089\001\139\000\089\001\187\003\ -\076\003\015\001\090\004\014\001\089\001\254\000\087\001\055\001\ -\063\001\090\001\058\001\087\001\014\001\015\001\016\001\002\001\ -\030\001\241\000\242\000\086\001\000\001\027\001\246\000\090\001\ -\137\001\084\002\074\001\086\002\018\001\000\001\000\001\087\001\ -\048\004\000\001\090\001\018\000\063\001\000\001\021\000\010\001\ -\054\001\017\001\029\001\026\000\037\001\018\001\090\001\000\001\ -\103\001\104\001\064\001\000\001\008\001\064\001\000\001\038\000\ -\044\001\040\000\200\000\201\000\148\004\000\001\053\001\089\001\ -\013\001\162\003\120\004\000\001\092\001\075\001\000\001\017\001\ -\000\001\132\002\155\003\156\003\103\001\026\001\089\001\028\001\ -\029\001\000\001\027\001\004\001\181\003\109\001\100\001\008\001\ -\006\001\103\001\000\001\188\003\041\001\026\001\015\001\175\003\ -\026\001\018\001\017\001\089\001\000\000\033\004\112\001\094\001\ -\092\001\093\001\086\001\155\001\051\003\093\004\013\001\064\001\ -\018\001\089\001\087\001\014\001\087\001\087\001\000\001\090\001\ -\051\003\070\001\089\001\074\004\087\001\028\001\029\001\076\001\ -\000\001\120\001\051\003\114\000\115\000\116\000\117\000\118\000\ -\089\001\120\001\041\001\228\003\144\002\091\003\092\003\089\001\ -\200\002\076\003\129\000\086\001\069\001\136\001\170\002\090\001\ -\135\000\102\001\213\002\138\000\105\001\177\002\086\001\094\004\ -\211\002\253\001\090\001\027\001\109\001\000\001\154\001\070\001\ -\156\001\087\001\089\001\103\004\011\002\076\001\015\001\000\000\ -\086\001\160\000\000\001\162\000\152\001\096\002\097\002\089\001\ -\000\001\244\002\107\001\028\004\029\004\030\001\089\001\022\001\ -\000\001\000\001\182\001\183\001\179\000\038\004\103\002\102\001\ -\228\003\145\004\105\001\019\001\086\001\235\003\013\001\142\004\ -\008\001\006\001\026\001\019\001\195\000\200\001\086\001\093\003\ -\008\002\008\001\026\001\026\001\008\001\028\001\029\001\064\001\ -\016\002\017\002\018\002\008\001\020\002\021\002\000\000\047\001\ -\048\001\248\001\041\001\245\001\039\003\209\001\041\003\047\001\ -\228\001\229\001\000\001\008\001\018\001\109\001\000\001\238\001\ -\040\002\090\004\066\001\086\001\010\001\015\001\197\003\238\001\ -\004\001\240\000\066\001\100\001\008\001\092\001\103\001\070\001\ -\086\001\019\001\197\003\217\003\030\001\076\001\018\001\036\001\ -\026\001\065\002\003\000\247\001\070\001\004\001\109\001\102\001\ -\015\001\008\001\022\001\106\001\091\001\163\003\034\003\087\001\ -\164\002\105\001\087\001\083\002\004\001\047\001\048\001\102\001\ -\087\001\105\001\105\001\087\001\003\001\018\001\064\001\030\001\ -\031\001\018\001\087\001\148\004\102\001\185\002\102\002\111\003\ -\066\001\040\001\045\002\089\001\008\001\022\001\154\002\046\001\ -\018\001\069\001\087\001\014\001\000\000\022\001\053\001\054\001\ -\055\001\087\001\064\001\058\001\064\002\000\000\066\002\070\002\ -\068\002\040\001\100\001\087\001\027\001\103\001\074\002\070\002\ -\036\001\076\002\094\001\074\001\008\001\078\000\013\001\105\001\ -\092\001\084\002\089\001\086\002\000\001\069\001\052\004\003\001\ -\004\001\164\003\008\001\095\002\091\001\028\001\029\001\094\001\ -\003\001\013\001\014\001\174\003\089\001\064\001\087\001\019\001\ -\036\001\104\001\041\001\106\001\085\001\118\002\026\001\110\001\ -\028\001\029\001\243\002\027\001\085\001\087\001\036\001\155\003\ -\156\003\120\001\027\001\087\001\022\001\041\001\089\001\062\001\ -\008\001\132\002\089\001\047\001\048\001\040\001\008\001\070\001\ -\019\001\067\001\137\001\127\002\171\002\076\001\014\001\150\002\ -\147\002\241\003\062\001\167\003\103\001\079\001\066\001\150\002\ -\252\003\022\001\070\001\087\001\155\001\030\003\146\002\000\001\ -\076\001\000\000\165\002\008\001\047\001\048\001\064\001\102\001\ -\019\001\087\001\181\001\040\001\013\001\089\001\054\001\091\001\ -\092\001\089\001\182\002\193\003\054\001\000\000\063\001\066\001\ -\089\001\026\001\102\001\028\001\029\001\105\001\000\001\089\001\ -\064\001\200\002\004\001\198\002\047\001\030\001\008\001\203\002\ -\041\001\082\001\022\001\063\001\014\001\015\001\210\002\063\001\ -\018\001\054\001\213\002\071\001\215\002\216\002\000\001\066\001\ -\227\001\003\001\222\002\035\001\196\003\062\001\105\001\056\001\ -\022\001\106\001\030\001\013\001\232\002\070\001\063\003\064\001\ -\063\001\085\003\000\001\076\001\045\001\046\001\226\002\238\001\ -\026\001\244\002\028\001\029\001\005\000\049\001\106\001\103\001\ -\064\001\248\001\091\001\092\001\091\001\014\000\105\001\041\001\ -\017\000\018\000\022\001\063\001\064\001\102\001\135\003\000\000\ -\105\001\008\002\064\001\100\001\011\002\083\002\103\001\037\001\ -\103\001\016\002\017\002\018\002\062\001\020\002\021\002\089\001\ -\096\001\022\001\022\001\022\001\070\001\094\001\037\001\103\001\ -\102\002\105\001\076\001\095\001\039\003\101\003\041\003\063\001\ -\100\001\040\002\078\004\103\001\064\001\048\003\014\001\035\001\ -\061\001\091\001\092\001\063\001\000\001\022\001\061\003\081\003\ -\063\001\168\003\133\004\027\001\102\001\000\001\061\003\105\001\ -\003\001\013\001\065\002\064\001\064\001\064\001\069\002\070\002\ -\180\003\085\001\013\001\063\001\064\001\251\003\026\001\103\001\ -\028\001\029\001\070\001\067\003\083\002\063\001\064\001\026\001\ -\027\001\028\001\029\001\199\003\104\001\041\001\085\001\064\001\ -\064\001\114\000\000\001\116\000\117\000\118\000\041\001\102\002\ -\111\003\093\001\000\001\063\001\096\003\001\004\089\001\018\001\ -\129\000\104\001\062\001\103\001\063\001\143\003\135\000\145\003\ -\056\001\147\003\070\001\062\001\023\001\103\001\237\003\063\001\ -\076\001\193\003\109\001\070\001\026\001\063\001\064\001\037\001\ -\092\001\076\001\074\001\000\000\128\003\091\001\000\001\091\001\ -\092\001\162\000\033\001\103\001\091\001\148\002\089\001\150\002\ -\091\001\092\001\102\001\082\001\103\001\105\001\000\001\162\003\ -\063\001\164\003\030\001\102\001\063\001\063\001\105\001\103\001\ -\026\001\056\001\109\001\174\003\171\002\103\001\013\001\062\001\ -\063\001\064\001\195\000\106\001\063\001\212\003\055\004\190\003\ -\026\001\188\003\063\001\074\001\056\001\028\001\029\001\190\003\ -\087\001\004\001\013\001\063\001\064\001\008\001\023\001\216\000\ -\103\001\200\002\041\001\014\001\015\001\103\001\106\001\018\001\ -\085\001\028\001\029\001\036\001\196\003\089\001\063\001\064\001\ -\103\001\003\001\222\003\245\003\103\001\247\003\041\001\062\001\ -\250\003\228\003\103\001\089\001\235\003\000\001\000\004\070\001\ -\100\001\109\001\126\004\103\001\235\003\076\001\063\001\063\001\ -\001\001\248\003\063\001\062\001\243\002\006\001\054\004\109\001\ -\056\001\248\003\249\002\070\001\091\001\092\001\103\001\026\001\ -\054\001\076\001\056\001\063\001\035\004\063\001\064\001\102\001\ -\063\001\063\001\064\001\028\001\015\004\016\004\031\001\092\001\ -\091\001\092\001\063\001\022\004\000\001\000\001\089\001\103\001\ -\102\001\028\004\103\001\102\001\106\001\046\001\054\001\030\003\ -\056\001\089\001\033\003\038\004\053\001\054\001\055\001\063\001\ -\064\001\058\001\000\001\103\001\013\001\103\001\026\001\026\001\ -\103\001\103\001\000\000\085\001\000\001\109\001\058\004\070\001\ -\082\001\074\001\103\001\028\001\029\001\076\001\061\003\014\001\ -\007\000\064\003\009\000\071\004\026\001\095\004\104\001\000\001\ -\041\001\088\001\091\001\018\000\000\001\094\001\026\001\103\001\ -\106\001\004\001\025\000\026\000\088\001\008\001\010\001\090\004\ -\105\001\018\001\093\004\064\001\015\001\062\001\067\001\018\001\ -\027\001\015\001\102\001\103\001\043\000\070\001\101\003\120\001\ -\027\001\004\001\079\001\076\001\023\001\008\001\114\004\014\001\ -\111\003\122\000\017\001\124\000\059\000\143\004\061\000\018\001\ -\063\000\125\004\091\001\016\001\027\001\043\001\044\001\045\001\ -\046\001\022\001\133\004\022\001\088\001\102\001\027\001\144\004\ -\135\003\000\000\155\001\000\001\166\004\167\004\003\001\169\004\ -\170\004\148\004\102\001\103\001\064\001\067\001\068\001\067\001\ -\013\001\014\001\000\001\159\004\015\001\063\001\064\001\018\001\ -\000\001\079\001\080\001\079\001\010\001\026\001\027\001\028\001\ -\029\001\168\003\010\001\114\000\097\001\116\000\117\000\118\000\ -\094\001\031\001\064\001\040\001\041\001\000\001\000\000\064\001\ -\188\004\063\001\129\000\022\001\187\003\008\001\027\001\190\003\ -\135\000\071\001\193\003\049\001\050\001\051\001\106\001\063\001\ -\064\001\062\001\110\001\064\001\027\001\016\001\004\001\018\001\ -\090\001\070\001\008\001\063\001\064\001\212\003\007\000\076\001\ -\009\000\015\001\072\001\162\000\018\001\238\001\165\000\004\001\ -\090\001\018\000\103\001\008\001\089\001\089\001\091\001\092\001\ -\025\000\026\000\015\001\090\001\235\003\018\001\237\003\089\001\ -\183\000\102\001\109\001\031\001\105\001\103\001\022\001\008\002\ -\109\001\248\003\043\000\003\001\195\000\109\001\015\002\016\002\ -\017\002\018\002\063\001\020\002\021\002\049\001\050\001\051\001\ -\015\001\020\001\059\000\004\001\061\000\004\001\063\000\008\001\ -\088\001\008\001\063\001\103\001\063\001\014\001\015\001\040\002\ -\015\001\018\001\091\001\018\001\072\001\001\000\002\000\003\000\ -\004\000\005\000\033\004\103\001\035\004\044\001\045\001\046\001\ -\003\001\063\001\241\000\242\000\012\001\022\001\027\001\246\000\ -\065\002\090\001\000\001\018\001\069\002\070\002\090\001\054\004\ -\055\004\103\001\063\001\063\001\067\001\068\001\008\001\013\001\ -\103\001\114\000\083\002\116\000\117\000\118\000\103\001\089\001\ -\079\001\080\001\064\001\014\001\026\001\033\001\028\001\029\001\ -\129\000\003\001\027\001\103\001\046\001\102\002\135\000\094\001\ -\031\001\027\001\061\001\041\001\003\001\075\001\014\001\064\001\ -\102\001\109\001\014\001\022\001\056\001\103\001\063\001\046\001\ -\103\004\085\001\062\001\063\001\064\001\087\001\053\001\054\001\ -\055\001\162\000\089\001\058\001\165\000\006\001\074\001\136\002\ -\070\001\094\001\014\001\063\001\027\001\089\001\076\001\027\001\ -\000\000\094\001\089\001\074\001\014\001\150\002\183\000\089\001\ -\063\001\000\001\069\001\014\001\003\001\091\001\027\001\040\001\ -\027\001\017\001\195\000\103\001\091\001\014\001\013\001\094\001\ -\102\001\007\001\021\001\105\001\003\001\063\001\075\001\103\001\ -\003\001\014\001\103\001\026\001\008\001\028\001\029\001\056\001\ -\027\001\058\001\059\001\060\001\027\001\103\001\063\001\064\001\ -\075\001\120\001\041\001\087\001\014\001\090\001\000\001\200\002\ -\002\001\003\001\004\001\036\001\059\001\069\001\008\001\014\001\ -\241\000\242\000\095\001\013\001\085\001\246\000\085\001\017\001\ -\018\001\019\001\043\001\092\001\090\001\015\001\064\001\070\001\ -\026\001\027\001\028\001\029\001\155\001\076\001\103\001\104\001\ -\089\001\063\001\036\001\089\001\089\001\063\001\027\001\041\001\ -\027\001\089\001\018\000\089\001\091\001\047\001\048\001\109\001\ -\071\001\071\001\008\001\019\001\061\001\061\001\031\001\102\001\ -\061\001\014\001\105\001\014\001\062\001\027\001\003\001\040\001\ -\066\001\014\001\014\001\069\001\070\001\046\001\069\001\064\001\ -\063\001\027\001\076\001\006\001\053\001\054\001\055\001\002\001\ -\006\001\058\001\020\001\089\001\086\001\087\001\069\001\089\001\ -\090\001\091\001\069\001\089\001\094\001\022\001\089\001\004\001\ -\106\001\074\001\102\001\069\001\102\001\126\001\127\001\105\001\ -\082\001\106\001\014\001\109\001\069\001\069\001\006\001\238\001\ -\008\001\027\001\091\001\242\001\061\003\094\001\003\001\063\001\ -\014\001\090\001\089\001\027\001\069\001\056\001\089\001\058\001\ -\059\001\060\001\002\001\021\001\063\001\064\001\027\001\027\001\ -\089\001\008\002\114\000\014\001\116\000\117\000\118\000\120\001\ -\014\001\016\002\017\002\018\002\014\001\020\002\021\002\027\001\ -\014\001\129\000\085\001\082\001\101\003\069\001\086\001\135\000\ -\056\001\092\001\058\001\059\001\060\001\014\001\111\003\063\001\ -\064\001\040\002\069\001\027\001\103\001\104\001\106\001\000\000\ -\022\001\000\001\155\001\086\001\014\001\004\001\014\001\014\001\ -\014\001\008\001\162\000\010\001\014\001\085\001\027\001\014\001\ -\015\001\000\000\065\002\018\001\092\001\000\000\069\002\070\002\ -\000\001\089\001\091\001\003\001\027\001\063\001\089\001\103\001\ -\104\001\089\001\089\001\085\001\083\002\013\001\014\001\008\001\ -\028\000\029\000\089\001\195\000\036\001\246\001\063\001\063\001\ -\036\001\022\001\026\001\027\001\028\001\029\001\063\001\102\002\ -\086\001\139\000\063\001\063\001\076\000\202\001\005\001\085\002\ -\040\001\041\001\193\001\087\004\040\003\190\003\069\001\197\001\ -\193\003\037\001\150\002\167\003\064\000\065\000\190\003\067\003\ -\092\004\065\003\027\002\248\003\022\004\238\001\062\001\086\001\ -\087\001\118\002\089\001\090\001\232\001\088\001\070\001\031\002\ -\008\001\029\000\245\000\011\002\076\001\065\002\067\002\150\002\ -\151\002\117\000\150\001\136\004\107\001\073\004\157\002\008\002\ -\159\002\089\001\235\003\091\001\092\001\154\003\076\004\016\002\ -\017\002\018\002\067\002\020\002\021\002\170\003\102\001\248\003\ -\081\003\105\001\062\004\203\003\255\255\109\001\056\001\031\001\ -\058\001\059\001\060\001\255\255\255\255\063\001\064\001\040\002\ -\255\255\255\255\091\002\255\255\093\002\255\255\046\001\255\255\ -\255\255\200\002\255\255\255\255\255\255\053\001\054\001\055\001\ -\255\255\106\002\058\001\085\001\255\255\255\255\255\255\255\255\ -\065\002\255\255\092\001\255\255\069\002\070\002\255\255\255\255\ -\121\002\255\255\074\001\255\255\255\255\103\001\104\001\000\000\ -\255\255\255\255\083\002\255\255\255\255\054\004\135\002\255\255\ -\255\255\255\255\255\255\091\001\255\255\255\255\094\001\255\255\ -\255\255\255\255\255\255\000\000\255\255\102\002\255\255\152\002\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\120\001\255\255\255\255\255\255\255\255\217\000\218\000\219\000\ -\220\000\221\000\222\000\223\000\224\000\225\000\226\000\227\000\ -\228\000\229\000\230\000\231\000\232\000\233\000\234\000\235\000\ -\255\255\237\000\255\255\239\000\255\255\150\002\255\255\000\001\ -\255\255\202\002\003\001\155\001\051\003\206\002\250\000\255\255\ -\255\255\255\255\255\255\255\255\013\001\000\000\061\003\255\255\ -\017\001\255\255\255\255\255\255\067\003\022\001\255\255\255\255\ -\255\255\026\001\027\001\028\001\029\001\076\003\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\238\002\255\255\086\003\ -\041\001\000\001\255\255\255\255\000\000\004\001\255\255\200\002\ -\255\255\008\001\255\255\010\001\255\255\255\255\101\003\014\001\ -\015\001\255\255\255\255\004\003\005\003\062\001\255\255\064\001\ -\111\003\255\255\255\255\255\255\027\001\070\001\255\255\255\255\ -\255\255\000\001\255\255\076\001\255\255\004\001\255\255\255\255\ -\255\255\008\001\255\255\010\001\255\255\255\255\238\001\014\001\ -\089\001\255\255\091\001\092\001\255\255\255\255\255\255\255\255\ -\255\255\000\000\255\255\255\255\027\001\102\001\255\255\255\255\ -\105\001\255\255\051\003\255\255\109\001\255\255\069\001\099\001\ -\008\002\101\001\255\255\255\255\255\255\062\003\255\255\107\001\ -\016\002\017\002\018\002\111\001\020\002\021\002\114\001\086\001\ -\087\001\255\255\089\001\090\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\084\003\255\255\255\255\069\001\190\003\ -\040\002\255\255\193\003\255\255\107\001\196\003\197\003\255\255\ -\255\255\255\255\255\255\255\255\203\003\255\255\255\255\086\001\ -\087\001\255\255\089\001\090\001\061\003\255\255\255\255\255\255\ -\215\003\065\002\067\003\000\001\255\255\069\002\070\002\004\001\ -\255\255\255\255\255\255\008\001\107\001\010\001\127\003\000\001\ -\255\255\014\001\003\001\083\002\235\003\018\001\000\000\255\255\ -\255\255\181\001\139\003\255\255\013\001\255\255\027\001\255\255\ -\017\001\248\003\255\255\000\001\101\003\022\001\102\002\000\001\ -\255\255\026\001\027\001\028\001\029\001\158\003\111\003\255\255\ -\013\001\255\255\255\255\255\255\013\001\255\255\255\255\255\255\ -\041\001\255\255\255\255\255\255\255\255\026\001\175\003\028\001\ -\029\001\026\001\255\255\028\001\029\001\182\003\255\255\227\001\ -\069\001\255\255\255\255\255\255\041\001\062\001\255\255\064\001\ -\041\001\255\255\255\255\255\255\255\255\070\001\150\002\046\004\ -\201\003\086\001\087\001\076\001\089\001\090\001\255\255\054\004\ -\255\255\255\255\255\255\255\255\255\255\000\001\255\255\255\255\ -\089\001\070\001\091\001\092\001\255\255\070\001\107\001\076\001\ -\255\255\255\255\013\001\076\001\255\255\102\001\255\255\232\003\ -\105\001\255\255\255\255\255\255\109\001\190\003\091\001\026\001\ -\193\003\028\001\029\001\196\003\000\001\000\000\255\255\003\001\ -\200\002\102\001\255\255\255\255\105\001\102\001\041\001\255\255\ -\105\001\013\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\026\001\027\001\ -\028\001\029\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\235\003\070\001\255\255\041\001\255\255\075\002\ -\255\255\076\001\255\255\255\255\000\001\255\255\255\255\248\003\ -\255\255\000\001\255\255\255\255\003\001\004\001\047\004\255\255\ -\091\001\255\255\062\001\255\255\255\255\255\255\013\001\014\001\ -\255\255\255\255\070\001\102\001\019\001\255\255\105\001\255\255\ -\076\001\255\255\255\255\026\001\069\004\028\001\029\001\255\255\ -\116\002\255\255\255\255\255\255\255\255\089\001\079\004\091\001\ -\092\001\255\255\041\001\084\004\255\255\086\004\255\255\255\255\ -\047\001\048\001\102\001\092\004\056\001\105\001\058\001\059\001\ -\060\001\109\001\255\255\063\001\064\001\054\004\255\255\062\001\ -\105\004\255\255\255\255\066\001\255\255\061\003\255\255\070\001\ -\255\255\077\001\255\255\116\004\255\255\076\001\000\000\083\001\ -\255\255\085\001\123\004\255\255\255\255\255\255\255\255\255\255\ -\092\001\255\255\089\001\255\255\091\001\092\001\000\001\255\255\ -\255\255\003\001\102\001\103\001\104\001\255\255\008\001\102\001\ -\010\001\255\255\105\001\013\001\014\001\101\003\255\255\017\001\ -\255\255\019\001\020\001\021\001\255\255\255\255\024\001\111\003\ -\026\001\255\255\028\001\029\001\255\255\255\255\255\255\255\255\ -\212\002\255\255\171\004\037\001\173\004\255\255\040\001\041\001\ -\255\255\221\002\255\255\255\255\255\255\047\001\048\001\255\255\ -\255\255\186\004\187\004\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\062\001\255\255\255\255\255\255\ -\066\001\255\255\255\255\069\001\070\001\255\255\255\255\255\255\ -\255\255\255\255\076\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\086\001\087\001\255\255\089\001\ -\090\001\091\001\092\001\255\255\000\000\255\255\255\255\097\001\ -\255\255\099\001\255\255\255\255\102\001\255\255\190\003\105\001\ -\255\255\193\003\255\255\109\001\255\255\000\001\001\001\002\001\ -\003\001\255\255\255\255\255\255\255\255\008\001\009\001\010\001\ -\255\255\255\255\013\001\014\001\015\001\016\001\017\001\018\001\ -\019\001\020\001\021\001\255\255\255\255\024\001\025\001\026\001\ -\027\001\028\001\029\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\036\001\037\001\235\003\255\255\040\001\041\001\042\001\ -\043\001\044\001\045\001\046\001\047\001\048\001\255\255\255\255\ -\248\003\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\060\001\255\255\062\001\255\255\255\255\255\255\066\001\ -\067\001\068\001\069\001\070\001\255\255\255\255\255\255\255\255\ -\255\255\076\001\255\255\078\001\079\001\080\001\255\255\255\255\ -\255\255\255\255\255\255\086\001\087\001\255\255\089\001\090\001\ -\091\001\092\001\000\000\094\001\255\255\255\255\097\001\131\003\ -\099\001\255\255\255\255\102\001\255\255\255\255\105\001\255\255\ -\255\255\255\255\109\001\255\255\255\255\255\255\054\004\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\159\003\160\003\161\003\000\001\001\001\ -\002\001\003\001\255\255\255\255\006\001\007\001\008\001\009\001\ -\010\001\011\001\012\001\013\001\014\001\015\001\016\001\017\001\ -\018\001\019\001\020\001\021\001\022\001\255\255\024\001\025\001\ -\026\001\027\001\028\001\029\001\030\001\031\001\255\255\255\255\ -\255\255\255\255\036\001\037\001\255\255\255\255\040\001\041\001\ -\042\001\043\001\044\001\045\001\046\001\047\001\048\001\049\001\ -\050\001\051\001\052\001\255\255\054\001\055\001\056\001\057\001\ -\255\255\255\255\060\001\061\001\062\001\063\001\064\001\255\255\ -\066\001\067\001\068\001\069\001\070\001\255\255\072\001\073\001\ -\000\000\255\255\076\001\077\001\078\001\079\001\080\001\081\001\ -\255\255\083\001\255\255\255\255\086\001\087\001\255\255\089\001\ -\090\001\091\001\092\001\255\255\094\001\095\001\255\255\097\001\ -\098\001\099\001\100\001\255\255\102\001\103\001\255\255\105\001\ -\255\255\255\255\255\255\109\001\000\001\001\001\002\001\003\001\ -\004\001\255\255\006\001\007\001\008\001\009\001\010\001\011\001\ -\012\001\013\001\014\001\015\001\016\001\017\001\018\001\019\001\ -\020\001\021\001\255\255\255\255\024\001\025\001\026\001\027\001\ -\028\001\029\001\030\001\031\001\255\255\255\255\255\255\255\255\ -\036\001\037\001\255\255\255\255\040\001\041\001\042\001\043\001\ -\044\001\045\001\046\001\047\001\048\001\049\001\050\001\051\001\ -\052\001\255\255\054\001\055\001\056\001\057\001\255\255\255\255\ -\060\001\255\255\062\001\063\001\064\001\255\255\066\001\067\001\ -\068\001\069\001\070\001\255\255\072\001\073\001\000\000\255\255\ -\076\001\077\001\078\001\079\001\080\001\081\001\255\255\083\001\ -\255\255\255\255\086\001\087\001\255\255\089\001\090\001\091\001\ -\092\001\255\255\094\001\095\001\255\255\097\001\098\001\099\001\ -\100\001\255\255\102\001\103\001\255\255\105\001\255\255\255\255\ -\255\255\109\001\000\001\001\001\002\001\003\001\255\255\255\255\ -\006\001\007\001\008\001\009\001\010\001\011\001\012\001\013\001\ -\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\ -\022\001\255\255\024\001\025\001\026\001\027\001\028\001\029\001\ -\030\001\031\001\255\255\255\255\255\255\255\255\036\001\037\001\ -\255\255\255\255\040\001\041\001\042\001\043\001\044\001\045\001\ -\046\001\047\001\048\001\049\001\050\001\051\001\052\001\255\255\ -\054\001\055\001\056\001\057\001\255\255\255\255\060\001\255\255\ -\062\001\063\001\064\001\255\255\066\001\067\001\068\001\069\001\ -\070\001\255\255\072\001\073\001\000\000\255\255\076\001\077\001\ -\078\001\079\001\080\001\081\001\255\255\083\001\255\255\255\255\ -\086\001\087\001\255\255\089\001\090\001\091\001\092\001\255\255\ -\094\001\095\001\255\255\097\001\098\001\099\001\100\001\255\255\ -\102\001\103\001\255\255\105\001\255\255\255\255\255\255\109\001\ -\000\001\001\001\002\001\003\001\255\255\255\255\006\001\007\001\ -\008\001\009\001\010\001\011\001\012\001\013\001\014\001\015\001\ -\016\001\017\001\018\001\019\001\020\001\021\001\022\001\255\255\ -\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\ -\255\255\255\255\255\255\255\255\036\001\037\001\255\255\255\255\ -\040\001\041\001\042\001\043\001\044\001\045\001\046\001\047\001\ -\048\001\049\001\050\001\051\001\052\001\255\255\054\001\055\001\ -\056\001\057\001\255\255\255\255\060\001\255\255\062\001\063\001\ -\064\001\255\255\066\001\067\001\068\001\069\001\070\001\255\255\ -\072\001\073\001\000\000\255\255\076\001\077\001\078\001\079\001\ -\080\001\081\001\255\255\083\001\255\255\255\255\086\001\087\001\ -\255\255\089\001\090\001\091\001\092\001\255\255\094\001\095\001\ -\255\255\097\001\098\001\099\001\100\001\255\255\102\001\103\001\ -\255\255\105\001\255\255\255\255\255\255\109\001\000\001\001\001\ -\002\001\003\001\255\255\255\255\006\001\007\001\008\001\009\001\ -\010\001\011\001\012\001\013\001\014\001\015\001\016\001\017\001\ -\018\001\019\001\020\001\021\001\022\001\255\255\024\001\025\001\ -\026\001\027\001\028\001\029\001\030\001\031\001\255\255\255\255\ -\255\255\255\255\036\001\037\001\255\255\255\255\040\001\041\001\ -\042\001\043\001\044\001\045\001\046\001\047\001\048\001\049\001\ -\050\001\051\001\052\001\255\255\054\001\055\001\056\001\057\001\ -\255\255\255\255\060\001\255\255\062\001\063\001\064\001\255\255\ -\066\001\067\001\068\001\069\001\070\001\255\255\072\001\073\001\ -\000\000\255\255\076\001\077\001\078\001\079\001\080\001\081\001\ -\255\255\083\001\255\255\255\255\086\001\087\001\255\255\089\001\ -\090\001\091\001\092\001\255\255\094\001\095\001\255\255\097\001\ -\098\001\099\001\100\001\255\255\102\001\103\001\255\255\105\001\ -\255\255\255\255\255\255\109\001\000\001\001\001\002\001\003\001\ -\255\255\255\255\006\001\007\001\008\001\009\001\010\001\011\001\ -\012\001\013\001\014\001\015\001\016\001\017\001\018\001\019\001\ -\020\001\021\001\022\001\255\255\024\001\025\001\026\001\027\001\ -\028\001\029\001\030\001\031\001\255\255\255\255\255\255\255\255\ -\036\001\037\001\255\255\255\255\040\001\041\001\042\001\043\001\ -\044\001\045\001\046\001\047\001\048\001\049\001\050\001\051\001\ -\052\001\255\255\054\001\055\001\056\001\057\001\255\255\255\255\ -\060\001\255\255\062\001\063\001\064\001\255\255\066\001\067\001\ -\068\001\069\001\070\001\255\255\072\001\073\001\000\000\255\255\ -\076\001\077\001\078\001\079\001\080\001\081\001\255\255\083\001\ -\255\255\255\255\086\001\087\001\255\255\089\001\090\001\091\001\ -\092\001\255\255\094\001\095\001\255\255\097\001\098\001\099\001\ -\100\001\255\255\102\001\103\001\255\255\105\001\255\255\255\255\ -\255\255\109\001\000\001\001\001\002\001\003\001\004\001\255\255\ -\006\001\007\001\008\001\009\001\010\001\011\001\012\001\013\001\ -\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\ -\255\255\255\255\024\001\025\001\026\001\027\001\028\001\029\001\ -\030\001\031\001\255\255\255\255\255\255\255\255\036\001\037\001\ -\255\255\255\255\040\001\041\001\042\001\043\001\044\001\045\001\ -\046\001\047\001\048\001\049\001\050\001\051\001\052\001\255\255\ -\054\001\055\001\056\001\057\001\255\255\255\255\060\001\255\255\ -\062\001\063\001\064\001\255\255\066\001\067\001\068\001\069\001\ -\070\001\255\255\072\001\073\001\000\000\255\255\076\001\077\001\ -\078\001\079\001\080\001\081\001\255\255\083\001\255\255\255\255\ -\086\001\087\001\255\255\089\001\090\001\091\001\255\255\255\255\ -\094\001\095\001\255\255\097\001\098\001\099\001\100\001\255\255\ -\102\001\103\001\255\255\105\001\255\255\255\255\255\255\109\001\ -\000\001\001\001\002\001\003\001\004\001\255\255\006\001\007\001\ -\008\001\009\001\010\001\011\001\012\001\013\001\014\001\015\001\ -\016\001\017\001\018\001\019\001\020\001\021\001\255\255\255\255\ -\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001\ -\255\255\255\255\255\255\255\255\036\001\037\001\255\255\255\255\ -\040\001\041\001\042\001\043\001\044\001\045\001\046\001\047\001\ -\048\001\049\001\050\001\051\001\052\001\255\255\054\001\055\001\ -\056\001\057\001\255\255\255\255\060\001\255\255\062\001\063\001\ -\064\001\255\255\066\001\067\001\068\001\069\001\070\001\255\255\ -\072\001\073\001\000\000\255\255\076\001\077\001\078\001\079\001\ -\080\001\081\001\255\255\083\001\255\255\255\255\086\001\087\001\ -\255\255\089\001\090\001\091\001\255\255\255\255\094\001\095\001\ -\255\255\097\001\098\001\099\001\100\001\255\255\102\001\103\001\ -\255\255\105\001\255\255\255\255\255\255\109\001\000\001\001\001\ -\002\001\003\001\004\001\255\255\006\001\007\001\008\001\009\001\ -\010\001\011\001\012\001\013\001\014\001\015\001\016\001\017\001\ -\018\001\019\001\020\001\021\001\255\255\255\255\024\001\025\001\ -\026\001\027\001\028\001\029\001\030\001\031\001\255\255\255\255\ -\255\255\255\255\036\001\037\001\255\255\255\255\040\001\041\001\ -\042\001\043\001\044\001\045\001\046\001\047\001\048\001\049\001\ -\050\001\051\001\052\001\255\255\054\001\055\001\056\001\057\001\ -\255\255\255\255\060\001\255\255\062\001\063\001\064\001\255\255\ -\066\001\067\001\068\001\069\001\070\001\255\255\072\001\073\001\ -\000\000\255\255\076\001\077\001\078\001\079\001\080\001\081\001\ -\255\255\083\001\255\255\255\255\086\001\087\001\255\255\089\001\ -\090\001\091\001\255\255\255\255\094\001\095\001\255\255\097\001\ -\098\001\099\001\100\001\255\255\102\001\103\001\255\255\105\001\ -\255\255\255\255\255\255\109\001\000\001\001\001\002\001\003\001\ -\255\255\255\255\255\255\255\255\008\001\009\001\010\001\255\255\ -\255\255\013\001\014\001\015\001\016\001\017\001\018\001\019\001\ -\020\001\021\001\022\001\255\255\024\001\025\001\026\001\027\001\ -\028\001\029\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\036\001\037\001\255\255\255\255\040\001\041\001\042\001\043\001\ -\044\001\045\001\046\001\047\001\048\001\255\255\255\255\255\255\ -\052\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\060\001\255\255\062\001\255\255\255\255\255\255\066\001\067\001\ -\068\001\069\001\070\001\255\255\255\255\255\255\000\000\255\255\ -\076\001\077\001\078\001\079\001\080\001\255\255\255\255\083\001\ -\255\255\255\255\086\001\087\001\255\255\089\001\090\001\091\001\ -\092\001\255\255\094\001\255\255\255\255\097\001\098\001\099\001\ -\255\255\255\255\102\001\255\255\255\255\105\001\255\255\255\255\ -\255\255\109\001\000\001\001\001\002\001\003\001\255\255\255\255\ -\255\255\255\255\008\001\009\001\010\001\255\255\255\255\013\001\ -\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\ -\022\001\255\255\024\001\025\001\026\001\027\001\028\001\029\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\036\001\037\001\ -\255\255\255\255\040\001\041\001\042\001\043\001\044\001\045\001\ -\046\001\047\001\048\001\255\255\255\255\255\255\052\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\060\001\255\255\ -\062\001\255\255\255\255\255\255\066\001\067\001\068\001\069\001\ -\070\001\255\255\255\255\255\255\000\000\255\255\076\001\077\001\ -\078\001\079\001\080\001\255\255\255\255\083\001\255\255\255\255\ -\086\001\087\001\255\255\089\001\090\001\091\001\092\001\255\255\ -\094\001\255\255\255\255\097\001\098\001\099\001\255\255\255\255\ -\102\001\255\255\255\255\105\001\255\255\255\255\255\255\109\001\ -\000\001\001\001\002\001\003\001\255\255\255\255\255\255\255\255\ -\008\001\009\001\010\001\255\255\255\255\013\001\014\001\015\001\ -\016\001\017\001\018\001\019\001\020\001\021\001\255\255\255\255\ -\024\001\025\001\026\001\027\001\028\001\029\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\036\001\037\001\255\255\255\255\ -\040\001\041\001\042\001\043\001\044\001\045\001\046\001\047\001\ -\048\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\060\001\255\255\062\001\255\255\ -\255\255\255\255\066\001\067\001\068\001\069\001\070\001\255\255\ -\255\255\255\255\000\000\255\255\076\001\255\255\078\001\079\001\ -\080\001\255\255\255\255\255\255\255\255\255\255\086\001\087\001\ -\255\255\089\001\090\001\091\001\255\255\255\255\094\001\255\255\ -\255\255\097\001\255\255\099\001\255\255\255\255\102\001\255\255\ -\255\255\105\001\255\255\255\255\255\255\109\001\000\001\001\001\ -\002\001\003\001\255\255\255\255\255\255\255\255\008\001\009\001\ -\010\001\255\255\255\255\013\001\014\001\015\001\016\001\017\001\ -\255\255\019\001\020\001\021\001\255\255\255\255\024\001\025\001\ -\026\001\027\001\028\001\029\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\036\001\037\001\255\255\255\255\040\001\041\001\ -\042\001\043\001\044\001\045\001\046\001\047\001\048\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\060\001\255\255\062\001\255\255\255\255\255\255\ -\066\001\067\001\068\001\069\001\070\001\255\255\255\255\255\255\ -\000\000\255\255\076\001\255\255\078\001\079\001\080\001\255\255\ -\255\255\255\255\255\255\255\255\086\001\087\001\255\255\089\001\ -\090\001\091\001\092\001\255\255\094\001\255\255\255\255\097\001\ -\255\255\099\001\255\255\255\255\102\001\255\255\255\255\105\001\ -\255\255\255\255\255\255\109\001\000\001\001\001\002\001\003\001\ -\255\255\255\255\255\255\255\255\008\001\009\001\010\001\255\255\ -\255\255\013\001\014\001\015\001\016\001\017\001\018\001\019\001\ -\020\001\021\001\255\255\255\255\024\001\025\001\026\001\027\001\ -\028\001\029\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\036\001\037\001\255\255\255\255\040\001\041\001\042\001\043\001\ -\044\001\045\001\046\001\047\001\048\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\060\001\255\255\062\001\255\255\255\255\255\255\066\001\067\001\ -\068\001\069\001\070\001\255\255\255\255\255\255\000\000\255\255\ -\076\001\255\255\078\001\079\001\080\001\255\255\255\255\255\255\ -\255\255\255\255\086\001\087\001\255\255\089\001\090\001\091\001\ -\255\255\255\255\094\001\255\255\255\255\097\001\255\255\099\001\ -\255\255\255\255\102\001\255\255\255\255\105\001\255\255\255\255\ -\255\255\109\001\000\001\001\001\002\001\003\001\255\255\255\255\ -\255\255\255\255\008\001\009\001\010\001\255\255\255\255\013\001\ -\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\ -\255\255\255\255\024\001\025\001\026\001\027\001\028\001\029\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\036\001\037\001\ -\255\255\255\255\040\001\041\001\042\001\043\001\044\001\045\001\ -\046\001\047\001\048\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\060\001\255\255\ -\062\001\255\255\255\255\255\255\066\001\067\001\068\001\069\001\ -\070\001\255\255\255\255\255\255\000\000\255\255\076\001\255\255\ -\078\001\079\001\080\001\255\255\255\255\255\255\255\255\255\255\ -\086\001\087\001\255\255\089\001\090\001\091\001\255\255\255\255\ -\094\001\255\255\255\255\097\001\255\255\099\001\255\255\255\255\ -\102\001\255\255\255\255\105\001\255\255\255\255\255\255\109\001\ -\000\001\001\001\002\001\003\001\255\255\255\255\255\255\255\255\ -\008\001\009\001\010\001\255\255\255\255\013\001\014\001\015\001\ -\016\001\017\001\018\001\019\001\020\001\021\001\255\255\255\255\ -\024\001\025\001\026\001\027\001\028\001\029\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\036\001\037\001\255\255\255\255\ -\040\001\041\001\042\001\043\001\044\001\045\001\046\001\047\001\ -\048\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\060\001\255\255\062\001\255\255\ -\255\255\255\255\066\001\067\001\068\001\069\001\070\001\255\255\ -\255\255\255\255\000\000\255\255\076\001\255\255\078\001\079\001\ -\080\001\255\255\255\255\255\255\255\255\255\255\086\001\087\001\ -\255\255\089\001\090\001\091\001\255\255\255\255\094\001\255\255\ -\255\255\097\001\255\255\099\001\255\255\255\255\102\001\255\255\ -\255\255\105\001\255\255\255\255\255\255\109\001\000\001\001\001\ -\002\001\003\001\255\255\255\255\255\255\255\255\008\001\009\001\ -\010\001\255\255\255\255\013\001\014\001\015\001\016\001\017\001\ -\018\001\019\001\020\001\021\001\255\255\255\255\024\001\025\001\ -\026\001\027\001\028\001\029\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\036\001\037\001\255\255\255\255\040\001\041\001\ -\042\001\043\001\044\001\045\001\046\001\047\001\048\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\060\001\255\255\062\001\255\255\255\255\255\255\ -\066\001\067\001\068\001\069\001\070\001\255\255\255\255\255\255\ -\000\000\255\255\076\001\255\255\078\001\079\001\080\001\255\255\ -\255\255\255\255\255\255\255\255\086\001\087\001\255\255\089\001\ -\090\001\091\001\255\255\255\255\094\001\255\255\255\255\097\001\ -\255\255\099\001\255\255\255\255\102\001\255\255\255\255\105\001\ -\255\255\255\255\255\255\109\001\000\001\001\001\002\001\003\001\ -\255\255\255\255\255\255\255\255\255\255\009\001\010\001\255\255\ -\255\255\013\001\014\001\015\001\016\001\017\001\018\001\019\001\ -\020\001\021\001\255\255\255\255\024\001\025\001\026\001\027\001\ -\028\001\029\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\036\001\037\001\255\255\255\255\040\001\041\001\042\001\043\001\ -\044\001\045\001\046\001\047\001\048\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\060\001\255\255\062\001\255\255\255\255\255\255\066\001\067\001\ -\068\001\069\001\070\001\255\255\255\255\255\255\000\000\255\255\ -\076\001\255\255\078\001\079\001\080\001\255\255\255\255\255\255\ -\255\255\255\255\086\001\087\001\255\255\089\001\090\001\091\001\ -\092\001\255\255\094\001\255\255\255\255\097\001\255\255\099\001\ -\255\255\255\255\102\001\255\255\255\255\105\001\255\255\255\255\ -\255\255\109\001\000\001\001\001\002\001\003\001\255\255\255\255\ -\255\255\255\255\008\001\009\001\010\001\255\255\255\255\013\001\ -\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\ -\255\255\255\255\024\001\025\001\026\001\027\001\028\001\029\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\036\001\037\001\ -\255\255\255\255\040\001\041\001\042\001\043\001\044\001\045\001\ -\255\255\047\001\048\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\060\001\255\255\ -\062\001\255\255\255\255\255\255\066\001\067\001\068\001\069\001\ -\070\001\255\255\255\255\255\255\000\000\255\255\076\001\255\255\ -\078\001\079\001\080\001\255\255\255\255\255\255\255\255\255\255\ -\086\001\087\001\255\255\089\001\090\001\091\001\092\001\255\255\ -\094\001\255\255\255\255\097\001\255\255\099\001\255\255\255\255\ -\102\001\255\255\255\255\105\001\255\255\255\255\255\255\109\001\ -\000\001\001\001\002\001\003\001\255\255\255\255\255\255\255\255\ -\008\001\009\001\010\001\255\255\255\255\013\001\014\001\015\001\ -\016\001\017\001\018\001\019\001\020\001\021\001\255\255\255\255\ -\024\001\025\001\026\001\027\001\028\001\029\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\036\001\037\001\255\255\255\255\ -\040\001\041\001\042\001\043\001\044\001\045\001\255\255\047\001\ -\048\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\060\001\255\255\062\001\255\255\ -\255\255\255\255\066\001\067\001\068\001\069\001\070\001\255\255\ -\255\255\255\255\000\000\255\255\076\001\255\255\078\001\079\001\ -\080\001\255\255\255\255\255\255\255\255\255\255\086\001\087\001\ -\255\255\089\001\090\001\091\001\092\001\255\255\094\001\255\255\ -\255\255\097\001\255\255\099\001\255\255\255\255\102\001\255\255\ -\255\255\105\001\255\255\255\255\255\255\109\001\000\001\001\001\ -\002\001\003\001\255\255\255\255\255\255\255\255\008\001\009\001\ -\010\001\255\255\255\255\013\001\014\001\015\001\016\001\017\001\ -\018\001\019\001\020\001\021\001\255\255\255\255\024\001\025\001\ -\026\001\027\001\028\001\029\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\036\001\037\001\255\255\255\255\040\001\041\001\ -\042\001\043\001\044\001\045\001\255\255\047\001\048\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\060\001\255\255\062\001\255\255\255\255\255\255\ -\066\001\067\001\068\001\069\001\070\001\255\255\255\255\255\255\ -\000\000\255\255\076\001\255\255\078\001\079\001\080\001\255\255\ -\255\255\255\255\255\255\255\255\086\001\087\001\255\255\089\001\ -\090\001\091\001\092\001\255\255\094\001\255\255\255\255\097\001\ -\255\255\099\001\255\255\255\255\102\001\255\255\255\255\105\001\ -\255\255\255\255\255\255\109\001\000\001\001\001\002\001\003\001\ -\255\255\255\255\255\255\255\255\255\255\009\001\010\001\255\255\ -\255\255\013\001\014\001\015\001\016\001\017\001\018\001\019\001\ -\020\001\021\001\255\255\255\255\024\001\025\001\026\001\027\001\ -\028\001\029\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\036\001\037\001\255\255\255\255\040\001\041\001\042\001\043\001\ -\044\001\045\001\046\001\047\001\048\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\060\001\255\255\062\001\255\255\255\255\255\255\066\001\067\001\ -\068\001\069\001\070\001\255\255\255\255\255\255\000\000\255\255\ -\076\001\255\255\078\001\079\001\080\001\255\255\255\255\255\255\ -\255\255\255\255\086\001\087\001\255\255\089\001\090\001\091\001\ -\092\001\255\255\094\001\255\255\255\255\097\001\255\255\099\001\ -\255\255\255\255\102\001\255\255\255\255\105\001\255\255\255\255\ -\255\255\109\001\000\001\001\001\002\001\003\001\255\255\255\255\ -\255\255\255\255\255\255\009\001\010\001\255\255\255\255\013\001\ -\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\ -\255\255\255\255\024\001\025\001\026\001\027\001\028\001\029\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\036\001\037\001\ -\255\255\255\255\040\001\041\001\042\001\043\001\044\001\045\001\ -\046\001\047\001\048\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\060\001\255\255\ -\062\001\255\255\255\255\255\255\066\001\067\001\068\001\069\001\ -\070\001\255\255\255\255\255\255\000\000\255\255\076\001\255\255\ -\078\001\079\001\080\001\255\255\255\255\255\255\255\255\255\255\ -\086\001\087\001\255\255\089\001\090\001\091\001\092\001\255\255\ -\094\001\255\255\255\255\097\001\255\255\099\001\255\255\255\255\ -\102\001\255\255\255\255\105\001\255\255\255\255\255\255\109\001\ -\000\001\001\001\002\001\003\001\255\255\255\255\255\255\255\255\ -\008\001\009\001\010\001\255\255\255\255\013\001\014\001\015\001\ -\016\001\017\001\018\001\019\001\020\001\021\001\255\255\255\255\ -\024\001\025\001\026\001\027\001\028\001\029\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\036\001\037\001\255\255\255\255\ -\040\001\041\001\042\001\043\001\044\001\255\255\255\255\047\001\ -\048\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\060\001\255\255\062\001\255\255\ -\255\255\255\255\066\001\067\001\068\001\069\001\070\001\255\255\ -\255\255\255\255\000\000\255\255\076\001\255\255\078\001\079\001\ -\080\001\255\255\255\255\255\255\255\255\255\255\086\001\087\001\ -\255\255\089\001\090\001\091\001\092\001\255\255\255\255\255\255\ -\255\255\097\001\255\255\099\001\255\255\255\255\102\001\255\255\ -\255\255\105\001\255\255\255\255\255\255\109\001\000\001\001\001\ -\002\001\003\001\255\255\255\255\255\255\255\255\008\001\009\001\ -\010\001\255\255\255\255\013\001\014\001\015\001\016\001\017\001\ -\018\001\019\001\020\001\021\001\255\255\255\255\024\001\025\001\ -\026\001\027\001\028\001\029\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\036\001\037\001\255\255\255\255\040\001\041\001\ -\042\001\043\001\044\001\255\255\255\255\047\001\048\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\060\001\255\255\062\001\255\255\255\255\255\255\ -\066\001\067\001\068\001\069\001\070\001\255\255\255\255\255\255\ -\000\000\255\255\076\001\255\255\078\001\079\001\080\001\255\255\ -\255\255\255\255\255\255\255\255\086\001\087\001\255\255\089\001\ -\090\001\091\001\092\001\255\255\255\255\255\255\255\255\097\001\ -\255\255\099\001\255\255\255\255\102\001\255\255\255\255\105\001\ -\255\255\255\255\255\255\109\001\000\001\001\001\002\001\003\001\ -\255\255\255\255\255\255\255\255\008\001\009\001\010\001\255\255\ -\255\255\013\001\014\001\015\001\016\001\017\001\018\001\019\001\ -\020\001\021\001\255\255\255\255\024\001\025\001\026\001\027\001\ -\028\001\029\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\036\001\037\001\255\255\255\255\040\001\041\001\042\001\043\001\ -\044\001\255\255\255\255\047\001\048\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\060\001\255\255\062\001\255\255\255\255\255\255\066\001\067\001\ -\068\001\069\001\070\001\255\255\255\255\255\255\000\000\255\255\ -\076\001\255\255\078\001\079\001\080\001\255\255\255\255\255\255\ -\255\255\255\255\086\001\087\001\255\255\089\001\090\001\091\001\ -\092\001\255\255\255\255\255\255\255\255\097\001\255\255\099\001\ -\255\255\255\255\102\001\255\255\255\255\105\001\255\255\255\255\ -\255\255\109\001\000\001\001\001\002\001\003\001\255\255\255\255\ -\255\255\255\255\008\001\009\001\010\001\255\255\255\255\013\001\ -\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\ -\255\255\255\255\024\001\025\001\026\001\027\001\028\001\029\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\036\001\037\001\ -\255\255\255\255\040\001\041\001\042\001\043\001\044\001\255\255\ -\255\255\047\001\048\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\060\001\255\255\ -\062\001\255\255\255\255\255\255\066\001\067\001\068\001\069\001\ -\070\001\255\255\255\255\255\255\000\000\255\255\076\001\255\255\ -\078\001\079\001\080\001\255\255\255\255\255\255\255\255\255\255\ -\086\001\087\001\255\255\089\001\090\001\091\001\092\001\255\255\ -\255\255\255\255\255\255\097\001\255\255\099\001\255\255\255\255\ -\102\001\255\255\255\255\105\001\255\255\255\255\255\255\109\001\ -\000\001\001\001\002\001\003\001\255\255\255\255\255\255\255\255\ -\008\001\009\001\010\001\255\255\255\255\013\001\014\001\015\001\ -\016\001\017\001\018\001\019\001\020\001\021\001\255\255\255\255\ -\024\001\025\001\026\001\027\001\028\001\029\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\036\001\037\001\255\255\255\255\ -\040\001\041\001\042\001\043\001\044\001\255\255\255\255\047\001\ -\048\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\060\001\255\255\062\001\255\255\ -\255\255\255\255\066\001\067\001\068\001\069\001\070\001\255\255\ -\255\255\255\255\000\000\255\255\076\001\255\255\078\001\079\001\ -\080\001\255\255\255\255\255\255\255\255\255\255\086\001\087\001\ -\255\255\089\001\090\001\091\001\092\001\255\255\255\255\255\255\ -\255\255\097\001\255\255\099\001\255\255\255\255\102\001\255\255\ -\255\255\105\001\255\255\255\255\255\255\109\001\000\001\001\001\ -\002\001\003\001\255\255\255\255\255\255\255\255\008\001\009\001\ -\010\001\255\255\255\255\013\001\014\001\015\001\016\001\017\001\ -\018\001\019\001\020\001\021\001\255\255\255\255\024\001\025\001\ -\026\001\027\001\028\001\029\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\036\001\037\001\255\255\255\255\040\001\041\001\ -\042\001\043\001\044\001\045\001\046\001\047\001\048\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\060\001\255\255\255\255\255\255\255\255\255\255\ -\066\001\255\255\255\255\069\001\070\001\255\255\255\255\255\255\ -\000\000\255\255\076\001\255\255\078\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\086\001\087\001\255\255\089\001\ -\090\001\091\001\092\001\255\255\094\001\255\255\255\255\097\001\ -\255\255\099\001\255\255\255\255\102\001\255\255\255\255\105\001\ -\255\255\255\255\255\255\109\001\000\001\001\001\002\001\003\001\ -\255\255\255\255\255\255\255\255\008\001\009\001\010\001\255\255\ -\255\255\013\001\014\001\255\255\016\001\017\001\018\001\019\001\ -\020\001\021\001\255\255\255\255\024\001\025\001\026\001\027\001\ -\028\001\029\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\036\001\037\001\255\255\255\255\040\001\041\001\042\001\043\001\ -\255\255\255\255\255\255\047\001\048\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\060\001\255\255\062\001\255\255\255\255\255\255\066\001\255\255\ -\255\255\069\001\070\001\255\255\255\255\255\255\000\000\255\255\ -\076\001\255\255\078\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\086\001\087\001\255\255\089\001\090\001\091\001\ -\092\001\255\255\255\255\255\255\255\255\097\001\255\255\099\001\ -\255\255\255\255\102\001\255\255\255\255\105\001\255\255\255\255\ -\255\255\109\001\000\001\001\001\002\001\003\001\255\255\255\255\ -\255\255\255\255\008\001\009\001\010\001\255\255\255\255\013\001\ -\014\001\255\255\016\001\017\001\018\001\019\001\020\001\021\001\ -\255\255\255\255\024\001\025\001\026\001\027\001\028\001\029\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\036\001\037\001\ -\255\255\255\255\040\001\041\001\042\001\255\255\255\255\255\255\ -\255\255\047\001\048\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\060\001\255\255\ -\062\001\255\255\255\255\255\255\066\001\255\255\255\255\069\001\ -\070\001\255\255\255\255\255\255\000\000\255\255\076\001\255\255\ -\078\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\086\001\087\001\255\255\089\001\090\001\091\001\092\001\255\255\ -\255\255\255\255\255\255\097\001\255\255\099\001\255\255\255\255\ -\102\001\255\255\255\255\105\001\255\255\255\255\255\255\109\001\ -\000\001\001\001\002\001\003\001\255\255\255\255\255\255\255\255\ -\008\001\009\001\010\001\255\255\255\255\013\001\014\001\255\255\ -\016\001\017\001\018\001\019\001\020\001\021\001\255\255\255\255\ -\024\001\025\001\026\001\027\001\028\001\029\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\036\001\037\001\255\255\255\255\ -\040\001\041\001\042\001\255\255\255\255\255\255\255\255\047\001\ -\048\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\060\001\255\255\062\001\255\255\ -\255\255\255\255\066\001\255\255\255\255\069\001\070\001\255\255\ -\255\255\255\255\000\000\255\255\076\001\255\255\078\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\086\001\087\001\ -\255\255\089\001\090\001\091\001\092\001\255\255\255\255\255\255\ -\255\255\097\001\255\255\099\001\255\255\255\255\102\001\255\255\ -\255\255\105\001\255\255\255\255\255\255\109\001\000\001\001\001\ -\002\001\003\001\255\255\255\255\255\255\255\255\008\001\009\001\ -\010\001\255\255\255\255\013\001\014\001\255\255\016\001\017\001\ -\018\001\019\001\020\001\021\001\255\255\255\255\024\001\025\001\ -\026\001\027\001\028\001\029\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\036\001\037\001\255\255\255\255\040\001\041\001\ -\042\001\255\255\255\255\255\255\255\255\047\001\048\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\060\001\255\255\062\001\255\255\255\255\255\255\ -\066\001\000\000\255\255\069\001\070\001\255\255\255\255\255\255\ -\255\255\255\255\076\001\255\255\078\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\086\001\087\001\255\255\089\001\ -\090\001\091\001\092\001\255\255\255\255\255\255\255\255\097\001\ -\255\255\099\001\255\255\255\255\102\001\255\255\255\255\105\001\ -\255\255\255\255\255\255\109\001\000\001\001\001\002\001\003\001\ -\255\255\255\255\255\255\255\255\008\001\009\001\010\001\255\255\ -\255\255\013\001\014\001\255\255\016\001\017\001\018\001\019\001\ -\020\001\021\001\255\255\255\255\024\001\025\001\026\001\027\001\ -\028\001\029\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\036\001\037\001\255\255\255\255\040\001\041\001\042\001\255\255\ -\255\255\255\255\255\255\047\001\048\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\000\000\255\255\255\255\255\255\255\255\ -\060\001\255\255\062\001\255\255\255\255\255\255\066\001\255\255\ -\255\255\069\001\070\001\255\255\255\255\255\255\255\255\255\255\ -\076\001\255\255\078\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\086\001\087\001\255\255\089\001\090\001\091\001\ -\092\001\255\255\255\255\255\255\255\255\097\001\255\255\099\001\ -\255\255\255\255\102\001\255\255\255\255\105\001\255\255\255\255\ -\255\255\109\001\000\001\001\001\002\001\003\001\255\255\255\255\ -\255\255\255\255\008\001\009\001\010\001\255\255\255\255\013\001\ -\014\001\255\255\016\001\017\001\018\001\019\001\020\001\021\001\ -\255\255\255\255\024\001\025\001\026\001\027\001\028\001\029\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\036\001\037\001\ -\255\255\255\255\040\001\041\001\042\001\000\000\255\255\255\255\ -\255\255\047\001\048\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\060\001\255\255\ -\062\001\255\255\255\255\255\255\066\001\000\001\255\255\069\001\ -\070\001\004\001\255\255\255\255\255\255\008\001\076\001\010\001\ -\078\001\255\255\255\255\014\001\015\001\255\255\255\255\018\001\ -\086\001\087\001\255\255\089\001\090\001\091\001\092\001\255\255\ -\027\001\255\255\255\255\097\001\255\255\099\001\255\255\255\255\ -\102\001\000\001\255\255\105\001\003\001\255\255\255\255\109\001\ -\255\255\008\001\009\001\010\001\255\255\255\255\013\001\014\001\ -\255\255\016\001\017\001\018\001\019\001\020\001\021\001\255\255\ -\255\255\024\001\025\001\026\001\255\255\028\001\029\001\255\255\ -\255\255\255\255\069\001\255\255\255\255\255\255\037\001\000\000\ -\255\255\040\001\041\001\255\255\255\255\255\255\255\255\255\255\ -\047\001\048\001\255\255\086\001\087\001\255\255\089\001\090\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\062\001\ -\255\255\255\255\255\255\066\001\255\255\255\255\069\001\070\001\ -\107\001\255\255\255\255\255\255\255\255\076\001\255\255\078\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\086\001\ -\087\001\255\255\089\001\090\001\091\001\092\001\255\255\255\255\ -\255\255\255\255\097\001\000\001\099\001\255\255\003\001\102\001\ -\255\255\255\255\105\001\008\001\009\001\010\001\109\001\255\255\ -\013\001\014\001\255\255\016\001\017\001\018\001\019\001\020\001\ -\021\001\255\255\255\255\024\001\025\001\026\001\255\255\028\001\ -\029\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\037\001\000\000\255\255\040\001\041\001\255\255\255\255\255\255\ -\255\255\255\255\047\001\048\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\062\001\255\255\255\255\255\255\066\001\255\255\255\255\ -\069\001\070\001\255\255\255\255\255\255\255\255\255\255\076\001\ -\255\255\078\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\086\001\087\001\255\255\089\001\090\001\091\001\092\001\ -\255\255\255\255\255\255\255\255\097\001\000\001\099\001\255\255\ -\003\001\102\001\255\255\255\255\105\001\008\001\255\255\010\001\ -\109\001\255\255\013\001\014\001\255\255\016\001\017\001\018\001\ -\019\001\020\001\021\001\255\255\255\255\024\001\025\001\026\001\ -\255\255\028\001\029\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\037\001\000\000\255\255\040\001\041\001\255\255\ -\255\255\255\255\255\255\255\255\047\001\048\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\062\001\255\255\255\255\255\255\066\001\ -\255\255\255\255\069\001\070\001\255\255\255\255\255\255\255\255\ -\255\255\076\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\086\001\087\001\255\255\089\001\090\001\ -\091\001\092\001\255\255\255\255\255\255\255\255\097\001\000\001\ -\099\001\255\255\003\001\102\001\255\255\255\255\105\001\008\001\ -\255\255\010\001\109\001\255\255\013\001\014\001\255\255\016\001\ -\017\001\018\001\019\001\020\001\021\001\255\255\255\255\024\001\ -\025\001\026\001\255\255\028\001\029\001\255\255\255\255\255\255\ -\000\000\255\255\255\255\255\255\037\001\255\255\255\255\040\001\ -\041\001\255\255\255\255\255\255\255\255\255\255\047\001\048\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\062\001\255\255\255\255\ -\255\255\066\001\255\255\255\255\069\001\070\001\255\255\255\255\ -\255\255\255\255\255\255\076\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\086\001\087\001\255\255\ -\089\001\090\001\091\001\092\001\255\255\255\255\255\255\255\255\ -\097\001\000\001\099\001\255\255\003\001\102\001\255\255\255\255\ -\105\001\008\001\255\255\010\001\109\001\255\255\013\001\014\001\ -\255\255\016\001\017\001\018\001\019\001\020\001\021\001\255\255\ -\255\255\024\001\025\001\026\001\255\255\028\001\029\001\255\255\ -\255\255\255\255\000\000\255\255\255\255\255\255\037\001\255\255\ -\255\255\040\001\041\001\255\255\255\255\255\255\255\255\255\255\ -\047\001\048\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\062\001\ -\255\255\255\255\255\255\066\001\255\255\255\255\069\001\070\001\ -\255\255\255\255\255\255\255\255\255\255\076\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\086\001\ -\087\001\255\255\089\001\090\001\091\001\092\001\255\255\255\255\ -\255\255\255\255\097\001\000\001\099\001\255\255\003\001\102\001\ -\255\255\255\255\105\001\008\001\255\255\010\001\109\001\255\255\ -\013\001\014\001\255\255\016\001\017\001\018\001\019\001\020\001\ -\021\001\255\255\255\255\024\001\025\001\026\001\255\255\028\001\ -\029\001\255\255\255\255\255\255\000\000\255\255\255\255\255\255\ -\037\001\255\255\255\255\040\001\041\001\255\255\255\255\255\255\ -\255\255\255\255\047\001\048\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\062\001\255\255\255\255\255\255\066\001\000\001\255\255\ -\069\001\070\001\004\001\255\255\255\255\255\255\008\001\076\001\ -\010\001\255\255\255\255\255\255\014\001\255\255\255\255\255\255\ -\018\001\086\001\087\001\255\255\089\001\090\001\091\001\092\001\ -\000\001\027\001\255\255\003\001\097\001\255\255\099\001\255\255\ -\008\001\102\001\010\001\255\255\105\001\013\001\014\001\255\255\ -\109\001\017\001\255\255\019\001\020\001\021\001\255\255\255\255\ -\024\001\025\001\026\001\255\255\028\001\029\001\255\255\255\255\ -\255\255\000\000\255\255\255\255\255\255\037\001\255\255\255\255\ -\040\001\041\001\255\255\069\001\255\255\255\255\255\255\047\001\ -\048\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\086\001\087\001\062\001\089\001\ -\090\001\255\255\066\001\255\255\255\255\069\001\070\001\255\255\ -\255\255\255\255\255\255\255\255\076\001\255\255\255\255\255\255\ -\255\255\107\001\255\255\255\255\255\255\255\255\086\001\087\001\ -\255\255\089\001\090\001\091\001\092\001\255\255\255\255\255\255\ -\255\255\097\001\000\001\099\001\255\255\003\001\102\001\255\255\ -\255\255\105\001\008\001\255\255\010\001\109\001\255\255\013\001\ -\014\001\255\255\255\255\017\001\255\255\019\001\020\001\021\001\ -\255\255\255\255\024\001\025\001\026\001\255\255\028\001\029\001\ -\255\255\255\255\255\255\000\000\255\255\255\255\255\255\037\001\ -\255\255\255\255\040\001\041\001\255\255\255\255\255\255\255\255\ -\255\255\047\001\048\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\062\001\255\255\255\255\255\255\066\001\255\255\255\255\069\001\ -\070\001\255\255\255\255\255\255\255\255\255\255\076\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\086\001\087\001\255\255\089\001\090\001\091\001\092\001\255\255\ -\255\255\255\255\255\255\097\001\000\001\099\001\255\255\003\001\ -\102\001\255\255\255\255\105\001\008\001\255\255\010\001\109\001\ -\255\255\013\001\014\001\255\255\255\255\017\001\255\255\019\001\ -\020\001\021\001\255\255\255\255\024\001\025\001\026\001\255\255\ -\028\001\029\001\255\255\255\255\255\255\000\000\255\255\255\255\ -\255\255\037\001\255\255\255\255\040\001\041\001\255\255\255\255\ -\255\255\255\255\255\255\047\001\048\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\062\001\255\255\255\255\255\255\066\001\000\001\ -\255\255\069\001\070\001\004\001\255\255\255\255\255\255\008\001\ -\076\001\010\001\255\255\255\255\255\255\014\001\255\255\255\255\ -\255\255\018\001\086\001\087\001\255\255\089\001\090\001\091\001\ -\092\001\000\001\027\001\255\255\003\001\097\001\255\255\099\001\ -\255\255\008\001\102\001\010\001\255\255\105\001\013\001\014\001\ -\255\255\109\001\017\001\255\255\019\001\020\001\021\001\255\255\ -\255\255\024\001\025\001\026\001\255\255\028\001\029\001\255\255\ -\255\255\255\255\000\000\255\255\255\255\255\255\037\001\000\000\ -\255\255\040\001\041\001\255\255\069\001\255\255\255\255\255\255\ -\047\001\048\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\086\001\087\001\062\001\ -\089\001\090\001\255\255\066\001\255\255\255\255\069\001\070\001\ -\255\255\255\255\255\255\255\255\255\255\076\001\255\255\255\255\ -\255\255\255\255\107\001\255\255\255\255\255\255\255\255\086\001\ -\087\001\255\255\089\001\090\001\091\001\092\001\255\255\255\255\ -\255\255\255\255\097\001\000\001\099\001\255\255\003\001\102\001\ -\255\255\255\255\105\001\008\001\255\255\010\001\109\001\255\255\ -\013\001\014\001\255\255\255\255\017\001\255\255\019\001\020\001\ -\021\001\255\255\255\255\024\001\025\001\026\001\255\255\028\001\ -\029\001\255\255\255\255\255\255\000\000\255\255\255\255\255\255\ -\037\001\255\255\255\255\040\001\041\001\255\255\255\255\255\255\ -\255\255\255\255\047\001\048\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\062\001\255\255\255\255\255\255\066\001\255\255\255\255\ -\069\001\070\001\255\255\255\255\255\255\255\255\255\255\076\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\086\001\087\001\255\255\089\001\090\001\091\001\092\001\ -\255\255\255\255\255\255\255\255\097\001\000\001\099\001\255\255\ -\003\001\102\001\255\255\255\255\105\001\008\001\255\255\010\001\ -\109\001\255\255\013\001\014\001\255\255\255\255\017\001\255\255\ -\019\001\020\001\021\001\255\255\255\255\024\001\025\001\026\001\ -\255\255\028\001\029\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\037\001\255\255\000\000\040\001\041\001\255\255\ -\255\255\255\255\255\255\255\255\047\001\048\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\062\001\255\255\255\255\255\255\066\001\ -\255\255\255\255\069\001\070\001\255\255\255\255\255\255\255\255\ -\255\255\076\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\086\001\087\001\255\255\089\001\090\001\ -\091\001\092\001\000\001\255\255\255\255\003\001\097\001\000\001\ -\099\001\255\255\008\001\102\001\010\001\255\255\105\001\013\001\ -\014\001\255\255\109\001\017\001\013\001\019\001\020\001\021\001\ -\255\255\255\255\024\001\025\001\026\001\255\255\028\001\029\001\ -\255\255\026\001\255\255\028\001\029\001\255\255\255\255\037\001\ -\255\255\000\000\040\001\041\001\255\255\255\255\255\255\255\255\ -\041\001\047\001\048\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\062\001\255\255\255\255\255\255\066\001\255\255\255\255\069\001\ -\070\001\255\255\255\255\255\255\255\255\070\001\076\001\255\255\ -\255\255\255\255\255\255\076\001\255\255\255\255\255\255\255\255\ -\086\001\087\001\255\255\089\001\090\001\091\001\092\001\255\255\ -\255\255\255\255\091\001\097\001\000\001\099\001\255\255\003\001\ -\102\001\255\255\255\255\105\001\008\001\102\001\010\001\109\001\ -\105\001\013\001\014\001\255\255\255\255\017\001\255\255\019\001\ -\020\001\021\001\255\255\255\255\024\001\025\001\026\001\255\255\ -\028\001\029\001\255\255\255\255\255\255\255\255\000\000\255\255\ -\255\255\037\001\255\255\255\255\040\001\041\001\255\255\255\255\ -\255\255\255\255\255\255\047\001\048\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\062\001\255\255\255\255\255\255\066\001\255\255\ -\255\255\069\001\070\001\255\255\255\255\255\255\255\255\255\255\ -\076\001\255\255\255\255\000\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\086\001\087\001\255\255\089\001\255\255\091\001\ -\092\001\255\255\255\255\255\255\255\255\097\001\255\255\099\001\ -\255\255\255\255\102\001\255\255\000\001\105\001\002\001\003\001\ -\004\001\109\001\255\255\255\255\008\001\255\255\255\255\255\255\ -\255\255\013\001\255\255\255\255\255\255\017\001\018\001\019\001\ -\255\255\255\255\255\255\000\000\255\255\255\255\026\001\027\001\ -\028\001\029\001\255\255\056\001\255\255\058\001\059\001\060\001\ -\036\001\255\255\063\001\064\001\255\255\041\001\255\255\255\255\ -\255\255\255\255\255\255\047\001\048\001\255\255\255\255\255\255\ -\077\001\255\255\255\255\255\255\255\255\255\255\083\001\255\255\ -\085\001\255\255\062\001\063\001\255\255\255\255\066\001\092\001\ -\000\001\069\001\070\001\255\255\255\255\255\255\255\255\255\255\ -\076\001\255\255\103\001\104\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\086\001\087\001\255\255\089\001\090\001\091\001\ -\092\001\000\001\094\001\002\001\003\001\004\001\255\255\255\255\ -\255\255\008\001\102\001\103\001\255\255\105\001\013\001\255\255\ -\255\255\109\001\017\001\018\001\019\001\255\255\255\255\255\255\ -\000\000\255\255\255\255\026\001\027\001\028\001\029\001\255\255\ -\056\001\255\255\058\001\059\001\060\001\036\001\255\255\063\001\ -\064\001\255\255\041\001\255\255\255\255\255\255\255\255\255\255\ -\047\001\048\001\255\255\255\255\255\255\077\001\255\255\255\255\ -\255\255\255\255\255\255\083\001\255\255\085\001\255\255\062\001\ -\063\001\255\255\255\255\066\001\092\001\255\255\069\001\070\001\ -\255\255\255\255\255\255\255\255\255\255\076\001\255\255\103\001\ -\104\001\255\255\255\255\255\255\015\001\255\255\255\255\086\001\ -\087\001\255\255\089\001\090\001\091\001\092\001\000\001\094\001\ -\002\001\003\001\004\001\030\001\255\255\255\255\008\001\102\001\ -\103\001\255\255\105\001\013\001\255\255\255\255\109\001\017\001\ -\018\001\019\001\255\255\255\255\255\255\000\000\255\255\255\255\ -\026\001\027\001\028\001\029\001\255\255\056\001\255\255\058\001\ -\059\001\060\001\036\001\255\255\063\001\064\001\255\255\041\001\ -\255\255\255\255\255\255\255\255\255\255\047\001\048\001\255\255\ -\255\255\255\255\077\001\255\255\255\255\255\255\255\255\082\001\ -\083\001\255\255\085\001\255\255\062\001\255\255\255\255\255\255\ -\066\001\092\001\255\255\069\001\070\001\255\255\255\255\255\255\ -\255\255\100\001\076\001\255\255\103\001\104\001\255\255\255\255\ -\255\255\015\001\255\255\255\255\086\001\087\001\255\255\089\001\ -\090\001\091\001\092\001\000\001\255\255\002\001\003\001\004\001\ -\030\001\255\255\255\255\008\001\102\001\255\255\255\255\105\001\ -\013\001\255\255\255\255\109\001\017\001\018\001\019\001\255\255\ -\255\255\255\255\000\000\255\255\255\255\026\001\027\001\028\001\ -\029\001\255\255\056\001\255\255\058\001\059\001\060\001\036\001\ -\255\255\063\001\064\001\255\255\041\001\255\255\255\255\255\255\ -\255\255\255\255\047\001\048\001\255\255\255\255\255\255\077\001\ -\255\255\255\255\255\255\255\255\255\255\083\001\255\255\085\001\ -\255\255\062\001\255\255\255\255\255\255\066\001\092\001\255\255\ -\069\001\070\001\255\255\255\255\255\255\255\255\100\001\076\001\ -\255\255\103\001\104\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\086\001\087\001\255\255\089\001\090\001\091\001\255\255\ -\000\001\094\001\002\001\003\001\004\001\255\255\255\255\255\255\ -\008\001\102\001\255\255\255\255\105\001\013\001\255\255\255\255\ -\109\001\017\001\018\001\019\001\255\255\255\255\255\255\000\000\ -\255\255\255\255\026\001\027\001\028\001\029\001\255\255\056\001\ -\255\255\058\001\059\001\060\001\036\001\255\255\063\001\064\001\ -\255\255\041\001\255\255\255\255\255\255\070\001\255\255\047\001\ -\048\001\255\255\255\255\255\255\077\001\255\255\255\255\255\255\ -\255\255\255\255\083\001\255\255\085\001\255\255\062\001\255\255\ -\089\001\255\255\066\001\092\001\255\255\069\001\070\001\255\255\ -\255\255\255\255\255\255\255\255\076\001\255\255\103\001\104\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\086\001\087\001\ -\255\255\089\001\090\001\091\001\092\001\000\001\255\255\002\001\ -\003\001\004\001\255\255\255\255\255\255\008\001\102\001\255\255\ -\255\255\105\001\013\001\255\255\255\255\109\001\017\001\018\001\ -\019\001\255\255\255\255\255\255\000\000\255\255\255\255\026\001\ -\027\001\028\001\029\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\036\001\255\255\255\255\255\255\255\255\041\001\255\255\ -\255\255\255\255\255\255\255\255\047\001\048\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\062\001\255\255\255\255\255\255\066\001\ -\255\255\255\255\255\255\070\001\255\255\255\255\255\255\255\255\ -\255\255\076\001\255\255\255\255\000\000\255\255\255\255\255\255\ -\255\255\255\255\255\255\086\001\087\001\255\255\089\001\090\001\ -\091\001\092\001\000\001\255\255\002\001\003\001\004\001\255\255\ -\255\255\255\255\008\001\102\001\255\255\255\255\105\001\013\001\ -\255\255\255\255\109\001\017\001\018\001\019\001\255\255\255\255\ -\255\255\000\000\255\255\255\255\026\001\027\001\028\001\029\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\036\001\255\255\ -\255\255\255\255\255\255\041\001\255\255\255\255\255\255\255\255\ -\255\255\047\001\048\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\062\001\255\255\255\255\255\255\066\001\255\255\255\255\255\255\ -\070\001\255\255\255\255\255\255\255\255\255\255\076\001\255\255\ -\255\255\000\000\255\255\255\255\255\255\255\255\255\255\255\255\ -\086\001\087\001\255\255\089\001\090\001\091\001\092\001\000\001\ -\255\255\002\001\003\001\004\001\255\255\255\255\255\255\008\001\ -\102\001\255\255\255\255\105\001\013\001\255\255\255\255\109\001\ -\017\001\018\001\019\001\255\255\255\255\255\255\000\000\255\255\ -\255\255\026\001\027\001\028\001\029\001\255\255\056\001\255\255\ -\058\001\059\001\060\001\036\001\255\255\063\001\064\001\255\255\ -\041\001\255\255\255\255\255\255\070\001\255\255\047\001\048\001\ -\255\255\255\255\255\255\077\001\255\255\255\255\255\255\255\255\ -\255\255\083\001\255\255\085\001\255\255\062\001\255\255\255\255\ -\255\255\066\001\092\001\255\255\255\255\070\001\255\255\255\255\ -\255\255\255\255\255\255\076\001\255\255\103\001\104\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\086\001\087\001\255\255\ -\089\001\090\001\091\001\092\001\000\001\255\255\002\001\003\001\ -\004\001\255\255\255\255\255\255\008\001\102\001\255\255\255\255\ -\105\001\013\001\255\255\255\255\109\001\017\001\018\001\019\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\026\001\027\001\ -\028\001\029\001\255\255\000\000\255\255\255\255\255\255\255\255\ -\036\001\255\255\255\255\255\255\255\255\041\001\255\255\255\255\ -\255\255\255\255\255\255\047\001\048\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\000\001\255\255\255\255\003\001\ -\255\255\255\255\062\001\255\255\255\255\255\255\066\001\255\255\ -\255\255\013\001\070\001\255\255\255\255\255\255\255\255\255\255\ -\076\001\255\255\255\255\255\255\255\255\255\255\026\001\027\001\ -\028\001\029\001\086\001\087\001\255\255\089\001\090\001\091\001\ -\092\001\000\001\255\255\002\001\003\001\041\001\255\255\255\255\ -\255\255\008\001\102\001\255\255\255\255\105\001\013\001\255\255\ -\255\255\109\001\017\001\018\001\019\001\255\255\255\255\255\255\ -\255\255\255\255\062\001\026\001\027\001\028\001\029\001\255\255\ -\255\255\255\255\070\001\255\255\255\255\036\001\000\000\255\255\ -\076\001\255\255\041\001\255\255\255\255\255\255\255\255\255\255\ -\047\001\048\001\255\255\255\255\255\255\089\001\255\255\091\001\ -\092\001\000\001\255\255\255\255\003\001\255\255\255\255\062\001\ -\255\255\255\255\102\001\066\001\255\255\105\001\013\001\070\001\ -\255\255\109\001\255\255\255\255\255\255\076\001\255\255\255\255\ -\255\255\255\255\255\255\026\001\027\001\028\001\029\001\086\001\ -\087\001\255\255\089\001\090\001\091\001\092\001\000\001\255\255\ -\255\255\255\255\041\001\255\255\255\255\255\255\255\255\102\001\ -\255\255\255\255\105\001\013\001\255\255\255\255\109\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\062\001\ -\026\001\027\001\028\001\029\001\255\255\255\255\255\255\070\001\ -\255\255\255\255\255\255\255\255\255\255\076\001\255\255\041\001\ -\255\255\000\000\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\089\001\255\255\091\001\092\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\062\001\255\255\255\255\102\001\ -\255\255\255\255\105\001\255\255\070\001\255\255\109\001\255\255\ -\255\255\255\255\076\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\089\001\ -\255\255\091\001\092\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\102\001\255\255\255\255\105\001\ -\005\001\006\001\007\001\109\001\255\255\255\255\011\001\012\001\ -\013\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\028\001\ -\029\001\030\001\031\001\032\001\033\001\034\001\255\255\255\255\ -\255\255\255\255\039\001\255\255\041\001\255\255\255\255\255\255\ -\255\255\255\255\000\000\255\255\049\001\050\001\051\001\255\255\ -\053\001\054\001\055\001\056\001\057\001\255\255\255\255\255\255\ -\255\255\062\001\063\001\064\001\065\001\255\255\067\001\068\001\ -\255\255\070\001\255\255\072\001\073\001\074\001\255\255\076\001\ -\255\255\255\255\079\001\080\001\081\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\091\001\092\001\ -\255\255\255\255\095\001\255\255\255\255\255\255\255\255\100\001\ -\101\001\102\001\103\001\005\001\006\001\007\001\255\255\108\001\ -\255\255\011\001\012\001\013\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\028\001\029\001\030\001\031\001\032\001\033\001\ -\034\001\255\255\255\255\255\255\255\255\039\001\255\255\041\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\049\001\ -\050\001\051\001\255\255\053\001\054\001\055\001\056\001\057\001\ -\000\000\255\255\255\255\255\255\062\001\063\001\064\001\065\001\ -\255\255\067\001\068\001\255\255\070\001\255\255\072\001\073\001\ -\074\001\000\000\076\001\255\255\255\255\079\001\080\001\081\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\092\001\255\255\255\255\095\001\255\255\255\255\ -\255\255\255\255\100\001\101\001\102\001\103\001\005\001\006\001\ -\007\001\255\255\108\001\255\255\011\001\012\001\013\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\028\001\029\001\030\001\ -\031\001\032\001\033\001\034\001\255\255\255\255\255\255\255\255\ -\039\001\255\255\041\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\049\001\050\001\051\001\255\255\053\001\054\001\ -\055\001\056\001\057\001\255\255\000\000\255\255\255\255\062\001\ -\063\001\064\001\065\001\255\255\067\001\068\001\255\255\070\001\ -\255\255\072\001\073\001\074\001\255\255\076\001\255\255\255\255\ -\079\001\080\001\081\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\000\000\255\255\092\001\255\255\255\255\ -\095\001\255\255\255\255\255\255\255\255\100\001\101\001\102\001\ -\103\001\255\255\000\001\255\255\255\255\108\001\004\001\255\255\ -\006\001\255\255\008\001\255\255\010\001\255\255\012\001\013\001\ -\014\001\015\001\255\255\017\001\018\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\026\001\027\001\028\001\029\001\ -\030\001\031\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\041\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\049\001\050\001\051\001\052\001\053\001\ -\054\001\255\255\056\001\057\001\255\255\255\255\255\255\255\255\ -\062\001\063\001\064\001\000\000\255\255\067\001\255\255\069\001\ -\070\001\255\255\072\001\255\255\255\255\255\255\076\001\077\001\ -\255\255\079\001\255\255\255\255\255\255\083\001\255\255\255\255\ -\086\001\087\001\255\255\089\001\090\001\091\001\092\001\255\255\ -\255\255\095\001\000\000\255\255\098\001\255\255\100\001\255\255\ -\102\001\103\001\104\001\255\255\255\255\107\001\255\255\255\255\ -\000\001\255\255\255\255\003\001\255\255\255\255\255\255\255\255\ -\008\001\255\255\000\000\255\255\255\255\013\001\014\001\255\255\ -\255\255\000\001\255\255\019\001\003\001\255\255\022\001\255\255\ -\255\255\255\255\026\001\255\255\028\001\029\001\013\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\041\001\255\255\026\001\027\001\028\001\029\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\000\000\ -\255\255\255\255\041\001\255\255\255\255\255\255\062\001\255\255\ -\064\001\255\255\255\255\255\255\255\255\255\255\070\001\255\255\ -\255\255\255\255\255\255\075\001\076\001\255\255\255\255\000\000\ -\063\001\255\255\255\255\255\255\255\255\255\255\069\001\070\001\ -\255\255\255\255\255\255\091\001\092\001\076\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\000\001\255\255\102\001\003\001\ -\255\255\105\001\089\001\255\255\091\001\092\001\000\000\094\001\ -\255\255\013\001\255\255\255\255\255\255\255\255\255\255\102\001\ -\103\001\255\255\105\001\255\255\255\255\255\255\026\001\027\001\ -\028\001\029\001\255\255\000\001\255\255\255\255\003\001\255\255\ -\255\255\000\000\255\255\008\001\255\255\041\001\255\255\255\255\ -\013\001\255\255\255\255\255\255\255\255\255\255\019\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\026\001\255\255\028\001\ -\029\001\255\255\255\255\063\001\000\000\255\255\255\255\255\255\ -\255\255\069\001\070\001\255\255\041\001\255\255\255\255\255\255\ -\076\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\089\001\255\255\091\001\ -\092\001\062\001\094\001\000\000\255\255\255\255\255\255\255\255\ -\069\001\070\001\102\001\103\001\000\000\105\001\255\255\076\001\ -\255\255\255\255\255\255\000\001\255\255\255\255\003\001\255\255\ -\255\255\255\255\255\255\008\001\255\255\255\255\091\001\092\001\ -\013\001\094\001\255\255\255\255\255\255\255\255\019\001\255\255\ -\255\255\102\001\255\255\000\000\105\001\026\001\255\255\028\001\ -\029\001\255\255\000\001\255\255\255\255\003\001\255\255\255\255\ -\255\255\255\255\008\001\255\255\041\001\255\255\255\255\013\001\ -\255\255\255\255\255\255\255\255\255\255\019\001\000\000\255\255\ -\255\255\255\255\000\001\255\255\026\001\003\001\028\001\029\001\ -\255\255\062\001\255\255\255\255\255\255\255\255\255\255\013\001\ -\255\255\070\001\255\255\041\001\255\255\255\255\255\255\076\001\ -\255\255\000\000\255\255\255\255\026\001\027\001\028\001\029\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\091\001\092\001\ -\062\001\255\255\255\255\041\001\255\255\255\255\255\255\000\001\ -\070\001\102\001\003\001\255\255\105\001\255\255\076\001\255\255\ -\000\000\255\255\255\255\255\255\013\001\255\255\255\255\255\255\ -\062\001\255\255\019\001\255\255\255\255\091\001\092\001\000\001\ -\070\001\026\001\003\001\028\001\029\001\255\255\076\001\000\000\ -\102\001\255\255\255\255\105\001\013\001\255\255\255\255\255\255\ -\041\001\255\255\019\001\089\001\255\255\091\001\092\001\255\255\ -\255\255\026\001\255\255\028\001\029\001\255\255\000\001\255\255\ -\102\001\003\001\255\255\105\001\255\255\062\001\000\000\255\255\ -\041\001\255\255\255\255\013\001\255\255\070\001\255\255\255\255\ -\255\255\019\001\255\255\076\001\255\255\255\255\255\255\255\255\ -\026\001\000\001\028\001\029\001\003\001\062\001\255\255\255\255\ -\255\255\255\255\091\001\092\001\255\255\070\001\013\001\041\001\ -\255\255\255\255\255\255\076\001\019\001\102\001\255\255\255\255\ -\105\001\255\255\255\255\026\001\000\001\028\001\029\001\003\001\ -\255\255\255\255\091\001\092\001\062\001\000\000\255\255\255\255\ -\255\255\013\001\041\001\255\255\070\001\102\001\255\255\019\001\ -\105\001\255\255\076\001\255\255\255\255\255\255\026\001\255\255\ -\028\001\029\001\255\255\000\001\255\255\255\255\003\001\062\001\ -\000\000\091\001\092\001\255\255\000\001\041\001\255\255\070\001\ -\013\001\255\255\255\255\255\255\102\001\076\001\019\001\105\001\ -\255\255\013\001\000\000\255\255\255\255\026\001\255\255\028\001\ -\029\001\000\000\062\001\255\255\091\001\092\001\026\001\255\255\ -\028\001\029\001\070\001\000\001\041\001\255\255\255\255\102\001\ -\076\001\255\255\105\001\255\255\255\255\041\001\255\255\255\255\ -\013\001\255\255\255\255\255\255\255\255\255\255\255\255\091\001\ -\092\001\062\001\255\255\255\255\255\255\026\001\000\001\028\001\ -\029\001\070\001\102\001\255\255\255\255\105\001\255\255\076\001\ -\255\255\255\255\070\001\013\001\041\001\000\000\255\255\255\255\ -\076\001\255\255\255\255\255\255\255\255\255\255\091\001\092\001\ -\026\001\000\001\028\001\029\001\255\255\255\255\255\255\091\001\ -\255\255\102\001\255\255\255\255\105\001\255\255\013\001\041\001\ -\255\255\070\001\102\001\255\255\000\000\105\001\255\255\076\001\ -\255\255\255\255\255\255\026\001\255\255\028\001\029\001\255\255\ -\000\001\255\255\255\255\255\255\255\255\255\255\091\001\255\255\ -\255\255\255\255\041\001\000\000\070\001\013\001\255\255\000\000\ -\255\255\102\001\076\001\255\255\105\001\255\255\255\255\000\001\ -\255\255\255\255\026\001\255\255\028\001\029\001\255\255\255\255\ -\255\255\091\001\000\000\255\255\013\001\255\255\255\255\070\001\ -\255\255\041\001\255\255\255\255\102\001\076\001\255\255\105\001\ -\255\255\026\001\255\255\028\001\029\001\255\255\000\001\255\255\ -\255\255\255\255\255\255\255\255\091\001\255\255\255\255\040\001\ -\041\001\255\255\255\255\013\001\255\255\255\255\070\001\102\001\ -\255\255\255\255\105\001\255\255\076\001\255\255\255\255\255\255\ -\026\001\255\255\028\001\029\001\255\255\062\001\000\000\255\255\ -\255\255\255\255\255\255\091\001\255\255\070\001\040\001\041\001\ -\255\255\255\255\255\255\076\001\255\255\255\255\102\001\255\255\ -\255\255\105\001\255\255\255\255\255\255\000\001\255\255\255\255\ -\003\001\255\255\091\001\092\001\062\001\255\255\255\255\255\255\ -\255\255\255\255\013\001\255\255\070\001\102\001\255\255\255\255\ -\255\255\255\255\076\001\255\255\255\255\255\255\255\255\026\001\ -\000\001\028\001\029\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\091\001\092\001\255\255\255\255\013\001\041\001\255\255\ -\255\255\255\255\000\001\255\255\102\001\255\255\255\255\255\255\ -\255\255\000\001\026\001\255\255\028\001\029\001\255\255\013\001\ -\255\255\255\255\255\255\062\001\255\255\255\255\013\001\255\255\ -\255\255\041\001\255\255\070\001\026\001\255\255\028\001\029\001\ -\255\255\076\001\255\255\026\001\255\255\028\001\029\001\255\255\ -\255\255\255\255\255\255\041\001\255\255\255\255\062\001\255\255\ -\091\001\092\001\041\001\255\255\255\255\255\255\070\001\255\255\ -\255\255\255\255\255\255\102\001\076\001\000\001\255\255\255\255\ -\062\001\255\255\255\255\255\255\255\255\255\255\255\255\062\001\ -\070\001\255\255\013\001\091\001\092\001\255\255\076\001\070\001\ -\255\255\255\255\255\255\255\255\255\255\076\001\102\001\026\001\ -\255\255\028\001\029\001\255\255\000\001\091\001\092\001\255\255\ -\255\255\255\255\255\255\255\255\091\001\092\001\041\001\255\255\ -\102\001\013\001\255\255\255\255\255\255\255\255\255\255\102\001\ -\255\255\255\255\255\255\000\001\255\255\255\255\026\001\000\001\ -\028\001\029\001\255\255\062\001\255\255\255\255\255\255\255\255\ -\013\001\255\255\255\255\070\001\013\001\041\001\255\255\255\255\ -\255\255\076\001\000\001\255\255\255\255\026\001\255\255\028\001\ -\029\001\026\001\255\255\028\001\029\001\255\255\255\255\013\001\ -\091\001\092\001\062\001\255\255\041\001\255\255\255\255\255\255\ -\041\001\255\255\070\001\102\001\026\001\255\255\028\001\029\001\ -\076\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\062\001\255\255\041\001\255\255\062\001\255\255\091\001\ -\092\001\070\001\255\255\255\255\255\255\070\001\000\001\076\001\ -\255\255\255\255\102\001\076\001\255\255\255\255\255\255\255\255\ -\062\001\255\255\255\255\013\001\255\255\255\255\091\001\092\001\ -\070\001\255\255\091\001\092\001\255\255\255\255\076\001\255\255\ -\026\001\102\001\028\001\029\001\255\255\102\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\091\001\092\001\041\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\102\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\062\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\070\001\255\255\255\255\255\255\ -\001\001\002\001\076\001\255\255\005\001\006\001\007\001\255\255\ -\009\001\255\255\011\001\012\001\255\255\255\255\015\001\016\001\ -\255\255\091\001\092\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\027\001\255\255\102\001\030\001\031\001\032\001\ -\033\001\034\001\255\255\036\001\255\255\255\255\039\001\255\255\ -\255\255\042\001\043\001\044\001\045\001\046\001\255\255\255\255\ -\049\001\050\001\051\001\255\255\053\001\054\001\055\001\056\001\ -\057\001\255\255\255\255\060\001\255\255\062\001\063\001\064\001\ -\065\001\255\255\067\001\068\001\255\255\070\001\255\255\072\001\ -\073\001\074\001\255\255\255\255\255\255\078\001\079\001\080\001\ -\081\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\089\001\255\255\255\255\255\255\255\255\094\001\095\001\255\255\ -\255\255\255\255\255\255\100\001\101\001\255\255\103\001\255\255\ -\001\001\002\001\255\255\108\001\005\001\006\001\007\001\255\255\ -\009\001\255\255\011\001\012\001\255\255\255\255\255\255\016\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\027\001\255\255\255\255\030\001\031\001\032\001\ -\033\001\034\001\255\255\036\001\255\255\255\255\039\001\255\255\ -\255\255\042\001\043\001\044\001\045\001\046\001\255\255\255\255\ -\049\001\050\001\051\001\255\255\053\001\054\001\055\001\056\001\ -\057\001\255\255\255\255\060\001\255\255\062\001\063\001\064\001\ -\065\001\255\255\067\001\068\001\255\255\070\001\255\255\072\001\ -\073\001\074\001\255\255\255\255\255\255\078\001\079\001\080\001\ -\081\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\089\001\255\255\255\255\255\255\255\255\094\001\095\001\255\255\ -\255\255\255\255\255\255\100\001\101\001\255\255\103\001\255\255\ -\001\001\002\001\255\255\108\001\005\001\006\001\007\001\255\255\ -\009\001\255\255\011\001\012\001\255\255\255\255\255\255\016\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\027\001\255\255\255\255\030\001\031\001\032\001\ -\033\001\034\001\255\255\036\001\255\255\255\255\039\001\255\255\ -\255\255\042\001\043\001\044\001\045\001\046\001\255\255\255\255\ -\049\001\050\001\051\001\255\255\053\001\054\001\055\001\056\001\ -\057\001\255\255\255\255\060\001\255\255\062\001\063\001\064\001\ -\065\001\255\255\067\001\068\001\255\255\255\255\255\255\072\001\ -\073\001\074\001\255\255\255\255\255\255\078\001\079\001\080\001\ -\081\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\094\001\095\001\255\255\ -\255\255\255\255\255\255\100\001\101\001\255\255\103\001\255\255\ -\000\001\255\255\255\255\108\001\004\001\255\255\006\001\255\255\ -\008\001\255\255\010\001\255\255\012\001\255\255\014\001\015\001\ -\255\255\017\001\018\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\027\001\255\255\255\255\030\001\031\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\049\001\050\001\051\001\052\001\255\255\054\001\255\255\ -\056\001\057\001\255\255\255\255\255\255\255\255\255\255\063\001\ -\064\001\255\255\255\255\067\001\255\255\069\001\255\255\255\255\ -\072\001\255\255\255\255\255\255\255\255\077\001\006\001\079\001\ -\008\001\255\255\255\255\083\001\255\255\255\255\086\001\087\001\ -\255\255\089\001\090\001\255\255\092\001\000\001\255\255\095\001\ -\255\255\004\001\098\001\255\255\100\001\255\255\255\255\103\001\ -\104\001\255\255\255\255\107\001\255\255\255\255\017\001\255\255\ -\019\001\255\255\255\255\022\001\255\255\255\255\255\255\026\001\ -\027\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\056\001\036\001\058\001\059\001\060\001\255\255\255\255\063\001\ -\064\001\255\255\255\255\255\255\047\001\048\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\077\001\255\255\255\255\ -\255\255\255\255\255\255\083\001\063\001\085\001\255\255\066\001\ -\255\255\255\255\069\001\255\255\092\001\005\001\006\001\007\001\ -\255\255\255\255\255\255\011\001\012\001\013\001\255\255\103\001\ -\104\001\255\255\085\001\086\001\255\255\255\255\255\255\090\001\ -\255\255\092\001\255\255\094\001\028\001\029\001\030\001\031\001\ -\032\001\033\001\034\001\255\255\103\001\255\255\105\001\039\001\ -\255\255\041\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\049\001\050\001\051\001\255\255\053\001\054\001\055\001\ -\056\001\057\001\255\255\255\255\255\255\255\255\062\001\063\001\ -\064\001\065\001\255\255\067\001\068\001\255\255\070\001\255\255\ -\072\001\073\001\074\001\255\255\076\001\255\255\255\255\079\001\ -\080\001\081\001\255\255\255\255\255\255\255\255\005\001\006\001\ -\007\001\255\255\255\255\091\001\011\001\012\001\013\001\095\001\ -\255\255\255\255\255\255\255\255\100\001\101\001\102\001\103\001\ -\255\255\255\255\255\255\255\255\108\001\028\001\029\001\030\001\ -\031\001\032\001\033\001\034\001\255\255\255\255\255\255\255\255\ -\039\001\255\255\041\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\049\001\050\001\051\001\255\255\053\001\054\001\ -\055\001\056\001\057\001\255\255\255\255\255\255\255\255\062\001\ -\063\001\064\001\065\001\255\255\067\001\068\001\255\255\070\001\ -\255\255\072\001\073\001\074\001\255\255\076\001\255\255\255\255\ -\079\001\080\001\081\001\255\255\001\001\002\001\255\255\255\255\ -\255\255\006\001\007\001\255\255\009\001\255\255\255\255\012\001\ -\095\001\255\255\255\255\016\001\255\255\100\001\101\001\102\001\ -\103\001\255\255\255\255\255\255\255\255\108\001\027\001\255\255\ -\255\255\030\001\031\001\255\255\255\255\255\255\255\255\036\001\ -\255\255\255\255\255\255\255\255\255\255\042\001\043\001\044\001\ -\045\001\046\001\255\255\255\255\049\001\050\001\051\001\255\255\ -\053\001\054\001\255\255\056\001\057\001\255\255\255\255\060\001\ -\255\255\255\255\063\001\064\001\255\255\255\255\067\001\068\001\ -\255\255\070\001\255\255\072\001\255\255\255\255\255\255\255\255\ -\255\255\078\001\079\001\080\001\081\001\001\001\002\001\255\255\ -\255\255\255\255\006\001\007\001\089\001\009\001\255\255\092\001\ -\012\001\094\001\095\001\015\001\016\001\255\255\255\255\100\001\ -\255\255\102\001\103\001\104\001\255\255\255\255\255\255\027\001\ -\255\255\255\255\030\001\031\001\255\255\255\255\255\255\255\255\ -\036\001\255\255\255\255\255\255\255\255\255\255\042\001\043\001\ -\044\001\045\001\046\001\255\255\255\255\049\001\050\001\051\001\ -\255\255\053\001\054\001\255\255\056\001\057\001\255\255\255\255\ -\060\001\255\255\255\255\063\001\064\001\255\255\255\255\067\001\ -\068\001\255\255\070\001\255\255\072\001\255\255\255\255\255\255\ -\255\255\255\255\078\001\079\001\080\001\081\001\001\001\002\001\ -\255\255\255\255\255\255\006\001\007\001\089\001\009\001\255\255\ -\092\001\012\001\094\001\095\001\255\255\016\001\255\255\255\255\ -\100\001\255\255\255\255\103\001\104\001\255\255\255\255\255\255\ -\027\001\255\255\255\255\030\001\031\001\255\255\255\255\255\255\ -\255\255\036\001\255\255\255\255\255\255\255\255\255\255\042\001\ -\043\001\044\001\045\001\046\001\255\255\255\255\049\001\050\001\ -\051\001\255\255\053\001\054\001\255\255\056\001\057\001\255\255\ -\255\255\060\001\255\255\255\255\063\001\064\001\255\255\255\255\ -\067\001\068\001\255\255\070\001\255\255\072\001\255\255\255\255\ -\255\255\255\255\255\255\078\001\079\001\080\001\081\001\001\001\ -\002\001\255\255\255\255\255\255\006\001\007\001\089\001\009\001\ -\255\255\092\001\012\001\094\001\095\001\255\255\016\001\255\255\ -\255\255\100\001\255\255\102\001\103\001\104\001\255\255\255\255\ -\255\255\027\001\255\255\255\255\030\001\031\001\255\255\255\255\ -\255\255\255\255\036\001\255\255\255\255\255\255\255\255\255\255\ -\042\001\043\001\044\001\045\001\046\001\255\255\255\255\049\001\ -\050\001\051\001\255\255\053\001\054\001\255\255\056\001\057\001\ -\255\255\255\255\060\001\255\255\255\255\063\001\064\001\255\255\ -\255\255\067\001\068\001\255\255\070\001\255\255\072\001\255\255\ -\255\255\255\255\255\255\255\255\078\001\079\001\080\001\081\001\ -\001\001\002\001\255\255\255\255\255\255\006\001\007\001\089\001\ -\009\001\255\255\092\001\012\001\094\001\095\001\255\255\016\001\ -\255\255\255\255\100\001\255\255\102\001\103\001\104\001\255\255\ -\255\255\255\255\027\001\255\255\255\255\030\001\031\001\255\255\ -\255\255\255\255\255\255\036\001\255\255\255\255\255\255\255\255\ -\255\255\042\001\043\001\044\001\045\001\046\001\255\255\255\255\ -\049\001\050\001\051\001\255\255\053\001\054\001\255\255\056\001\ -\057\001\255\255\255\255\060\001\255\255\255\255\063\001\064\001\ -\255\255\255\255\067\001\068\001\255\255\070\001\255\255\072\001\ -\255\255\255\255\255\255\255\255\255\255\078\001\079\001\080\001\ -\081\001\255\255\255\255\005\001\006\001\007\001\255\255\255\255\ -\089\001\011\001\012\001\092\001\255\255\094\001\095\001\255\255\ -\255\255\255\255\255\255\100\001\255\255\255\255\103\001\104\001\ -\026\001\255\255\255\255\255\255\030\001\031\001\032\001\033\001\ -\034\001\255\255\255\255\255\255\255\255\039\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\049\001\ -\050\001\051\001\255\255\053\001\054\001\055\001\056\001\057\001\ -\255\255\255\255\255\255\255\255\062\001\063\001\064\001\065\001\ -\255\255\067\001\068\001\255\255\255\255\255\255\072\001\073\001\ -\074\001\255\255\255\255\255\255\255\255\079\001\080\001\081\001\ -\255\255\255\255\005\001\006\001\007\001\255\255\255\255\255\255\ -\011\001\012\001\255\255\255\255\255\255\095\001\255\255\255\255\ -\255\255\255\255\100\001\101\001\255\255\103\001\255\255\255\255\ -\255\255\255\255\108\001\030\001\031\001\032\001\033\001\034\001\ -\255\255\255\255\255\255\255\255\039\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\049\001\050\001\ -\051\001\255\255\053\001\054\001\055\001\056\001\057\001\255\255\ -\255\255\255\255\255\255\062\001\063\001\064\001\065\001\255\255\ -\067\001\068\001\255\255\255\255\255\255\072\001\073\001\074\001\ -\255\255\255\255\255\255\255\255\079\001\080\001\081\001\255\255\ -\255\255\005\001\006\001\007\001\087\001\255\255\010\001\011\001\ -\012\001\255\255\255\255\255\255\095\001\255\255\255\255\255\255\ -\255\255\100\001\101\001\255\255\103\001\255\255\255\255\255\255\ -\255\255\108\001\030\001\031\001\032\001\033\001\034\001\255\255\ -\255\255\255\255\255\255\039\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\049\001\050\001\051\001\ -\255\255\053\001\054\001\055\001\056\001\057\001\255\255\255\255\ -\255\255\255\255\062\001\063\001\064\001\065\001\255\255\067\001\ -\068\001\255\255\255\255\255\255\072\001\073\001\074\001\255\255\ -\255\255\255\255\255\255\079\001\080\001\081\001\255\255\255\255\ -\005\001\006\001\007\001\255\255\255\255\255\255\011\001\012\001\ -\255\255\255\255\255\255\095\001\255\255\255\255\255\255\255\255\ -\100\001\101\001\255\255\103\001\255\255\255\255\255\255\255\255\ -\108\001\030\001\031\001\032\001\033\001\034\001\255\255\255\255\ -\255\255\255\255\039\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\049\001\050\001\051\001\255\255\ -\053\001\054\001\055\001\056\001\057\001\255\255\255\255\255\255\ -\255\255\062\001\063\001\064\001\065\001\255\255\067\001\068\001\ -\255\255\255\255\255\255\072\001\073\001\074\001\255\255\255\255\ -\255\255\255\255\079\001\080\001\081\001\255\255\255\255\005\001\ -\006\001\007\001\255\255\255\255\089\001\011\001\012\001\255\255\ -\255\255\255\255\095\001\255\255\255\255\255\255\255\255\100\001\ -\101\001\255\255\103\001\255\255\255\255\255\255\255\255\108\001\ -\030\001\031\001\032\001\033\001\034\001\255\255\255\255\255\255\ -\255\255\039\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\049\001\050\001\051\001\255\255\053\001\ -\054\001\055\001\056\001\057\001\255\255\255\255\255\255\255\255\ -\062\001\063\001\064\001\065\001\255\255\067\001\068\001\255\255\ -\255\255\255\255\072\001\073\001\074\001\255\255\255\255\255\255\ -\255\255\079\001\080\001\081\001\255\255\255\255\005\001\006\001\ -\007\001\255\255\255\255\089\001\011\001\012\001\255\255\255\255\ -\255\255\095\001\255\255\255\255\255\255\255\255\100\001\101\001\ -\255\255\103\001\255\255\255\255\255\255\255\255\108\001\030\001\ -\031\001\032\001\033\001\034\001\255\255\255\255\255\255\255\255\ -\039\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\049\001\050\001\051\001\255\255\053\001\054\001\ -\055\001\056\001\057\001\255\255\255\255\255\255\255\255\062\001\ -\063\001\064\001\065\001\255\255\067\001\068\001\255\255\255\255\ -\255\255\072\001\073\001\074\001\255\255\255\255\255\255\255\255\ -\079\001\080\001\081\001\255\255\255\255\005\001\006\001\007\001\ -\255\255\255\255\089\001\011\001\012\001\255\255\255\255\255\255\ -\095\001\255\255\255\255\255\255\255\255\100\001\101\001\255\255\ -\103\001\255\255\255\255\255\255\255\255\108\001\030\001\031\001\ -\032\001\033\001\034\001\255\255\255\255\255\255\255\255\039\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\049\001\050\001\051\001\255\255\053\001\054\001\055\001\ -\056\001\057\001\255\255\255\255\255\255\255\255\062\001\063\001\ -\064\001\065\001\255\255\067\001\068\001\255\255\255\255\255\255\ -\072\001\073\001\074\001\255\255\255\255\255\255\255\255\079\001\ -\080\001\081\001\255\255\255\255\005\001\006\001\007\001\255\255\ -\255\255\089\001\011\001\012\001\255\255\255\255\255\255\095\001\ -\255\255\255\255\255\255\255\255\100\001\101\001\255\255\103\001\ -\255\255\255\255\255\255\255\255\108\001\030\001\031\001\032\001\ -\033\001\034\001\255\255\255\255\255\255\255\255\039\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\049\001\050\001\051\001\255\255\053\001\054\001\055\001\056\001\ -\057\001\255\255\255\255\255\255\255\255\062\001\063\001\064\001\ -\065\001\255\255\067\001\068\001\006\001\255\255\255\255\072\001\ -\073\001\074\001\012\001\255\255\255\255\255\255\079\001\080\001\ -\081\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\030\001\031\001\095\001\255\255\ -\255\255\255\255\255\255\100\001\101\001\255\255\103\001\255\255\ -\255\255\255\255\255\255\108\001\255\255\255\255\255\255\049\001\ -\050\001\051\001\052\001\255\255\054\001\255\255\056\001\057\001\ -\255\255\255\255\255\255\255\255\255\255\063\001\064\001\006\001\ -\255\255\067\001\255\255\069\001\255\255\012\001\072\001\014\001\ -\255\255\255\255\017\001\077\001\255\255\079\001\255\255\255\255\ -\255\255\083\001\255\255\255\255\027\001\255\255\255\255\030\001\ -\031\001\255\255\092\001\255\255\255\255\095\001\255\255\255\255\ -\098\001\255\255\100\001\255\255\255\255\103\001\104\001\255\255\ -\255\255\107\001\049\001\050\001\051\001\052\001\255\255\054\001\ -\255\255\056\001\057\001\255\255\255\255\255\255\255\255\255\255\ -\063\001\064\001\006\001\255\255\067\001\255\255\255\255\255\255\ -\012\001\072\001\014\001\255\255\255\255\017\001\077\001\255\255\ -\079\001\255\255\255\255\255\255\083\001\255\255\255\255\027\001\ -\255\255\255\255\030\001\031\001\255\255\092\001\255\255\255\255\ -\095\001\255\255\255\255\098\001\255\255\100\001\255\255\255\255\ -\103\001\104\001\255\255\255\255\255\255\049\001\050\001\051\001\ -\052\001\255\255\054\001\255\255\056\001\057\001\255\255\255\255\ -\255\255\255\255\255\255\063\001\064\001\006\001\255\255\067\001\ -\255\255\255\255\255\255\012\001\072\001\014\001\255\255\255\255\ -\255\255\077\001\255\255\079\001\255\255\255\255\255\255\083\001\ -\255\255\255\255\027\001\255\255\255\255\030\001\031\001\255\255\ -\092\001\255\255\255\255\095\001\255\255\255\255\098\001\255\255\ -\100\001\255\255\255\255\103\001\104\001\255\255\255\255\255\255\ -\049\001\050\001\051\001\052\001\255\255\054\001\255\255\056\001\ -\057\001\255\255\255\255\255\255\255\255\255\255\063\001\064\001\ -\006\001\255\255\067\001\255\255\255\255\255\255\012\001\072\001\ -\014\001\255\255\255\255\255\255\077\001\255\255\079\001\255\255\ -\255\255\255\255\083\001\255\255\255\255\027\001\255\255\255\255\ -\030\001\031\001\255\255\092\001\255\255\255\255\095\001\255\255\ -\255\255\098\001\255\255\100\001\255\255\255\255\103\001\104\001\ -\255\255\255\255\255\255\049\001\050\001\051\001\052\001\255\255\ -\054\001\255\255\056\001\057\001\255\255\255\255\255\255\255\255\ -\006\001\063\001\064\001\255\255\255\255\067\001\012\001\255\255\ -\255\255\255\255\072\001\255\255\255\255\255\255\255\255\077\001\ -\255\255\079\001\255\255\255\255\255\255\083\001\255\255\255\255\ -\030\001\031\001\255\255\255\255\255\255\255\255\092\001\255\255\ -\255\255\095\001\255\255\255\255\098\001\255\255\100\001\255\255\ -\255\255\103\001\104\001\049\001\050\001\051\001\052\001\255\255\ -\054\001\255\255\056\001\057\001\255\255\255\255\255\255\255\255\ -\006\001\063\001\064\001\255\255\255\255\067\001\012\001\069\001\ -\255\255\255\255\072\001\255\255\255\255\255\255\255\255\077\001\ -\255\255\079\001\255\255\255\255\255\255\083\001\255\255\255\255\ -\030\001\031\001\255\255\255\255\255\255\255\255\092\001\255\255\ -\255\255\095\001\255\255\255\255\098\001\255\255\100\001\255\255\ -\255\255\103\001\104\001\049\001\050\001\051\001\052\001\255\255\ -\054\001\255\255\056\001\057\001\255\255\255\255\255\255\255\255\ -\006\001\063\001\064\001\255\255\255\255\067\001\012\001\255\255\ -\255\255\255\255\072\001\255\255\255\255\255\255\255\255\077\001\ -\255\255\079\001\255\255\255\255\255\255\083\001\255\255\255\255\ -\030\001\031\001\255\255\255\255\255\255\255\255\092\001\255\255\ -\255\255\095\001\255\255\255\255\098\001\255\255\100\001\255\255\ -\255\255\103\001\104\001\049\001\050\001\051\001\052\001\255\255\ -\054\001\255\255\056\001\057\001\255\255\255\255\255\255\255\255\ -\006\001\063\001\064\001\255\255\255\255\067\001\012\001\255\255\ -\255\255\255\255\072\001\255\255\255\255\255\255\255\255\077\001\ -\255\255\079\001\255\255\255\255\255\255\083\001\255\255\255\255\ -\030\001\031\001\255\255\255\255\255\255\255\255\092\001\255\255\ -\255\255\095\001\255\255\255\255\098\001\255\255\100\001\255\255\ -\255\255\103\001\104\001\049\001\050\001\051\001\255\255\053\001\ -\054\001\255\255\056\001\057\001\255\255\255\255\255\255\255\255\ -\255\255\063\001\064\001\006\001\255\255\067\001\255\255\010\001\ -\255\255\012\001\072\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\079\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\087\001\255\255\030\001\031\001\255\255\092\001\255\255\ -\255\255\095\001\255\255\255\255\255\255\255\255\100\001\255\255\ -\255\255\103\001\104\001\255\255\255\255\255\255\049\001\050\001\ -\051\001\255\255\053\001\054\001\255\255\056\001\057\001\255\255\ -\255\255\255\255\255\255\006\001\063\001\064\001\255\255\255\255\ -\067\001\012\001\255\255\255\255\255\255\072\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\079\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\030\001\031\001\255\255\255\255\255\255\ -\255\255\092\001\255\255\255\255\095\001\255\255\255\255\255\255\ -\255\255\100\001\255\255\255\255\103\001\104\001\049\001\050\001\ -\051\001\255\255\053\001\054\001\255\255\056\001\057\001\255\255\ -\255\255\255\255\255\255\006\001\063\001\064\001\255\255\255\255\ -\067\001\012\001\255\255\255\255\255\255\072\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\079\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\030\001\031\001\255\255\255\255\255\255\ -\255\255\092\001\255\255\255\255\095\001\255\255\255\255\255\255\ -\255\255\100\001\255\255\255\255\103\001\104\001\049\001\050\001\ -\051\001\255\255\053\001\054\001\255\255\056\001\057\001\255\255\ -\255\255\255\255\255\255\006\001\063\001\064\001\255\255\255\255\ -\067\001\012\001\255\255\255\255\255\255\072\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\079\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\030\001\031\001\255\255\255\255\255\255\ -\255\255\092\001\255\255\255\255\095\001\255\255\255\255\255\255\ -\255\255\100\001\255\255\255\255\103\001\104\001\049\001\050\001\ -\051\001\255\255\053\001\054\001\255\255\056\001\057\001\255\255\ -\255\255\255\255\255\255\006\001\063\001\064\001\255\255\255\255\ -\067\001\012\001\255\255\255\255\255\255\072\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\079\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\030\001\031\001\255\255\255\255\255\255\ -\255\255\092\001\255\255\255\255\095\001\255\255\255\255\255\255\ -\255\255\100\001\255\255\255\255\103\001\104\001\049\001\050\001\ -\051\001\255\255\255\255\054\001\255\255\056\001\057\001\255\255\ -\255\255\255\255\255\255\255\255\063\001\064\001\006\001\007\001\ -\067\001\255\255\255\255\011\001\012\001\072\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\079\001\255\255\022\001\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\030\001\031\001\ -\255\255\092\001\255\255\255\255\095\001\255\255\255\255\255\255\ -\255\255\100\001\255\255\255\255\103\001\104\001\255\255\255\255\ -\255\255\049\001\050\001\051\001\052\001\255\255\054\001\055\001\ -\056\001\057\001\255\255\255\255\255\255\006\001\007\001\063\001\ -\064\001\255\255\011\001\012\001\255\255\255\255\255\255\255\255\ -\072\001\073\001\255\255\255\255\255\255\077\001\255\255\255\255\ -\255\255\081\001\255\255\083\001\255\255\030\001\031\001\255\255\ -\255\255\255\255\255\255\255\255\092\001\255\255\255\255\095\001\ -\255\255\255\255\098\001\255\255\100\001\255\255\255\255\103\001\ -\049\001\050\001\051\001\052\001\255\255\054\001\055\001\056\001\ -\057\001\255\255\255\255\255\255\006\001\007\001\063\001\064\001\ -\255\255\011\001\012\001\255\255\255\255\255\255\255\255\072\001\ -\073\001\255\255\255\255\255\255\077\001\255\255\255\255\255\255\ -\081\001\255\255\083\001\255\255\030\001\031\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\095\001\006\001\ -\007\001\098\001\255\255\100\001\011\001\012\001\103\001\049\001\ -\050\001\051\001\255\255\255\255\054\001\055\001\056\001\057\001\ -\255\255\255\255\255\255\255\255\255\255\063\001\064\001\030\001\ -\031\001\255\255\255\255\255\255\255\255\255\255\072\001\073\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\081\001\ -\255\255\255\255\049\001\050\001\051\001\255\255\255\255\054\001\ -\055\001\056\001\057\001\255\255\255\255\095\001\255\255\255\255\ -\063\001\064\001\100\001\255\255\255\255\103\001\000\001\001\001\ -\002\001\072\001\073\001\255\255\255\255\255\255\255\255\009\001\ -\255\255\255\255\081\001\255\255\014\001\015\001\016\001\017\001\ -\018\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\095\001\027\001\255\255\255\255\255\255\100\001\255\255\255\255\ -\103\001\255\255\036\001\255\255\255\255\255\255\001\001\002\001\ -\042\001\043\001\044\001\045\001\046\001\255\255\009\001\255\255\ -\255\255\255\255\255\255\255\255\015\001\016\001\255\255\018\001\ -\255\255\255\255\060\001\255\255\255\255\255\255\255\255\255\255\ -\027\001\067\001\068\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\036\001\255\255\255\255\078\001\079\001\080\001\042\001\ -\043\001\044\001\045\001\046\001\255\255\255\255\255\255\089\001\ -\255\255\255\255\255\255\255\255\094\001\001\001\002\001\255\255\ -\255\255\060\001\255\255\007\001\255\255\009\001\255\255\255\255\ -\067\001\068\001\255\255\255\255\016\001\255\255\255\255\255\255\ -\255\255\255\255\255\255\078\001\079\001\080\001\255\255\027\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\090\001\ -\036\001\255\255\255\255\094\001\255\255\255\255\042\001\043\001\ -\044\001\045\001\046\001\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\001\001\002\001\ -\060\001\255\255\255\255\255\255\255\255\255\255\009\001\067\001\ -\068\001\255\255\255\255\255\255\015\001\016\001\255\255\018\001\ -\255\255\255\255\078\001\079\001\080\001\081\001\025\001\255\255\ -\027\001\255\255\255\255\255\255\255\255\089\001\255\255\255\255\ -\255\255\036\001\094\001\255\255\255\255\001\001\002\001\042\001\ -\043\001\044\001\045\001\046\001\255\255\009\001\255\255\255\255\ -\255\255\255\255\255\255\015\001\016\001\255\255\018\001\255\255\ -\255\255\060\001\255\255\255\255\255\255\255\255\255\255\027\001\ -\067\001\068\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\036\001\255\255\255\255\078\001\079\001\080\001\042\001\043\001\ -\044\001\045\001\046\001\255\255\001\001\002\001\255\255\255\255\ -\255\255\255\255\255\255\094\001\009\001\255\255\255\255\255\255\ -\060\001\255\255\015\001\016\001\255\255\018\001\255\255\067\001\ -\068\001\255\255\255\255\255\255\255\255\255\255\027\001\255\255\ -\255\255\255\255\078\001\079\001\080\001\255\255\255\255\036\001\ -\255\255\255\255\086\001\255\255\255\255\042\001\043\001\044\001\ -\045\001\046\001\094\001\001\001\002\001\255\255\255\255\255\255\ -\255\255\007\001\255\255\009\001\255\255\255\255\255\255\060\001\ -\255\255\255\255\016\001\255\255\255\255\255\255\067\001\068\001\ -\255\255\255\255\255\255\255\255\255\255\027\001\255\255\255\255\ -\255\255\078\001\079\001\080\001\255\255\255\255\036\001\255\255\ -\255\255\086\001\255\255\255\255\042\001\043\001\044\001\045\001\ -\046\001\094\001\001\001\002\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\009\001\255\255\255\255\255\255\060\001\255\255\ -\015\001\016\001\255\255\018\001\255\255\067\001\068\001\255\255\ -\255\255\255\255\255\255\255\255\027\001\255\255\255\255\255\255\ -\078\001\079\001\080\001\081\001\255\255\036\001\255\255\255\255\ -\255\255\001\001\002\001\042\001\043\001\044\001\045\001\046\001\ -\094\001\009\001\255\255\255\255\255\255\255\255\255\255\015\001\ -\016\001\255\255\018\001\255\255\255\255\060\001\255\255\255\255\ -\255\255\255\255\255\255\027\001\067\001\068\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\036\001\255\255\255\255\078\001\ -\079\001\080\001\042\001\043\001\044\001\045\001\046\001\255\255\ -\001\001\002\001\255\255\255\255\255\255\255\255\255\255\094\001\ -\009\001\255\255\255\255\255\255\060\001\255\255\015\001\016\001\ -\255\255\255\255\255\255\067\001\068\001\255\255\255\255\255\255\ -\255\255\255\255\027\001\255\255\255\255\255\255\078\001\079\001\ -\080\001\255\255\255\255\036\001\255\255\255\255\255\255\001\001\ -\002\001\042\001\043\001\044\001\045\001\046\001\094\001\009\001\ -\255\255\255\255\255\255\255\255\255\255\015\001\255\255\255\255\ -\255\255\255\255\255\255\060\001\255\255\255\255\255\255\255\255\ -\255\255\027\001\067\001\068\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\036\001\255\255\255\255\078\001\079\001\080\001\ -\042\001\043\001\044\001\045\001\046\001\086\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\094\001\001\001\002\001\ -\255\255\255\255\060\001\001\001\002\001\255\255\009\001\255\255\ -\255\255\067\001\068\001\255\255\015\001\255\255\255\255\255\255\ -\255\255\015\001\255\255\255\255\078\001\079\001\080\001\255\255\ -\027\001\255\255\255\255\255\255\255\255\027\001\255\255\089\001\ -\255\255\036\001\255\255\255\255\094\001\255\255\036\001\042\001\ -\043\001\044\001\045\001\046\001\042\001\043\001\044\001\045\001\ -\046\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\060\001\255\255\255\255\255\255\255\255\060\001\255\255\ -\067\001\068\001\255\255\255\255\255\255\067\001\068\001\255\255\ -\255\255\255\255\255\255\078\001\079\001\080\001\255\255\255\255\ -\255\255\079\001\080\001\255\255\255\255\056\001\255\255\058\001\ -\059\001\060\001\255\255\094\001\063\001\064\001\255\255\255\255\ -\094\001\255\255\255\255\255\255\255\255\255\255\255\255\074\001\ -\255\255\255\255\077\001\255\255\255\255\255\255\255\255\255\255\ -\083\001\255\255\085\001\056\001\255\255\058\001\059\001\060\001\ -\255\255\092\001\063\001\064\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\103\001\104\001\255\255\255\255\ -\077\001\255\255\255\255\255\255\255\255\255\255\083\001\255\255\ -\085\001\056\001\255\255\058\001\059\001\060\001\255\255\092\001\ -\063\001\064\001\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\102\001\103\001\104\001\255\255\255\255\077\001\255\255\ -\255\255\255\255\255\255\255\255\083\001\255\255\085\001\056\001\ -\255\255\058\001\059\001\060\001\255\255\092\001\063\001\064\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\103\001\104\001\255\255\255\255\077\001\255\255\255\255\255\255\ -\255\255\255\255\083\001\255\255\085\001\056\001\255\255\058\001\ -\059\001\060\001\255\255\092\001\063\001\064\001\255\255\255\255\ -\255\255\255\255\255\255\255\255\255\255\255\255\103\001\104\001\ -\255\255\255\255\077\001\255\255\255\255\255\255\255\255\255\255\ -\083\001\255\255\085\001\056\001\255\255\058\001\059\001\060\001\ -\255\255\092\001\063\001\064\001\255\255\255\255\255\255\255\255\ -\255\255\255\255\255\255\255\255\103\001\104\001\255\255\255\255\ -\077\001\255\255\255\255\255\255\255\255\255\255\083\001\255\255\ -\085\001\255\255\255\255\255\255\255\255\255\255\255\255\092\001\ -\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ -\255\255\255\255\103\001\104\001" - -let yynames_const = "\ - AMPERAMPER\000\ - AMPERSAND\000\ - AND\000\ - AS\000\ - ASSERT\000\ - BACKQUOTE\000\ - BANG\000\ - BAR\000\ - BARBAR\000\ - BARRBRACKET\000\ - BEGIN\000\ - CLASS\000\ - COLON\000\ - COLONCOLON\000\ - COLONEQUAL\000\ - COLONGREATER\000\ - COMMA\000\ - CONSTRAINT\000\ - DO\000\ - DONE\000\ - DOT\000\ - DOTDOT\000\ - DOWNTO\000\ - ELSE\000\ - END\000\ - EOF\000\ - EQUAL\000\ - EXCEPTION\000\ - EXTERNAL\000\ - FALSE\000\ - FOR\000\ - FUN\000\ - FUNCTION\000\ - FUNCTOR\000\ - GREATER\000\ - GREATERRBRACE\000\ - GREATERRBRACKET\000\ - IF\000\ - IN\000\ - INCLUDE\000\ - INHERIT\000\ - INITIALIZER\000\ - LAZY\000\ - LBRACE\000\ - LBRACELESS\000\ - LBRACKET\000\ - LBRACKETBAR\000\ - LBRACKETLESS\000\ - LBRACKETGREATER\000\ - LESS\000\ - LESSMINUS\000\ - LET\000\ - LPAREN\000\ - MATCH\000\ - METHOD\000\ - MINUS\000\ - MINUSDOT\000\ - MINUSGREATER\000\ - MODULE\000\ - MUTABLE\000\ - NEW\000\ - OBJECT\000\ - OF\000\ - OPEN\000\ - OR\000\ - PLUS\000\ - PLUSDOT\000\ - PRIVATE\000\ - QUESTION\000\ - QUESTIONQUESTION\000\ - QUOTE\000\ - RBRACE\000\ - RBRACKET\000\ - REC\000\ - RPAREN\000\ - SEMI\000\ - SEMISEMI\000\ - SHARP\000\ - SIG\000\ - STAR\000\ - STRUCT\000\ - THEN\000\ - TILDE\000\ - TO\000\ - TRUE\000\ - TRY\000\ - TYPE\000\ - UNDERSCORE\000\ - VAL\000\ - VIRTUAL\000\ - WHEN\000\ - WHILE\000\ - WITH\000\ - " - -let yynames_block = "\ - CHAR\000\ - FLOAT\000\ - INFIXOP0\000\ - INFIXOP1\000\ - INFIXOP2\000\ - INFIXOP3\000\ - INFIXOP4\000\ - INT\000\ - INT32\000\ - INT64\000\ - LABEL\000\ - LIDENT\000\ - NATIVEINT\000\ - OPTLABEL\000\ - PREFIXOP\000\ - STRING\000\ - UIDENT\000\ - COMMENT\000\ - " - -let yyact = [| - (fun _ -> failwith "parser") -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'structure) in - Obj.repr( -# 489 "parsing/parser.mly" - ( _1 ) -# 4724 "parsing/parser.ml" - : Parsetree.structure)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'signature) in - Obj.repr( -# 492 "parsing/parser.mly" - ( List.rev _1 ) -# 4731 "parsing/parser.ml" - : Parsetree.signature)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'top_structure) in - Obj.repr( -# 495 "parsing/parser.mly" - ( Ptop_def _1 ) -# 4738 "parsing/parser.ml" - : Parsetree.toplevel_phrase)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - Obj.repr( -# 496 "parsing/parser.mly" - ( Ptop_def[ghstrexp _1] ) -# 4745 "parsing/parser.ml" - : Parsetree.toplevel_phrase)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'toplevel_directive) in - Obj.repr( -# 497 "parsing/parser.mly" - ( _1 ) -# 4752 "parsing/parser.ml" - : Parsetree.toplevel_phrase)) -; (fun __caml_parser_env -> - Obj.repr( -# 498 "parsing/parser.mly" - ( raise End_of_file ) -# 4758 "parsing/parser.ml" - : Parsetree.toplevel_phrase)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'structure_item) in - Obj.repr( -# 501 "parsing/parser.mly" - ( [_1] ) -# 4765 "parsing/parser.ml" - : 'top_structure)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'structure_item) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'top_structure) in - Obj.repr( -# 502 "parsing/parser.mly" - ( _1 :: _2 ) -# 4773 "parsing/parser.ml" - : 'top_structure)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'use_file_tail) in - Obj.repr( -# 505 "parsing/parser.mly" - ( _1 ) -# 4780 "parsing/parser.ml" - : Parsetree.toplevel_phrase list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'use_file_tail) in - Obj.repr( -# 506 "parsing/parser.mly" - ( Ptop_def[ghstrexp _1] :: _2 ) -# 4788 "parsing/parser.ml" - : Parsetree.toplevel_phrase list)) -; (fun __caml_parser_env -> - Obj.repr( -# 509 "parsing/parser.mly" - ( [] ) -# 4794 "parsing/parser.ml" - : 'use_file_tail)) -; (fun __caml_parser_env -> - Obj.repr( -# 510 "parsing/parser.mly" - ( [] ) -# 4800 "parsing/parser.ml" - : 'use_file_tail)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'use_file_tail) in - Obj.repr( -# 511 "parsing/parser.mly" - ( Ptop_def[ghstrexp _2] :: _3 ) -# 4808 "parsing/parser.ml" - : 'use_file_tail)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'structure_item) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'use_file_tail) in - Obj.repr( -# 512 "parsing/parser.mly" - ( Ptop_def[_2] :: _3 ) -# 4816 "parsing/parser.ml" - : 'use_file_tail)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'toplevel_directive) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'use_file_tail) in - Obj.repr( -# 513 "parsing/parser.mly" - ( _2 :: _3 ) -# 4824 "parsing/parser.ml" - : 'use_file_tail)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'structure_item) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'use_file_tail) in - Obj.repr( -# 514 "parsing/parser.mly" - ( Ptop_def[_1] :: _2 ) -# 4832 "parsing/parser.ml" - : 'use_file_tail)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'toplevel_directive) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'use_file_tail) in - Obj.repr( -# 515 "parsing/parser.mly" - ( _1 :: _2 ) -# 4840 "parsing/parser.ml" - : 'use_file_tail)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'mod_longident) in - Obj.repr( -# 522 "parsing/parser.mly" - ( mkmod(Pmod_ident (mkrhs _1 1)) ) -# 4847 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'structure) in - Obj.repr( -# 524 "parsing/parser.mly" - ( mkmod(Pmod_structure(_2)) ) -# 4854 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'structure) in - Obj.repr( -# 526 "parsing/parser.mly" - ( unclosed "struct" 1 "end" 3 ) -# 4861 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 5 : string) in - let _5 = (Parsing.peek_val __caml_parser_env 3 : 'module_type) in - let _8 = (Parsing.peek_val __caml_parser_env 0 : 'module_expr) in - Obj.repr( -# 528 "parsing/parser.mly" - ( mkmod(Pmod_functor(mkrhs _3 3, _5, _8)) ) -# 4870 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 3 : 'module_expr) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'module_expr) in - Obj.repr( -# 530 "parsing/parser.mly" - ( mkmod(Pmod_apply(_1, _3)) ) -# 4878 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 3 : 'module_expr) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'module_expr) in - Obj.repr( -# 532 "parsing/parser.mly" - ( unclosed "(" 2 ")" 4 ) -# 4886 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'module_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'module_type) in - Obj.repr( -# 534 "parsing/parser.mly" - ( mkmod(Pmod_constraint(_2, _4)) ) -# 4894 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'module_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'module_type) in - Obj.repr( -# 536 "parsing/parser.mly" - ( unclosed "(" 1 ")" 5 ) -# 4902 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'module_expr) in - Obj.repr( -# 538 "parsing/parser.mly" - ( _2 ) -# 4909 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'module_expr) in - Obj.repr( -# 540 "parsing/parser.mly" - ( unclosed "(" 1 ")" 3 ) -# 4916 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'expr) in - Obj.repr( -# 542 "parsing/parser.mly" - ( mkmod(Pmod_unpack _3) ) -# 4923 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 3 : 'expr) in - let _5 = (Parsing.peek_val __caml_parser_env 1 : 'package_type) in - Obj.repr( -# 544 "parsing/parser.mly" - ( mkmod(Pmod_unpack( - ghexp(Pexp_constraint(_3, Some(ghtyp(Ptyp_package _5)), None)))) ) -# 4932 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 5 : 'expr) in - let _5 = (Parsing.peek_val __caml_parser_env 3 : 'package_type) in - let _7 = (Parsing.peek_val __caml_parser_env 1 : 'package_type) in - Obj.repr( -# 547 "parsing/parser.mly" - ( mkmod(Pmod_unpack( - ghexp(Pexp_constraint(_3, Some(ghtyp(Ptyp_package _5)), - Some(ghtyp(Ptyp_package _7)))))) ) -# 4943 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 3 : 'expr) in - let _5 = (Parsing.peek_val __caml_parser_env 1 : 'package_type) in - Obj.repr( -# 551 "parsing/parser.mly" - ( mkmod(Pmod_unpack( - ghexp(Pexp_constraint(_3, None, Some(ghtyp(Ptyp_package _5)))))) ) -# 4952 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - Obj.repr( -# 554 "parsing/parser.mly" - ( unclosed "(" 1 ")" 5 ) -# 4959 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - Obj.repr( -# 556 "parsing/parser.mly" - ( unclosed "(" 1 ")" 5 ) -# 4966 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'expr) in - Obj.repr( -# 558 "parsing/parser.mly" - ( unclosed "(" 1 ")" 4 ) -# 4973 "parsing/parser.ml" - : 'module_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'structure_tail) in - Obj.repr( -# 561 "parsing/parser.mly" - ( _1 ) -# 4980 "parsing/parser.ml" - : 'structure)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'structure_tail) in - Obj.repr( -# 562 "parsing/parser.mly" - ( ghstrexp _1 :: _2 ) -# 4988 "parsing/parser.ml" - : 'structure)) -; (fun __caml_parser_env -> - Obj.repr( -# 565 "parsing/parser.mly" - ( [] ) -# 4994 "parsing/parser.ml" - : 'structure_tail)) -; (fun __caml_parser_env -> - Obj.repr( -# 566 "parsing/parser.mly" - ( [] ) -# 5000 "parsing/parser.ml" - : 'structure_tail)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'structure_tail) in - Obj.repr( -# 567 "parsing/parser.mly" - ( ghstrexp _2 :: _3 ) -# 5008 "parsing/parser.ml" - : 'structure_tail)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'structure_item) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'structure_tail) in - Obj.repr( -# 568 "parsing/parser.mly" - ( _2 :: _3 ) -# 5016 "parsing/parser.ml" - : 'structure_tail)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'structure_item) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'structure_tail) in - Obj.repr( -# 569 "parsing/parser.mly" - ( _1 :: _2 ) -# 5024 "parsing/parser.ml" - : 'structure_tail)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'rec_flag) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'let_bindings) in - Obj.repr( -# 573 "parsing/parser.mly" - ( match _3 with - [{ ppat_desc = Ppat_any; ppat_loc = _ }, exp] -> mkstr(Pstr_eval exp) - | _ -> mkstr(Pstr_value(_2, List.rev _3)) ) -# 5034 "parsing/parser.ml" - : 'structure_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 4 : 'val_ident) in - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'core_type) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'primitive_declaration) in - Obj.repr( -# 577 "parsing/parser.mly" - ( mkstr(Pstr_primitive(mkrhs _2 2, {pval_type = _4; pval_prim = _6; - pval_loc = symbol_rloc ()})) ) -# 5044 "parsing/parser.ml" - : 'structure_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'type_declarations) in - Obj.repr( -# 580 "parsing/parser.mly" - ( mkstr(Pstr_type(List.rev _2)) ) -# 5051 "parsing/parser.ml" - : 'structure_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'constructor_arguments) in - Obj.repr( -# 582 "parsing/parser.mly" - ( mkstr(Pstr_exception(mkrhs _2 2, _3)) ) -# 5059 "parsing/parser.ml" - : 'structure_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : string) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'constr_longident) in - Obj.repr( -# 584 "parsing/parser.mly" - ( mkstr(Pstr_exn_rebind(mkrhs _2 2, mkloc _4 (rhs_loc 4))) ) -# 5067 "parsing/parser.ml" - : 'structure_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'module_binding) in - Obj.repr( -# 586 "parsing/parser.mly" - ( mkstr(Pstr_module(mkrhs _2 2, _3)) ) -# 5075 "parsing/parser.ml" - : 'structure_item)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'module_rec_bindings) in - Obj.repr( -# 588 "parsing/parser.mly" - ( mkstr(Pstr_recmodule(List.rev _3)) ) -# 5082 "parsing/parser.ml" - : 'structure_item)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'ident) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'module_type) in - Obj.repr( -# 590 "parsing/parser.mly" - ( mkstr(Pstr_modtype(mkrhs _3 3, _5)) ) -# 5090 "parsing/parser.ml" - : 'structure_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'mod_longident) in - Obj.repr( -# 592 "parsing/parser.mly" - ( mkstr(Pstr_open (mkrhs _2 2)) ) -# 5097 "parsing/parser.ml" - : 'structure_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'class_declarations) in - Obj.repr( -# 594 "parsing/parser.mly" - ( mkstr(Pstr_class (List.rev _2)) ) -# 5104 "parsing/parser.ml" - : 'structure_item)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'class_type_declarations) in - Obj.repr( -# 596 "parsing/parser.mly" - ( mkstr(Pstr_class_type (List.rev _3)) ) -# 5111 "parsing/parser.ml" - : 'structure_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'module_expr) in - Obj.repr( -# 598 "parsing/parser.mly" - ( mkstr(Pstr_include _2) ) -# 5118 "parsing/parser.ml" - : 'structure_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'module_expr) in - Obj.repr( -# 602 "parsing/parser.mly" - ( _2 ) -# 5125 "parsing/parser.ml" - : 'module_binding)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'module_type) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'module_expr) in - Obj.repr( -# 604 "parsing/parser.mly" - ( mkmod(Pmod_constraint(_4, _2)) ) -# 5133 "parsing/parser.ml" - : 'module_binding)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 4 : string) in - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'module_type) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'module_binding) in - Obj.repr( -# 606 "parsing/parser.mly" - ( mkmod(Pmod_functor(mkrhs _2 2, _4, _6)) ) -# 5142 "parsing/parser.ml" - : 'module_binding)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'module_rec_binding) in - Obj.repr( -# 609 "parsing/parser.mly" - ( [_1] ) -# 5149 "parsing/parser.ml" - : 'module_rec_bindings)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'module_rec_bindings) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'module_rec_binding) in - Obj.repr( -# 610 "parsing/parser.mly" - ( _3 :: _1 ) -# 5157 "parsing/parser.ml" - : 'module_rec_bindings)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : string) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'module_type) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'module_expr) in - Obj.repr( -# 613 "parsing/parser.mly" - ( (mkrhs _1 1, _3, _5) ) -# 5166 "parsing/parser.ml" - : 'module_rec_binding)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'mty_longident) in - Obj.repr( -# 620 "parsing/parser.mly" - ( mkmty(Pmty_ident (mkrhs _1 1)) ) -# 5173 "parsing/parser.ml" - : 'module_type)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'signature) in - Obj.repr( -# 622 "parsing/parser.mly" - ( mkmty(Pmty_signature(List.rev _2)) ) -# 5180 "parsing/parser.ml" - : 'module_type)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'signature) in - Obj.repr( -# 624 "parsing/parser.mly" - ( unclosed "sig" 1 "end" 3 ) -# 5187 "parsing/parser.ml" - : 'module_type)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 5 : string) in - let _5 = (Parsing.peek_val __caml_parser_env 3 : 'module_type) in - let _8 = (Parsing.peek_val __caml_parser_env 0 : 'module_type) in - Obj.repr( -# 627 "parsing/parser.mly" - ( mkmty(Pmty_functor(mkrhs _3 3, _5, _8)) ) -# 5196 "parsing/parser.ml" - : 'module_type)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'module_type) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'with_constraints) in - Obj.repr( -# 629 "parsing/parser.mly" - ( mkmty(Pmty_with(_1, List.rev _3)) ) -# 5204 "parsing/parser.ml" - : 'module_type)) -; (fun __caml_parser_env -> - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'module_expr) in - Obj.repr( -# 631 "parsing/parser.mly" - ( mkmty(Pmty_typeof _4) ) -# 5211 "parsing/parser.ml" - : 'module_type)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'module_type) in - Obj.repr( -# 633 "parsing/parser.mly" - ( _2 ) -# 5218 "parsing/parser.ml" - : 'module_type)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'module_type) in - Obj.repr( -# 635 "parsing/parser.mly" - ( unclosed "(" 1 ")" 3 ) -# 5225 "parsing/parser.ml" - : 'module_type)) -; (fun __caml_parser_env -> - Obj.repr( -# 638 "parsing/parser.mly" - ( [] ) -# 5231 "parsing/parser.ml" - : 'signature)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'signature) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'signature_item) in - Obj.repr( -# 639 "parsing/parser.mly" - ( _2 :: _1 ) -# 5239 "parsing/parser.ml" - : 'signature)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'signature) in - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'signature_item) in - Obj.repr( -# 640 "parsing/parser.mly" - ( _2 :: _1 ) -# 5247 "parsing/parser.ml" - : 'signature)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'val_ident) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 644 "parsing/parser.mly" - ( mksig(Psig_value(mkrhs _2 2, {pval_type = _4; pval_prim = []; - pval_loc = symbol_rloc()})) ) -# 5256 "parsing/parser.ml" - : 'signature_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 4 : 'val_ident) in - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'core_type) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'primitive_declaration) in - Obj.repr( -# 647 "parsing/parser.mly" - ( mksig(Psig_value(mkrhs _2 2, {pval_type = _4; pval_prim = _6; - pval_loc = symbol_rloc()})) ) -# 5266 "parsing/parser.ml" - : 'signature_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'type_declarations) in - Obj.repr( -# 650 "parsing/parser.mly" - ( mksig(Psig_type(List.rev _2)) ) -# 5273 "parsing/parser.ml" - : 'signature_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'constructor_arguments) in - Obj.repr( -# 652 "parsing/parser.mly" - ( mksig(Psig_exception(mkrhs _2 2, _3)) ) -# 5281 "parsing/parser.ml" - : 'signature_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'module_declaration) in - Obj.repr( -# 654 "parsing/parser.mly" - ( mksig(Psig_module(mkrhs _2 2, _3)) ) -# 5289 "parsing/parser.ml" - : 'signature_item)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'module_rec_declarations) in - Obj.repr( -# 656 "parsing/parser.mly" - ( mksig(Psig_recmodule(List.rev _3)) ) -# 5296 "parsing/parser.ml" - : 'signature_item)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'ident) in - Obj.repr( -# 658 "parsing/parser.mly" - ( mksig(Psig_modtype(mkrhs _3 3, Pmodtype_abstract)) ) -# 5303 "parsing/parser.ml" - : 'signature_item)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'ident) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'module_type) in - Obj.repr( -# 660 "parsing/parser.mly" - ( mksig(Psig_modtype(mkrhs _3 3, Pmodtype_manifest _5)) ) -# 5311 "parsing/parser.ml" - : 'signature_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'mod_longident) in - Obj.repr( -# 662 "parsing/parser.mly" - ( mksig(Psig_open (mkrhs _2 2)) ) -# 5318 "parsing/parser.ml" - : 'signature_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'module_type) in - Obj.repr( -# 664 "parsing/parser.mly" - ( mksig(Psig_include _2) ) -# 5325 "parsing/parser.ml" - : 'signature_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'class_descriptions) in - Obj.repr( -# 666 "parsing/parser.mly" - ( mksig(Psig_class (List.rev _2)) ) -# 5332 "parsing/parser.ml" - : 'signature_item)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'class_type_declarations) in - Obj.repr( -# 668 "parsing/parser.mly" - ( mksig(Psig_class_type (List.rev _3)) ) -# 5339 "parsing/parser.ml" - : 'signature_item)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'module_type) in - Obj.repr( -# 673 "parsing/parser.mly" - ( _2 ) -# 5346 "parsing/parser.ml" - : 'module_declaration)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 4 : string) in - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'module_type) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'module_declaration) in - Obj.repr( -# 675 "parsing/parser.mly" - ( mkmty(Pmty_functor(mkrhs _2 2, _4, _6)) ) -# 5355 "parsing/parser.ml" - : 'module_declaration)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'module_rec_declaration) in - Obj.repr( -# 678 "parsing/parser.mly" - ( [_1] ) -# 5362 "parsing/parser.ml" - : 'module_rec_declarations)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'module_rec_declarations) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'module_rec_declaration) in - Obj.repr( -# 679 "parsing/parser.mly" - ( _3 :: _1 ) -# 5370 "parsing/parser.ml" - : 'module_rec_declarations)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : string) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'module_type) in - Obj.repr( -# 682 "parsing/parser.mly" - ( (mkrhs _1 1, _3) ) -# 5378 "parsing/parser.ml" - : 'module_rec_declaration)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'class_declarations) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'class_declaration) in - Obj.repr( -# 688 "parsing/parser.mly" - ( _3 :: _1 ) -# 5386 "parsing/parser.ml" - : 'class_declarations)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'class_declaration) in - Obj.repr( -# 689 "parsing/parser.mly" - ( [_1] ) -# 5393 "parsing/parser.ml" - : 'class_declarations)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 3 : 'virtual_flag) in - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'class_type_parameters) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'class_fun_binding) in - Obj.repr( -# 693 "parsing/parser.mly" - ( let params, variance = List.split (fst _2) in - {pci_virt = _1; pci_params = params, snd _2; - pci_name = mkrhs _3 3; pci_expr = _4; pci_variance = variance; - pci_loc = symbol_rloc ()} ) -# 5406 "parsing/parser.ml" - : 'class_declaration)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'class_expr) in - Obj.repr( -# 700 "parsing/parser.mly" - ( _2 ) -# 5413 "parsing/parser.ml" - : 'class_fun_binding)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'class_type) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'class_expr) in - Obj.repr( -# 702 "parsing/parser.mly" - ( mkclass(Pcl_constraint(_4, _2)) ) -# 5421 "parsing/parser.ml" - : 'class_fun_binding)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'labeled_simple_pattern) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'class_fun_binding) in - Obj.repr( -# 704 "parsing/parser.mly" - ( let (l,o,p) = _1 in mkclass(Pcl_fun(l, o, p, _2)) ) -# 5429 "parsing/parser.ml" - : 'class_fun_binding)) -; (fun __caml_parser_env -> - Obj.repr( -# 707 "parsing/parser.mly" - ( [], symbol_gloc () ) -# 5435 "parsing/parser.ml" - : 'class_type_parameters)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'type_parameter_list) in - Obj.repr( -# 708 "parsing/parser.mly" - ( List.rev _2, symbol_rloc () ) -# 5442 "parsing/parser.ml" - : 'class_type_parameters)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'labeled_simple_pattern) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'class_expr) in - Obj.repr( -# 712 "parsing/parser.mly" - ( let (l,o,p) = _1 in mkclass(Pcl_fun(l, o, p, _3)) ) -# 5450 "parsing/parser.ml" - : 'class_fun_def)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'labeled_simple_pattern) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'class_fun_def) in - Obj.repr( -# 714 "parsing/parser.mly" - ( let (l,o,p) = _1 in mkclass(Pcl_fun(l, o, p, _2)) ) -# 5458 "parsing/parser.ml" - : 'class_fun_def)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'class_simple_expr) in - Obj.repr( -# 718 "parsing/parser.mly" - ( _1 ) -# 5465 "parsing/parser.ml" - : 'class_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'class_fun_def) in - Obj.repr( -# 720 "parsing/parser.mly" - ( _2 ) -# 5472 "parsing/parser.ml" - : 'class_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'class_simple_expr) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'simple_labeled_expr_list) in - Obj.repr( -# 722 "parsing/parser.mly" - ( mkclass(Pcl_apply(_1, List.rev _2)) ) -# 5480 "parsing/parser.ml" - : 'class_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'rec_flag) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'let_bindings) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'class_expr) in - Obj.repr( -# 724 "parsing/parser.mly" - ( mkclass(Pcl_let (_2, List.rev _3, _5)) ) -# 5489 "parsing/parser.ml" - : 'class_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'core_type_comma_list) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'class_longident) in - Obj.repr( -# 728 "parsing/parser.mly" - ( mkclass(Pcl_constr(mkloc _4 (rhs_loc 4), List.rev _2)) ) -# 5497 "parsing/parser.ml" - : 'class_simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'class_longident) in - Obj.repr( -# 730 "parsing/parser.mly" - ( mkclass(Pcl_constr(mkrhs _1 1, [])) ) -# 5504 "parsing/parser.ml" - : 'class_simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'class_structure) in - Obj.repr( -# 732 "parsing/parser.mly" - ( mkclass(Pcl_structure(_2)) ) -# 5511 "parsing/parser.ml" - : 'class_simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'class_structure) in - Obj.repr( -# 734 "parsing/parser.mly" - ( unclosed "object" 1 "end" 3 ) -# 5518 "parsing/parser.ml" - : 'class_simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'class_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'class_type) in - Obj.repr( -# 736 "parsing/parser.mly" - ( mkclass(Pcl_constraint(_2, _4)) ) -# 5526 "parsing/parser.ml" - : 'class_simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'class_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'class_type) in - Obj.repr( -# 738 "parsing/parser.mly" - ( unclosed "(" 1 ")" 5 ) -# 5534 "parsing/parser.ml" - : 'class_simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'class_expr) in - Obj.repr( -# 740 "parsing/parser.mly" - ( _2 ) -# 5541 "parsing/parser.ml" - : 'class_simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'class_expr) in - Obj.repr( -# 742 "parsing/parser.mly" - ( unclosed "(" 1 ")" 3 ) -# 5548 "parsing/parser.ml" - : 'class_simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'class_self_pattern) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'class_fields) in - Obj.repr( -# 746 "parsing/parser.mly" - ( { pcstr_pat = _1; pcstr_fields = List.rev _2 } ) -# 5556 "parsing/parser.ml" - : 'class_structure)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'pattern) in - Obj.repr( -# 750 "parsing/parser.mly" - ( reloc_pat _2 ) -# 5563 "parsing/parser.ml" - : 'class_self_pattern)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'pattern) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'core_type) in - Obj.repr( -# 752 "parsing/parser.mly" - ( mkpat(Ppat_constraint(_2, _4)) ) -# 5571 "parsing/parser.ml" - : 'class_self_pattern)) -; (fun __caml_parser_env -> - Obj.repr( -# 754 "parsing/parser.mly" - ( ghpat(Ppat_any) ) -# 5577 "parsing/parser.ml" - : 'class_self_pattern)) -; (fun __caml_parser_env -> - Obj.repr( -# 758 "parsing/parser.mly" - ( [] ) -# 5583 "parsing/parser.ml" - : 'class_fields)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'class_fields) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'class_field) in - Obj.repr( -# 760 "parsing/parser.mly" - ( _2 :: _1 ) -# 5591 "parsing/parser.ml" - : 'class_fields)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'override_flag) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'class_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'parent_binder) in - Obj.repr( -# 764 "parsing/parser.mly" - ( mkcf (Pcf_inher (_2, _3, _4)) ) -# 5600 "parsing/parser.ml" - : 'class_field)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'virtual_value) in - Obj.repr( -# 766 "parsing/parser.mly" - ( mkcf (Pcf_valvirt _2) ) -# 5607 "parsing/parser.ml" - : 'class_field)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'value) in - Obj.repr( -# 768 "parsing/parser.mly" - ( mkcf (Pcf_val _2) ) -# 5614 "parsing/parser.ml" - : 'class_field)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'virtual_method) in - Obj.repr( -# 770 "parsing/parser.mly" - ( mkcf (Pcf_virt _1) ) -# 5621 "parsing/parser.ml" - : 'class_field)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'concrete_method) in - Obj.repr( -# 772 "parsing/parser.mly" - ( mkcf (Pcf_meth _1) ) -# 5628 "parsing/parser.ml" - : 'class_field)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'constrain_field) in - Obj.repr( -# 774 "parsing/parser.mly" - ( mkcf (Pcf_constr _2) ) -# 5635 "parsing/parser.ml" - : 'class_field)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 776 "parsing/parser.mly" - ( mkcf (Pcf_init _2) ) -# 5642 "parsing/parser.ml" - : 'class_field)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 780 "parsing/parser.mly" - ( Some _2 ) -# 5649 "parsing/parser.ml" - : 'parent_binder)) -; (fun __caml_parser_env -> - Obj.repr( -# 782 "parsing/parser.mly" - ( None ) -# 5655 "parsing/parser.ml" - : 'parent_binder)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 5 : 'override_flag) in - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 786 "parsing/parser.mly" - ( if _1 = Override then syntax_error (); - mkloc _4 (rhs_loc 4), Mutable, _6 ) -# 5665 "parsing/parser.ml" - : 'virtual_value)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'mutable_flag) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 789 "parsing/parser.mly" - ( mkrhs _3 3, _2, _5 ) -# 5674 "parsing/parser.ml" - : 'virtual_value)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : 'override_flag) in - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'mutable_flag) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 793 "parsing/parser.mly" - ( mkrhs _3 3, _2, _1, _5 ) -# 5684 "parsing/parser.ml" - : 'value)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 5 : 'override_flag) in - let _2 = (Parsing.peek_val __caml_parser_env 4 : 'mutable_flag) in - let _3 = (Parsing.peek_val __caml_parser_env 3 : 'label) in - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'type_constraint) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 795 "parsing/parser.mly" - ( mkrhs _3 3, _2, _1, (let (t, t') = _4 in ghexp(Pexp_constraint(_6, t, t'))) ) -# 5695 "parsing/parser.ml" - : 'value)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 5 : 'override_flag) in - let _5 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _7 = (Parsing.peek_val __caml_parser_env 0 : 'poly_type) in - Obj.repr( -# 799 "parsing/parser.mly" - ( if _2 = Override then syntax_error (); - mkloc _5 (rhs_loc 5), Private, _7 ) -# 5705 "parsing/parser.ml" - : 'virtual_method)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 5 : 'override_flag) in - let _4 = (Parsing.peek_val __caml_parser_env 3 : 'private_flag) in - let _5 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _7 = (Parsing.peek_val __caml_parser_env 0 : 'poly_type) in - Obj.repr( -# 802 "parsing/parser.mly" - ( if _2 = Override then syntax_error (); - mkloc _5 (rhs_loc 5), _4, _7 ) -# 5716 "parsing/parser.ml" - : 'virtual_method)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'override_flag) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'private_flag) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'label) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'strict_binding) in - Obj.repr( -# 807 "parsing/parser.mly" - ( mkloc _4 (rhs_loc 4), _3, _2, ghexp(Pexp_poly (_5, None)) ) -# 5726 "parsing/parser.ml" - : 'concrete_method)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 6 : 'override_flag) in - let _3 = (Parsing.peek_val __caml_parser_env 5 : 'private_flag) in - let _4 = (Parsing.peek_val __caml_parser_env 4 : 'label) in - let _6 = (Parsing.peek_val __caml_parser_env 2 : 'poly_type) in - let _8 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 809 "parsing/parser.mly" - ( mkloc _4 (rhs_loc 4), _3, _2, ghexp(Pexp_poly(_8,Some _6)) ) -# 5737 "parsing/parser.ml" - : 'concrete_method)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 9 : 'override_flag) in - let _3 = (Parsing.peek_val __caml_parser_env 8 : 'private_flag) in - let _4 = (Parsing.peek_val __caml_parser_env 7 : 'label) in - let _7 = (Parsing.peek_val __caml_parser_env 4 : 'lident_list) in - let _9 = (Parsing.peek_val __caml_parser_env 2 : 'core_type) in - let _11 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 812 "parsing/parser.mly" - ( let exp, poly = wrap_type_annotation _7 _9 _11 in - mkloc _4 (rhs_loc 4), _3, _2, ghexp(Pexp_poly(exp, Some poly)) ) -# 5750 "parsing/parser.ml" - : 'concrete_method)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'class_signature) in - Obj.repr( -# 820 "parsing/parser.mly" - ( _1 ) -# 5757 "parsing/parser.ml" - : 'class_type)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 4 : string) in - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'simple_core_type_or_tuple) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'class_type) in - Obj.repr( -# 822 "parsing/parser.mly" - ( mkcty(Pcty_fun("?" ^ _2 , mkoption _4, _6)) ) -# 5766 "parsing/parser.ml" - : 'class_type)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 3 : string) in - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'simple_core_type_or_tuple) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'class_type) in - Obj.repr( -# 824 "parsing/parser.mly" - ( mkcty(Pcty_fun("?" ^ _1, mkoption _2, _4)) ) -# 5775 "parsing/parser.ml" - : 'class_type)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : string) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'simple_core_type_or_tuple) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'class_type) in - Obj.repr( -# 826 "parsing/parser.mly" - ( mkcty(Pcty_fun(_1, _3, _5)) ) -# 5784 "parsing/parser.ml" - : 'class_type)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'simple_core_type_or_tuple) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'class_type) in - Obj.repr( -# 828 "parsing/parser.mly" - ( mkcty(Pcty_fun("", _1, _3)) ) -# 5792 "parsing/parser.ml" - : 'class_type)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'core_type_comma_list) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'clty_longident) in - Obj.repr( -# 832 "parsing/parser.mly" - ( mkcty(Pcty_constr (mkloc _4 (rhs_loc 4), List.rev _2)) ) -# 5800 "parsing/parser.ml" - : 'class_signature)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'clty_longident) in - Obj.repr( -# 834 "parsing/parser.mly" - ( mkcty(Pcty_constr (mkrhs _1 1, [])) ) -# 5807 "parsing/parser.ml" - : 'class_signature)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'class_sig_body) in - Obj.repr( -# 836 "parsing/parser.mly" - ( mkcty(Pcty_signature _2) ) -# 5814 "parsing/parser.ml" - : 'class_signature)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'class_sig_body) in - Obj.repr( -# 838 "parsing/parser.mly" - ( unclosed "object" 1 "end" 3 ) -# 5821 "parsing/parser.ml" - : 'class_signature)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'class_self_type) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'class_sig_fields) in - Obj.repr( -# 842 "parsing/parser.mly" - ( { pcsig_self = _1; pcsig_fields = List.rev _2; - pcsig_loc = symbol_rloc(); } ) -# 5830 "parsing/parser.ml" - : 'class_sig_body)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'core_type) in - Obj.repr( -# 847 "parsing/parser.mly" - ( _2 ) -# 5837 "parsing/parser.ml" - : 'class_self_type)) -; (fun __caml_parser_env -> - Obj.repr( -# 849 "parsing/parser.mly" - ( mktyp(Ptyp_any) ) -# 5843 "parsing/parser.ml" - : 'class_self_type)) -; (fun __caml_parser_env -> - Obj.repr( -# 852 "parsing/parser.mly" - ( [] ) -# 5849 "parsing/parser.ml" - : 'class_sig_fields)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'class_sig_fields) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'class_sig_field) in - Obj.repr( -# 853 "parsing/parser.mly" - ( _2 :: _1 ) -# 5857 "parsing/parser.ml" - : 'class_sig_fields)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'class_signature) in - Obj.repr( -# 856 "parsing/parser.mly" - ( mkctf (Pctf_inher _2) ) -# 5864 "parsing/parser.ml" - : 'class_sig_field)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'value_type) in - Obj.repr( -# 857 "parsing/parser.mly" - ( mkctf (Pctf_val _2) ) -# 5871 "parsing/parser.ml" - : 'class_sig_field)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'virtual_method_type) in - Obj.repr( -# 858 "parsing/parser.mly" - ( mkctf (Pctf_virt _1) ) -# 5878 "parsing/parser.ml" - : 'class_sig_field)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'method_type) in - Obj.repr( -# 859 "parsing/parser.mly" - ( mkctf (Pctf_meth _1) ) -# 5885 "parsing/parser.ml" - : 'class_sig_field)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'constrain_field) in - Obj.repr( -# 860 "parsing/parser.mly" - ( mkctf (Pctf_cstr _2) ) -# 5892 "parsing/parser.ml" - : 'class_sig_field)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'mutable_flag) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 864 "parsing/parser.mly" - ( _3, _2, Virtual, _5 ) -# 5901 "parsing/parser.ml" - : 'value_type)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'virtual_flag) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 866 "parsing/parser.mly" - ( _3, Mutable, _2, _5 ) -# 5910 "parsing/parser.ml" - : 'value_type)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 868 "parsing/parser.mly" - ( _1, Immutable, Concrete, _3 ) -# 5918 "parsing/parser.ml" - : 'value_type)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'private_flag) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'poly_type) in - Obj.repr( -# 872 "parsing/parser.mly" - ( _3, _2, _5 ) -# 5927 "parsing/parser.ml" - : 'method_type)) -; (fun __caml_parser_env -> - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'poly_type) in - Obj.repr( -# 876 "parsing/parser.mly" - ( _4, Private, _6 ) -# 5935 "parsing/parser.ml" - : 'virtual_method_type)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 3 : 'private_flag) in - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'poly_type) in - Obj.repr( -# 878 "parsing/parser.mly" - ( _4, _3, _6 ) -# 5944 "parsing/parser.ml" - : 'virtual_method_type)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'core_type) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 881 "parsing/parser.mly" - ( _1, _3, symbol_rloc() ) -# 5952 "parsing/parser.ml" - : 'constrain)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'core_type) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 884 "parsing/parser.mly" - ( _1, _3 ) -# 5960 "parsing/parser.ml" - : 'constrain_field)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'class_descriptions) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'class_description) in - Obj.repr( -# 887 "parsing/parser.mly" - ( _3 :: _1 ) -# 5968 "parsing/parser.ml" - : 'class_descriptions)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'class_description) in - Obj.repr( -# 888 "parsing/parser.mly" - ( [_1] ) -# 5975 "parsing/parser.ml" - : 'class_descriptions)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : 'virtual_flag) in - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'class_type_parameters) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : string) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'class_type) in - Obj.repr( -# 892 "parsing/parser.mly" - ( let params, variance = List.split (fst _2) in - {pci_virt = _1; pci_params = params, snd _2; - pci_name = mkrhs _3 3; pci_expr = _5; pci_variance = variance; - pci_loc = symbol_rloc ()} ) -# 5988 "parsing/parser.ml" - : 'class_description)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'class_type_declarations) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'class_type_declaration) in - Obj.repr( -# 898 "parsing/parser.mly" - ( _3 :: _1 ) -# 5996 "parsing/parser.ml" - : 'class_type_declarations)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'class_type_declaration) in - Obj.repr( -# 899 "parsing/parser.mly" - ( [_1] ) -# 6003 "parsing/parser.ml" - : 'class_type_declarations)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : 'virtual_flag) in - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'class_type_parameters) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : string) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'class_signature) in - Obj.repr( -# 903 "parsing/parser.mly" - ( let params, variance = List.split (fst _2) in - {pci_virt = _1; pci_params = params, snd _2; - pci_name = mkrhs _3 3; pci_expr = _5; pci_variance = variance; - pci_loc = symbol_rloc ()} ) -# 6016 "parsing/parser.ml" - : 'class_type_declaration)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 912 "parsing/parser.mly" - ( _1 ) -# 6023 "parsing/parser.ml" - : 'seq_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'expr) in - Obj.repr( -# 913 "parsing/parser.mly" - ( reloc_exp _1 ) -# 6030 "parsing/parser.ml" - : 'seq_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 914 "parsing/parser.mly" - ( mkexp(Pexp_sequence(_1, _3)) ) -# 6038 "parsing/parser.ml" - : 'seq_expr)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'label_let_pattern) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'opt_default) in - Obj.repr( -# 918 "parsing/parser.mly" - ( ("?" ^ fst _3, _4, snd _3) ) -# 6046 "parsing/parser.ml" - : 'labeled_simple_pattern)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'label_var) in - Obj.repr( -# 920 "parsing/parser.mly" - ( ("?" ^ fst _2, None, snd _2) ) -# 6053 "parsing/parser.ml" - : 'labeled_simple_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : string) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'let_pattern) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'opt_default) in - Obj.repr( -# 922 "parsing/parser.mly" - ( ("?" ^ _1, _4, _3) ) -# 6062 "parsing/parser.ml" - : 'labeled_simple_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'pattern_var) in - Obj.repr( -# 924 "parsing/parser.mly" - ( ("?" ^ _1, None, _2) ) -# 6070 "parsing/parser.ml" - : 'labeled_simple_pattern)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'label_let_pattern) in - Obj.repr( -# 926 "parsing/parser.mly" - ( (fst _3, None, snd _3) ) -# 6077 "parsing/parser.ml" - : 'labeled_simple_pattern)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'label_var) in - Obj.repr( -# 928 "parsing/parser.mly" - ( (fst _2, None, snd _2) ) -# 6084 "parsing/parser.ml" - : 'labeled_simple_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'simple_pattern) in - Obj.repr( -# 930 "parsing/parser.mly" - ( (_1, None, _2) ) -# 6092 "parsing/parser.ml" - : 'labeled_simple_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'simple_pattern) in - Obj.repr( -# 932 "parsing/parser.mly" - ( ("", None, _1) ) -# 6099 "parsing/parser.ml" - : 'labeled_simple_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 935 "parsing/parser.mly" - ( mkpat(Ppat_var (mkrhs _1 1)) ) -# 6106 "parsing/parser.ml" - : 'pattern_var)) -; (fun __caml_parser_env -> - Obj.repr( -# 936 "parsing/parser.mly" - ( mkpat Ppat_any ) -# 6112 "parsing/parser.ml" - : 'pattern_var)) -; (fun __caml_parser_env -> - Obj.repr( -# 939 "parsing/parser.mly" - ( None ) -# 6118 "parsing/parser.ml" - : 'opt_default)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 940 "parsing/parser.mly" - ( Some _2 ) -# 6125 "parsing/parser.ml" - : 'opt_default)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'label_var) in - Obj.repr( -# 944 "parsing/parser.mly" - ( _1 ) -# 6132 "parsing/parser.ml" - : 'label_let_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'label_var) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 946 "parsing/parser.mly" - ( let (lab, pat) = _1 in (lab, mkpat(Ppat_constraint(pat, _3))) ) -# 6140 "parsing/parser.ml" - : 'label_let_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 949 "parsing/parser.mly" - ( (_1, mkpat(Ppat_var (mkrhs _1 1))) ) -# 6147 "parsing/parser.ml" - : 'label_var)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'pattern) in - Obj.repr( -# 953 "parsing/parser.mly" - ( _1 ) -# 6154 "parsing/parser.ml" - : 'let_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'pattern) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 955 "parsing/parser.mly" - ( mkpat(Ppat_constraint(_1, _3)) ) -# 6162 "parsing/parser.ml" - : 'let_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'simple_expr) in - Obj.repr( -# 959 "parsing/parser.mly" - ( _1 ) -# 6169 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'simple_expr) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'simple_labeled_expr_list) in - Obj.repr( -# 961 "parsing/parser.mly" - ( mkexp(Pexp_apply(_1, List.rev _2)) ) -# 6177 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'rec_flag) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'let_bindings) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 963 "parsing/parser.mly" - ( mkexp(Pexp_let(_2, List.rev _3, _5)) ) -# 6186 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 3 : string) in - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'module_binding) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 965 "parsing/parser.mly" - ( mkexp(Pexp_letmodule(mkrhs _3 3, _4, _6)) ) -# 6195 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'mod_longident) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 967 "parsing/parser.mly" - ( mkexp(Pexp_open(mkrhs _3 3, _5)) ) -# 6203 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'opt_bar) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'match_cases) in - Obj.repr( -# 969 "parsing/parser.mly" - ( mkexp(Pexp_function("", None, List.rev _3)) ) -# 6211 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'labeled_simple_pattern) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'fun_def) in - Obj.repr( -# 971 "parsing/parser.mly" - ( let (l,o,p) = _2 in mkexp(Pexp_function(l, o, [p, _3])) ) -# 6219 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _4 = (Parsing.peek_val __caml_parser_env 2 : string) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'fun_def) in - Obj.repr( -# 973 "parsing/parser.mly" - ( mkexp(Pexp_newtype(_4, _6)) ) -# 6227 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'seq_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'opt_bar) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'match_cases) in - Obj.repr( -# 975 "parsing/parser.mly" - ( mkexp(Pexp_match(_2, List.rev _5)) ) -# 6236 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'seq_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'opt_bar) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'match_cases) in - Obj.repr( -# 977 "parsing/parser.mly" - ( mkexp(Pexp_try(_2, List.rev _5)) ) -# 6245 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'seq_expr) in - Obj.repr( -# 979 "parsing/parser.mly" - ( syntax_error() ) -# 6252 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expr_comma_list) in - Obj.repr( -# 981 "parsing/parser.mly" - ( mkexp(Pexp_tuple(List.rev _1)) ) -# 6259 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'constr_longident) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'simple_expr) in - Obj.repr( -# 983 "parsing/parser.mly" - ( mkexp(Pexp_construct(mkrhs _1 1, Some _2, false)) ) -# 6267 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'name_tag) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'simple_expr) in - Obj.repr( -# 985 "parsing/parser.mly" - ( mkexp(Pexp_variant(_1, Some _2)) ) -# 6275 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 4 : 'seq_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 987 "parsing/parser.mly" - ( mkexp(Pexp_ifthenelse(_2, _4, Some _6)) ) -# 6284 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'seq_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 989 "parsing/parser.mly" - ( mkexp(Pexp_ifthenelse(_2, _4, None)) ) -# 6292 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'seq_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - Obj.repr( -# 991 "parsing/parser.mly" - ( mkexp(Pexp_while(_2, _4)) ) -# 6300 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 7 : 'val_ident) in - let _4 = (Parsing.peek_val __caml_parser_env 5 : 'seq_expr) in - let _5 = (Parsing.peek_val __caml_parser_env 4 : 'direction_flag) in - let _6 = (Parsing.peek_val __caml_parser_env 3 : 'seq_expr) in - let _8 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - Obj.repr( -# 993 "parsing/parser.mly" - ( mkexp(Pexp_for(mkrhs _2 2, _4, _6, _5, _8)) ) -# 6311 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 995 "parsing/parser.mly" - ( mkexp_cons (ghexp(Pexp_tuple[_1;_3])) (symbol_rloc()) ) -# 6319 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _5 = (Parsing.peek_val __caml_parser_env 3 : 'expr) in - let _7 = (Parsing.peek_val __caml_parser_env 1 : 'expr) in - Obj.repr( -# 997 "parsing/parser.mly" - ( mkexp_cons (ghexp(Pexp_tuple[_5;_7])) (symbol_rloc()) ) -# 6327 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _2 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 999 "parsing/parser.mly" - ( mkinfix _1 _2 _3 ) -# 6336 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _2 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1001 "parsing/parser.mly" - ( mkinfix _1 _2 _3 ) -# 6345 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _2 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1003 "parsing/parser.mly" - ( mkinfix _1 _2 _3 ) -# 6354 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _2 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1005 "parsing/parser.mly" - ( mkinfix _1 _2 _3 ) -# 6363 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _2 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1007 "parsing/parser.mly" - ( mkinfix _1 _2 _3 ) -# 6372 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1009 "parsing/parser.mly" - ( mkinfix _1 "+" _3 ) -# 6380 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1011 "parsing/parser.mly" - ( mkinfix _1 "+." _3 ) -# 6388 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1013 "parsing/parser.mly" - ( mkinfix _1 "-" _3 ) -# 6396 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1015 "parsing/parser.mly" - ( mkinfix _1 "-." _3 ) -# 6404 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1017 "parsing/parser.mly" - ( mkinfix _1 "*" _3 ) -# 6412 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1019 "parsing/parser.mly" - ( mkinfix _1 "=" _3 ) -# 6420 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1021 "parsing/parser.mly" - ( mkinfix _1 "<" _3 ) -# 6428 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1023 "parsing/parser.mly" - ( mkinfix _1 ">" _3 ) -# 6436 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1025 "parsing/parser.mly" - ( mkinfix _1 "or" _3 ) -# 6444 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1027 "parsing/parser.mly" - ( mkinfix _1 "||" _3 ) -# 6452 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1029 "parsing/parser.mly" - ( mkinfix _1 "&" _3 ) -# 6460 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1031 "parsing/parser.mly" - ( mkinfix _1 "&&" _3 ) -# 6468 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1033 "parsing/parser.mly" - ( mkinfix _1 ":=" _3 ) -# 6476 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'subtractive) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1035 "parsing/parser.mly" - ( mkuminus _1 _2 ) -# 6484 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'additive) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1037 "parsing/parser.mly" - ( mkuplus _1 _2 ) -# 6492 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : 'simple_expr) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'label_longident) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1039 "parsing/parser.mly" - ( mkexp(Pexp_setfield(_1, mkrhs _3 3, _5)) ) -# 6501 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 6 : 'simple_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 3 : 'seq_expr) in - let _7 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1041 "parsing/parser.mly" - ( mkexp(Pexp_apply(ghexp(Pexp_ident(array_function "Array" "set")), - ["",_1; "",_4; "",_7])) ) -# 6511 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 6 : 'simple_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 3 : 'seq_expr) in - let _7 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1044 "parsing/parser.mly" - ( mkexp(Pexp_apply(ghexp(Pexp_ident(array_function "String" "set")), - ["",_1; "",_4; "",_7])) ) -# 6521 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 6 : 'simple_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 3 : 'expr) in - let _7 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1047 "parsing/parser.mly" - ( bigarray_set _1 _4 _7 ) -# 6530 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1049 "parsing/parser.mly" - ( mkexp(Pexp_setinstvar(mkrhs _1 1, _3)) ) -# 6538 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'simple_expr) in - Obj.repr( -# 1051 "parsing/parser.mly" - ( mkassert _2 ) -# 6545 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'simple_expr) in - Obj.repr( -# 1053 "parsing/parser.mly" - ( mkexp (Pexp_lazy (_2)) ) -# 6552 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'class_structure) in - Obj.repr( -# 1055 "parsing/parser.mly" - ( mkexp (Pexp_object(_2)) ) -# 6559 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'class_structure) in - Obj.repr( -# 1057 "parsing/parser.mly" - ( unclosed "object" 1 "end" 3 ) -# 6566 "parsing/parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'val_longident) in - Obj.repr( -# 1061 "parsing/parser.mly" - ( mkexp(Pexp_ident (mkrhs _1 1)) ) -# 6573 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'constant) in - Obj.repr( -# 1063 "parsing/parser.mly" - ( mkexp(Pexp_constant _1) ) -# 6580 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'constr_longident) in - Obj.repr( -# 1065 "parsing/parser.mly" - ( mkexp(Pexp_construct(mkrhs _1 1, None, false)) ) -# 6587 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'name_tag) in - Obj.repr( -# 1067 "parsing/parser.mly" - ( mkexp(Pexp_variant(_1, None)) ) -# 6594 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - Obj.repr( -# 1069 "parsing/parser.mly" - ( reloc_exp _2 ) -# 6601 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - Obj.repr( -# 1071 "parsing/parser.mly" - ( unclosed "(" 1 ")" 3 ) -# 6608 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - Obj.repr( -# 1073 "parsing/parser.mly" - ( reloc_exp _2 ) -# 6615 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - Obj.repr( -# 1075 "parsing/parser.mly" - ( mkexp (Pexp_construct (mkloc (Lident "()") (symbol_rloc ()), None, false)) ) -# 6621 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - Obj.repr( -# 1077 "parsing/parser.mly" - ( unclosed "begin" 1 "end" 3 ) -# 6628 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'seq_expr) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'type_constraint) in - Obj.repr( -# 1079 "parsing/parser.mly" - ( let (t, t') = _3 in mkexp(Pexp_constraint(_2, t, t')) ) -# 6636 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'simple_expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'label_longident) in - Obj.repr( -# 1081 "parsing/parser.mly" - ( mkexp(Pexp_field(_1, mkrhs _3 3)) ) -# 6644 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : 'mod_longident) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - Obj.repr( -# 1083 "parsing/parser.mly" - ( mkexp(Pexp_open(mkrhs _1 1, _4)) ) -# 6652 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : 'mod_longident) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - Obj.repr( -# 1085 "parsing/parser.mly" - ( unclosed "(" 3 ")" 5 ) -# 6660 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : 'simple_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - Obj.repr( -# 1087 "parsing/parser.mly" - ( mkexp(Pexp_apply(ghexp(Pexp_ident(array_function "Array" "get")), - ["",_1; "",_4])) ) -# 6669 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : 'simple_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - Obj.repr( -# 1090 "parsing/parser.mly" - ( unclosed "(" 3 ")" 5 ) -# 6677 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : 'simple_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - Obj.repr( -# 1092 "parsing/parser.mly" - ( mkexp(Pexp_apply(ghexp(Pexp_ident(array_function "String" "get")), - ["",_1; "",_4])) ) -# 6686 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : 'simple_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'seq_expr) in - Obj.repr( -# 1095 "parsing/parser.mly" - ( unclosed "[" 3 "]" 5 ) -# 6694 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : 'simple_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'expr) in - Obj.repr( -# 1097 "parsing/parser.mly" - ( bigarray_get _1 _4 ) -# 6702 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : 'simple_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'expr_comma_list) in - Obj.repr( -# 1099 "parsing/parser.mly" - ( unclosed "{" 3 "}" 5 ) -# 6710 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'record_expr) in - Obj.repr( -# 1101 "parsing/parser.mly" - ( let (exten, fields) = _2 in mkexp(Pexp_record(fields, exten)) ) -# 6717 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'record_expr) in - Obj.repr( -# 1103 "parsing/parser.mly" - ( unclosed "{" 1 "}" 3 ) -# 6724 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'expr_semi_list) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'opt_semi) in - Obj.repr( -# 1105 "parsing/parser.mly" - ( mkexp(Pexp_array(List.rev _2)) ) -# 6732 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'expr_semi_list) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'opt_semi) in - Obj.repr( -# 1107 "parsing/parser.mly" - ( unclosed "[|" 1 "|]" 4 ) -# 6740 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - Obj.repr( -# 1109 "parsing/parser.mly" - ( mkexp(Pexp_array []) ) -# 6746 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'expr_semi_list) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'opt_semi) in - Obj.repr( -# 1111 "parsing/parser.mly" - ( reloc_exp (mktailexp (List.rev _2)) ) -# 6754 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'expr_semi_list) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'opt_semi) in - Obj.repr( -# 1113 "parsing/parser.mly" - ( unclosed "[" 1 "]" 4 ) -# 6762 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'simple_expr) in - Obj.repr( -# 1115 "parsing/parser.mly" - ( mkexp(Pexp_apply(mkoperator _1 1, ["",_2])) ) -# 6770 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'simple_expr) in - Obj.repr( -# 1117 "parsing/parser.mly" - ( mkexp(Pexp_apply(mkoperator "!" 1, ["",_2])) ) -# 6777 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'class_longident) in - Obj.repr( -# 1119 "parsing/parser.mly" - ( mkexp(Pexp_new(mkrhs _2 2)) ) -# 6784 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'field_expr_list) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'opt_semi) in - Obj.repr( -# 1121 "parsing/parser.mly" - ( mkexp(Pexp_override(List.rev _2)) ) -# 6792 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'field_expr_list) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'opt_semi) in - Obj.repr( -# 1123 "parsing/parser.mly" - ( unclosed "{<" 1 ">}" 4 ) -# 6800 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - Obj.repr( -# 1125 "parsing/parser.mly" - ( mkexp(Pexp_override []) ) -# 6806 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'simple_expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'label) in - Obj.repr( -# 1127 "parsing/parser.mly" - ( mkexp(Pexp_send(_1, _3)) ) -# 6814 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'module_expr) in - Obj.repr( -# 1129 "parsing/parser.mly" - ( mkexp (Pexp_pack _3) ) -# 6821 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 3 : 'module_expr) in - let _5 = (Parsing.peek_val __caml_parser_env 1 : 'package_type) in - Obj.repr( -# 1131 "parsing/parser.mly" - ( mkexp (Pexp_constraint (ghexp (Pexp_pack _3), - Some (ghtyp (Ptyp_package _5)), None)) ) -# 6830 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'module_expr) in - Obj.repr( -# 1134 "parsing/parser.mly" - ( unclosed "(" 1 ")" 5 ) -# 6837 "parsing/parser.ml" - : 'simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'labeled_simple_expr) in - Obj.repr( -# 1138 "parsing/parser.mly" - ( [_1] ) -# 6844 "parsing/parser.ml" - : 'simple_labeled_expr_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'simple_labeled_expr_list) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'labeled_simple_expr) in - Obj.repr( -# 1140 "parsing/parser.mly" - ( _2 :: _1 ) -# 6852 "parsing/parser.ml" - : 'simple_labeled_expr_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'simple_expr) in - Obj.repr( -# 1144 "parsing/parser.mly" - ( ("", _1) ) -# 6859 "parsing/parser.ml" - : 'labeled_simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'label_expr) in - Obj.repr( -# 1146 "parsing/parser.mly" - ( _1 ) -# 6866 "parsing/parser.ml" - : 'labeled_simple_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'simple_expr) in - Obj.repr( -# 1150 "parsing/parser.mly" - ( (_1, _2) ) -# 6874 "parsing/parser.ml" - : 'label_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'label_ident) in - Obj.repr( -# 1152 "parsing/parser.mly" - ( _2 ) -# 6881 "parsing/parser.ml" - : 'label_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'label_ident) in - Obj.repr( -# 1154 "parsing/parser.mly" - ( ("?" ^ fst _2, snd _2) ) -# 6888 "parsing/parser.ml" - : 'label_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'simple_expr) in - Obj.repr( -# 1156 "parsing/parser.mly" - ( ("?" ^ _1, _2) ) -# 6896 "parsing/parser.ml" - : 'label_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1159 "parsing/parser.mly" - ( (_1, mkexp(Pexp_ident(mkrhs (Lident _1) 1))) ) -# 6903 "parsing/parser.ml" - : 'label_ident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'let_binding) in - Obj.repr( -# 1162 "parsing/parser.mly" - ( [_1] ) -# 6910 "parsing/parser.ml" - : 'let_bindings)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'let_bindings) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'let_binding) in - Obj.repr( -# 1163 "parsing/parser.mly" - ( _3 :: _1 ) -# 6918 "parsing/parser.ml" - : 'let_bindings)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1167 "parsing/parser.mly" - ( [_1] ) -# 6925 "parsing/parser.ml" - : 'lident_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'lident_list) in - Obj.repr( -# 1168 "parsing/parser.mly" - ( _1 :: _2 ) -# 6933 "parsing/parser.ml" - : 'lident_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'val_ident) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'fun_binding) in - Obj.repr( -# 1172 "parsing/parser.mly" - ( (mkpatvar _1 1, _2) ) -# 6941 "parsing/parser.ml" - : 'let_binding)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 6 : 'val_ident) in - let _3 = (Parsing.peek_val __caml_parser_env 4 : 'typevar_list) in - let _5 = (Parsing.peek_val __caml_parser_env 2 : 'core_type) in - let _7 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 1174 "parsing/parser.mly" - ( (ghpat(Ppat_constraint(mkpatvar _1 1, ghtyp(Ptyp_poly(_3,_5)))), _7) ) -# 6951 "parsing/parser.ml" - : 'let_binding)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 7 : 'val_ident) in - let _4 = (Parsing.peek_val __caml_parser_env 4 : 'lident_list) in - let _6 = (Parsing.peek_val __caml_parser_env 2 : 'core_type) in - let _8 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 1176 "parsing/parser.mly" - ( let exp, poly = wrap_type_annotation _4 _6 _8 in - (ghpat(Ppat_constraint(mkpatvar _1 1, poly)), exp) ) -# 6962 "parsing/parser.ml" - : 'let_binding)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'pattern) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 1179 "parsing/parser.mly" - ( (_1, _3) ) -# 6970 "parsing/parser.ml" - : 'let_binding)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'strict_binding) in - Obj.repr( -# 1183 "parsing/parser.mly" - ( _1 ) -# 6977 "parsing/parser.ml" - : 'fun_binding)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'type_constraint) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 1185 "parsing/parser.mly" - ( let (t, t') = _1 in ghexp(Pexp_constraint(_3, t, t')) ) -# 6985 "parsing/parser.ml" - : 'fun_binding)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 1189 "parsing/parser.mly" - ( _2 ) -# 6992 "parsing/parser.ml" - : 'strict_binding)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'labeled_simple_pattern) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'fun_binding) in - Obj.repr( -# 1191 "parsing/parser.mly" - ( let (l, o, p) = _1 in ghexp(Pexp_function(l, o, [p, _2])) ) -# 7000 "parsing/parser.ml" - : 'strict_binding)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 2 : string) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'fun_binding) in - Obj.repr( -# 1193 "parsing/parser.mly" - ( mkexp(Pexp_newtype(_3, _5)) ) -# 7008 "parsing/parser.ml" - : 'strict_binding)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'pattern) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'match_action) in - Obj.repr( -# 1196 "parsing/parser.mly" - ( [_1, _2] ) -# 7016 "parsing/parser.ml" - : 'match_cases)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 3 : 'match_cases) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'pattern) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'match_action) in - Obj.repr( -# 1197 "parsing/parser.mly" - ( (_3, _4) :: _1 ) -# 7025 "parsing/parser.ml" - : 'match_cases)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'match_action) in - Obj.repr( -# 1200 "parsing/parser.mly" - ( _1 ) -# 7032 "parsing/parser.ml" - : 'fun_def)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'labeled_simple_pattern) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'fun_def) in - Obj.repr( -# 1202 "parsing/parser.mly" - ( let (l,o,p) = _1 in ghexp(Pexp_function(l, o, [p, _2])) ) -# 7040 "parsing/parser.ml" - : 'fun_def)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 2 : string) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'fun_def) in - Obj.repr( -# 1204 "parsing/parser.mly" - ( mkexp(Pexp_newtype(_3, _5)) ) -# 7048 "parsing/parser.ml" - : 'fun_def)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 1207 "parsing/parser.mly" - ( _2 ) -# 7055 "parsing/parser.ml" - : 'match_action)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'seq_expr) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'seq_expr) in - Obj.repr( -# 1208 "parsing/parser.mly" - ( mkexp(Pexp_when(_2, _4)) ) -# 7063 "parsing/parser.ml" - : 'match_action)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr_comma_list) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1211 "parsing/parser.mly" - ( _3 :: _1 ) -# 7071 "parsing/parser.ml" - : 'expr_comma_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1212 "parsing/parser.mly" - ( [_3; _1] ) -# 7079 "parsing/parser.ml" - : 'expr_comma_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'simple_expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'lbl_expr_list) in - Obj.repr( -# 1215 "parsing/parser.mly" - ( (Some _1, _3) ) -# 7087 "parsing/parser.ml" - : 'record_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'lbl_expr_list) in - Obj.repr( -# 1216 "parsing/parser.mly" - ( (None, _1) ) -# 7094 "parsing/parser.ml" - : 'record_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'lbl_expr) in - Obj.repr( -# 1219 "parsing/parser.mly" - ( [_1] ) -# 7101 "parsing/parser.ml" - : 'lbl_expr_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'lbl_expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'lbl_expr_list) in - Obj.repr( -# 1220 "parsing/parser.mly" - ( _1 :: _3 ) -# 7109 "parsing/parser.ml" - : 'lbl_expr_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'lbl_expr) in - Obj.repr( -# 1221 "parsing/parser.mly" - ( [_1] ) -# 7116 "parsing/parser.ml" - : 'lbl_expr_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'label_longident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1225 "parsing/parser.mly" - ( (mkrhs _1 1,_3) ) -# 7124 "parsing/parser.ml" - : 'lbl_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'label_longident) in - Obj.repr( -# 1227 "parsing/parser.mly" - ( (mkrhs _1 1, exp_of_label _1 1) ) -# 7131 "parsing/parser.ml" - : 'lbl_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1231 "parsing/parser.mly" - ( [mkrhs _1 1,_3] ) -# 7139 "parsing/parser.ml" - : 'field_expr_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : 'field_expr_list) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1233 "parsing/parser.mly" - ( (mkrhs _3 3, _5) :: _1 ) -# 7148 "parsing/parser.ml" - : 'field_expr_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1236 "parsing/parser.mly" - ( [_1] ) -# 7155 "parsing/parser.ml" - : 'expr_semi_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr_semi_list) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 1237 "parsing/parser.mly" - ( _3 :: _1 ) -# 7163 "parsing/parser.ml" - : 'expr_semi_list)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 1240 "parsing/parser.mly" - ( (Some _2, None) ) -# 7170 "parsing/parser.ml" - : 'type_constraint)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'core_type) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 1241 "parsing/parser.mly" - ( (Some _2, Some _4) ) -# 7178 "parsing/parser.ml" - : 'type_constraint)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 1242 "parsing/parser.mly" - ( (None, Some _2) ) -# 7185 "parsing/parser.ml" - : 'type_constraint)) -; (fun __caml_parser_env -> - Obj.repr( -# 1243 "parsing/parser.mly" - ( syntax_error() ) -# 7191 "parsing/parser.ml" - : 'type_constraint)) -; (fun __caml_parser_env -> - Obj.repr( -# 1244 "parsing/parser.mly" - ( syntax_error() ) -# 7197 "parsing/parser.ml" - : 'type_constraint)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'simple_pattern) in - Obj.repr( -# 1251 "parsing/parser.mly" - ( _1 ) -# 7204 "parsing/parser.ml" - : 'pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'pattern) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'val_ident) in - Obj.repr( -# 1253 "parsing/parser.mly" - ( mkpat(Ppat_alias(_1, mkrhs _3 3)) ) -# 7212 "parsing/parser.ml" - : 'pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'pattern_comma_list) in - Obj.repr( -# 1255 "parsing/parser.mly" - ( mkpat(Ppat_tuple(List.rev _1)) ) -# 7219 "parsing/parser.ml" - : 'pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'constr_longident) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'pattern) in - Obj.repr( -# 1257 "parsing/parser.mly" - ( mkpat(Ppat_construct(mkrhs _1 1, Some _2, false)) ) -# 7227 "parsing/parser.ml" - : 'pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'name_tag) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'pattern) in - Obj.repr( -# 1259 "parsing/parser.mly" - ( mkpat(Ppat_variant(_1, Some _2)) ) -# 7235 "parsing/parser.ml" - : 'pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'pattern) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'pattern) in - Obj.repr( -# 1261 "parsing/parser.mly" - ( mkpat_cons (ghpat(Ppat_tuple[_1;_3])) (symbol_rloc()) ) -# 7243 "parsing/parser.ml" - : 'pattern)) -; (fun __caml_parser_env -> - let _5 = (Parsing.peek_val __caml_parser_env 3 : 'pattern) in - let _7 = (Parsing.peek_val __caml_parser_env 1 : 'pattern) in - Obj.repr( -# 1263 "parsing/parser.mly" - ( mkpat_cons (ghpat(Ppat_tuple[_5;_7])) (symbol_rloc()) ) -# 7251 "parsing/parser.ml" - : 'pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'pattern) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'pattern) in - Obj.repr( -# 1265 "parsing/parser.mly" - ( mkpat(Ppat_or(_1, _3)) ) -# 7259 "parsing/parser.ml" - : 'pattern)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'simple_pattern) in - Obj.repr( -# 1267 "parsing/parser.mly" - ( mkpat(Ppat_lazy _2) ) -# 7266 "parsing/parser.ml" - : 'pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'val_ident) in - Obj.repr( -# 1271 "parsing/parser.mly" - ( mkpat(Ppat_var (mkrhs _1 1)) ) -# 7273 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - Obj.repr( -# 1273 "parsing/parser.mly" - ( mkpat(Ppat_any) ) -# 7279 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'signed_constant) in - Obj.repr( -# 1275 "parsing/parser.mly" - ( mkpat(Ppat_constant _1) ) -# 7286 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : char) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : char) in - Obj.repr( -# 1277 "parsing/parser.mly" - ( mkrangepat _1 _3 ) -# 7294 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'constr_longident) in - Obj.repr( -# 1279 "parsing/parser.mly" - ( mkpat(Ppat_construct(mkrhs _1 1, None, false)) ) -# 7301 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'name_tag) in - Obj.repr( -# 1281 "parsing/parser.mly" - ( mkpat(Ppat_variant(_1, None)) ) -# 7308 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'type_longident) in - Obj.repr( -# 1283 "parsing/parser.mly" - ( mkpat(Ppat_type (mkrhs _2 2)) ) -# 7315 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'lbl_pattern_list) in - Obj.repr( -# 1285 "parsing/parser.mly" - ( let (fields, closed) = _2 in mkpat(Ppat_record(fields, closed)) ) -# 7322 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'lbl_pattern_list) in - Obj.repr( -# 1287 "parsing/parser.mly" - ( unclosed "{" 1 "}" 4 ) -# 7329 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'pattern_semi_list) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'opt_semi) in - Obj.repr( -# 1289 "parsing/parser.mly" - ( reloc_pat (mktailpat (List.rev _2)) ) -# 7337 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'pattern_semi_list) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'opt_semi) in - Obj.repr( -# 1291 "parsing/parser.mly" - ( unclosed "[" 1 "]" 4 ) -# 7345 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'pattern_semi_list) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'opt_semi) in - Obj.repr( -# 1293 "parsing/parser.mly" - ( mkpat(Ppat_array(List.rev _2)) ) -# 7353 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - Obj.repr( -# 1295 "parsing/parser.mly" - ( mkpat(Ppat_array []) ) -# 7359 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'pattern_semi_list) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'opt_semi) in - Obj.repr( -# 1297 "parsing/parser.mly" - ( unclosed "[|" 1 "|]" 4 ) -# 7367 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'pattern) in - Obj.repr( -# 1299 "parsing/parser.mly" - ( reloc_pat _2 ) -# 7374 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'pattern) in - Obj.repr( -# 1301 "parsing/parser.mly" - ( unclosed "(" 1 ")" 3 ) -# 7381 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'pattern) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'core_type) in - Obj.repr( -# 1303 "parsing/parser.mly" - ( mkpat(Ppat_constraint(_2, _4)) ) -# 7389 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'pattern) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'core_type) in - Obj.repr( -# 1305 "parsing/parser.mly" - ( unclosed "(" 1 ")" 5 ) -# 7397 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 1 : string) in - Obj.repr( -# 1307 "parsing/parser.mly" - ( mkpat(Ppat_unpack (mkrhs _3 3)) ) -# 7404 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 3 : string) in - let _5 = (Parsing.peek_val __caml_parser_env 1 : 'package_type) in - Obj.repr( -# 1309 "parsing/parser.mly" - ( mkpat(Ppat_constraint(mkpat(Ppat_unpack (mkrhs _3 3)),ghtyp(Ptyp_package _5))) ) -# 7412 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 3 : string) in - let _5 = (Parsing.peek_val __caml_parser_env 1 : 'package_type) in - Obj.repr( -# 1311 "parsing/parser.mly" - ( unclosed "(" 1 ")" 6 ) -# 7420 "parsing/parser.ml" - : 'simple_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'pattern_comma_list) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'pattern) in - Obj.repr( -# 1315 "parsing/parser.mly" - ( _3 :: _1 ) -# 7428 "parsing/parser.ml" - : 'pattern_comma_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'pattern) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'pattern) in - Obj.repr( -# 1316 "parsing/parser.mly" - ( [_3; _1] ) -# 7436 "parsing/parser.ml" - : 'pattern_comma_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'pattern) in - Obj.repr( -# 1319 "parsing/parser.mly" - ( [_1] ) -# 7443 "parsing/parser.ml" - : 'pattern_semi_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'pattern_semi_list) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'pattern) in - Obj.repr( -# 1320 "parsing/parser.mly" - ( _3 :: _1 ) -# 7451 "parsing/parser.ml" - : 'pattern_semi_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'lbl_pattern) in - Obj.repr( -# 1323 "parsing/parser.mly" - ( [_1], Closed ) -# 7458 "parsing/parser.ml" - : 'lbl_pattern_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'lbl_pattern) in - Obj.repr( -# 1324 "parsing/parser.mly" - ( [_1], Closed ) -# 7465 "parsing/parser.ml" - : 'lbl_pattern_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 3 : 'lbl_pattern) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'opt_semi) in - Obj.repr( -# 1325 "parsing/parser.mly" - ( [_1], Open ) -# 7473 "parsing/parser.ml" - : 'lbl_pattern_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'lbl_pattern) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'lbl_pattern_list) in - Obj.repr( -# 1326 "parsing/parser.mly" - ( let (fields, closed) = _3 in _1 :: fields, closed ) -# 7481 "parsing/parser.ml" - : 'lbl_pattern_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'label_longident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'pattern) in - Obj.repr( -# 1330 "parsing/parser.mly" - ( (mkrhs _1 1,_3) ) -# 7489 "parsing/parser.ml" - : 'lbl_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'label_longident) in - Obj.repr( -# 1332 "parsing/parser.mly" - ( (mkrhs _1 1, pat_of_label _1 1) ) -# 7496 "parsing/parser.ml" - : 'lbl_pattern)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1338 "parsing/parser.mly" - ( [_1] ) -# 7503 "parsing/parser.ml" - : 'primitive_declaration)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'primitive_declaration) in - Obj.repr( -# 1339 "parsing/parser.mly" - ( _1 :: _2 ) -# 7511 "parsing/parser.ml" - : 'primitive_declaration)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'type_declaration) in - Obj.repr( -# 1345 "parsing/parser.mly" - ( [_1] ) -# 7518 "parsing/parser.ml" - : 'type_declarations)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'type_declarations) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'type_declaration) in - Obj.repr( -# 1346 "parsing/parser.mly" - ( _3 :: _1 ) -# 7526 "parsing/parser.ml" - : 'type_declarations)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 3 : 'optional_type_parameters) in - let _2 = (Parsing.peek_val __caml_parser_env 2 : string) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'type_kind) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'constraints) in - Obj.repr( -# 1351 "parsing/parser.mly" - ( let (params, variance) = List.split _1 in - let (kind, private_flag, manifest) = _3 in - (mkrhs _2 2, {ptype_params = params; - ptype_cstrs = List.rev _4; - ptype_kind = kind; - ptype_private = private_flag; - ptype_manifest = manifest; - ptype_variance = variance; - ptype_loc = symbol_rloc() }) ) -# 7544 "parsing/parser.ml" - : 'type_declaration)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'constraints) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'constrain) in - Obj.repr( -# 1362 "parsing/parser.mly" - ( _3 :: _1 ) -# 7552 "parsing/parser.ml" - : 'constraints)) -; (fun __caml_parser_env -> - Obj.repr( -# 1363 "parsing/parser.mly" - ( [] ) -# 7558 "parsing/parser.ml" - : 'constraints)) -; (fun __caml_parser_env -> - Obj.repr( -# 1367 "parsing/parser.mly" - ( (Ptype_abstract, Public, None) ) -# 7564 "parsing/parser.ml" - : 'type_kind)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 1369 "parsing/parser.mly" - ( (Ptype_abstract, Public, Some _2) ) -# 7571 "parsing/parser.ml" - : 'type_kind)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 1371 "parsing/parser.mly" - ( (Ptype_abstract, Private, Some _3) ) -# 7578 "parsing/parser.ml" - : 'type_kind)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'constructor_declarations) in - Obj.repr( -# 1373 "parsing/parser.mly" - ( (Ptype_variant(List.rev _2), Public, None) ) -# 7585 "parsing/parser.ml" - : 'type_kind)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'constructor_declarations) in - Obj.repr( -# 1375 "parsing/parser.mly" - ( (Ptype_variant(List.rev _3), Private, None) ) -# 7592 "parsing/parser.ml" - : 'type_kind)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'private_flag) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'constructor_declarations) in - Obj.repr( -# 1377 "parsing/parser.mly" - ( (Ptype_variant(List.rev _4), _2, None) ) -# 7600 "parsing/parser.ml" - : 'type_kind)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 4 : 'private_flag) in - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'label_declarations) in - let _5 = (Parsing.peek_val __caml_parser_env 1 : 'opt_semi) in - Obj.repr( -# 1379 "parsing/parser.mly" - ( (Ptype_record(List.rev _4), _2, None) ) -# 7609 "parsing/parser.ml" - : 'type_kind)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 4 : 'core_type) in - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'private_flag) in - let _5 = (Parsing.peek_val __caml_parser_env 1 : 'opt_bar) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'constructor_declarations) in - Obj.repr( -# 1381 "parsing/parser.mly" - ( (Ptype_variant(List.rev _6), _4, Some _2) ) -# 7619 "parsing/parser.ml" - : 'type_kind)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 6 : 'core_type) in - let _4 = (Parsing.peek_val __caml_parser_env 4 : 'private_flag) in - let _6 = (Parsing.peek_val __caml_parser_env 2 : 'label_declarations) in - let _7 = (Parsing.peek_val __caml_parser_env 1 : 'opt_semi) in - Obj.repr( -# 1383 "parsing/parser.mly" - ( (Ptype_record(List.rev _6), _4, Some _2) ) -# 7629 "parsing/parser.ml" - : 'type_kind)) -; (fun __caml_parser_env -> - Obj.repr( -# 1386 "parsing/parser.mly" - ( [] ) -# 7635 "parsing/parser.ml" - : 'optional_type_parameters)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'optional_type_parameter) in - Obj.repr( -# 1387 "parsing/parser.mly" - ( [_1] ) -# 7642 "parsing/parser.ml" - : 'optional_type_parameters)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'optional_type_parameter_list) in - Obj.repr( -# 1388 "parsing/parser.mly" - ( List.rev _2 ) -# 7649 "parsing/parser.ml" - : 'optional_type_parameters)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'type_variance) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'ident) in - Obj.repr( -# 1391 "parsing/parser.mly" - ( Some (mkrhs _3 3), _1 ) -# 7657 "parsing/parser.ml" - : 'optional_type_parameter)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'type_variance) in - Obj.repr( -# 1392 "parsing/parser.mly" - ( None, _1 ) -# 7664 "parsing/parser.ml" - : 'optional_type_parameter)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'optional_type_parameter) in - Obj.repr( -# 1395 "parsing/parser.mly" - ( [_1] ) -# 7671 "parsing/parser.ml" - : 'optional_type_parameter_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'optional_type_parameter_list) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'optional_type_parameter) in - Obj.repr( -# 1396 "parsing/parser.mly" - ( _3 :: _1 ) -# 7679 "parsing/parser.ml" - : 'optional_type_parameter_list)) -; (fun __caml_parser_env -> - Obj.repr( -# 1402 "parsing/parser.mly" - ( [] ) -# 7685 "parsing/parser.ml" - : 'type_parameters)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'type_parameter) in - Obj.repr( -# 1403 "parsing/parser.mly" - ( [_1] ) -# 7692 "parsing/parser.ml" - : 'type_parameters)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'type_parameter_list) in - Obj.repr( -# 1404 "parsing/parser.mly" - ( List.rev _2 ) -# 7699 "parsing/parser.ml" - : 'type_parameters)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'type_variance) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'ident) in - Obj.repr( -# 1407 "parsing/parser.mly" - ( mkrhs _3 3, _1 ) -# 7707 "parsing/parser.ml" - : 'type_parameter)) -; (fun __caml_parser_env -> - Obj.repr( -# 1410 "parsing/parser.mly" - ( false, false ) -# 7713 "parsing/parser.ml" - : 'type_variance)) -; (fun __caml_parser_env -> - Obj.repr( -# 1411 "parsing/parser.mly" - ( true, false ) -# 7719 "parsing/parser.ml" - : 'type_variance)) -; (fun __caml_parser_env -> - Obj.repr( -# 1412 "parsing/parser.mly" - ( false, true ) -# 7725 "parsing/parser.ml" - : 'type_variance)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'type_parameter) in - Obj.repr( -# 1415 "parsing/parser.mly" - ( [_1] ) -# 7732 "parsing/parser.ml" - : 'type_parameter_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'type_parameter_list) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'type_parameter) in - Obj.repr( -# 1416 "parsing/parser.mly" - ( _3 :: _1 ) -# 7740 "parsing/parser.ml" - : 'type_parameter_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'constructor_declaration) in - Obj.repr( -# 1419 "parsing/parser.mly" - ( [_1] ) -# 7747 "parsing/parser.ml" - : 'constructor_declarations)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'constructor_declarations) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'constructor_declaration) in - Obj.repr( -# 1420 "parsing/parser.mly" - ( _3 :: _1 ) -# 7755 "parsing/parser.ml" - : 'constructor_declarations)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'constr_ident) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'generalized_constructor_arguments) in - Obj.repr( -# 1425 "parsing/parser.mly" - ( let arg_types,ret_type = _2 in - (mkrhs _1 1, arg_types,ret_type, symbol_rloc()) ) -# 7764 "parsing/parser.ml" - : 'constructor_declaration)) -; (fun __caml_parser_env -> - Obj.repr( -# 1430 "parsing/parser.mly" - ( [] ) -# 7770 "parsing/parser.ml" - : 'constructor_arguments)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'core_type_list) in - Obj.repr( -# 1431 "parsing/parser.mly" - ( List.rev _2 ) -# 7777 "parsing/parser.ml" - : 'constructor_arguments)) -; (fun __caml_parser_env -> - Obj.repr( -# 1435 "parsing/parser.mly" - ( ([],None) ) -# 7783 "parsing/parser.ml" - : 'generalized_constructor_arguments)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'core_type_list) in - Obj.repr( -# 1436 "parsing/parser.mly" - ( (List.rev _2,None) ) -# 7790 "parsing/parser.ml" - : 'generalized_constructor_arguments)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'core_type_list) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'simple_core_type) in - Obj.repr( -# 1438 "parsing/parser.mly" - ( (List.rev _2,Some _4) ) -# 7798 "parsing/parser.ml" - : 'generalized_constructor_arguments)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'simple_core_type) in - Obj.repr( -# 1439 "parsing/parser.mly" - ( ([],Some _2) ) -# 7805 "parsing/parser.ml" - : 'generalized_constructor_arguments)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'label_declaration) in - Obj.repr( -# 1445 "parsing/parser.mly" - ( [_1] ) -# 7812 "parsing/parser.ml" - : 'label_declarations)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'label_declarations) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'label_declaration) in - Obj.repr( -# 1446 "parsing/parser.mly" - ( _3 :: _1 ) -# 7820 "parsing/parser.ml" - : 'label_declarations)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 3 : 'mutable_flag) in - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'poly_type) in - Obj.repr( -# 1449 "parsing/parser.mly" - ( (mkrhs _2 2, _1, _4, symbol_rloc()) ) -# 7829 "parsing/parser.ml" - : 'label_declaration)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'with_constraint) in - Obj.repr( -# 1455 "parsing/parser.mly" - ( [_1] ) -# 7836 "parsing/parser.ml" - : 'with_constraints)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'with_constraints) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'with_constraint) in - Obj.repr( -# 1456 "parsing/parser.mly" - ( _3 :: _1 ) -# 7844 "parsing/parser.ml" - : 'with_constraints)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 4 : 'type_parameters) in - let _3 = (Parsing.peek_val __caml_parser_env 3 : 'label_longident) in - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'with_type_binder) in - let _5 = (Parsing.peek_val __caml_parser_env 1 : 'core_type) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'constraints) in - Obj.repr( -# 1460 "parsing/parser.mly" - ( let params, variance = List.split _2 in - (mkrhs _3 3, Pwith_type {ptype_params = List.map (fun x -> Some x) params; - ptype_cstrs = List.rev _6; - ptype_kind = Ptype_abstract; - ptype_manifest = Some _5; - ptype_private = _4; - ptype_variance = variance; - ptype_loc = symbol_rloc()}) ) -# 7862 "parsing/parser.ml" - : 'with_constraint)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'type_parameters) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'label_longident) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 1471 "parsing/parser.mly" - ( let params, variance = List.split _2 in - (mkrhs _3 3, Pwith_typesubst {ptype_params = List.map (fun x -> Some x) params; - ptype_cstrs = []; - ptype_kind = Ptype_abstract; - ptype_manifest = Some _5; - ptype_private = Public; - ptype_variance = variance; - ptype_loc = symbol_rloc()}) ) -# 7878 "parsing/parser.ml" - : 'with_constraint)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'mod_longident) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'mod_ext_longident) in - Obj.repr( -# 1480 "parsing/parser.mly" - ( (mkrhs _2 2, Pwith_module (mkrhs _4 4)) ) -# 7886 "parsing/parser.ml" - : 'with_constraint)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'mod_longident) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'mod_ext_longident) in - Obj.repr( -# 1482 "parsing/parser.mly" - ( (mkrhs _2 2, Pwith_modsubst (mkrhs _4 4)) ) -# 7894 "parsing/parser.ml" - : 'with_constraint)) -; (fun __caml_parser_env -> - Obj.repr( -# 1485 "parsing/parser.mly" - ( Public ) -# 7900 "parsing/parser.ml" - : 'with_type_binder)) -; (fun __caml_parser_env -> - Obj.repr( -# 1486 "parsing/parser.mly" - ( Private ) -# 7906 "parsing/parser.ml" - : 'with_type_binder)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'ident) in - Obj.repr( -# 1492 "parsing/parser.mly" - ( [_2] ) -# 7913 "parsing/parser.ml" - : 'typevar_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'typevar_list) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'ident) in - Obj.repr( -# 1493 "parsing/parser.mly" - ( _3 :: _1 ) -# 7921 "parsing/parser.ml" - : 'typevar_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 1497 "parsing/parser.mly" - ( mktyp(Ptyp_poly([], _1)) ) -# 7928 "parsing/parser.ml" - : 'poly_type)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'typevar_list) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 1499 "parsing/parser.mly" - ( mktyp(Ptyp_poly(List.rev _1, _3)) ) -# 7936 "parsing/parser.ml" - : 'poly_type)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'core_type2) in - Obj.repr( -# 1506 "parsing/parser.mly" - ( _1 ) -# 7943 "parsing/parser.ml" - : 'core_type)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 3 : 'core_type2) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'ident) in - Obj.repr( -# 1508 "parsing/parser.mly" - ( mktyp(Ptyp_alias(_1, _4)) ) -# 7951 "parsing/parser.ml" - : 'core_type)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'simple_core_type_or_tuple) in - Obj.repr( -# 1512 "parsing/parser.mly" - ( _1 ) -# 7958 "parsing/parser.ml" - : 'core_type2)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 4 : string) in - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'core_type2) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'core_type2) in - Obj.repr( -# 1514 "parsing/parser.mly" - ( mktyp(Ptyp_arrow("?" ^ _2 , mkoption _4, _6)) ) -# 7967 "parsing/parser.ml" - : 'core_type2)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 3 : string) in - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'core_type2) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'core_type2) in - Obj.repr( -# 1516 "parsing/parser.mly" - ( mktyp(Ptyp_arrow("?" ^ _1 , mkoption _2, _4)) ) -# 7976 "parsing/parser.ml" - : 'core_type2)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 4 : string) in - let _3 = (Parsing.peek_val __caml_parser_env 2 : 'core_type2) in - let _5 = (Parsing.peek_val __caml_parser_env 0 : 'core_type2) in - Obj.repr( -# 1518 "parsing/parser.mly" - ( mktyp(Ptyp_arrow(_1, _3, _5)) ) -# 7985 "parsing/parser.ml" - : 'core_type2)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'core_type2) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'core_type2) in - Obj.repr( -# 1520 "parsing/parser.mly" - ( mktyp(Ptyp_arrow("", _1, _3)) ) -# 7993 "parsing/parser.ml" - : 'core_type2)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'simple_core_type2) in - Obj.repr( -# 1525 "parsing/parser.mly" - ( _1 ) -# 8000 "parsing/parser.ml" - : 'simple_core_type)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'core_type_comma_list) in - Obj.repr( -# 1527 "parsing/parser.mly" - ( match _2 with [sty] -> sty | _ -> raise Parse_error ) -# 8007 "parsing/parser.ml" - : 'simple_core_type)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'ident) in - Obj.repr( -# 1531 "parsing/parser.mly" - ( mktyp(Ptyp_var _2) ) -# 8014 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - Obj.repr( -# 1533 "parsing/parser.mly" - ( mktyp(Ptyp_any) ) -# 8020 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'type_longident) in - Obj.repr( -# 1535 "parsing/parser.mly" - ( mktyp(Ptyp_constr(mkrhs _1 1, [])) ) -# 8027 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'simple_core_type2) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'type_longident) in - Obj.repr( -# 1537 "parsing/parser.mly" - ( mktyp(Ptyp_constr(mkrhs _2 2, [_1])) ) -# 8035 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'core_type_comma_list) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'type_longident) in - Obj.repr( -# 1539 "parsing/parser.mly" - ( mktyp(Ptyp_constr(mkrhs _4 4, List.rev _2)) ) -# 8043 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'meth_list) in - Obj.repr( -# 1541 "parsing/parser.mly" - ( mktyp(Ptyp_object _2) ) -# 8050 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - Obj.repr( -# 1543 "parsing/parser.mly" - ( mktyp(Ptyp_object []) ) -# 8056 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'class_longident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'opt_present) in - Obj.repr( -# 1545 "parsing/parser.mly" - ( mktyp(Ptyp_class(mkrhs _2 2, [], _3)) ) -# 8064 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 3 : 'simple_core_type2) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'class_longident) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'opt_present) in - Obj.repr( -# 1547 "parsing/parser.mly" - ( mktyp(Ptyp_class(mkrhs _3 3, [_1], _4)) ) -# 8073 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 4 : 'core_type_comma_list) in - let _5 = (Parsing.peek_val __caml_parser_env 1 : 'class_longident) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'opt_present) in - Obj.repr( -# 1549 "parsing/parser.mly" - ( mktyp(Ptyp_class(mkrhs _5 5, List.rev _2, _6)) ) -# 8082 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'tag_field) in - Obj.repr( -# 1551 "parsing/parser.mly" - ( mktyp(Ptyp_variant([_2], true, None)) ) -# 8089 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'row_field_list) in - Obj.repr( -# 1557 "parsing/parser.mly" - ( mktyp(Ptyp_variant(List.rev _3, true, None)) ) -# 8096 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 3 : 'row_field) in - let _4 = (Parsing.peek_val __caml_parser_env 1 : 'row_field_list) in - Obj.repr( -# 1559 "parsing/parser.mly" - ( mktyp(Ptyp_variant(_2 :: List.rev _4, true, None)) ) -# 8104 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'opt_bar) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'row_field_list) in - Obj.repr( -# 1561 "parsing/parser.mly" - ( mktyp(Ptyp_variant(List.rev _3, false, None)) ) -# 8112 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - Obj.repr( -# 1563 "parsing/parser.mly" - ( mktyp(Ptyp_variant([], false, None)) ) -# 8118 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'opt_bar) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'row_field_list) in - Obj.repr( -# 1565 "parsing/parser.mly" - ( mktyp(Ptyp_variant(List.rev _3, true, Some [])) ) -# 8126 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 4 : 'opt_bar) in - let _3 = (Parsing.peek_val __caml_parser_env 3 : 'row_field_list) in - let _5 = (Parsing.peek_val __caml_parser_env 1 : 'name_tag_list) in - Obj.repr( -# 1567 "parsing/parser.mly" - ( mktyp(Ptyp_variant(List.rev _3, true, Some (List.rev _5))) ) -# 8135 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'package_type) in - Obj.repr( -# 1569 "parsing/parser.mly" - ( mktyp(Ptyp_package _3) ) -# 8142 "parsing/parser.ml" - : 'simple_core_type2)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'mty_longident) in - Obj.repr( -# 1572 "parsing/parser.mly" - ( (mkrhs _1 1, []) ) -# 8149 "parsing/parser.ml" - : 'package_type)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'mty_longident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'package_type_cstrs) in - Obj.repr( -# 1573 "parsing/parser.mly" - ( (mkrhs _1 1, _3) ) -# 8157 "parsing/parser.ml" - : 'package_type)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 2 : 'label_longident) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 1576 "parsing/parser.mly" - ( (mkrhs _2 2, _4) ) -# 8165 "parsing/parser.ml" - : 'package_type_cstr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'package_type_cstr) in - Obj.repr( -# 1579 "parsing/parser.mly" - ( [_1] ) -# 8172 "parsing/parser.ml" - : 'package_type_cstrs)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'package_type_cstr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'package_type_cstrs) in - Obj.repr( -# 1580 "parsing/parser.mly" - ( _1::_3 ) -# 8180 "parsing/parser.ml" - : 'package_type_cstrs)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'row_field) in - Obj.repr( -# 1583 "parsing/parser.mly" - ( [_1] ) -# 8187 "parsing/parser.ml" - : 'row_field_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'row_field_list) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'row_field) in - Obj.repr( -# 1584 "parsing/parser.mly" - ( _3 :: _1 ) -# 8195 "parsing/parser.ml" - : 'row_field_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'tag_field) in - Obj.repr( -# 1587 "parsing/parser.mly" - ( _1 ) -# 8202 "parsing/parser.ml" - : 'row_field)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'simple_core_type2) in - Obj.repr( -# 1588 "parsing/parser.mly" - ( Rinherit _1 ) -# 8209 "parsing/parser.ml" - : 'row_field)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 3 : 'name_tag) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'opt_ampersand) in - let _4 = (Parsing.peek_val __caml_parser_env 0 : 'amper_type_list) in - Obj.repr( -# 1592 "parsing/parser.mly" - ( Rtag (_1, _3, List.rev _4) ) -# 8218 "parsing/parser.ml" - : 'tag_field)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'name_tag) in - Obj.repr( -# 1594 "parsing/parser.mly" - ( Rtag (_1, true, []) ) -# 8225 "parsing/parser.ml" - : 'tag_field)) -; (fun __caml_parser_env -> - Obj.repr( -# 1597 "parsing/parser.mly" - ( true ) -# 8231 "parsing/parser.ml" - : 'opt_ampersand)) -; (fun __caml_parser_env -> - Obj.repr( -# 1598 "parsing/parser.mly" - ( false ) -# 8237 "parsing/parser.ml" - : 'opt_ampersand)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 1601 "parsing/parser.mly" - ( [_1] ) -# 8244 "parsing/parser.ml" - : 'amper_type_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'amper_type_list) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 1602 "parsing/parser.mly" - ( _3 :: _1 ) -# 8252 "parsing/parser.ml" - : 'amper_type_list)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'name_tag_list) in - Obj.repr( -# 1605 "parsing/parser.mly" - ( List.rev _2 ) -# 8259 "parsing/parser.ml" - : 'opt_present)) -; (fun __caml_parser_env -> - Obj.repr( -# 1606 "parsing/parser.mly" - ( [] ) -# 8265 "parsing/parser.ml" - : 'opt_present)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'name_tag) in - Obj.repr( -# 1609 "parsing/parser.mly" - ( [_1] ) -# 8272 "parsing/parser.ml" - : 'name_tag_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'name_tag_list) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'name_tag) in - Obj.repr( -# 1610 "parsing/parser.mly" - ( _2 :: _1 ) -# 8280 "parsing/parser.ml" - : 'name_tag_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'simple_core_type) in - Obj.repr( -# 1613 "parsing/parser.mly" - ( _1 ) -# 8287 "parsing/parser.ml" - : 'simple_core_type_or_tuple)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'simple_core_type) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'core_type_list) in - Obj.repr( -# 1615 "parsing/parser.mly" - ( mktyp(Ptyp_tuple(_1 :: List.rev _3)) ) -# 8295 "parsing/parser.ml" - : 'simple_core_type_or_tuple)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 1618 "parsing/parser.mly" - ( [_1] ) -# 8302 "parsing/parser.ml" - : 'core_type_comma_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'core_type_comma_list) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'core_type) in - Obj.repr( -# 1619 "parsing/parser.mly" - ( _3 :: _1 ) -# 8310 "parsing/parser.ml" - : 'core_type_comma_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'simple_core_type) in - Obj.repr( -# 1622 "parsing/parser.mly" - ( [_1] ) -# 8317 "parsing/parser.ml" - : 'core_type_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'core_type_list) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'simple_core_type) in - Obj.repr( -# 1623 "parsing/parser.mly" - ( _3 :: _1 ) -# 8325 "parsing/parser.ml" - : 'core_type_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'field) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'meth_list) in - Obj.repr( -# 1626 "parsing/parser.mly" - ( _1 :: _3 ) -# 8333 "parsing/parser.ml" - : 'meth_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'field) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'opt_semi) in - Obj.repr( -# 1627 "parsing/parser.mly" - ( [_1] ) -# 8341 "parsing/parser.ml" - : 'meth_list)) -; (fun __caml_parser_env -> - Obj.repr( -# 1628 "parsing/parser.mly" - ( [mkfield Pfield_var] ) -# 8347 "parsing/parser.ml" - : 'meth_list)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'label) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'poly_type) in - Obj.repr( -# 1631 "parsing/parser.mly" - ( mkfield(Pfield(_1, _3)) ) -# 8355 "parsing/parser.ml" - : 'field)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1634 "parsing/parser.mly" - ( _1 ) -# 8362 "parsing/parser.ml" - : 'label)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : int) in - Obj.repr( -# 1640 "parsing/parser.mly" - ( Const_int _1 ) -# 8369 "parsing/parser.ml" - : 'constant)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : char) in - Obj.repr( -# 1641 "parsing/parser.mly" - ( Const_char _1 ) -# 8376 "parsing/parser.ml" - : 'constant)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1642 "parsing/parser.mly" - ( Const_string _1 ) -# 8383 "parsing/parser.ml" - : 'constant)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1643 "parsing/parser.mly" - ( Const_float _1 ) -# 8390 "parsing/parser.ml" - : 'constant)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : int32) in - Obj.repr( -# 1644 "parsing/parser.mly" - ( Const_int32 _1 ) -# 8397 "parsing/parser.ml" - : 'constant)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : int64) in - Obj.repr( -# 1645 "parsing/parser.mly" - ( Const_int64 _1 ) -# 8404 "parsing/parser.ml" - : 'constant)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : nativeint) in - Obj.repr( -# 1646 "parsing/parser.mly" - ( Const_nativeint _1 ) -# 8411 "parsing/parser.ml" - : 'constant)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'constant) in - Obj.repr( -# 1649 "parsing/parser.mly" - ( _1 ) -# 8418 "parsing/parser.ml" - : 'signed_constant)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : int) in - Obj.repr( -# 1650 "parsing/parser.mly" - ( Const_int(- _2) ) -# 8425 "parsing/parser.ml" - : 'signed_constant)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1651 "parsing/parser.mly" - ( Const_float("-" ^ _2) ) -# 8432 "parsing/parser.ml" - : 'signed_constant)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : int32) in - Obj.repr( -# 1652 "parsing/parser.mly" - ( Const_int32(Int32.neg _2) ) -# 8439 "parsing/parser.ml" - : 'signed_constant)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : int64) in - Obj.repr( -# 1653 "parsing/parser.mly" - ( Const_int64(Int64.neg _2) ) -# 8446 "parsing/parser.ml" - : 'signed_constant)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : nativeint) in - Obj.repr( -# 1654 "parsing/parser.mly" - ( Const_nativeint(Nativeint.neg _2) ) -# 8453 "parsing/parser.ml" - : 'signed_constant)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : int) in - Obj.repr( -# 1655 "parsing/parser.mly" - ( Const_int _2 ) -# 8460 "parsing/parser.ml" - : 'signed_constant)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1656 "parsing/parser.mly" - ( Const_float _2 ) -# 8467 "parsing/parser.ml" - : 'signed_constant)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : int32) in - Obj.repr( -# 1657 "parsing/parser.mly" - ( Const_int32 _2 ) -# 8474 "parsing/parser.ml" - : 'signed_constant)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : int64) in - Obj.repr( -# 1658 "parsing/parser.mly" - ( Const_int64 _2 ) -# 8481 "parsing/parser.ml" - : 'signed_constant)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : nativeint) in - Obj.repr( -# 1659 "parsing/parser.mly" - ( Const_nativeint _2 ) -# 8488 "parsing/parser.ml" - : 'signed_constant)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1665 "parsing/parser.mly" - ( _1 ) -# 8495 "parsing/parser.ml" - : 'ident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1666 "parsing/parser.mly" - ( _1 ) -# 8502 "parsing/parser.ml" - : 'ident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1669 "parsing/parser.mly" - ( _1 ) -# 8509 "parsing/parser.ml" - : 'val_ident)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'operator) in - Obj.repr( -# 1670 "parsing/parser.mly" - ( _2 ) -# 8516 "parsing/parser.ml" - : 'val_ident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1673 "parsing/parser.mly" - ( _1 ) -# 8523 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1674 "parsing/parser.mly" - ( _1 ) -# 8530 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1675 "parsing/parser.mly" - ( _1 ) -# 8537 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1676 "parsing/parser.mly" - ( _1 ) -# 8544 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1677 "parsing/parser.mly" - ( _1 ) -# 8551 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1678 "parsing/parser.mly" - ( _1 ) -# 8558 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - Obj.repr( -# 1679 "parsing/parser.mly" - ( "!" ) -# 8564 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - Obj.repr( -# 1680 "parsing/parser.mly" - ( "+" ) -# 8570 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - Obj.repr( -# 1681 "parsing/parser.mly" - ( "+." ) -# 8576 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - Obj.repr( -# 1682 "parsing/parser.mly" - ( "-" ) -# 8582 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - Obj.repr( -# 1683 "parsing/parser.mly" - ( "-." ) -# 8588 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - Obj.repr( -# 1684 "parsing/parser.mly" - ( "*" ) -# 8594 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - Obj.repr( -# 1685 "parsing/parser.mly" - ( "=" ) -# 8600 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - Obj.repr( -# 1686 "parsing/parser.mly" - ( "<" ) -# 8606 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - Obj.repr( -# 1687 "parsing/parser.mly" - ( ">" ) -# 8612 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - Obj.repr( -# 1688 "parsing/parser.mly" - ( "or" ) -# 8618 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - Obj.repr( -# 1689 "parsing/parser.mly" - ( "||" ) -# 8624 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - Obj.repr( -# 1690 "parsing/parser.mly" - ( "&" ) -# 8630 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - Obj.repr( -# 1691 "parsing/parser.mly" - ( "&&" ) -# 8636 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - Obj.repr( -# 1692 "parsing/parser.mly" - ( ":=" ) -# 8642 "parsing/parser.ml" - : 'operator)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1695 "parsing/parser.mly" - ( _1 ) -# 8649 "parsing/parser.ml" - : 'constr_ident)) -; (fun __caml_parser_env -> - Obj.repr( -# 1697 "parsing/parser.mly" - ( "()" ) -# 8655 "parsing/parser.ml" - : 'constr_ident)) -; (fun __caml_parser_env -> - Obj.repr( -# 1698 "parsing/parser.mly" - ( "::" ) -# 8661 "parsing/parser.ml" - : 'constr_ident)) -; (fun __caml_parser_env -> - Obj.repr( -# 1700 "parsing/parser.mly" - ( "false" ) -# 8667 "parsing/parser.ml" - : 'constr_ident)) -; (fun __caml_parser_env -> - Obj.repr( -# 1701 "parsing/parser.mly" - ( "true" ) -# 8673 "parsing/parser.ml" - : 'constr_ident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'val_ident) in - Obj.repr( -# 1705 "parsing/parser.mly" - ( Lident _1 ) -# 8680 "parsing/parser.ml" - : 'val_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'mod_longident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'val_ident) in - Obj.repr( -# 1706 "parsing/parser.mly" - ( Ldot(_1, _3) ) -# 8688 "parsing/parser.ml" - : 'val_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'mod_longident) in - Obj.repr( -# 1709 "parsing/parser.mly" - ( _1 ) -# 8695 "parsing/parser.ml" - : 'constr_longident)) -; (fun __caml_parser_env -> - Obj.repr( -# 1710 "parsing/parser.mly" - ( Lident "[]" ) -# 8701 "parsing/parser.ml" - : 'constr_longident)) -; (fun __caml_parser_env -> - Obj.repr( -# 1711 "parsing/parser.mly" - ( Lident "()" ) -# 8707 "parsing/parser.ml" - : 'constr_longident)) -; (fun __caml_parser_env -> - Obj.repr( -# 1712 "parsing/parser.mly" - ( Lident "false" ) -# 8713 "parsing/parser.ml" - : 'constr_longident)) -; (fun __caml_parser_env -> - Obj.repr( -# 1713 "parsing/parser.mly" - ( Lident "true" ) -# 8719 "parsing/parser.ml" - : 'constr_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1716 "parsing/parser.mly" - ( Lident _1 ) -# 8726 "parsing/parser.ml" - : 'label_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'mod_longident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1717 "parsing/parser.mly" - ( Ldot(_1, _3) ) -# 8734 "parsing/parser.ml" - : 'label_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1720 "parsing/parser.mly" - ( Lident _1 ) -# 8741 "parsing/parser.ml" - : 'type_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'mod_ext_longident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1721 "parsing/parser.mly" - ( Ldot(_1, _3) ) -# 8749 "parsing/parser.ml" - : 'type_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1724 "parsing/parser.mly" - ( Lident _1 ) -# 8756 "parsing/parser.ml" - : 'mod_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'mod_longident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1725 "parsing/parser.mly" - ( Ldot(_1, _3) ) -# 8764 "parsing/parser.ml" - : 'mod_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1728 "parsing/parser.mly" - ( Lident _1 ) -# 8771 "parsing/parser.ml" - : 'mod_ext_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'mod_ext_longident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1729 "parsing/parser.mly" - ( Ldot(_1, _3) ) -# 8779 "parsing/parser.ml" - : 'mod_ext_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 3 : 'mod_ext_longident) in - let _3 = (Parsing.peek_val __caml_parser_env 1 : 'mod_ext_longident) in - Obj.repr( -# 1730 "parsing/parser.mly" - ( lapply _1 _3 ) -# 8787 "parsing/parser.ml" - : 'mod_ext_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'ident) in - Obj.repr( -# 1733 "parsing/parser.mly" - ( Lident _1 ) -# 8794 "parsing/parser.ml" - : 'mty_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'mod_ext_longident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'ident) in - Obj.repr( -# 1734 "parsing/parser.mly" - ( Ldot(_1, _3) ) -# 8802 "parsing/parser.ml" - : 'mty_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1737 "parsing/parser.mly" - ( Lident _1 ) -# 8809 "parsing/parser.ml" - : 'clty_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'mod_ext_longident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1738 "parsing/parser.mly" - ( Ldot(_1, _3) ) -# 8817 "parsing/parser.ml" - : 'clty_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1741 "parsing/parser.mly" - ( Lident _1 ) -# 8824 "parsing/parser.ml" - : 'class_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'mod_longident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1742 "parsing/parser.mly" - ( Ldot(_1, _3) ) -# 8832 "parsing/parser.ml" - : 'class_longident)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'val_ident) in - Obj.repr( -# 1745 "parsing/parser.mly" - ( Lident _1 ) -# 8839 "parsing/parser.ml" - : Longident.t)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'mod_ext_longident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'val_ident) in - Obj.repr( -# 1746 "parsing/parser.mly" - ( Ldot (_1, _3) ) -# 8847 "parsing/parser.ml" - : Longident.t)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'mod_ext_longident) in - Obj.repr( -# 1747 "parsing/parser.mly" - ( _1 ) -# 8854 "parsing/parser.ml" - : Longident.t)) -; (fun __caml_parser_env -> - Obj.repr( -# 1748 "parsing/parser.mly" - ( Lident "[]" ) -# 8860 "parsing/parser.ml" - : Longident.t)) -; (fun __caml_parser_env -> - Obj.repr( -# 1749 "parsing/parser.mly" - ( Lident "()" ) -# 8866 "parsing/parser.ml" - : Longident.t)) -; (fun __caml_parser_env -> - Obj.repr( -# 1750 "parsing/parser.mly" - ( Lident "false" ) -# 8872 "parsing/parser.ml" - : Longident.t)) -; (fun __caml_parser_env -> - Obj.repr( -# 1751 "parsing/parser.mly" - ( Lident "true" ) -# 8878 "parsing/parser.ml" - : Longident.t)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'ident) in - Obj.repr( -# 1756 "parsing/parser.mly" - ( Ptop_dir(_2, Pdir_none) ) -# 8885 "parsing/parser.ml" - : 'toplevel_directive)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'ident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 1757 "parsing/parser.mly" - ( Ptop_dir(_2, Pdir_string _3) ) -# 8893 "parsing/parser.ml" - : 'toplevel_directive)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'ident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : int) in - Obj.repr( -# 1758 "parsing/parser.mly" - ( Ptop_dir(_2, Pdir_int _3) ) -# 8901 "parsing/parser.ml" - : 'toplevel_directive)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'ident) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'val_longident) in - Obj.repr( -# 1759 "parsing/parser.mly" - ( Ptop_dir(_2, Pdir_ident _3) ) -# 8909 "parsing/parser.ml" - : 'toplevel_directive)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'ident) in - Obj.repr( -# 1760 "parsing/parser.mly" - ( Ptop_dir(_2, Pdir_bool false) ) -# 8916 "parsing/parser.ml" - : 'toplevel_directive)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'ident) in - Obj.repr( -# 1761 "parsing/parser.mly" - ( Ptop_dir(_2, Pdir_bool true) ) -# 8923 "parsing/parser.ml" - : 'toplevel_directive)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'ident) in - Obj.repr( -# 1767 "parsing/parser.mly" - ( _2 ) -# 8930 "parsing/parser.ml" - : 'name_tag)) -; (fun __caml_parser_env -> - Obj.repr( -# 1770 "parsing/parser.mly" - ( Nonrecursive ) -# 8936 "parsing/parser.ml" - : 'rec_flag)) -; (fun __caml_parser_env -> - Obj.repr( -# 1771 "parsing/parser.mly" - ( Recursive ) -# 8942 "parsing/parser.ml" - : 'rec_flag)) -; (fun __caml_parser_env -> - Obj.repr( -# 1774 "parsing/parser.mly" - ( Upto ) -# 8948 "parsing/parser.ml" - : 'direction_flag)) -; (fun __caml_parser_env -> - Obj.repr( -# 1775 "parsing/parser.mly" - ( Downto ) -# 8954 "parsing/parser.ml" - : 'direction_flag)) -; (fun __caml_parser_env -> - Obj.repr( -# 1778 "parsing/parser.mly" - ( Public ) -# 8960 "parsing/parser.ml" - : 'private_flag)) -; (fun __caml_parser_env -> - Obj.repr( -# 1779 "parsing/parser.mly" - ( Private ) -# 8966 "parsing/parser.ml" - : 'private_flag)) -; (fun __caml_parser_env -> - Obj.repr( -# 1782 "parsing/parser.mly" - ( Immutable ) -# 8972 "parsing/parser.ml" - : 'mutable_flag)) -; (fun __caml_parser_env -> - Obj.repr( -# 1783 "parsing/parser.mly" - ( Mutable ) -# 8978 "parsing/parser.ml" - : 'mutable_flag)) -; (fun __caml_parser_env -> - Obj.repr( -# 1786 "parsing/parser.mly" - ( Concrete ) -# 8984 "parsing/parser.ml" - : 'virtual_flag)) -; (fun __caml_parser_env -> - Obj.repr( -# 1787 "parsing/parser.mly" - ( Virtual ) -# 8990 "parsing/parser.ml" - : 'virtual_flag)) -; (fun __caml_parser_env -> - Obj.repr( -# 1790 "parsing/parser.mly" - ( Fresh ) -# 8996 "parsing/parser.ml" - : 'override_flag)) -; (fun __caml_parser_env -> - Obj.repr( -# 1791 "parsing/parser.mly" - ( Override ) -# 9002 "parsing/parser.ml" - : 'override_flag)) -; (fun __caml_parser_env -> - Obj.repr( -# 1794 "parsing/parser.mly" - ( () ) -# 9008 "parsing/parser.ml" - : 'opt_bar)) -; (fun __caml_parser_env -> - Obj.repr( -# 1795 "parsing/parser.mly" - ( () ) -# 9014 "parsing/parser.ml" - : 'opt_bar)) -; (fun __caml_parser_env -> - Obj.repr( -# 1798 "parsing/parser.mly" - ( () ) -# 9020 "parsing/parser.ml" - : 'opt_semi)) -; (fun __caml_parser_env -> - Obj.repr( -# 1799 "parsing/parser.mly" - ( () ) -# 9026 "parsing/parser.ml" - : 'opt_semi)) -; (fun __caml_parser_env -> - Obj.repr( -# 1802 "parsing/parser.mly" - ( "-" ) -# 9032 "parsing/parser.ml" - : 'subtractive)) -; (fun __caml_parser_env -> - Obj.repr( -# 1803 "parsing/parser.mly" - ( "-." ) -# 9038 "parsing/parser.ml" - : 'subtractive)) -; (fun __caml_parser_env -> - Obj.repr( -# 1806 "parsing/parser.mly" - ( "+" ) -# 9044 "parsing/parser.ml" - : 'additive)) -; (fun __caml_parser_env -> - Obj.repr( -# 1807 "parsing/parser.mly" - ( "+." ) -# 9050 "parsing/parser.ml" - : 'additive)) -(* Entry implementation *) -; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0))) -(* Entry interface *) -; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0))) -(* Entry toplevel_phrase *) -; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0))) -(* Entry use_file *) -; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0))) -(* Entry any_longident *) -; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0))) -|] -let yytables = - { Parsing.actions=yyact; - Parsing.transl_const=yytransl_const; - Parsing.transl_block=yytransl_block; - Parsing.lhs=yylhs; - Parsing.len=yylen; - Parsing.defred=yydefred; - Parsing.dgoto=yydgoto; - Parsing.sindex=yysindex; - Parsing.rindex=yyrindex; - Parsing.gindex=yygindex; - Parsing.tablesize=yytablesize; - Parsing.table=yytable; - Parsing.check=yycheck; - Parsing.error_function=parse_error; - Parsing.names_const=yynames_const; - Parsing.names_block=yynames_block } -let implementation (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) = - (Parsing.yyparse yytables 1 lexfun lexbuf : Parsetree.structure) -let interface (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) = - (Parsing.yyparse yytables 2 lexfun lexbuf : Parsetree.signature) -let toplevel_phrase (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) = - (Parsing.yyparse yytables 3 lexfun lexbuf : Parsetree.toplevel_phrase) -let use_file (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) = - (Parsing.yyparse yytables 4 lexfun lexbuf : Parsetree.toplevel_phrase list) -let any_longident (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) = - (Parsing.yyparse yytables 5 lexfun lexbuf : Longident.t) -;; diff --git a/parsing/parser.mli b/parsing/parser.mli deleted file mode 100644 index 268d2232ab..0000000000 --- a/parsing/parser.mli +++ /dev/null @@ -1,123 +0,0 @@ -type token = - | AMPERAMPER - | AMPERSAND - | AND - | AS - | ASSERT - | BACKQUOTE - | BANG - | BAR - | BARBAR - | BARRBRACKET - | BEGIN - | CHAR of (char) - | CLASS - | COLON - | COLONCOLON - | COLONEQUAL - | COLONGREATER - | COMMA - | CONSTRAINT - | DO - | DONE - | DOT - | DOTDOT - | DOWNTO - | ELSE - | END - | EOF - | EQUAL - | EXCEPTION - | EXTERNAL - | FALSE - | FLOAT of (string) - | FOR - | FUN - | FUNCTION - | FUNCTOR - | GREATER - | GREATERRBRACE - | GREATERRBRACKET - | IF - | IN - | INCLUDE - | INFIXOP0 of (string) - | INFIXOP1 of (string) - | INFIXOP2 of (string) - | INFIXOP3 of (string) - | INFIXOP4 of (string) - | INHERIT - | INITIALIZER - | INT of (int) - | INT32 of (int32) - | INT64 of (int64) - | LABEL of (string) - | LAZY - | LBRACE - | LBRACELESS - | LBRACKET - | LBRACKETBAR - | LBRACKETLESS - | LBRACKETGREATER - | LESS - | LESSMINUS - | LET - | LIDENT of (string) - | LPAREN - | MATCH - | METHOD - | MINUS - | MINUSDOT - | MINUSGREATER - | MODULE - | MUTABLE - | NATIVEINT of (nativeint) - | NEW - | OBJECT - | OF - | OPEN - | OPTLABEL of (string) - | OR - | PLUS - | PLUSDOT - | PREFIXOP of (string) - | PRIVATE - | QUESTION - | QUESTIONQUESTION - | QUOTE - | RBRACE - | RBRACKET - | REC - | RPAREN - | SEMI - | SEMISEMI - | SHARP - | SIG - | STAR - | STRING of (string) - | STRUCT - | THEN - | TILDE - | TO - | TRUE - | TRY - | TYPE - | UIDENT of (string) - | UNDERSCORE - | VAL - | VIRTUAL - | WHEN - | WHILE - | WITH - | COMMENT of (string * Location.t) - -val implementation : - (Lexing.lexbuf -> token) -> Lexing.lexbuf -> Parsetree.structure -val interface : - (Lexing.lexbuf -> token) -> Lexing.lexbuf -> Parsetree.signature -val toplevel_phrase : - (Lexing.lexbuf -> token) -> Lexing.lexbuf -> Parsetree.toplevel_phrase -val use_file : - (Lexing.lexbuf -> token) -> Lexing.lexbuf -> Parsetree.toplevel_phrase list -val any_longident : - (Lexing.lexbuf -> token) -> Lexing.lexbuf -> Longident.t diff --git a/parsing/parser.mly b/parsing/parser.mly deleted file mode 100644 index 5cfee41a30..0000000000 --- a/parsing/parser.mly +++ /dev/null @@ -1,1809 +0,0 @@ -/***********************************************************************/ -/* */ -/* OCaml */ -/* */ -/* Xavier Leroy, projet Cristal, INRIA Rocquencourt */ -/* */ -/* Copyright 1996 Institut National de Recherche en Informatique et */ -/* en Automatique. All rights reserved. This file is distributed */ -/* under the terms of the Q Public License version 1.0. */ -/* */ -/***********************************************************************/ - -/* $Id: parser.mly 12800 2012-07-30 18:59:07Z doligez $ */ - -/* The parser definition */ - -%{ -open Location -open Asttypes -open Longident -open Parsetree - -let mktyp d = - { ptyp_desc = d; ptyp_loc = symbol_rloc() } -let mkpat d = - { ppat_desc = d; ppat_loc = symbol_rloc() } -let mkexp d = - { pexp_desc = d; pexp_loc = symbol_rloc() } -let mkmty d = - { pmty_desc = d; pmty_loc = symbol_rloc() } -let mksig d = - { psig_desc = d; psig_loc = symbol_rloc() } -let mkmod d = - { pmod_desc = d; pmod_loc = symbol_rloc() } -let mkstr d = - { pstr_desc = d; pstr_loc = symbol_rloc() } -let mkfield d = - { pfield_desc = d; pfield_loc = symbol_rloc() } -let mkclass d = - { pcl_desc = d; pcl_loc = symbol_rloc() } -let mkcty d = - { pcty_desc = d; pcty_loc = symbol_rloc() } -let mkctf d = - { pctf_desc = d; pctf_loc = symbol_rloc () } -let mkcf d = - { pcf_desc = d; pcf_loc = symbol_rloc () } -let mkrhs rhs pos = mkloc rhs (rhs_loc pos) -let mkoption d = - { ptyp_desc = Ptyp_constr(mknoloc (Ldot (Lident "*predef*", "option")), [d]); - ptyp_loc = d.ptyp_loc} - -let reloc_pat x = { x with ppat_loc = symbol_rloc () };; -let reloc_exp x = { x with pexp_loc = symbol_rloc () };; - -let mkoperator name pos = - let loc = rhs_loc pos in - { pexp_desc = Pexp_ident(mkloc (Lident name) loc); pexp_loc = loc } - -let mkpatvar name pos = - { ppat_desc = Ppat_var (mkrhs name pos); ppat_loc = rhs_loc pos } - -(* - Ghost expressions and patterns: - expressions and patterns that do not appear explicitly in the - source file they have the loc_ghost flag set to true. - Then the profiler will not try to instrument them and the - -stypes option will not try to display their type. - - Every grammar rule that generates an element with a location must - make at most one non-ghost element, the topmost one. - - How to tell whether your location must be ghost: - A location corresponds to a range of characters in the source file. - If the location contains a piece of code that is syntactically - valid (according to the documentation), and corresponds to the - AST node, then the location must be real; in all other cases, - it must be ghost. -*) -let ghexp d = { pexp_desc = d; pexp_loc = symbol_gloc () };; -let ghpat d = { ppat_desc = d; ppat_loc = symbol_gloc () };; -let ghtyp d = { ptyp_desc = d; ptyp_loc = symbol_gloc () };; - -let mkassert e = - match e with - | {pexp_desc = Pexp_construct ({ txt = Lident "false" }, None , false); - pexp_loc = _ } -> - mkexp (Pexp_assertfalse) - | _ -> mkexp (Pexp_assert (e)) -;; - -let mkinfix arg1 name arg2 = - mkexp(Pexp_apply(mkoperator name 2, ["", arg1; "", arg2])) - -let neg_float_string f = - if String.length f > 0 && f.[0] = '-' - then String.sub f 1 (String.length f - 1) - else "-" ^ f - -let mkuminus name arg = - match name, arg.pexp_desc with - | "-", Pexp_constant(Const_int n) -> - mkexp(Pexp_constant(Const_int(-n))) - | "-", Pexp_constant(Const_int32 n) -> - mkexp(Pexp_constant(Const_int32(Int32.neg n))) - | "-", Pexp_constant(Const_int64 n) -> - mkexp(Pexp_constant(Const_int64(Int64.neg n))) - | "-", Pexp_constant(Const_nativeint n) -> - mkexp(Pexp_constant(Const_nativeint(Nativeint.neg n))) - | ("-" | "-."), Pexp_constant(Const_float f) -> - mkexp(Pexp_constant(Const_float(neg_float_string f))) - | _ -> - mkexp(Pexp_apply(mkoperator ("~" ^ name) 1, ["", arg])) - -let mkuplus name arg = - let desc = arg.pexp_desc in - match name, desc with - | "+", Pexp_constant(Const_int _) - | "+", Pexp_constant(Const_int32 _) - | "+", Pexp_constant(Const_int64 _) - | "+", Pexp_constant(Const_nativeint _) - | ("+" | "+."), Pexp_constant(Const_float _) -> mkexp desc - | _ -> - mkexp(Pexp_apply(mkoperator ("~" ^ name) 1, ["", arg])) - -let mkexp_cons args loc = - {pexp_desc = Pexp_construct(mkloc (Lident "::") Location.none, - Some args, false); pexp_loc = loc} - -let mkpat_cons args loc = - {ppat_desc = Ppat_construct(mkloc (Lident "::") Location.none, - Some args, false); ppat_loc = loc} - -let rec mktailexp = function - [] -> - ghexp(Pexp_construct(mkloc (Lident "[]") Location.none, None, false)) - | e1 :: el -> - let exp_el = mktailexp el in - let l = {loc_start = e1.pexp_loc.loc_start; - loc_end = exp_el.pexp_loc.loc_end; - loc_ghost = true} - in - let arg = {pexp_desc = Pexp_tuple [e1; exp_el]; pexp_loc = l} in - mkexp_cons arg l - -let rec mktailpat = function - [] -> - ghpat(Ppat_construct(mkloc (Lident "[]") Location.none, None, false)) - | p1 :: pl -> - let pat_pl = mktailpat pl in - let l = {loc_start = p1.ppat_loc.loc_start; - loc_end = pat_pl.ppat_loc.loc_end; - loc_ghost = true} - in - let arg = {ppat_desc = Ppat_tuple [p1; pat_pl]; ppat_loc = l} in - mkpat_cons arg l - -let ghstrexp e = - { pstr_desc = Pstr_eval e; pstr_loc = {e.pexp_loc with loc_ghost = true} } - -let array_function str name = - mknoloc (Ldot(Lident str, (if !Clflags.fast then "unsafe_" ^ name else name))) - -let rec deep_mkrangepat c1 c2 = - if c1 = c2 then ghpat(Ppat_constant(Const_char c1)) else - ghpat(Ppat_or(ghpat(Ppat_constant(Const_char c1)), - deep_mkrangepat (Char.chr(Char.code c1 + 1)) c2)) - -let rec mkrangepat c1 c2 = - if c1 > c2 then mkrangepat c2 c1 else - if c1 = c2 then mkpat(Ppat_constant(Const_char c1)) else - reloc_pat (deep_mkrangepat c1 c2) - -let syntax_error () = - raise Syntaxerr.Escape_error - -let unclosed opening_name opening_num closing_name closing_num = - raise(Syntaxerr.Error(Syntaxerr.Unclosed(rhs_loc opening_num, opening_name, - rhs_loc closing_num, closing_name))) - -let bigarray_function str name = - mkloc (Ldot(Ldot(Lident "Bigarray", str), name)) Location.none - -let bigarray_untuplify = function - { pexp_desc = Pexp_tuple explist; pexp_loc = _ } -> explist - | exp -> [exp] - -let bigarray_get arr arg = - let get = if !Clflags.fast then "unsafe_get" else "get" in - match bigarray_untuplify arg with - [c1] -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Array1" get)), - ["", arr; "", c1])) - | [c1;c2] -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Array2" get)), - ["", arr; "", c1; "", c2])) - | [c1;c2;c3] -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Array3" get)), - ["", arr; "", c1; "", c2; "", c3])) - | coords -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Genarray" "get")), - ["", arr; "", ghexp(Pexp_array coords)])) - -let bigarray_set arr arg newval = - let set = if !Clflags.fast then "unsafe_set" else "set" in - match bigarray_untuplify arg with - [c1] -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Array1" set)), - ["", arr; "", c1; "", newval])) - | [c1;c2] -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Array2" set)), - ["", arr; "", c1; "", c2; "", newval])) - | [c1;c2;c3] -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Array3" set)), - ["", arr; "", c1; "", c2; "", c3; "", newval])) - | coords -> - mkexp(Pexp_apply(ghexp(Pexp_ident(bigarray_function "Genarray" "set")), - ["", arr; - "", ghexp(Pexp_array coords); - "", newval])) - -let lapply p1 p2 = - if !Clflags.applicative_functors - then Lapply(p1, p2) - else raise (Syntaxerr.Error(Syntaxerr.Applicative_path (symbol_rloc()))) - -let exp_of_label lbl pos = - mkexp (Pexp_ident(mkrhs (Lident(Longident.last lbl)) pos)) - -let pat_of_label lbl pos = - mkpat (Ppat_var (mkrhs (Longident.last lbl) pos)) - -let check_variable vl loc v = - if List.mem v vl then - raise Syntaxerr.(Error(Variable_in_scope(loc,v))) - -let varify_constructors var_names t = - let rec loop t = - let desc = - match t.ptyp_desc with - | Ptyp_any -> Ptyp_any - | Ptyp_var x -> - check_variable var_names t.ptyp_loc x; - Ptyp_var x - | Ptyp_arrow (label,core_type,core_type') -> - Ptyp_arrow(label, loop core_type, loop core_type') - | Ptyp_tuple lst -> Ptyp_tuple (List.map loop lst) - | Ptyp_constr( { txt = Lident s }, []) when List.mem s var_names -> - Ptyp_var s - | Ptyp_constr(longident, lst) -> - Ptyp_constr(longident, List.map loop lst) - | Ptyp_object lst -> - Ptyp_object (List.map loop_core_field lst) - | Ptyp_class (longident, lst, lbl_list) -> - Ptyp_class (longident, List.map loop lst, lbl_list) - | Ptyp_alias(core_type, string) -> - check_variable var_names t.ptyp_loc string; - Ptyp_alias(loop core_type, string) - | Ptyp_variant(row_field_list, flag, lbl_lst_option) -> - Ptyp_variant(List.map loop_row_field row_field_list, - flag, lbl_lst_option) - | Ptyp_poly(string_lst, core_type) -> - List.iter (check_variable var_names t.ptyp_loc) string_lst; - Ptyp_poly(string_lst, loop core_type) - | Ptyp_package(longident,lst) -> - Ptyp_package(longident,List.map (fun (n,typ) -> (n,loop typ) ) lst) - in - {t with ptyp_desc = desc} - and loop_core_field t = - let desc = - match t.pfield_desc with - | Pfield(n,typ) -> - Pfield(n,loop typ) - | Pfield_var -> - Pfield_var - in - { t with pfield_desc=desc} - and loop_row_field = - function - | Rtag(label,flag,lst) -> - Rtag(label,flag,List.map loop lst) - | Rinherit t -> - Rinherit (loop t) - in - loop t - -let wrap_type_annotation newtypes core_type body = - let exp = mkexp(Pexp_constraint(body,Some core_type,None)) in - let exp = - List.fold_right (fun newtype exp -> mkexp (Pexp_newtype (newtype, exp))) - newtypes exp - in - (exp, ghtyp(Ptyp_poly(newtypes,varify_constructors newtypes core_type))) - -%} - -/* Tokens */ - -%token AMPERAMPER -%token AMPERSAND -%token AND -%token AS -%token ASSERT -%token BACKQUOTE -%token BANG -%token BAR -%token BARBAR -%token BARRBRACKET -%token BEGIN -%token CHAR -%token CLASS -%token COLON -%token COLONCOLON -%token COLONEQUAL -%token COLONGREATER -%token COMMA -%token CONSTRAINT -%token DO -%token DONE -%token DOT -%token DOTDOT -%token DOWNTO -%token ELSE -%token END -%token EOF -%token EQUAL -%token EXCEPTION -%token EXTERNAL -%token FALSE -%token FLOAT -%token FOR -%token FUN -%token FUNCTION -%token FUNCTOR -%token GREATER -%token GREATERRBRACE -%token GREATERRBRACKET -%token IF -%token IN -%token INCLUDE -%token INFIXOP0 -%token INFIXOP1 -%token INFIXOP2 -%token INFIXOP3 -%token INFIXOP4 -%token INHERIT -%token INITIALIZER -%token INT -%token INT32 -%token INT64 -%token LABEL -%token LAZY -%token LBRACE -%token LBRACELESS -%token LBRACKET -%token LBRACKETBAR -%token LBRACKETLESS -%token LBRACKETGREATER -%token LESS -%token LESSMINUS -%token LET -%token LIDENT -%token LPAREN -%token MATCH -%token METHOD -%token MINUS -%token MINUSDOT -%token MINUSGREATER -%token MODULE -%token MUTABLE -%token NATIVEINT -%token NEW -%token OBJECT -%token OF -%token OPEN -%token OPTLABEL -%token OR -/* %token PARSER */ -%token PLUS -%token PLUSDOT -%token PREFIXOP -%token PRIVATE -%token QUESTION -%token QUESTIONQUESTION -%token QUOTE -%token RBRACE -%token RBRACKET -%token REC -%token RPAREN -%token SEMI -%token SEMISEMI -%token SHARP -%token SIG -%token STAR -%token STRING -%token STRUCT -%token THEN -%token TILDE -%token TO -%token TRUE -%token TRY -%token TYPE -%token UIDENT -%token UNDERSCORE -%token VAL -%token VIRTUAL -%token WHEN -%token WHILE -%token WITH -%token COMMENT - -/* Precedences and associativities. - -Tokens and rules have precedences. A reduce/reduce conflict is resolved -in favor of the first rule (in source file order). A shift/reduce conflict -is resolved by comparing the precedence and associativity of the token to -be shifted with those of the rule to be reduced. - -By default, a rule has the precedence of its rightmost terminal (if any). - -When there is a shift/reduce conflict between a rule and a token that -have the same precedence, it is resolved using the associativity: -if the token is left-associative, the parser will reduce; if -right-associative, the parser will shift; if non-associative, -the parser will declare a syntax error. - -We will only use associativities with operators of the kind x * x -> x -for example, in the rules of the form expr: expr BINOP expr -in all other cases, we define two precedences if needed to resolve -conflicts. - -The precedences must be listed from low to high. -*/ - -%nonassoc IN -%nonassoc below_SEMI -%nonassoc SEMI /* below EQUAL ({lbl=...; lbl=...}) */ -%nonassoc LET /* above SEMI ( ...; let ... in ...) */ -%nonassoc below_WITH -%nonassoc FUNCTION WITH /* below BAR (match ... with ...) */ -%nonassoc AND /* above WITH (module rec A: SIG with ... and ...) */ -%nonassoc THEN /* below ELSE (if ... then ...) */ -%nonassoc ELSE /* (if ... then ... else ...) */ -%nonassoc LESSMINUS /* below COLONEQUAL (lbl <- x := e) */ -%right COLONEQUAL /* expr (e := e := e) */ -%nonassoc AS -%left BAR /* pattern (p|p|p) */ -%nonassoc below_COMMA -%left COMMA /* expr/expr_comma_list (e,e,e) */ -%right MINUSGREATER /* core_type2 (t -> t -> t) */ -%right OR BARBAR /* expr (e || e || e) */ -%right AMPERSAND AMPERAMPER /* expr (e && e && e) */ -%nonassoc below_EQUAL -%left INFIXOP0 EQUAL LESS GREATER /* expr (e OP e OP e) */ -%right INFIXOP1 /* expr (e OP e OP e) */ -%right COLONCOLON /* expr (e :: e :: e) */ -%left INFIXOP2 PLUS PLUSDOT MINUS MINUSDOT /* expr (e OP e OP e) */ -%left INFIXOP3 STAR /* expr (e OP e OP e) */ -%right INFIXOP4 /* expr (e OP e OP e) */ -%nonassoc prec_unary_minus prec_unary_plus /* unary - */ -%nonassoc prec_constant_constructor /* cf. simple_expr (C versus C x) */ -%nonassoc prec_constr_appl /* above AS BAR COLONCOLON COMMA */ -%nonassoc below_SHARP -%nonassoc SHARP /* simple_expr/toplevel_directive */ -%nonassoc below_DOT -%nonassoc DOT -/* Finally, the first tokens of simple_expr are above everything else. */ -%nonassoc BACKQUOTE BANG BEGIN CHAR FALSE FLOAT INT INT32 INT64 - LBRACE LBRACELESS LBRACKET LBRACKETBAR LIDENT LPAREN - NEW NATIVEINT PREFIXOP STRING TRUE UIDENT - - -/* Entry points */ - -%start implementation /* for implementation files */ -%type implementation -%start interface /* for interface files */ -%type interface -%start toplevel_phrase /* for interactive use */ -%type toplevel_phrase -%start use_file /* for the #use directive */ -%type use_file -%start any_longident -%type any_longident -%% - -/* Entry points */ - -implementation: - structure EOF { $1 } -; -interface: - signature EOF { List.rev $1 } -; -toplevel_phrase: - top_structure SEMISEMI { Ptop_def $1 } - | seq_expr SEMISEMI { Ptop_def[ghstrexp $1] } - | toplevel_directive SEMISEMI { $1 } - | EOF { raise End_of_file } -; -top_structure: - structure_item { [$1] } - | structure_item top_structure { $1 :: $2 } -; -use_file: - use_file_tail { $1 } - | seq_expr use_file_tail { Ptop_def[ghstrexp $1] :: $2 } -; -use_file_tail: - EOF { [] } - | SEMISEMI EOF { [] } - | SEMISEMI seq_expr use_file_tail { Ptop_def[ghstrexp $2] :: $3 } - | SEMISEMI structure_item use_file_tail { Ptop_def[$2] :: $3 } - | SEMISEMI toplevel_directive use_file_tail { $2 :: $3 } - | structure_item use_file_tail { Ptop_def[$1] :: $2 } - | toplevel_directive use_file_tail { $1 :: $2 } -; - -/* Module expressions */ - -module_expr: - mod_longident - { mkmod(Pmod_ident (mkrhs $1 1)) } - | STRUCT structure END - { mkmod(Pmod_structure($2)) } - | STRUCT structure error - { unclosed "struct" 1 "end" 3 } - | FUNCTOR LPAREN UIDENT COLON module_type RPAREN MINUSGREATER module_expr - { mkmod(Pmod_functor(mkrhs $3 3, $5, $8)) } - | module_expr LPAREN module_expr RPAREN - { mkmod(Pmod_apply($1, $3)) } - | module_expr LPAREN module_expr error - { unclosed "(" 2 ")" 4 } - | LPAREN module_expr COLON module_type RPAREN - { mkmod(Pmod_constraint($2, $4)) } - | LPAREN module_expr COLON module_type error - { unclosed "(" 1 ")" 5 } - | LPAREN module_expr RPAREN - { $2 } - | LPAREN module_expr error - { unclosed "(" 1 ")" 3 } - | LPAREN VAL expr RPAREN - { mkmod(Pmod_unpack $3) } - | LPAREN VAL expr COLON package_type RPAREN - { mkmod(Pmod_unpack( - ghexp(Pexp_constraint($3, Some(ghtyp(Ptyp_package $5)), None)))) } - | LPAREN VAL expr COLON package_type COLONGREATER package_type RPAREN - { mkmod(Pmod_unpack( - ghexp(Pexp_constraint($3, Some(ghtyp(Ptyp_package $5)), - Some(ghtyp(Ptyp_package $7)))))) } - | LPAREN VAL expr COLONGREATER package_type RPAREN - { mkmod(Pmod_unpack( - ghexp(Pexp_constraint($3, None, Some(ghtyp(Ptyp_package $5)))))) } - | LPAREN VAL expr COLON error - { unclosed "(" 1 ")" 5 } - | LPAREN VAL expr COLONGREATER error - { unclosed "(" 1 ")" 5 } - | LPAREN VAL expr error - { unclosed "(" 1 ")" 4 } -; -structure: - structure_tail { $1 } - | seq_expr structure_tail { ghstrexp $1 :: $2 } -; -structure_tail: - /* empty */ { [] } - | SEMISEMI { [] } - | SEMISEMI seq_expr structure_tail { ghstrexp $2 :: $3 } - | SEMISEMI structure_item structure_tail { $2 :: $3 } - | structure_item structure_tail { $1 :: $2 } -; -structure_item: - LET rec_flag let_bindings - { match $3 with - [{ ppat_desc = Ppat_any; ppat_loc = _ }, exp] -> mkstr(Pstr_eval exp) - | _ -> mkstr(Pstr_value($2, List.rev $3)) } - | EXTERNAL val_ident COLON core_type EQUAL primitive_declaration - { mkstr(Pstr_primitive(mkrhs $2 2, {pval_type = $4; pval_prim = $6; - pval_loc = symbol_rloc ()})) } - | TYPE type_declarations - { mkstr(Pstr_type(List.rev $2)) } - | EXCEPTION UIDENT constructor_arguments - { mkstr(Pstr_exception(mkrhs $2 2, $3)) } - | EXCEPTION UIDENT EQUAL constr_longident - { mkstr(Pstr_exn_rebind(mkrhs $2 2, mkloc $4 (rhs_loc 4))) } - | MODULE UIDENT module_binding - { mkstr(Pstr_module(mkrhs $2 2, $3)) } - | MODULE REC module_rec_bindings - { mkstr(Pstr_recmodule(List.rev $3)) } - | MODULE TYPE ident EQUAL module_type - { mkstr(Pstr_modtype(mkrhs $3 3, $5)) } - | OPEN mod_longident - { mkstr(Pstr_open (mkrhs $2 2)) } - | CLASS class_declarations - { mkstr(Pstr_class (List.rev $2)) } - | CLASS TYPE class_type_declarations - { mkstr(Pstr_class_type (List.rev $3)) } - | INCLUDE module_expr - { mkstr(Pstr_include $2) } -; -module_binding: - EQUAL module_expr - { $2 } - | COLON module_type EQUAL module_expr - { mkmod(Pmod_constraint($4, $2)) } - | LPAREN UIDENT COLON module_type RPAREN module_binding - { mkmod(Pmod_functor(mkrhs $2 2, $4, $6)) } -; -module_rec_bindings: - module_rec_binding { [$1] } - | module_rec_bindings AND module_rec_binding { $3 :: $1 } -; -module_rec_binding: - UIDENT COLON module_type EQUAL module_expr { (mkrhs $1 1, $3, $5) } -; - -/* Module types */ - -module_type: - mty_longident - { mkmty(Pmty_ident (mkrhs $1 1)) } - | SIG signature END - { mkmty(Pmty_signature(List.rev $2)) } - | SIG signature error - { unclosed "sig" 1 "end" 3 } - | FUNCTOR LPAREN UIDENT COLON module_type RPAREN MINUSGREATER module_type - %prec below_WITH - { mkmty(Pmty_functor(mkrhs $3 3, $5, $8)) } - | module_type WITH with_constraints - { mkmty(Pmty_with($1, List.rev $3)) } - | MODULE TYPE OF module_expr - { mkmty(Pmty_typeof $4) } - | LPAREN module_type RPAREN - { $2 } - | LPAREN module_type error - { unclosed "(" 1 ")" 3 } -; -signature: - /* empty */ { [] } - | signature signature_item { $2 :: $1 } - | signature signature_item SEMISEMI { $2 :: $1 } -; -signature_item: - VAL val_ident COLON core_type - { mksig(Psig_value(mkrhs $2 2, {pval_type = $4; pval_prim = []; - pval_loc = symbol_rloc()})) } - | EXTERNAL val_ident COLON core_type EQUAL primitive_declaration - { mksig(Psig_value(mkrhs $2 2, {pval_type = $4; pval_prim = $6; - pval_loc = symbol_rloc()})) } - | TYPE type_declarations - { mksig(Psig_type(List.rev $2)) } - | EXCEPTION UIDENT constructor_arguments - { mksig(Psig_exception(mkrhs $2 2, $3)) } - | MODULE UIDENT module_declaration - { mksig(Psig_module(mkrhs $2 2, $3)) } - | MODULE REC module_rec_declarations - { mksig(Psig_recmodule(List.rev $3)) } - | MODULE TYPE ident - { mksig(Psig_modtype(mkrhs $3 3, Pmodtype_abstract)) } - | MODULE TYPE ident EQUAL module_type - { mksig(Psig_modtype(mkrhs $3 3, Pmodtype_manifest $5)) } - | OPEN mod_longident - { mksig(Psig_open (mkrhs $2 2)) } - | INCLUDE module_type - { mksig(Psig_include $2) } - | CLASS class_descriptions - { mksig(Psig_class (List.rev $2)) } - | CLASS TYPE class_type_declarations - { mksig(Psig_class_type (List.rev $3)) } -; - -module_declaration: - COLON module_type - { $2 } - | LPAREN UIDENT COLON module_type RPAREN module_declaration - { mkmty(Pmty_functor(mkrhs $2 2, $4, $6)) } -; -module_rec_declarations: - module_rec_declaration { [$1] } - | module_rec_declarations AND module_rec_declaration { $3 :: $1 } -; -module_rec_declaration: - UIDENT COLON module_type { (mkrhs $1 1, $3) } -; - -/* Class expressions */ - -class_declarations: - class_declarations AND class_declaration { $3 :: $1 } - | class_declaration { [$1] } -; -class_declaration: - virtual_flag class_type_parameters LIDENT class_fun_binding - { let params, variance = List.split (fst $2) in - {pci_virt = $1; pci_params = params, snd $2; - pci_name = mkrhs $3 3; pci_expr = $4; pci_variance = variance; - pci_loc = symbol_rloc ()} } -; -class_fun_binding: - EQUAL class_expr - { $2 } - | COLON class_type EQUAL class_expr - { mkclass(Pcl_constraint($4, $2)) } - | labeled_simple_pattern class_fun_binding - { let (l,o,p) = $1 in mkclass(Pcl_fun(l, o, p, $2)) } -; -class_type_parameters: - /*empty*/ { [], symbol_gloc () } - | LBRACKET type_parameter_list RBRACKET { List.rev $2, symbol_rloc () } -; -class_fun_def: - labeled_simple_pattern MINUSGREATER class_expr - { let (l,o,p) = $1 in mkclass(Pcl_fun(l, o, p, $3)) } - | labeled_simple_pattern class_fun_def - { let (l,o,p) = $1 in mkclass(Pcl_fun(l, o, p, $2)) } -; -class_expr: - class_simple_expr - { $1 } - | FUN class_fun_def - { $2 } - | class_simple_expr simple_labeled_expr_list - { mkclass(Pcl_apply($1, List.rev $2)) } - | LET rec_flag let_bindings IN class_expr - { mkclass(Pcl_let ($2, List.rev $3, $5)) } -; -class_simple_expr: - LBRACKET core_type_comma_list RBRACKET class_longident - { mkclass(Pcl_constr(mkloc $4 (rhs_loc 4), List.rev $2)) } - | class_longident - { mkclass(Pcl_constr(mkrhs $1 1, [])) } - | OBJECT class_structure END - { mkclass(Pcl_structure($2)) } - | OBJECT class_structure error - { unclosed "object" 1 "end" 3 } - | LPAREN class_expr COLON class_type RPAREN - { mkclass(Pcl_constraint($2, $4)) } - | LPAREN class_expr COLON class_type error - { unclosed "(" 1 ")" 5 } - | LPAREN class_expr RPAREN - { $2 } - | LPAREN class_expr error - { unclosed "(" 1 ")" 3 } -; -class_structure: - class_self_pattern class_fields - { { pcstr_pat = $1; pcstr_fields = List.rev $2 } } -; -class_self_pattern: - LPAREN pattern RPAREN - { reloc_pat $2 } - | LPAREN pattern COLON core_type RPAREN - { mkpat(Ppat_constraint($2, $4)) } - | /* empty */ - { ghpat(Ppat_any) } -; -class_fields: - /* empty */ - { [] } - | class_fields class_field - { $2 :: $1 } -; -class_field: - | INHERIT override_flag class_expr parent_binder - { mkcf (Pcf_inher ($2, $3, $4)) } - | VAL virtual_value - { mkcf (Pcf_valvirt $2) } - | VAL value - { mkcf (Pcf_val $2) } - | virtual_method - { mkcf (Pcf_virt $1) } - | concrete_method - { mkcf (Pcf_meth $1) } - | CONSTRAINT constrain_field - { mkcf (Pcf_constr $2) } - | INITIALIZER seq_expr - { mkcf (Pcf_init $2) } -; -parent_binder: - AS LIDENT - { Some $2 } - | /* empty */ - { None } -; -virtual_value: - override_flag MUTABLE VIRTUAL label COLON core_type - { if $1 = Override then syntax_error (); - mkloc $4 (rhs_loc 4), Mutable, $6 } - | VIRTUAL mutable_flag label COLON core_type - { mkrhs $3 3, $2, $5 } -; -value: - override_flag mutable_flag label EQUAL seq_expr - { mkrhs $3 3, $2, $1, $5 } - | override_flag mutable_flag label type_constraint EQUAL seq_expr - { mkrhs $3 3, $2, $1, (let (t, t') = $4 in ghexp(Pexp_constraint($6, t, t'))) }, -; -virtual_method: - METHOD override_flag PRIVATE VIRTUAL label COLON poly_type - { if $2 = Override then syntax_error (); - mkloc $5 (rhs_loc 5), Private, $7 } - | METHOD override_flag VIRTUAL private_flag label COLON poly_type - { if $2 = Override then syntax_error (); - mkloc $5 (rhs_loc 5), $4, $7 } -; -concrete_method : - METHOD override_flag private_flag label strict_binding - { mkloc $4 (rhs_loc 4), $3, $2, ghexp(Pexp_poly ($5, None)) } - | METHOD override_flag private_flag label COLON poly_type EQUAL seq_expr - { mkloc $4 (rhs_loc 4), $3, $2, ghexp(Pexp_poly($8,Some $6)) } - | METHOD override_flag private_flag label COLON TYPE lident_list - DOT core_type EQUAL seq_expr - { let exp, poly = wrap_type_annotation $7 $9 $11 in - mkloc $4 (rhs_loc 4), $3, $2, ghexp(Pexp_poly(exp, Some poly)) } -; - -/* Class types */ - -class_type: - class_signature - { $1 } - | QUESTION LIDENT COLON simple_core_type_or_tuple MINUSGREATER class_type - { mkcty(Pcty_fun("?" ^ $2 , mkoption $4, $6)) } - | OPTLABEL simple_core_type_or_tuple MINUSGREATER class_type - { mkcty(Pcty_fun("?" ^ $1, mkoption $2, $4)) } - | LIDENT COLON simple_core_type_or_tuple MINUSGREATER class_type - { mkcty(Pcty_fun($1, $3, $5)) } - | simple_core_type_or_tuple MINUSGREATER class_type - { mkcty(Pcty_fun("", $1, $3)) } -; -class_signature: - LBRACKET core_type_comma_list RBRACKET clty_longident - { mkcty(Pcty_constr (mkloc $4 (rhs_loc 4), List.rev $2)) } - | clty_longident - { mkcty(Pcty_constr (mkrhs $1 1, [])) } - | OBJECT class_sig_body END - { mkcty(Pcty_signature $2) } - | OBJECT class_sig_body error - { unclosed "object" 1 "end" 3 } -; -class_sig_body: - class_self_type class_sig_fields - { { pcsig_self = $1; pcsig_fields = List.rev $2; - pcsig_loc = symbol_rloc(); } } -; -class_self_type: - LPAREN core_type RPAREN - { $2 } - | /* empty */ - { mktyp(Ptyp_any) } -; -class_sig_fields: - /* empty */ { [] } -| class_sig_fields class_sig_field { $2 :: $1 } -; -class_sig_field: - INHERIT class_signature { mkctf (Pctf_inher $2) } - | VAL value_type { mkctf (Pctf_val $2) } - | virtual_method_type { mkctf (Pctf_virt $1) } - | method_type { mkctf (Pctf_meth $1) } - | CONSTRAINT constrain_field { mkctf (Pctf_cstr $2) } -; -value_type: - VIRTUAL mutable_flag label COLON core_type - { $3, $2, Virtual, $5 } - | MUTABLE virtual_flag label COLON core_type - { $3, Mutable, $2, $5 } - | label COLON core_type - { $1, Immutable, Concrete, $3 } -; -method_type: - METHOD private_flag label COLON poly_type - { $3, $2, $5 } -; -virtual_method_type: - METHOD PRIVATE VIRTUAL label COLON poly_type - { $4, Private, $6 } - | METHOD VIRTUAL private_flag label COLON poly_type - { $4, $3, $6 } -; -constrain: - core_type EQUAL core_type { $1, $3, symbol_rloc() } -; -constrain_field: - core_type EQUAL core_type { $1, $3 } -; -class_descriptions: - class_descriptions AND class_description { $3 :: $1 } - | class_description { [$1] } -; -class_description: - virtual_flag class_type_parameters LIDENT COLON class_type - { let params, variance = List.split (fst $2) in - {pci_virt = $1; pci_params = params, snd $2; - pci_name = mkrhs $3 3; pci_expr = $5; pci_variance = variance; - pci_loc = symbol_rloc ()} } -; -class_type_declarations: - class_type_declarations AND class_type_declaration { $3 :: $1 } - | class_type_declaration { [$1] } -; -class_type_declaration: - virtual_flag class_type_parameters LIDENT EQUAL class_signature - { let params, variance = List.split (fst $2) in - {pci_virt = $1; pci_params = params, snd $2; - pci_name = mkrhs $3 3; pci_expr = $5; pci_variance = variance; - pci_loc = symbol_rloc ()} } -; - -/* Core expressions */ - -seq_expr: - | expr %prec below_SEMI { $1 } - | expr SEMI { reloc_exp $1 } - | expr SEMI seq_expr { mkexp(Pexp_sequence($1, $3)) } -; -labeled_simple_pattern: - QUESTION LPAREN label_let_pattern opt_default RPAREN - { ("?" ^ fst $3, $4, snd $3) } - | QUESTION label_var - { ("?" ^ fst $2, None, snd $2) } - | OPTLABEL LPAREN let_pattern opt_default RPAREN - { ("?" ^ $1, $4, $3) } - | OPTLABEL pattern_var - { ("?" ^ $1, None, $2) } - | TILDE LPAREN label_let_pattern RPAREN - { (fst $3, None, snd $3) } - | TILDE label_var - { (fst $2, None, snd $2) } - | LABEL simple_pattern - { ($1, None, $2) } - | simple_pattern - { ("", None, $1) } -; -pattern_var: - LIDENT { mkpat(Ppat_var (mkrhs $1 1)) } - | UNDERSCORE { mkpat Ppat_any } -; -opt_default: - /* empty */ { None } - | EQUAL seq_expr { Some $2 } -; -label_let_pattern: - label_var - { $1 } - | label_var COLON core_type - { let (lab, pat) = $1 in (lab, mkpat(Ppat_constraint(pat, $3))) } -; -label_var: - LIDENT { ($1, mkpat(Ppat_var (mkrhs $1 1))) } -; -let_pattern: - pattern - { $1 } - | pattern COLON core_type - { mkpat(Ppat_constraint($1, $3)) } -; -expr: - simple_expr %prec below_SHARP - { $1 } - | simple_expr simple_labeled_expr_list - { mkexp(Pexp_apply($1, List.rev $2)) } - | LET rec_flag let_bindings IN seq_expr - { mkexp(Pexp_let($2, List.rev $3, $5)) } - | LET MODULE UIDENT module_binding IN seq_expr - { mkexp(Pexp_letmodule(mkrhs $3 3, $4, $6)) } - | LET OPEN mod_longident IN seq_expr - { mkexp(Pexp_open(mkrhs $3 3, $5)) } - | FUNCTION opt_bar match_cases - { mkexp(Pexp_function("", None, List.rev $3)) } - | FUN labeled_simple_pattern fun_def - { let (l,o,p) = $2 in mkexp(Pexp_function(l, o, [p, $3])) } - | FUN LPAREN TYPE LIDENT RPAREN fun_def - { mkexp(Pexp_newtype($4, $6)) } - | MATCH seq_expr WITH opt_bar match_cases - { mkexp(Pexp_match($2, List.rev $5)) } - | TRY seq_expr WITH opt_bar match_cases - { mkexp(Pexp_try($2, List.rev $5)) } - | TRY seq_expr WITH error - { syntax_error() } - | expr_comma_list %prec below_COMMA - { mkexp(Pexp_tuple(List.rev $1)) } - | constr_longident simple_expr %prec below_SHARP - { mkexp(Pexp_construct(mkrhs $1 1, Some $2, false)) } - | name_tag simple_expr %prec below_SHARP - { mkexp(Pexp_variant($1, Some $2)) } - | IF seq_expr THEN expr ELSE expr - { mkexp(Pexp_ifthenelse($2, $4, Some $6)) } - | IF seq_expr THEN expr - { mkexp(Pexp_ifthenelse($2, $4, None)) } - | WHILE seq_expr DO seq_expr DONE - { mkexp(Pexp_while($2, $4)) } - | FOR val_ident EQUAL seq_expr direction_flag seq_expr DO seq_expr DONE - { mkexp(Pexp_for(mkrhs $2 2, $4, $6, $5, $8)) } - | expr COLONCOLON expr - { mkexp_cons (ghexp(Pexp_tuple[$1;$3])) (symbol_rloc()) } - | LPAREN COLONCOLON RPAREN LPAREN expr COMMA expr RPAREN - { mkexp_cons (ghexp(Pexp_tuple[$5;$7])) (symbol_rloc()) } - | expr INFIXOP0 expr - { mkinfix $1 $2 $3 } - | expr INFIXOP1 expr - { mkinfix $1 $2 $3 } - | expr INFIXOP2 expr - { mkinfix $1 $2 $3 } - | expr INFIXOP3 expr - { mkinfix $1 $2 $3 } - | expr INFIXOP4 expr - { mkinfix $1 $2 $3 } - | expr PLUS expr - { mkinfix $1 "+" $3 } - | expr PLUSDOT expr - { mkinfix $1 "+." $3 } - | expr MINUS expr - { mkinfix $1 "-" $3 } - | expr MINUSDOT expr - { mkinfix $1 "-." $3 } - | expr STAR expr - { mkinfix $1 "*" $3 } - | expr EQUAL expr - { mkinfix $1 "=" $3 } - | expr LESS expr - { mkinfix $1 "<" $3 } - | expr GREATER expr - { mkinfix $1 ">" $3 } - | expr OR expr - { mkinfix $1 "or" $3 } - | expr BARBAR expr - { mkinfix $1 "||" $3 } - | expr AMPERSAND expr - { mkinfix $1 "&" $3 } - | expr AMPERAMPER expr - { mkinfix $1 "&&" $3 } - | expr COLONEQUAL expr - { mkinfix $1 ":=" $3 } - | subtractive expr %prec prec_unary_minus - { mkuminus $1 $2 } - | additive expr %prec prec_unary_plus - { mkuplus $1 $2 } - | simple_expr DOT label_longident LESSMINUS expr - { mkexp(Pexp_setfield($1, mkrhs $3 3, $5)) } - | simple_expr DOT LPAREN seq_expr RPAREN LESSMINUS expr - { mkexp(Pexp_apply(ghexp(Pexp_ident(array_function "Array" "set")), - ["",$1; "",$4; "",$7])) } - | simple_expr DOT LBRACKET seq_expr RBRACKET LESSMINUS expr - { mkexp(Pexp_apply(ghexp(Pexp_ident(array_function "String" "set")), - ["",$1; "",$4; "",$7])) } - | simple_expr DOT LBRACE expr RBRACE LESSMINUS expr - { bigarray_set $1 $4 $7 } - | label LESSMINUS expr - { mkexp(Pexp_setinstvar(mkrhs $1 1, $3)) } - | ASSERT simple_expr %prec below_SHARP - { mkassert $2 } - | LAZY simple_expr %prec below_SHARP - { mkexp (Pexp_lazy ($2)) } - | OBJECT class_structure END - { mkexp (Pexp_object($2)) } - | OBJECT class_structure error - { unclosed "object" 1 "end" 3 } -; -simple_expr: - val_longident - { mkexp(Pexp_ident (mkrhs $1 1)) } - | constant - { mkexp(Pexp_constant $1) } - | constr_longident %prec prec_constant_constructor - { mkexp(Pexp_construct(mkrhs $1 1, None, false)) } - | name_tag %prec prec_constant_constructor - { mkexp(Pexp_variant($1, None)) } - | LPAREN seq_expr RPAREN - { reloc_exp $2 } - | LPAREN seq_expr error - { unclosed "(" 1 ")" 3 } - | BEGIN seq_expr END - { reloc_exp $2 } - | BEGIN END - { mkexp (Pexp_construct (mkloc (Lident "()") (symbol_rloc ()), None, false)) } - | BEGIN seq_expr error - { unclosed "begin" 1 "end" 3 } - | LPAREN seq_expr type_constraint RPAREN - { let (t, t') = $3 in mkexp(Pexp_constraint($2, t, t')) } - | simple_expr DOT label_longident - { mkexp(Pexp_field($1, mkrhs $3 3)) } - | mod_longident DOT LPAREN seq_expr RPAREN - { mkexp(Pexp_open(mkrhs $1 1, $4)) } - | mod_longident DOT LPAREN seq_expr error - { unclosed "(" 3 ")" 5 } - | simple_expr DOT LPAREN seq_expr RPAREN - { mkexp(Pexp_apply(ghexp(Pexp_ident(array_function "Array" "get")), - ["",$1; "",$4])) } - | simple_expr DOT LPAREN seq_expr error - { unclosed "(" 3 ")" 5 } - | simple_expr DOT LBRACKET seq_expr RBRACKET - { mkexp(Pexp_apply(ghexp(Pexp_ident(array_function "String" "get")), - ["",$1; "",$4])) } - | simple_expr DOT LBRACKET seq_expr error - { unclosed "[" 3 "]" 5 } - | simple_expr DOT LBRACE expr RBRACE - { bigarray_get $1 $4 } - | simple_expr DOT LBRACE expr_comma_list error - { unclosed "{" 3 "}" 5 } - | LBRACE record_expr RBRACE - { let (exten, fields) = $2 in mkexp(Pexp_record(fields, exten)) } - | LBRACE record_expr error - { unclosed "{" 1 "}" 3 } - | LBRACKETBAR expr_semi_list opt_semi BARRBRACKET - { mkexp(Pexp_array(List.rev $2)) } - | LBRACKETBAR expr_semi_list opt_semi error - { unclosed "[|" 1 "|]" 4 } - | LBRACKETBAR BARRBRACKET - { mkexp(Pexp_array []) } - | LBRACKET expr_semi_list opt_semi RBRACKET - { reloc_exp (mktailexp (List.rev $2)) } - | LBRACKET expr_semi_list opt_semi error - { unclosed "[" 1 "]" 4 } - | PREFIXOP simple_expr - { mkexp(Pexp_apply(mkoperator $1 1, ["",$2])) } - | BANG simple_expr - { mkexp(Pexp_apply(mkoperator "!" 1, ["",$2])) } - | NEW class_longident - { mkexp(Pexp_new(mkrhs $2 2)) } - | LBRACELESS field_expr_list opt_semi GREATERRBRACE - { mkexp(Pexp_override(List.rev $2)) } - | LBRACELESS field_expr_list opt_semi error - { unclosed "{<" 1 ">}" 4 } - | LBRACELESS GREATERRBRACE - { mkexp(Pexp_override []) } - | simple_expr SHARP label - { mkexp(Pexp_send($1, $3)) } - | LPAREN MODULE module_expr RPAREN - { mkexp (Pexp_pack $3) } - | LPAREN MODULE module_expr COLON package_type RPAREN - { mkexp (Pexp_constraint (ghexp (Pexp_pack $3), - Some (ghtyp (Ptyp_package $5)), None)) } - | LPAREN MODULE module_expr COLON error - { unclosed "(" 1 ")" 5 } -; -simple_labeled_expr_list: - labeled_simple_expr - { [$1] } - | simple_labeled_expr_list labeled_simple_expr - { $2 :: $1 } -; -labeled_simple_expr: - simple_expr %prec below_SHARP - { ("", $1) } - | label_expr - { $1 } -; -label_expr: - LABEL simple_expr %prec below_SHARP - { ($1, $2) } - | TILDE label_ident - { $2 } - | QUESTION label_ident - { ("?" ^ fst $2, snd $2) } - | OPTLABEL simple_expr %prec below_SHARP - { ("?" ^ $1, $2) } -; -label_ident: - LIDENT { ($1, mkexp(Pexp_ident(mkrhs (Lident $1) 1))) } -; -let_bindings: - let_binding { [$1] } - | let_bindings AND let_binding { $3 :: $1 } -; - -lident_list: - LIDENT { [$1] } - | LIDENT lident_list { $1 :: $2 } -; -let_binding: - val_ident fun_binding - { (mkpatvar $1 1, $2) } - | val_ident COLON typevar_list DOT core_type EQUAL seq_expr - { (ghpat(Ppat_constraint(mkpatvar $1 1, ghtyp(Ptyp_poly($3,$5)))), $7) } - | val_ident COLON TYPE lident_list DOT core_type EQUAL seq_expr - { let exp, poly = wrap_type_annotation $4 $6 $8 in - (ghpat(Ppat_constraint(mkpatvar $1 1, poly)), exp) } - | pattern EQUAL seq_expr - { ($1, $3) } -; -fun_binding: - strict_binding - { $1 } - | type_constraint EQUAL seq_expr - { let (t, t') = $1 in ghexp(Pexp_constraint($3, t, t')) } -; -strict_binding: - EQUAL seq_expr - { $2 } - | labeled_simple_pattern fun_binding - { let (l, o, p) = $1 in ghexp(Pexp_function(l, o, [p, $2])) } - | LPAREN TYPE LIDENT RPAREN fun_binding - { mkexp(Pexp_newtype($3, $5)) } -; -match_cases: - pattern match_action { [$1, $2] } - | match_cases BAR pattern match_action { ($3, $4) :: $1 } -; -fun_def: - match_action { $1 } - | labeled_simple_pattern fun_def - { let (l,o,p) = $1 in ghexp(Pexp_function(l, o, [p, $2])) } - | LPAREN TYPE LIDENT RPAREN fun_def - { mkexp(Pexp_newtype($3, $5)) } -; -match_action: - MINUSGREATER seq_expr { $2 } - | WHEN seq_expr MINUSGREATER seq_expr { mkexp(Pexp_when($2, $4)) } -; -expr_comma_list: - expr_comma_list COMMA expr { $3 :: $1 } - | expr COMMA expr { [$3; $1] } -; -record_expr: - simple_expr WITH lbl_expr_list { (Some $1, $3) } - | lbl_expr_list { (None, $1) } -; -lbl_expr_list: - lbl_expr { [$1] } - | lbl_expr SEMI lbl_expr_list { $1 :: $3 } - | lbl_expr SEMI { [$1] } -; -lbl_expr: - label_longident EQUAL expr - { (mkrhs $1 1,$3) } - | label_longident - { (mkrhs $1 1, exp_of_label $1 1) } -; -field_expr_list: - label EQUAL expr - { [mkrhs $1 1,$3] } - | field_expr_list SEMI label EQUAL expr - { (mkrhs $3 3, $5) :: $1 } -; -expr_semi_list: - expr { [$1] } - | expr_semi_list SEMI expr { $3 :: $1 } -; -type_constraint: - COLON core_type { (Some $2, None) } - | COLON core_type COLONGREATER core_type { (Some $2, Some $4) } - | COLONGREATER core_type { (None, Some $2) } - | COLON error { syntax_error() } - | COLONGREATER error { syntax_error() } -; - -/* Patterns */ - -pattern: - simple_pattern - { $1 } - | pattern AS val_ident - { mkpat(Ppat_alias($1, mkrhs $3 3)) } - | pattern_comma_list %prec below_COMMA - { mkpat(Ppat_tuple(List.rev $1)) } - | constr_longident pattern %prec prec_constr_appl - { mkpat(Ppat_construct(mkrhs $1 1, Some $2, false)) } - | name_tag pattern %prec prec_constr_appl - { mkpat(Ppat_variant($1, Some $2)) } - | pattern COLONCOLON pattern - { mkpat_cons (ghpat(Ppat_tuple[$1;$3])) (symbol_rloc()) }, - | LPAREN COLONCOLON RPAREN LPAREN pattern COMMA pattern RPAREN - { mkpat_cons (ghpat(Ppat_tuple[$5;$7])) (symbol_rloc()) } - | pattern BAR pattern - { mkpat(Ppat_or($1, $3)) } - | LAZY simple_pattern - { mkpat(Ppat_lazy $2) } -; -simple_pattern: - val_ident %prec below_EQUAL - { mkpat(Ppat_var (mkrhs $1 1)) } - | UNDERSCORE - { mkpat(Ppat_any) } - | signed_constant - { mkpat(Ppat_constant $1) } - | CHAR DOTDOT CHAR - { mkrangepat $1 $3 } - | constr_longident - { mkpat(Ppat_construct(mkrhs $1 1, None, false)) } - | name_tag - { mkpat(Ppat_variant($1, None)) } - | SHARP type_longident - { mkpat(Ppat_type (mkrhs $2 2)) } - | LBRACE lbl_pattern_list RBRACE - { let (fields, closed) = $2 in mkpat(Ppat_record(fields, closed)) } - | LBRACE lbl_pattern_list error - { unclosed "{" 1 "}" 4 } - | LBRACKET pattern_semi_list opt_semi RBRACKET - { reloc_pat (mktailpat (List.rev $2)) } - | LBRACKET pattern_semi_list opt_semi error - { unclosed "[" 1 "]" 4 } - | LBRACKETBAR pattern_semi_list opt_semi BARRBRACKET - { mkpat(Ppat_array(List.rev $2)) } - | LBRACKETBAR BARRBRACKET - { mkpat(Ppat_array []) } - | LBRACKETBAR pattern_semi_list opt_semi error - { unclosed "[|" 1 "|]" 4 } - | LPAREN pattern RPAREN - { reloc_pat $2 } - | LPAREN pattern error - { unclosed "(" 1 ")" 3 } - | LPAREN pattern COLON core_type RPAREN - { mkpat(Ppat_constraint($2, $4)) } - | LPAREN pattern COLON core_type error - { unclosed "(" 1 ")" 5 } - | LPAREN MODULE UIDENT RPAREN - { mkpat(Ppat_unpack (mkrhs $3 3)) } - | LPAREN MODULE UIDENT COLON package_type RPAREN - { mkpat(Ppat_constraint(mkpat(Ppat_unpack (mkrhs $3 3)),ghtyp(Ptyp_package $5))) } - | LPAREN MODULE UIDENT COLON package_type error - { unclosed "(" 1 ")" 6 } -; - -pattern_comma_list: - pattern_comma_list COMMA pattern { $3 :: $1 } - | pattern COMMA pattern { [$3; $1] } -; -pattern_semi_list: - pattern { [$1] } - | pattern_semi_list SEMI pattern { $3 :: $1 } -; -lbl_pattern_list: - lbl_pattern { [$1], Closed } - | lbl_pattern SEMI { [$1], Closed } - | lbl_pattern SEMI UNDERSCORE opt_semi { [$1], Open } - | lbl_pattern SEMI lbl_pattern_list { let (fields, closed) = $3 in $1 :: fields, closed } -; -lbl_pattern: - label_longident EQUAL pattern - { (mkrhs $1 1,$3) } - | label_longident - { (mkrhs $1 1, pat_of_label $1 1) } -; - -/* Primitive declarations */ - -primitive_declaration: - STRING { [$1] } - | STRING primitive_declaration { $1 :: $2 } -; - -/* Type declarations */ - -type_declarations: - type_declaration { [$1] } - | type_declarations AND type_declaration { $3 :: $1 } -; - -type_declaration: - optional_type_parameters LIDENT type_kind constraints - { let (params, variance) = List.split $1 in - let (kind, private_flag, manifest) = $3 in - (mkrhs $2 2, {ptype_params = params; - ptype_cstrs = List.rev $4; - ptype_kind = kind; - ptype_private = private_flag; - ptype_manifest = manifest; - ptype_variance = variance; - ptype_loc = symbol_rloc() }) } -; -constraints: - constraints CONSTRAINT constrain { $3 :: $1 } - | /* empty */ { [] } -; -type_kind: - /*empty*/ - { (Ptype_abstract, Public, None) } - | EQUAL core_type - { (Ptype_abstract, Public, Some $2) } - | EQUAL PRIVATE core_type - { (Ptype_abstract, Private, Some $3) } - | EQUAL constructor_declarations - { (Ptype_variant(List.rev $2), Public, None) } - | EQUAL PRIVATE constructor_declarations - { (Ptype_variant(List.rev $3), Private, None) } - | EQUAL private_flag BAR constructor_declarations - { (Ptype_variant(List.rev $4), $2, None) } - | EQUAL private_flag LBRACE label_declarations opt_semi RBRACE - { (Ptype_record(List.rev $4), $2, None) } - | EQUAL core_type EQUAL private_flag opt_bar constructor_declarations - { (Ptype_variant(List.rev $6), $4, Some $2) } - | EQUAL core_type EQUAL private_flag LBRACE label_declarations opt_semi RBRACE - { (Ptype_record(List.rev $6), $4, Some $2) } -; -optional_type_parameters: - /*empty*/ { [] } - | optional_type_parameter { [$1] } - | LPAREN optional_type_parameter_list RPAREN { List.rev $2 } -; -optional_type_parameter: - type_variance QUOTE ident { Some (mkrhs $3 3), $1 } - | type_variance UNDERSCORE { None, $1 } -; -optional_type_parameter_list: - optional_type_parameter { [$1] } - | optional_type_parameter_list COMMA optional_type_parameter { $3 :: $1 } -; - - - -type_parameters: - /*empty*/ { [] } - | type_parameter { [$1] } - | LPAREN type_parameter_list RPAREN { List.rev $2 } -; -type_parameter: - type_variance QUOTE ident { mkrhs $3 3, $1 } -; -type_variance: - /* empty */ { false, false } - | PLUS { true, false } - | MINUS { false, true } -; -type_parameter_list: - type_parameter { [$1] } - | type_parameter_list COMMA type_parameter { $3 :: $1 } -; -constructor_declarations: - constructor_declaration { [$1] } - | constructor_declarations BAR constructor_declaration { $3 :: $1 } -; -constructor_declaration: - - | constr_ident generalized_constructor_arguments - { let arg_types,ret_type = $2 in - (mkrhs $1 1, arg_types,ret_type, symbol_rloc()) } -; - -constructor_arguments: - /*empty*/ { [] } - | OF core_type_list { List.rev $2 } -; - -generalized_constructor_arguments: - /*empty*/ { ([],None) } - | OF core_type_list { (List.rev $2,None) } - | COLON core_type_list MINUSGREATER simple_core_type - { (List.rev $2,Some $4) } - | COLON simple_core_type { ([],Some $2) } -; - - - -label_declarations: - label_declaration { [$1] } - | label_declarations SEMI label_declaration { $3 :: $1 } -; -label_declaration: - mutable_flag label COLON poly_type { (mkrhs $2 2, $1, $4, symbol_rloc()) } -; - -/* "with" constraints (additional type equations over signature components) */ - -with_constraints: - with_constraint { [$1] } - | with_constraints AND with_constraint { $3 :: $1 } -; -with_constraint: - TYPE type_parameters label_longident with_type_binder core_type constraints - { let params, variance = List.split $2 in - (mkrhs $3 3, Pwith_type {ptype_params = List.map (fun x -> Some x) params; - ptype_cstrs = List.rev $6; - ptype_kind = Ptype_abstract; - ptype_manifest = Some $5; - ptype_private = $4; - ptype_variance = variance; - ptype_loc = symbol_rloc()}) } - /* used label_longident instead of type_longident to disallow - functor applications in type path */ - | TYPE type_parameters label_longident COLONEQUAL core_type - { let params, variance = List.split $2 in - (mkrhs $3 3, Pwith_typesubst {ptype_params = List.map (fun x -> Some x) params; - ptype_cstrs = []; - ptype_kind = Ptype_abstract; - ptype_manifest = Some $5; - ptype_private = Public; - ptype_variance = variance; - ptype_loc = symbol_rloc()}) } - | MODULE mod_longident EQUAL mod_ext_longident - { (mkrhs $2 2, Pwith_module (mkrhs $4 4)) } - | MODULE mod_longident COLONEQUAL mod_ext_longident - { (mkrhs $2 2, Pwith_modsubst (mkrhs $4 4)) } -; -with_type_binder: - EQUAL { Public } - | EQUAL PRIVATE { Private } -; - -/* Polymorphic types */ - -typevar_list: - QUOTE ident { [$2] } - | typevar_list QUOTE ident { $3 :: $1 } -; -poly_type: - core_type - { mktyp(Ptyp_poly([], $1)) } - | typevar_list DOT core_type - { mktyp(Ptyp_poly(List.rev $1, $3)) } -; - -/* Core types */ - -core_type: - core_type2 - { $1 } - | core_type2 AS QUOTE ident - { mktyp(Ptyp_alias($1, $4)) } -; -core_type2: - simple_core_type_or_tuple - { $1 } - | QUESTION LIDENT COLON core_type2 MINUSGREATER core_type2 - { mktyp(Ptyp_arrow("?" ^ $2 , mkoption $4, $6)) } - | OPTLABEL core_type2 MINUSGREATER core_type2 - { mktyp(Ptyp_arrow("?" ^ $1 , mkoption $2, $4)) } - | LIDENT COLON core_type2 MINUSGREATER core_type2 - { mktyp(Ptyp_arrow($1, $3, $5)) } - | core_type2 MINUSGREATER core_type2 - { mktyp(Ptyp_arrow("", $1, $3)) } -; - -simple_core_type: - simple_core_type2 %prec below_SHARP - { $1 } - | LPAREN core_type_comma_list RPAREN %prec below_SHARP - { match $2 with [sty] -> sty | _ -> raise Parse_error } -; -simple_core_type2: - QUOTE ident - { mktyp(Ptyp_var $2) } - | UNDERSCORE - { mktyp(Ptyp_any) } - | type_longident - { mktyp(Ptyp_constr(mkrhs $1 1, [])) } - | simple_core_type2 type_longident - { mktyp(Ptyp_constr(mkrhs $2 2, [$1])) } - | LPAREN core_type_comma_list RPAREN type_longident - { mktyp(Ptyp_constr(mkrhs $4 4, List.rev $2)) } - | LESS meth_list GREATER - { mktyp(Ptyp_object $2) } - | LESS GREATER - { mktyp(Ptyp_object []) } - | SHARP class_longident opt_present - { mktyp(Ptyp_class(mkrhs $2 2, [], $3)) } - | simple_core_type2 SHARP class_longident opt_present - { mktyp(Ptyp_class(mkrhs $3 3, [$1], $4)) } - | LPAREN core_type_comma_list RPAREN SHARP class_longident opt_present - { mktyp(Ptyp_class(mkrhs $5 5, List.rev $2, $6)) } - | LBRACKET tag_field RBRACKET - { mktyp(Ptyp_variant([$2], true, None)) } -/* PR#3835: this is not LR(1), would need lookahead=2 - | LBRACKET simple_core_type2 RBRACKET - { mktyp(Ptyp_variant([$2], true, None)) } -*/ - | LBRACKET BAR row_field_list RBRACKET - { mktyp(Ptyp_variant(List.rev $3, true, None)) } - | LBRACKET row_field BAR row_field_list RBRACKET - { mktyp(Ptyp_variant($2 :: List.rev $4, true, None)) } - | LBRACKETGREATER opt_bar row_field_list RBRACKET - { mktyp(Ptyp_variant(List.rev $3, false, None)) } - | LBRACKETGREATER RBRACKET - { mktyp(Ptyp_variant([], false, None)) } - | LBRACKETLESS opt_bar row_field_list RBRACKET - { mktyp(Ptyp_variant(List.rev $3, true, Some [])) } - | LBRACKETLESS opt_bar row_field_list GREATER name_tag_list RBRACKET - { mktyp(Ptyp_variant(List.rev $3, true, Some (List.rev $5))) } - | LPAREN MODULE package_type RPAREN - { mktyp(Ptyp_package $3) } -; -package_type: - mty_longident { (mkrhs $1 1, []) } - | mty_longident WITH package_type_cstrs { (mkrhs $1 1, $3) } -; -package_type_cstr: - TYPE label_longident EQUAL core_type { (mkrhs $2 2, $4) } -; -package_type_cstrs: - package_type_cstr { [$1] } - | package_type_cstr AND package_type_cstrs { $1::$3 } -; -row_field_list: - row_field { [$1] } - | row_field_list BAR row_field { $3 :: $1 } -; -row_field: - tag_field { $1 } - | simple_core_type2 { Rinherit $1 } -; -tag_field: - name_tag OF opt_ampersand amper_type_list - { Rtag ($1, $3, List.rev $4) } - | name_tag - { Rtag ($1, true, []) } -; -opt_ampersand: - AMPERSAND { true } - | /* empty */ { false } -; -amper_type_list: - core_type { [$1] } - | amper_type_list AMPERSAND core_type { $3 :: $1 } -; -opt_present: - LBRACKETGREATER name_tag_list RBRACKET { List.rev $2 } - | /* empty */ { [] } -; -name_tag_list: - name_tag { [$1] } - | name_tag_list name_tag { $2 :: $1 } -; -simple_core_type_or_tuple: - simple_core_type { $1 } - | simple_core_type STAR core_type_list - { mktyp(Ptyp_tuple($1 :: List.rev $3)) } -; -core_type_comma_list: - core_type { [$1] } - | core_type_comma_list COMMA core_type { $3 :: $1 } -; -core_type_list: - simple_core_type { [$1] } - | core_type_list STAR simple_core_type { $3 :: $1 } -; -meth_list: - field SEMI meth_list { $1 :: $3 } - | field opt_semi { [$1] } - | DOTDOT { [mkfield Pfield_var] } -; -field: - label COLON poly_type { mkfield(Pfield($1, $3)) } -; -label: - LIDENT { $1 } -; - -/* Constants */ - -constant: - INT { Const_int $1 } - | CHAR { Const_char $1 } - | STRING { Const_string $1 } - | FLOAT { Const_float $1 } - | INT32 { Const_int32 $1 } - | INT64 { Const_int64 $1 } - | NATIVEINT { Const_nativeint $1 } -; -signed_constant: - constant { $1 } - | MINUS INT { Const_int(- $2) } - | MINUS FLOAT { Const_float("-" ^ $2) } - | MINUS INT32 { Const_int32(Int32.neg $2) } - | MINUS INT64 { Const_int64(Int64.neg $2) } - | MINUS NATIVEINT { Const_nativeint(Nativeint.neg $2) } - | PLUS INT { Const_int $2 } - | PLUS FLOAT { Const_float $2 } - | PLUS INT32 { Const_int32 $2 } - | PLUS INT64 { Const_int64 $2 } - | PLUS NATIVEINT { Const_nativeint $2 } -; - -/* Identifiers and long identifiers */ - -ident: - UIDENT { $1 } - | LIDENT { $1 } -; -val_ident: - LIDENT { $1 } - | LPAREN operator RPAREN { $2 } -; -operator: - PREFIXOP { $1 } - | INFIXOP0 { $1 } - | INFIXOP1 { $1 } - | INFIXOP2 { $1 } - | INFIXOP3 { $1 } - | INFIXOP4 { $1 } - | BANG { "!" } - | PLUS { "+" } - | PLUSDOT { "+." } - | MINUS { "-" } - | MINUSDOT { "-." } - | STAR { "*" } - | EQUAL { "=" } - | LESS { "<" } - | GREATER { ">" } - | OR { "or" } - | BARBAR { "||" } - | AMPERSAND { "&" } - | AMPERAMPER { "&&" } - | COLONEQUAL { ":=" } -; -constr_ident: - UIDENT { $1 } -/* | LBRACKET RBRACKET { "[]" } */ - | LPAREN RPAREN { "()" } - | COLONCOLON { "::" } -/* | LPAREN COLONCOLON RPAREN { "::" } */ - | FALSE { "false" } - | TRUE { "true" } -; - -val_longident: - val_ident { Lident $1 } - | mod_longident DOT val_ident { Ldot($1, $3) } -; -constr_longident: - mod_longident %prec below_DOT { $1 } - | LBRACKET RBRACKET { Lident "[]" } - | LPAREN RPAREN { Lident "()" } - | FALSE { Lident "false" } - | TRUE { Lident "true" } -; -label_longident: - LIDENT { Lident $1 } - | mod_longident DOT LIDENT { Ldot($1, $3) } -; -type_longident: - LIDENT { Lident $1 } - | mod_ext_longident DOT LIDENT { Ldot($1, $3) } -; -mod_longident: - UIDENT { Lident $1 } - | mod_longident DOT UIDENT { Ldot($1, $3) } -; -mod_ext_longident: - UIDENT { Lident $1 } - | mod_ext_longident DOT UIDENT { Ldot($1, $3) } - | mod_ext_longident LPAREN mod_ext_longident RPAREN { lapply $1 $3 } -; -mty_longident: - ident { Lident $1 } - | mod_ext_longident DOT ident { Ldot($1, $3) } -; -clty_longident: - LIDENT { Lident $1 } - | mod_ext_longident DOT LIDENT { Ldot($1, $3) } -; -class_longident: - LIDENT { Lident $1 } - | mod_longident DOT LIDENT { Ldot($1, $3) } -; -any_longident: - val_ident { Lident $1 } - | mod_ext_longident DOT val_ident { Ldot ($1, $3) } - | mod_ext_longident { $1 } - | LBRACKET RBRACKET { Lident "[]" } - | LPAREN RPAREN { Lident "()" } - | FALSE { Lident "false" } - | TRUE { Lident "true" } - -/* Toplevel directives */ - -toplevel_directive: - SHARP ident { Ptop_dir($2, Pdir_none) } - | SHARP ident STRING { Ptop_dir($2, Pdir_string $3) } - | SHARP ident INT { Ptop_dir($2, Pdir_int $3) } - | SHARP ident val_longident { Ptop_dir($2, Pdir_ident $3) } - | SHARP ident FALSE { Ptop_dir($2, Pdir_bool false) } - | SHARP ident TRUE { Ptop_dir($2, Pdir_bool true) } -; - -/* Miscellaneous */ - -name_tag: - BACKQUOTE ident { $2 } -; -rec_flag: - /* empty */ { Nonrecursive } - | REC { Recursive } -; -direction_flag: - TO { Upto } - | DOWNTO { Downto } -; -private_flag: - /* empty */ { Public } - | PRIVATE { Private } -; -mutable_flag: - /* empty */ { Immutable } - | MUTABLE { Mutable } -; -virtual_flag: - /* empty */ { Concrete } - | VIRTUAL { Virtual } -; -override_flag: - /* empty */ { Fresh } - | BANG { Override } -; -opt_bar: - /* empty */ { () } - | BAR { () } -; -opt_semi: - | /* empty */ { () } - | SEMI { () } -; -subtractive: - | MINUS { "-" } - | MINUSDOT { "-." } -; -additive: - | PLUS { "+" } - | PLUSDOT { "+." } -; -%% diff --git a/parsing/parser.output b/parsing/parser.output deleted file mode 100644 index be55054928..0000000000 --- a/parsing/parser.output +++ /dev/null @@ -1,24313 +0,0 @@ - 0 $accept : %entry% $end - - 1 implementation : structure EOF - - 2 interface : signature EOF - - 3 toplevel_phrase : top_structure SEMISEMI - 4 | seq_expr SEMISEMI - 5 | toplevel_directive SEMISEMI - 6 | EOF - - 7 top_structure : structure_item - 8 | structure_item top_structure - - 9 use_file : use_file_tail - 10 | seq_expr use_file_tail - - 11 use_file_tail : EOF - 12 | SEMISEMI EOF - 13 | SEMISEMI seq_expr use_file_tail - 14 | SEMISEMI structure_item use_file_tail - 15 | SEMISEMI toplevel_directive use_file_tail - 16 | structure_item use_file_tail - 17 | toplevel_directive use_file_tail - - 18 module_expr : mod_longident - 19 | STRUCT structure END - 20 | STRUCT structure error - 21 | FUNCTOR LPAREN UIDENT COLON module_type RPAREN MINUSGREATER module_expr - 22 | module_expr LPAREN module_expr RPAREN - 23 | module_expr LPAREN module_expr error - 24 | LPAREN module_expr COLON module_type RPAREN - 25 | LPAREN module_expr COLON module_type error - 26 | LPAREN module_expr RPAREN - 27 | LPAREN module_expr error - 28 | LPAREN VAL expr RPAREN - 29 | LPAREN VAL expr COLON package_type RPAREN - 30 | LPAREN VAL expr COLON package_type COLONGREATER package_type RPAREN - 31 | LPAREN VAL expr COLONGREATER package_type RPAREN - 32 | LPAREN VAL expr COLON error - 33 | LPAREN VAL expr COLONGREATER error - 34 | LPAREN VAL expr error - - 35 structure : structure_tail - 36 | seq_expr structure_tail - - 37 structure_tail : - 38 | SEMISEMI - 39 | SEMISEMI seq_expr structure_tail - 40 | SEMISEMI structure_item structure_tail - 41 | structure_item structure_tail - - 42 structure_item : LET rec_flag let_bindings - 43 | EXTERNAL val_ident COLON core_type EQUAL primitive_declaration - 44 | TYPE type_declarations - 45 | EXCEPTION UIDENT constructor_arguments - 46 | EXCEPTION UIDENT EQUAL constr_longident - 47 | MODULE UIDENT module_binding - 48 | MODULE REC module_rec_bindings - 49 | MODULE TYPE ident EQUAL module_type - 50 | OPEN mod_longident - 51 | CLASS class_declarations - 52 | CLASS TYPE class_type_declarations - 53 | INCLUDE module_expr - - 54 module_binding : EQUAL module_expr - 55 | COLON module_type EQUAL module_expr - 56 | LPAREN UIDENT COLON module_type RPAREN module_binding - - 57 module_rec_bindings : module_rec_binding - 58 | module_rec_bindings AND module_rec_binding - - 59 module_rec_binding : UIDENT COLON module_type EQUAL module_expr - - 60 module_type : mty_longident - 61 | SIG signature END - 62 | SIG signature error - 63 | FUNCTOR LPAREN UIDENT COLON module_type RPAREN MINUSGREATER module_type - 64 | module_type WITH with_constraints - 65 | MODULE TYPE OF module_expr - 66 | LPAREN module_type RPAREN - 67 | LPAREN module_type error - - 68 signature : - 69 | signature signature_item - 70 | signature signature_item SEMISEMI - - 71 signature_item : VAL val_ident COLON core_type - 72 | EXTERNAL val_ident COLON core_type EQUAL primitive_declaration - 73 | TYPE type_declarations - 74 | EXCEPTION UIDENT constructor_arguments - 75 | MODULE UIDENT module_declaration - 76 | MODULE REC module_rec_declarations - 77 | MODULE TYPE ident - 78 | MODULE TYPE ident EQUAL module_type - 79 | OPEN mod_longident - 80 | INCLUDE module_type - 81 | CLASS class_descriptions - 82 | CLASS TYPE class_type_declarations - - 83 module_declaration : COLON module_type - 84 | LPAREN UIDENT COLON module_type RPAREN module_declaration - - 85 module_rec_declarations : module_rec_declaration - 86 | module_rec_declarations AND module_rec_declaration - - 87 module_rec_declaration : UIDENT COLON module_type - - 88 class_declarations : class_declarations AND class_declaration - 89 | class_declaration - - 90 class_declaration : virtual_flag class_type_parameters LIDENT class_fun_binding - - 91 class_fun_binding : EQUAL class_expr - 92 | COLON class_type EQUAL class_expr - 93 | labeled_simple_pattern class_fun_binding - - 94 class_type_parameters : - 95 | LBRACKET type_parameter_list RBRACKET - - 96 class_fun_def : labeled_simple_pattern MINUSGREATER class_expr - 97 | labeled_simple_pattern class_fun_def - - 98 class_expr : class_simple_expr - 99 | FUN class_fun_def - 100 | class_simple_expr simple_labeled_expr_list - 101 | LET rec_flag let_bindings IN class_expr - - 102 class_simple_expr : LBRACKET core_type_comma_list RBRACKET class_longident - 103 | class_longident - 104 | OBJECT class_structure END - 105 | OBJECT class_structure error - 106 | LPAREN class_expr COLON class_type RPAREN - 107 | LPAREN class_expr COLON class_type error - 108 | LPAREN class_expr RPAREN - 109 | LPAREN class_expr error - - 110 class_structure : class_self_pattern class_fields - - 111 class_self_pattern : LPAREN pattern RPAREN - 112 | LPAREN pattern COLON core_type RPAREN - 113 | - - 114 class_fields : - 115 | class_fields class_field - - 116 class_field : INHERIT override_flag class_expr parent_binder - 117 | VAL virtual_value - 118 | VAL value - 119 | virtual_method - 120 | concrete_method - 121 | CONSTRAINT constrain_field - 122 | INITIALIZER seq_expr - - 123 parent_binder : AS LIDENT - 124 | - - 125 virtual_value : override_flag MUTABLE VIRTUAL label COLON core_type - 126 | VIRTUAL mutable_flag label COLON core_type - - 127 value : override_flag mutable_flag label EQUAL seq_expr - 128 | override_flag mutable_flag label type_constraint EQUAL seq_expr - - 129 virtual_method : METHOD override_flag PRIVATE VIRTUAL label COLON poly_type - 130 | METHOD override_flag VIRTUAL private_flag label COLON poly_type - - 131 concrete_method : METHOD override_flag private_flag label strict_binding - 132 | METHOD override_flag private_flag label COLON poly_type EQUAL seq_expr - 133 | METHOD override_flag private_flag label COLON TYPE lident_list DOT core_type EQUAL seq_expr - - 134 class_type : class_signature - 135 | QUESTION LIDENT COLON simple_core_type_or_tuple MINUSGREATER class_type - 136 | OPTLABEL simple_core_type_or_tuple MINUSGREATER class_type - 137 | LIDENT COLON simple_core_type_or_tuple MINUSGREATER class_type - 138 | simple_core_type_or_tuple MINUSGREATER class_type - - 139 class_signature : LBRACKET core_type_comma_list RBRACKET clty_longident - 140 | clty_longident - 141 | OBJECT class_sig_body END - 142 | OBJECT class_sig_body error - - 143 class_sig_body : class_self_type class_sig_fields - - 144 class_self_type : LPAREN core_type RPAREN - 145 | - - 146 class_sig_fields : - 147 | class_sig_fields class_sig_field - - 148 class_sig_field : INHERIT class_signature - 149 | VAL value_type - 150 | virtual_method_type - 151 | method_type - 152 | CONSTRAINT constrain_field - - 153 value_type : VIRTUAL mutable_flag label COLON core_type - 154 | MUTABLE virtual_flag label COLON core_type - 155 | label COLON core_type - - 156 method_type : METHOD private_flag label COLON poly_type - - 157 virtual_method_type : METHOD PRIVATE VIRTUAL label COLON poly_type - 158 | METHOD VIRTUAL private_flag label COLON poly_type - - 159 constrain : core_type EQUAL core_type - - 160 constrain_field : core_type EQUAL core_type - - 161 class_descriptions : class_descriptions AND class_description - 162 | class_description - - 163 class_description : virtual_flag class_type_parameters LIDENT COLON class_type - - 164 class_type_declarations : class_type_declarations AND class_type_declaration - 165 | class_type_declaration - - 166 class_type_declaration : virtual_flag class_type_parameters LIDENT EQUAL class_signature - - 167 seq_expr : expr - 168 | expr SEMI - 169 | expr SEMI seq_expr - - 170 labeled_simple_pattern : QUESTION LPAREN label_let_pattern opt_default RPAREN - 171 | QUESTION label_var - 172 | OPTLABEL LPAREN let_pattern opt_default RPAREN - 173 | OPTLABEL pattern_var - 174 | TILDE LPAREN label_let_pattern RPAREN - 175 | TILDE label_var - 176 | LABEL simple_pattern - 177 | simple_pattern - - 178 pattern_var : LIDENT - 179 | UNDERSCORE - - 180 opt_default : - 181 | EQUAL seq_expr - - 182 label_let_pattern : label_var - 183 | label_var COLON core_type - - 184 label_var : LIDENT - - 185 let_pattern : pattern - 186 | pattern COLON core_type - - 187 expr : simple_expr - 188 | simple_expr simple_labeled_expr_list - 189 | LET rec_flag let_bindings IN seq_expr - 190 | LET MODULE UIDENT module_binding IN seq_expr - 191 | LET OPEN mod_longident IN seq_expr - 192 | FUNCTION opt_bar match_cases - 193 | FUN labeled_simple_pattern fun_def - 194 | FUN LPAREN TYPE LIDENT RPAREN fun_def - 195 | MATCH seq_expr WITH opt_bar match_cases - 196 | TRY seq_expr WITH opt_bar match_cases - 197 | TRY seq_expr WITH error - 198 | expr_comma_list - 199 | constr_longident simple_expr - 200 | name_tag simple_expr - 201 | IF seq_expr THEN expr ELSE expr - 202 | IF seq_expr THEN expr - 203 | WHILE seq_expr DO seq_expr DONE - 204 | FOR val_ident EQUAL seq_expr direction_flag seq_expr DO seq_expr DONE - 205 | expr COLONCOLON expr - 206 | LPAREN COLONCOLON RPAREN LPAREN expr COMMA expr RPAREN - 207 | expr INFIXOP0 expr - 208 | expr INFIXOP1 expr - 209 | expr INFIXOP2 expr - 210 | expr INFIXOP3 expr - 211 | expr INFIXOP4 expr - 212 | expr PLUS expr - 213 | expr PLUSDOT expr - 214 | expr MINUS expr - 215 | expr MINUSDOT expr - 216 | expr STAR expr - 217 | expr EQUAL expr - 218 | expr LESS expr - 219 | expr GREATER expr - 220 | expr OR expr - 221 | expr BARBAR expr - 222 | expr AMPERSAND expr - 223 | expr AMPERAMPER expr - 224 | expr COLONEQUAL expr - 225 | subtractive expr - 226 | additive expr - 227 | simple_expr DOT label_longident LESSMINUS expr - 228 | simple_expr DOT LPAREN seq_expr RPAREN LESSMINUS expr - 229 | simple_expr DOT LBRACKET seq_expr RBRACKET LESSMINUS expr - 230 | simple_expr DOT LBRACE expr RBRACE LESSMINUS expr - 231 | label LESSMINUS expr - 232 | ASSERT simple_expr - 233 | LAZY simple_expr - 234 | OBJECT class_structure END - 235 | OBJECT class_structure error - - 236 simple_expr : val_longident - 237 | constant - 238 | constr_longident - 239 | name_tag - 240 | LPAREN seq_expr RPAREN - 241 | LPAREN seq_expr error - 242 | BEGIN seq_expr END - 243 | BEGIN END - 244 | BEGIN seq_expr error - 245 | LPAREN seq_expr type_constraint RPAREN - 246 | simple_expr DOT label_longident - 247 | mod_longident DOT LPAREN seq_expr RPAREN - 248 | mod_longident DOT LPAREN seq_expr error - 249 | simple_expr DOT LPAREN seq_expr RPAREN - 250 | simple_expr DOT LPAREN seq_expr error - 251 | simple_expr DOT LBRACKET seq_expr RBRACKET - 252 | simple_expr DOT LBRACKET seq_expr error - 253 | simple_expr DOT LBRACE expr RBRACE - 254 | simple_expr DOT LBRACE expr_comma_list error - 255 | LBRACE record_expr RBRACE - 256 | LBRACE record_expr error - 257 | LBRACKETBAR expr_semi_list opt_semi BARRBRACKET - 258 | LBRACKETBAR expr_semi_list opt_semi error - 259 | LBRACKETBAR BARRBRACKET - 260 | LBRACKET expr_semi_list opt_semi RBRACKET - 261 | LBRACKET expr_semi_list opt_semi error - 262 | PREFIXOP simple_expr - 263 | BANG simple_expr - 264 | NEW class_longident - 265 | LBRACELESS field_expr_list opt_semi GREATERRBRACE - 266 | LBRACELESS field_expr_list opt_semi error - 267 | LBRACELESS GREATERRBRACE - 268 | simple_expr SHARP label - 269 | LPAREN MODULE module_expr RPAREN - 270 | LPAREN MODULE module_expr COLON package_type RPAREN - 271 | LPAREN MODULE module_expr COLON error - - 272 simple_labeled_expr_list : labeled_simple_expr - 273 | simple_labeled_expr_list labeled_simple_expr - - 274 labeled_simple_expr : simple_expr - 275 | label_expr - - 276 label_expr : LABEL simple_expr - 277 | TILDE label_ident - 278 | QUESTION label_ident - 279 | OPTLABEL simple_expr - - 280 label_ident : LIDENT - - 281 let_bindings : let_binding - 282 | let_bindings AND let_binding - - 283 lident_list : LIDENT - 284 | LIDENT lident_list - - 285 let_binding : val_ident fun_binding - 286 | val_ident COLON typevar_list DOT core_type EQUAL seq_expr - 287 | val_ident COLON TYPE lident_list DOT core_type EQUAL seq_expr - 288 | pattern EQUAL seq_expr - - 289 fun_binding : strict_binding - 290 | type_constraint EQUAL seq_expr - - 291 strict_binding : EQUAL seq_expr - 292 | labeled_simple_pattern fun_binding - 293 | LPAREN TYPE LIDENT RPAREN fun_binding - - 294 match_cases : pattern match_action - 295 | match_cases BAR pattern match_action - - 296 fun_def : match_action - 297 | labeled_simple_pattern fun_def - 298 | LPAREN TYPE LIDENT RPAREN fun_def - - 299 match_action : MINUSGREATER seq_expr - 300 | WHEN seq_expr MINUSGREATER seq_expr - - 301 expr_comma_list : expr_comma_list COMMA expr - 302 | expr COMMA expr - - 303 record_expr : simple_expr WITH lbl_expr_list - 304 | lbl_expr_list - - 305 lbl_expr_list : lbl_expr - 306 | lbl_expr SEMI lbl_expr_list - 307 | lbl_expr SEMI - - 308 lbl_expr : label_longident EQUAL expr - 309 | label_longident - - 310 field_expr_list : label EQUAL expr - 311 | field_expr_list SEMI label EQUAL expr - - 312 expr_semi_list : expr - 313 | expr_semi_list SEMI expr - - 314 type_constraint : COLON core_type - 315 | COLON core_type COLONGREATER core_type - 316 | COLONGREATER core_type - 317 | COLON error - 318 | COLONGREATER error - - 319 pattern : simple_pattern - 320 | pattern AS val_ident - 321 | pattern_comma_list - 322 | constr_longident pattern - 323 | name_tag pattern - 324 | pattern COLONCOLON pattern - 325 | LPAREN COLONCOLON RPAREN LPAREN pattern COMMA pattern RPAREN - 326 | pattern BAR pattern - 327 | LAZY simple_pattern - - 328 simple_pattern : val_ident - 329 | UNDERSCORE - 330 | signed_constant - 331 | CHAR DOTDOT CHAR - 332 | constr_longident - 333 | name_tag - 334 | SHARP type_longident - 335 | LBRACE lbl_pattern_list RBRACE - 336 | LBRACE lbl_pattern_list error - 337 | LBRACKET pattern_semi_list opt_semi RBRACKET - 338 | LBRACKET pattern_semi_list opt_semi error - 339 | LBRACKETBAR pattern_semi_list opt_semi BARRBRACKET - 340 | LBRACKETBAR BARRBRACKET - 341 | LBRACKETBAR pattern_semi_list opt_semi error - 342 | LPAREN pattern RPAREN - 343 | LPAREN pattern error - 344 | LPAREN pattern COLON core_type RPAREN - 345 | LPAREN pattern COLON core_type error - 346 | LPAREN MODULE UIDENT RPAREN - 347 | LPAREN MODULE UIDENT COLON package_type RPAREN - 348 | LPAREN MODULE UIDENT COLON package_type error - - 349 pattern_comma_list : pattern_comma_list COMMA pattern - 350 | pattern COMMA pattern - - 351 pattern_semi_list : pattern - 352 | pattern_semi_list SEMI pattern - - 353 lbl_pattern_list : lbl_pattern - 354 | lbl_pattern SEMI - 355 | lbl_pattern SEMI UNDERSCORE opt_semi - 356 | lbl_pattern SEMI lbl_pattern_list - - 357 lbl_pattern : label_longident EQUAL pattern - 358 | label_longident - - 359 primitive_declaration : STRING - 360 | STRING primitive_declaration - - 361 type_declarations : type_declaration - 362 | type_declarations AND type_declaration - - 363 type_declaration : optional_type_parameters LIDENT type_kind constraints - - 364 constraints : constraints CONSTRAINT constrain - 365 | - - 366 type_kind : - 367 | EQUAL core_type - 368 | EQUAL PRIVATE core_type - 369 | EQUAL constructor_declarations - 370 | EQUAL PRIVATE constructor_declarations - 371 | EQUAL private_flag BAR constructor_declarations - 372 | EQUAL private_flag LBRACE label_declarations opt_semi RBRACE - 373 | EQUAL core_type EQUAL private_flag opt_bar constructor_declarations - 374 | EQUAL core_type EQUAL private_flag LBRACE label_declarations opt_semi RBRACE - - 375 optional_type_parameters : - 376 | optional_type_parameter - 377 | LPAREN optional_type_parameter_list RPAREN - - 378 optional_type_parameter : type_variance QUOTE ident - 379 | type_variance UNDERSCORE - - 380 optional_type_parameter_list : optional_type_parameter - 381 | optional_type_parameter_list COMMA optional_type_parameter - - 382 type_parameters : - 383 | type_parameter - 384 | LPAREN type_parameter_list RPAREN - - 385 type_parameter : type_variance QUOTE ident - - 386 type_variance : - 387 | PLUS - 388 | MINUS - - 389 type_parameter_list : type_parameter - 390 | type_parameter_list COMMA type_parameter - - 391 constructor_declarations : constructor_declaration - 392 | constructor_declarations BAR constructor_declaration - - 393 constructor_declaration : constr_ident generalized_constructor_arguments - - 394 constructor_arguments : - 395 | OF core_type_list - - 396 generalized_constructor_arguments : - 397 | OF core_type_list - 398 | COLON core_type_list MINUSGREATER simple_core_type - 399 | COLON simple_core_type - - 400 label_declarations : label_declaration - 401 | label_declarations SEMI label_declaration - - 402 label_declaration : mutable_flag label COLON poly_type - - 403 with_constraints : with_constraint - 404 | with_constraints AND with_constraint - - 405 with_constraint : TYPE type_parameters label_longident with_type_binder core_type constraints - 406 | TYPE type_parameters label_longident COLONEQUAL core_type - 407 | MODULE mod_longident EQUAL mod_ext_longident - 408 | MODULE mod_longident COLONEQUAL mod_ext_longident - - 409 with_type_binder : EQUAL - 410 | EQUAL PRIVATE - - 411 typevar_list : QUOTE ident - 412 | typevar_list QUOTE ident - - 413 poly_type : core_type - 414 | typevar_list DOT core_type - - 415 core_type : core_type2 - 416 | core_type2 AS QUOTE ident - - 417 core_type2 : simple_core_type_or_tuple - 418 | QUESTION LIDENT COLON core_type2 MINUSGREATER core_type2 - 419 | OPTLABEL core_type2 MINUSGREATER core_type2 - 420 | LIDENT COLON core_type2 MINUSGREATER core_type2 - 421 | core_type2 MINUSGREATER core_type2 - - 422 simple_core_type : simple_core_type2 - 423 | LPAREN core_type_comma_list RPAREN - - 424 simple_core_type2 : QUOTE ident - 425 | UNDERSCORE - 426 | type_longident - 427 | simple_core_type2 type_longident - 428 | LPAREN core_type_comma_list RPAREN type_longident - 429 | LESS meth_list GREATER - 430 | LESS GREATER - 431 | SHARP class_longident opt_present - 432 | simple_core_type2 SHARP class_longident opt_present - 433 | LPAREN core_type_comma_list RPAREN SHARP class_longident opt_present - 434 | LBRACKET tag_field RBRACKET - 435 | LBRACKET BAR row_field_list RBRACKET - 436 | LBRACKET row_field BAR row_field_list RBRACKET - 437 | LBRACKETGREATER opt_bar row_field_list RBRACKET - 438 | LBRACKETGREATER RBRACKET - 439 | LBRACKETLESS opt_bar row_field_list RBRACKET - 440 | LBRACKETLESS opt_bar row_field_list GREATER name_tag_list RBRACKET - 441 | LPAREN MODULE package_type RPAREN - - 442 package_type : mty_longident - 443 | mty_longident WITH package_type_cstrs - - 444 package_type_cstr : TYPE label_longident EQUAL core_type - - 445 package_type_cstrs : package_type_cstr - 446 | package_type_cstr AND package_type_cstrs - - 447 row_field_list : row_field - 448 | row_field_list BAR row_field - - 449 row_field : tag_field - 450 | simple_core_type2 - - 451 tag_field : name_tag OF opt_ampersand amper_type_list - 452 | name_tag - - 453 opt_ampersand : AMPERSAND - 454 | - - 455 amper_type_list : core_type - 456 | amper_type_list AMPERSAND core_type - - 457 opt_present : LBRACKETGREATER name_tag_list RBRACKET - 458 | - - 459 name_tag_list : name_tag - 460 | name_tag_list name_tag - - 461 simple_core_type_or_tuple : simple_core_type - 462 | simple_core_type STAR core_type_list - - 463 core_type_comma_list : core_type - 464 | core_type_comma_list COMMA core_type - - 465 core_type_list : simple_core_type - 466 | core_type_list STAR simple_core_type - - 467 meth_list : field SEMI meth_list - 468 | field opt_semi - 469 | DOTDOT - - 470 field : label COLON poly_type - - 471 label : LIDENT - - 472 constant : INT - 473 | CHAR - 474 | STRING - 475 | FLOAT - 476 | INT32 - 477 | INT64 - 478 | NATIVEINT - - 479 signed_constant : constant - 480 | MINUS INT - 481 | MINUS FLOAT - 482 | MINUS INT32 - 483 | MINUS INT64 - 484 | MINUS NATIVEINT - 485 | PLUS INT - 486 | PLUS FLOAT - 487 | PLUS INT32 - 488 | PLUS INT64 - 489 | PLUS NATIVEINT - - 490 ident : UIDENT - 491 | LIDENT - - 492 val_ident : LIDENT - 493 | LPAREN operator RPAREN - - 494 operator : PREFIXOP - 495 | INFIXOP0 - 496 | INFIXOP1 - 497 | INFIXOP2 - 498 | INFIXOP3 - 499 | INFIXOP4 - 500 | BANG - 501 | PLUS - 502 | PLUSDOT - 503 | MINUS - 504 | MINUSDOT - 505 | STAR - 506 | EQUAL - 507 | LESS - 508 | GREATER - 509 | OR - 510 | BARBAR - 511 | AMPERSAND - 512 | AMPERAMPER - 513 | COLONEQUAL - - 514 constr_ident : UIDENT - 515 | LPAREN RPAREN - 516 | COLONCOLON - 517 | FALSE - 518 | TRUE - - 519 val_longident : val_ident - 520 | mod_longident DOT val_ident - - 521 constr_longident : mod_longident - 522 | LBRACKET RBRACKET - 523 | LPAREN RPAREN - 524 | FALSE - 525 | TRUE - - 526 label_longident : LIDENT - 527 | mod_longident DOT LIDENT - - 528 type_longident : LIDENT - 529 | mod_ext_longident DOT LIDENT - - 530 mod_longident : UIDENT - 531 | mod_longident DOT UIDENT - - 532 mod_ext_longident : UIDENT - 533 | mod_ext_longident DOT UIDENT - 534 | mod_ext_longident LPAREN mod_ext_longident RPAREN - - 535 mty_longident : ident - 536 | mod_ext_longident DOT ident - - 537 clty_longident : LIDENT - 538 | mod_ext_longident DOT LIDENT - - 539 class_longident : LIDENT - 540 | mod_longident DOT LIDENT - - 541 any_longident : val_ident - 542 | mod_ext_longident DOT val_ident - 543 | mod_ext_longident - 544 | LBRACKET RBRACKET - 545 | LPAREN RPAREN - 546 | FALSE - 547 | TRUE - - 548 toplevel_directive : SHARP ident - 549 | SHARP ident STRING - 550 | SHARP ident INT - 551 | SHARP ident val_longident - 552 | SHARP ident FALSE - 553 | SHARP ident TRUE - - 554 name_tag : BACKQUOTE ident - - 555 rec_flag : - 556 | REC - - 557 direction_flag : TO - 558 | DOWNTO - - 559 private_flag : - 560 | PRIVATE - - 561 mutable_flag : - 562 | MUTABLE - - 563 virtual_flag : - 564 | VIRTUAL - - 565 override_flag : - 566 | BANG - - 567 opt_bar : - 568 | BAR - - 569 opt_semi : - 570 | SEMI - - 571 subtractive : MINUS - 572 | MINUSDOT - - 573 additive : PLUS - 574 | PLUSDOT - - 575 %entry% : '\001' implementation - 576 | '\002' interface - 577 | '\003' toplevel_phrase - 578 | '\004' use_file - 579 | '\005' any_longident - -state 0 - $accept : . %entry% $end (0) - - '\001' shift 1 - '\002' shift 2 - '\003' shift 3 - '\004' shift 4 - '\005' shift 5 - . error - - %entry% goto 6 - - -state 1 - %entry% : '\001' . implementation (575) - structure_tail : . (37) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - CLASS shift 12 - EXCEPTION shift 13 - EXTERNAL shift 14 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INCLUDE shift 21 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 30 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - MODULE shift 36 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - OPEN shift 40 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - SEMISEMI shift 44 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - TYPE shift 48 - UIDENT shift 49 - WHILE shift 50 - EOF reduce 37 - - implementation goto 51 - structure goto 52 - seq_expr goto 53 - structure_item goto 54 - mod_longident goto 55 - expr goto 56 - structure_tail goto 57 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 2 - %entry% : '\002' . interface (576) - signature : . (68) - - . reduce 68 - - interface goto 68 - signature goto 69 - - -state 3 - %entry% : '\003' . toplevel_phrase (577) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - CLASS shift 12 - EOF shift 70 - EXCEPTION shift 13 - EXTERNAL shift 14 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INCLUDE shift 21 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 30 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - MODULE shift 36 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - OPEN shift 40 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - SHARP shift 71 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - TYPE shift 48 - UIDENT shift 49 - WHILE shift 50 - . error - - toplevel_phrase goto 72 - top_structure goto 73 - seq_expr goto 74 - toplevel_directive goto 75 - structure_item goto 76 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 4 - %entry% : '\004' . use_file (578) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - CLASS shift 12 - EOF shift 77 - EXCEPTION shift 13 - EXTERNAL shift 14 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INCLUDE shift 21 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 30 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - MODULE shift 36 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - OPEN shift 40 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - SEMISEMI shift 78 - SHARP shift 71 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - TYPE shift 48 - UIDENT shift 49 - WHILE shift 50 - . error - - use_file goto 79 - seq_expr goto 80 - toplevel_directive goto 81 - structure_item goto 82 - use_file_tail goto 83 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 5 - %entry% : '\005' . any_longident (579) - - FALSE shift 84 - LBRACKET shift 85 - LIDENT shift 86 - LPAREN shift 87 - TRUE shift 88 - UIDENT shift 89 - . error - - any_longident goto 90 - val_ident goto 91 - mod_ext_longident goto 92 - - -state 6 - $accept : %entry% . $end (0) - - $end accept - - -state 7 - expr : ASSERT . simple_expr (232) - - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LIDENT shift 86 - LPAREN shift 93 - NATIVEINT shift 37 - NEW shift 38 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - . error - - mod_longident goto 55 - val_ident goto 58 - constr_longident goto 94 - simple_expr goto 95 - name_tag goto 96 - val_longident goto 66 - constant goto 67 - - -state 8 - name_tag : BACKQUOTE . ident (554) - - LIDENT shift 97 - UIDENT shift 98 - . error - - ident goto 99 - - -state 9 - simple_expr : BANG . simple_expr (263) - - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LIDENT shift 86 - LPAREN shift 93 - NATIVEINT shift 37 - NEW shift 38 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - . error - - mod_longident goto 55 - val_ident goto 58 - constr_longident goto 94 - simple_expr goto 100 - name_tag goto 96 - val_longident goto 66 - constant goto 67 - - -state 10 - simple_expr : BEGIN . seq_expr END (242) - simple_expr : BEGIN . END (243) - simple_expr : BEGIN . seq_expr error (244) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - END shift 101 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 103 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 11 - constant : CHAR . (473) - - . reduce 473 - - -state 12 - structure_item : CLASS . class_declarations (51) - structure_item : CLASS . TYPE class_type_declarations (52) - virtual_flag : . (563) - - TYPE shift 104 - VIRTUAL shift 105 - LBRACKET reduce 563 - LIDENT reduce 563 - - class_declarations goto 106 - class_declaration goto 107 - virtual_flag goto 108 - - -state 13 - structure_item : EXCEPTION . UIDENT constructor_arguments (45) - structure_item : EXCEPTION . UIDENT EQUAL constr_longident (46) - - UIDENT shift 109 - . error - - -state 14 - structure_item : EXTERNAL . val_ident COLON core_type EQUAL primitive_declaration (43) - - LIDENT shift 86 - LPAREN shift 110 - . error - - val_ident goto 111 - - -state 15 - constr_longident : FALSE . (524) - - . reduce 524 - - -state 16 - constant : FLOAT . (475) - - . reduce 475 - - -state 17 - expr : FOR . val_ident EQUAL seq_expr direction_flag seq_expr DO seq_expr DONE (204) - - LIDENT shift 86 - LPAREN shift 110 - . error - - val_ident goto 112 - - -state 18 - expr : FUN . labeled_simple_pattern fun_def (193) - expr : FUN . LPAREN TYPE LIDENT RPAREN fun_def (194) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 114 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 118 - MINUS shift 119 - NATIVEINT shift 37 - OPTLABEL shift 120 - PLUS shift 121 - QUESTION shift 122 - SHARP shift 123 - STRING shift 45 - TILDE shift 124 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 128 - labeled_simple_pattern goto 129 - simple_pattern goto 130 - name_tag goto 131 - constant goto 132 - signed_constant goto 133 - - -state 19 - expr : FUNCTION . opt_bar match_cases (192) - opt_bar : . (567) - - BAR shift 134 - BACKQUOTE reduce 567 - CHAR reduce 567 - FALSE reduce 567 - FLOAT reduce 567 - INT reduce 567 - INT32 reduce 567 - INT64 reduce 567 - LAZY reduce 567 - LBRACE reduce 567 - LBRACKET reduce 567 - LBRACKETBAR reduce 567 - LIDENT reduce 567 - LPAREN reduce 567 - MINUS reduce 567 - NATIVEINT reduce 567 - PLUS reduce 567 - SHARP reduce 567 - STRING reduce 567 - TRUE reduce 567 - UIDENT reduce 567 - UNDERSCORE reduce 567 - - opt_bar goto 135 - - -state 20 - expr : IF . seq_expr THEN expr ELSE expr (201) - expr : IF . seq_expr THEN expr (202) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 136 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 21 - structure_item : INCLUDE . module_expr (53) - - FUNCTOR shift 137 - LPAREN shift 138 - STRUCT shift 139 - UIDENT shift 49 - . error - - module_expr goto 140 - mod_longident goto 141 - - -state 22 - constant : INT . (472) - - . reduce 472 - - -state 23 - constant : INT32 . (476) - - . reduce 476 - - -state 24 - constant : INT64 . (477) - - . reduce 477 - - -state 25 - expr : LAZY . simple_expr (233) - - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LIDENT shift 86 - LPAREN shift 93 - NATIVEINT shift 37 - NEW shift 38 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - . error - - mod_longident goto 55 - val_ident goto 58 - constr_longident goto 94 - simple_expr goto 142 - name_tag goto 96 - val_longident goto 66 - constant goto 67 - - -state 26 - simple_expr : LBRACE . record_expr RBRACE (255) - simple_expr : LBRACE . record_expr error (256) - - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LIDENT shift 143 - LPAREN shift 93 - NATIVEINT shift 37 - NEW shift 38 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - . error - - mod_longident goto 144 - val_ident goto 58 - constr_longident goto 94 - simple_expr goto 145 - name_tag goto 96 - label_longident goto 146 - val_longident goto 66 - constant goto 67 - record_expr goto 147 - lbl_expr_list goto 148 - lbl_expr goto 149 - - -state 27 - simple_expr : LBRACELESS . field_expr_list opt_semi GREATERRBRACE (265) - simple_expr : LBRACELESS . field_expr_list opt_semi error (266) - simple_expr : LBRACELESS . GREATERRBRACE (267) - - GREATERRBRACE shift 150 - LIDENT shift 151 - . error - - label goto 152 - field_expr_list goto 153 - - -state 28 - simple_expr : LBRACKET . expr_semi_list opt_semi RBRACKET (260) - simple_expr : LBRACKET . expr_semi_list opt_semi error (261) - constr_longident : LBRACKET . RBRACKET (522) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - RBRACKET shift 154 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 155 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - expr_semi_list goto 156 - - -state 29 - simple_expr : LBRACKETBAR . expr_semi_list opt_semi BARRBRACKET (257) - simple_expr : LBRACKETBAR . expr_semi_list opt_semi error (258) - simple_expr : LBRACKETBAR . BARRBRACKET (259) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BARRBRACKET shift 157 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 155 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - expr_semi_list goto 158 - - -state 30 - structure_item : LET . rec_flag let_bindings (42) - expr : LET . rec_flag let_bindings IN seq_expr (189) - expr : LET . MODULE UIDENT module_binding IN seq_expr (190) - expr : LET . OPEN mod_longident IN seq_expr (191) - rec_flag : . (555) - - MODULE shift 159 - OPEN shift 160 - REC shift 161 - BACKQUOTE reduce 555 - CHAR reduce 555 - FALSE reduce 555 - FLOAT reduce 555 - INT reduce 555 - INT32 reduce 555 - INT64 reduce 555 - LAZY reduce 555 - LBRACE reduce 555 - LBRACKET reduce 555 - LBRACKETBAR reduce 555 - LIDENT reduce 555 - LPAREN reduce 555 - MINUS reduce 555 - NATIVEINT reduce 555 - PLUS reduce 555 - SHARP reduce 555 - STRING reduce 555 - TRUE reduce 555 - UIDENT reduce 555 - UNDERSCORE reduce 555 - - rec_flag goto 162 - - -state 31 - label : LIDENT . (471) - val_ident : LIDENT . (492) - - error reduce 492 - AMPERAMPER reduce 492 - AMPERSAND reduce 492 - AND reduce 492 - BACKQUOTE reduce 492 - BANG reduce 492 - BAR reduce 492 - BARBAR reduce 492 - BARRBRACKET reduce 492 - BEGIN reduce 492 - CHAR reduce 492 - CLASS reduce 492 - COLON reduce 492 - COLONCOLON reduce 492 - COLONEQUAL reduce 492 - COLONGREATER reduce 492 - COMMA reduce 492 - CONSTRAINT reduce 492 - DO reduce 492 - DONE reduce 492 - DOT reduce 492 - DOWNTO reduce 492 - ELSE reduce 492 - END reduce 492 - EOF reduce 492 - EQUAL reduce 492 - EXCEPTION reduce 492 - EXTERNAL reduce 492 - FALSE reduce 492 - FLOAT reduce 492 - GREATER reduce 492 - GREATERRBRACE reduce 492 - IN reduce 492 - INCLUDE reduce 492 - INFIXOP0 reduce 492 - INFIXOP1 reduce 492 - INFIXOP2 reduce 492 - INFIXOP3 reduce 492 - INFIXOP4 reduce 492 - INHERIT reduce 492 - INITIALIZER reduce 492 - INT reduce 492 - INT32 reduce 492 - INT64 reduce 492 - LABEL reduce 492 - LBRACE reduce 492 - LBRACELESS reduce 492 - LBRACKET reduce 492 - LBRACKETBAR reduce 492 - LESS reduce 492 - LESSMINUS reduce 471 - LET reduce 492 - LIDENT reduce 492 - LPAREN reduce 492 - METHOD reduce 492 - MINUS reduce 492 - MINUSDOT reduce 492 - MINUSGREATER reduce 492 - MODULE reduce 492 - NATIVEINT reduce 492 - NEW reduce 492 - OPEN reduce 492 - OPTLABEL reduce 492 - OR reduce 492 - PLUS reduce 492 - PLUSDOT reduce 492 - PREFIXOP reduce 492 - QUESTION reduce 492 - RBRACE reduce 492 - RBRACKET reduce 492 - RPAREN reduce 492 - SEMI reduce 492 - SEMISEMI reduce 492 - SHARP reduce 492 - STAR reduce 492 - STRING reduce 492 - THEN reduce 492 - TILDE reduce 492 - TO reduce 492 - TRUE reduce 492 - TYPE reduce 492 - UIDENT reduce 492 - VAL reduce 492 - WITH reduce 492 - - -state 32 - expr : LPAREN . COLONCOLON RPAREN LPAREN expr COMMA expr RPAREN (206) - simple_expr : LPAREN . seq_expr RPAREN (240) - simple_expr : LPAREN . seq_expr error (241) - simple_expr : LPAREN . seq_expr type_constraint RPAREN (245) - simple_expr : LPAREN . MODULE module_expr RPAREN (269) - simple_expr : LPAREN . MODULE module_expr COLON package_type RPAREN (270) - simple_expr : LPAREN . MODULE module_expr COLON error (271) - val_ident : LPAREN . operator RPAREN (493) - constr_longident : LPAREN . RPAREN (523) - - AMPERAMPER shift 163 - AMPERSAND shift 164 - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 165 - BARBAR shift 166 - BEGIN shift 10 - CHAR shift 11 - COLONCOLON shift 167 - COLONEQUAL shift 168 - EQUAL shift 169 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - GREATER shift 170 - IF shift 20 - INFIXOP0 shift 171 - INFIXOP1 shift 172 - INFIXOP2 shift 173 - INFIXOP3 shift 174 - INFIXOP4 shift 175 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LESS shift 176 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 177 - MINUSDOT shift 178 - MODULE shift 179 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - OR shift 180 - PLUS shift 181 - PLUSDOT shift 182 - PREFIXOP shift 183 - RPAREN shift 184 - STAR shift 185 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 186 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - operator goto 187 - - -state 33 - expr : MATCH . seq_expr WITH opt_bar match_cases (195) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 188 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 34 - subtractive : MINUS . (571) - - . reduce 571 - - -state 35 - subtractive : MINUSDOT . (572) - - . reduce 572 - - -state 36 - structure_item : MODULE . UIDENT module_binding (47) - structure_item : MODULE . REC module_rec_bindings (48) - structure_item : MODULE . TYPE ident EQUAL module_type (49) - - REC shift 189 - TYPE shift 190 - UIDENT shift 191 - . error - - -state 37 - constant : NATIVEINT . (478) - - . reduce 478 - - -state 38 - simple_expr : NEW . class_longident (264) - - LIDENT shift 192 - UIDENT shift 49 - . error - - mod_longident goto 193 - class_longident goto 194 - - -state 39 - expr : OBJECT . class_structure END (234) - expr : OBJECT . class_structure error (235) - class_self_pattern : . (113) - - LPAREN shift 195 - error reduce 113 - CONSTRAINT reduce 113 - END reduce 113 - INHERIT reduce 113 - INITIALIZER reduce 113 - METHOD reduce 113 - VAL reduce 113 - - class_structure goto 196 - class_self_pattern goto 197 - - -state 40 - structure_item : OPEN . mod_longident (50) - - UIDENT shift 49 - . error - - mod_longident goto 198 - - -state 41 - additive : PLUS . (573) - - . reduce 573 - - -state 42 - additive : PLUSDOT . (574) - - . reduce 574 - - -state 43 - simple_expr : PREFIXOP . simple_expr (262) - - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LIDENT shift 86 - LPAREN shift 93 - NATIVEINT shift 37 - NEW shift 38 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - . error - - mod_longident goto 55 - val_ident goto 58 - constr_longident goto 94 - simple_expr goto 199 - name_tag goto 96 - val_longident goto 66 - constant goto 67 - - -state 44 - structure_tail : SEMISEMI . (38) - structure_tail : SEMISEMI . seq_expr structure_tail (39) - structure_tail : SEMISEMI . structure_item structure_tail (40) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - CLASS shift 12 - EXCEPTION shift 13 - EXTERNAL shift 14 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INCLUDE shift 21 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 30 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - MODULE shift 36 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - OPEN shift 40 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - TYPE shift 48 - UIDENT shift 49 - WHILE shift 50 - error reduce 38 - END reduce 38 - EOF reduce 38 - - seq_expr goto 200 - structure_item goto 201 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 45 - constant : STRING . (474) - - . reduce 474 - - -state 46 - constr_longident : TRUE . (525) - - . reduce 525 - - -state 47 - expr : TRY . seq_expr WITH opt_bar match_cases (196) - expr : TRY . seq_expr WITH error (197) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 202 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 48 - structure_item : TYPE . type_declarations (44) - optional_type_parameters : . (375) - type_variance : . (386) - - LPAREN shift 203 - MINUS shift 204 - PLUS shift 205 - LIDENT reduce 375 - QUOTE reduce 386 - UNDERSCORE reduce 386 - - type_declarations goto 206 - type_declaration goto 207 - optional_type_parameters goto 208 - optional_type_parameter goto 209 - type_variance goto 210 - - -state 49 - mod_longident : UIDENT . (530) - - . reduce 530 - - -state 50 - expr : WHILE . seq_expr DO seq_expr DONE (203) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 211 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 51 - %entry% : '\001' implementation . (575) - - . reduce 575 - - -state 52 - implementation : structure . EOF (1) - - EOF shift 212 - . error - - -state 53 - structure : seq_expr . structure_tail (36) - structure_tail : . (37) - - CLASS shift 12 - EXCEPTION shift 13 - EXTERNAL shift 14 - INCLUDE shift 21 - LET shift 213 - MODULE shift 36 - OPEN shift 40 - SEMISEMI shift 44 - TYPE shift 48 - error reduce 37 - END reduce 37 - EOF reduce 37 - - structure_item goto 54 - structure_tail goto 214 - - -state 54 - structure_tail : structure_item . structure_tail (41) - structure_tail : . (37) - - CLASS shift 12 - EXCEPTION shift 13 - EXTERNAL shift 14 - INCLUDE shift 21 - LET shift 213 - MODULE shift 36 - OPEN shift 40 - SEMISEMI shift 44 - TYPE shift 48 - error reduce 37 - END reduce 37 - EOF reduce 37 - - structure_item goto 54 - structure_tail goto 215 - - -state 55 - simple_expr : mod_longident . DOT LPAREN seq_expr RPAREN (247) - simple_expr : mod_longident . DOT LPAREN seq_expr error (248) - val_longident : mod_longident . DOT val_ident (520) - constr_longident : mod_longident . (521) - mod_longident : mod_longident . DOT UIDENT (531) - - DOT shift 216 - error reduce 521 - AMPERAMPER reduce 521 - AMPERSAND reduce 521 - AND reduce 521 - AS reduce 521 - BACKQUOTE reduce 521 - BANG reduce 521 - BAR reduce 521 - BARBAR reduce 521 - BARRBRACKET reduce 521 - BEGIN reduce 521 - CHAR reduce 521 - CLASS reduce 521 - COLON reduce 521 - COLONCOLON reduce 521 - COLONEQUAL reduce 521 - COLONGREATER reduce 521 - COMMA reduce 521 - CONSTRAINT reduce 521 - DO reduce 521 - DONE reduce 521 - DOWNTO reduce 521 - ELSE reduce 521 - END reduce 521 - EOF reduce 521 - EQUAL reduce 521 - EXCEPTION reduce 521 - EXTERNAL reduce 521 - FALSE reduce 521 - FLOAT reduce 521 - GREATER reduce 521 - GREATERRBRACE reduce 521 - IN reduce 521 - INCLUDE reduce 521 - INFIXOP0 reduce 521 - INFIXOP1 reduce 521 - INFIXOP2 reduce 521 - INFIXOP3 reduce 521 - INFIXOP4 reduce 521 - INHERIT reduce 521 - INITIALIZER reduce 521 - INT reduce 521 - INT32 reduce 521 - INT64 reduce 521 - LABEL reduce 521 - LBRACE reduce 521 - LBRACELESS reduce 521 - LBRACKET reduce 521 - LBRACKETBAR reduce 521 - LESS reduce 521 - LET reduce 521 - LIDENT reduce 521 - LPAREN reduce 521 - METHOD reduce 521 - MINUS reduce 521 - MINUSDOT reduce 521 - MINUSGREATER reduce 521 - MODULE reduce 521 - NATIVEINT reduce 521 - NEW reduce 521 - OPEN reduce 521 - OPTLABEL reduce 521 - OR reduce 521 - PLUS reduce 521 - PLUSDOT reduce 521 - PREFIXOP reduce 521 - QUESTION reduce 521 - RBRACE reduce 521 - RBRACKET reduce 521 - RPAREN reduce 521 - SEMI reduce 521 - SEMISEMI reduce 521 - SHARP reduce 521 - STAR reduce 521 - STRING reduce 521 - THEN reduce 521 - TILDE reduce 521 - TO reduce 521 - TRUE reduce 521 - TYPE reduce 521 - UIDENT reduce 521 - VAL reduce 521 - WITH reduce 521 - - -state 56 - seq_expr : expr . (167) - seq_expr : expr . SEMI (168) - seq_expr : expr . SEMI seq_expr (169) - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - SEMI shift 236 - STAR shift 237 - error reduce 167 - AND reduce 167 - BAR reduce 167 - BARRBRACKET reduce 167 - CLASS reduce 167 - COLON reduce 167 - COLONGREATER reduce 167 - CONSTRAINT reduce 167 - DO reduce 167 - DONE reduce 167 - DOWNTO reduce 167 - ELSE reduce 167 - END reduce 167 - EOF reduce 167 - EXCEPTION reduce 167 - EXTERNAL reduce 167 - GREATERRBRACE reduce 167 - IN reduce 167 - INCLUDE reduce 167 - INHERIT reduce 167 - INITIALIZER reduce 167 - LET reduce 167 - METHOD reduce 167 - MINUSGREATER reduce 167 - MODULE reduce 167 - OPEN reduce 167 - RBRACE reduce 167 - RBRACKET reduce 167 - RPAREN reduce 167 - SEMISEMI reduce 167 - SHARP reduce 167 - THEN reduce 167 - TO reduce 167 - TYPE reduce 167 - VAL reduce 167 - WITH reduce 167 - - -state 57 - structure : structure_tail . (35) - - . reduce 35 - - -state 58 - val_longident : val_ident . (519) - - . reduce 519 - - -state 59 - expr : constr_longident . simple_expr (199) - simple_expr : constr_longident . (238) - - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LIDENT shift 86 - LPAREN shift 93 - NATIVEINT shift 37 - NEW shift 38 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - error reduce 238 - AMPERAMPER reduce 238 - AMPERSAND reduce 238 - AND reduce 238 - BAR reduce 238 - BARBAR reduce 238 - BARRBRACKET reduce 238 - CLASS reduce 238 - COLON reduce 238 - COLONCOLON reduce 238 - COLONEQUAL reduce 238 - COLONGREATER reduce 238 - COMMA reduce 238 - CONSTRAINT reduce 238 - DO reduce 238 - DONE reduce 238 - DOT reduce 238 - DOWNTO reduce 238 - ELSE reduce 238 - END reduce 238 - EOF reduce 238 - EQUAL reduce 238 - EXCEPTION reduce 238 - EXTERNAL reduce 238 - GREATER reduce 238 - GREATERRBRACE reduce 238 - IN reduce 238 - INCLUDE reduce 238 - INFIXOP0 reduce 238 - INFIXOP1 reduce 238 - INFIXOP2 reduce 238 - INFIXOP3 reduce 238 - INFIXOP4 reduce 238 - INHERIT reduce 238 - INITIALIZER reduce 238 - LABEL reduce 238 - LESS reduce 238 - LET reduce 238 - METHOD reduce 238 - MINUS reduce 238 - MINUSDOT reduce 238 - MINUSGREATER reduce 238 - MODULE reduce 238 - OPEN reduce 238 - OPTLABEL reduce 238 - OR reduce 238 - PLUS reduce 238 - PLUSDOT reduce 238 - QUESTION reduce 238 - RBRACE reduce 238 - RBRACKET reduce 238 - RPAREN reduce 238 - SEMI reduce 238 - SEMISEMI reduce 238 - SHARP reduce 238 - STAR reduce 238 - THEN reduce 238 - TILDE reduce 238 - TO reduce 238 - TYPE reduce 238 - VAL reduce 238 - WITH reduce 238 - - mod_longident goto 55 - val_ident goto 58 - constr_longident goto 94 - simple_expr goto 238 - name_tag goto 96 - val_longident goto 66 - constant goto 67 - - -state 60 - expr : label . LESSMINUS expr (231) - - LESSMINUS shift 239 - . error - - -state 61 - expr : simple_expr . (187) - expr : simple_expr . simple_labeled_expr_list (188) - expr : simple_expr . DOT label_longident LESSMINUS expr (227) - expr : simple_expr . DOT LPAREN seq_expr RPAREN LESSMINUS expr (228) - expr : simple_expr . DOT LBRACKET seq_expr RBRACKET LESSMINUS expr (229) - expr : simple_expr . DOT LBRACE expr RBRACE LESSMINUS expr (230) - simple_expr : simple_expr . DOT label_longident (246) - simple_expr : simple_expr . DOT LPAREN seq_expr RPAREN (249) - simple_expr : simple_expr . DOT LPAREN seq_expr error (250) - simple_expr : simple_expr . DOT LBRACKET seq_expr RBRACKET (251) - simple_expr : simple_expr . DOT LBRACKET seq_expr error (252) - simple_expr : simple_expr . DOT LBRACE expr RBRACE (253) - simple_expr : simple_expr . DOT LBRACE expr_comma_list error (254) - simple_expr : simple_expr . SHARP label (268) - - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - DOT shift 240 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 241 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LIDENT shift 86 - LPAREN shift 93 - NATIVEINT shift 37 - NEW shift 38 - OPTLABEL shift 242 - PREFIXOP shift 43 - QUESTION shift 243 - SHARP shift 244 - STRING shift 45 - TILDE shift 245 - TRUE shift 46 - UIDENT shift 49 - error reduce 187 - AMPERAMPER reduce 187 - AMPERSAND reduce 187 - AND reduce 187 - BAR reduce 187 - BARBAR reduce 187 - BARRBRACKET reduce 187 - CLASS reduce 187 - COLON reduce 187 - COLONCOLON reduce 187 - COLONEQUAL reduce 187 - COLONGREATER reduce 187 - COMMA reduce 187 - CONSTRAINT reduce 187 - DO reduce 187 - DONE reduce 187 - DOWNTO reduce 187 - ELSE reduce 187 - END reduce 187 - EOF reduce 187 - EQUAL reduce 187 - EXCEPTION reduce 187 - EXTERNAL reduce 187 - GREATER reduce 187 - GREATERRBRACE reduce 187 - IN reduce 187 - INCLUDE reduce 187 - INFIXOP0 reduce 187 - INFIXOP1 reduce 187 - INFIXOP2 reduce 187 - INFIXOP3 reduce 187 - INFIXOP4 reduce 187 - INHERIT reduce 187 - INITIALIZER reduce 187 - LESS reduce 187 - LET reduce 187 - METHOD reduce 187 - MINUS reduce 187 - MINUSDOT reduce 187 - MINUSGREATER reduce 187 - MODULE reduce 187 - OPEN reduce 187 - OR reduce 187 - PLUS reduce 187 - PLUSDOT reduce 187 - RBRACE reduce 187 - RBRACKET reduce 187 - RPAREN reduce 187 - SEMI reduce 187 - SEMISEMI reduce 187 - STAR reduce 187 - THEN reduce 187 - TO reduce 187 - TYPE reduce 187 - VAL reduce 187 - WITH reduce 187 - - mod_longident goto 55 - val_ident goto 58 - constr_longident goto 94 - simple_labeled_expr_list goto 246 - simple_expr goto 247 - name_tag goto 96 - val_longident goto 66 - constant goto 67 - labeled_simple_expr goto 248 - label_expr goto 249 - - -state 62 - expr : expr_comma_list . (198) - expr_comma_list : expr_comma_list . COMMA expr (301) - - COMMA shift 250 - error reduce 198 - AMPERAMPER reduce 198 - AMPERSAND reduce 198 - AND reduce 198 - BAR reduce 198 - BARBAR reduce 198 - BARRBRACKET reduce 198 - CLASS reduce 198 - COLON reduce 198 - COLONCOLON reduce 198 - COLONEQUAL reduce 198 - COLONGREATER reduce 198 - CONSTRAINT reduce 198 - DO reduce 198 - DONE reduce 198 - DOWNTO reduce 198 - ELSE reduce 198 - END reduce 198 - EOF reduce 198 - EQUAL reduce 198 - EXCEPTION reduce 198 - EXTERNAL reduce 198 - GREATER reduce 198 - GREATERRBRACE reduce 198 - IN reduce 198 - INCLUDE reduce 198 - INFIXOP0 reduce 198 - INFIXOP1 reduce 198 - INFIXOP2 reduce 198 - INFIXOP3 reduce 198 - INFIXOP4 reduce 198 - INHERIT reduce 198 - INITIALIZER reduce 198 - LESS reduce 198 - LET reduce 198 - METHOD reduce 198 - MINUS reduce 198 - MINUSDOT reduce 198 - MINUSGREATER reduce 198 - MODULE reduce 198 - OPEN reduce 198 - OR reduce 198 - PLUS reduce 198 - PLUSDOT reduce 198 - RBRACE reduce 198 - RBRACKET reduce 198 - RPAREN reduce 198 - SEMI reduce 198 - SEMISEMI reduce 198 - SHARP reduce 198 - STAR reduce 198 - THEN reduce 198 - TO reduce 198 - TYPE reduce 198 - VAL reduce 198 - WITH reduce 198 - - -state 63 - expr : name_tag . simple_expr (200) - simple_expr : name_tag . (239) - - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LIDENT shift 86 - LPAREN shift 93 - NATIVEINT shift 37 - NEW shift 38 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - error reduce 239 - AMPERAMPER reduce 239 - AMPERSAND reduce 239 - AND reduce 239 - BAR reduce 239 - BARBAR reduce 239 - BARRBRACKET reduce 239 - CLASS reduce 239 - COLON reduce 239 - COLONCOLON reduce 239 - COLONEQUAL reduce 239 - COLONGREATER reduce 239 - COMMA reduce 239 - CONSTRAINT reduce 239 - DO reduce 239 - DONE reduce 239 - DOT reduce 239 - DOWNTO reduce 239 - ELSE reduce 239 - END reduce 239 - EOF reduce 239 - EQUAL reduce 239 - EXCEPTION reduce 239 - EXTERNAL reduce 239 - GREATER reduce 239 - GREATERRBRACE reduce 239 - IN reduce 239 - INCLUDE reduce 239 - INFIXOP0 reduce 239 - INFIXOP1 reduce 239 - INFIXOP2 reduce 239 - INFIXOP3 reduce 239 - INFIXOP4 reduce 239 - INHERIT reduce 239 - INITIALIZER reduce 239 - LABEL reduce 239 - LESS reduce 239 - LET reduce 239 - METHOD reduce 239 - MINUS reduce 239 - MINUSDOT reduce 239 - MINUSGREATER reduce 239 - MODULE reduce 239 - OPEN reduce 239 - OPTLABEL reduce 239 - OR reduce 239 - PLUS reduce 239 - PLUSDOT reduce 239 - QUESTION reduce 239 - RBRACE reduce 239 - RBRACKET reduce 239 - RPAREN reduce 239 - SEMI reduce 239 - SEMISEMI reduce 239 - SHARP reduce 239 - STAR reduce 239 - THEN reduce 239 - TILDE reduce 239 - TO reduce 239 - TYPE reduce 239 - VAL reduce 239 - WITH reduce 239 - - mod_longident goto 55 - val_ident goto 58 - constr_longident goto 94 - simple_expr goto 251 - name_tag goto 96 - val_longident goto 66 - constant goto 67 - - -state 64 - expr : subtractive . expr (225) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 252 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 65 - expr : additive . expr (226) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 253 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 66 - simple_expr : val_longident . (236) - - . reduce 236 - - -state 67 - simple_expr : constant . (237) - - . reduce 237 - - -state 68 - %entry% : '\002' interface . (576) - - . reduce 576 - - -state 69 - interface : signature . EOF (2) - signature : signature . signature_item (69) - signature : signature . signature_item SEMISEMI (70) - - CLASS shift 254 - EOF shift 255 - EXCEPTION shift 256 - EXTERNAL shift 257 - INCLUDE shift 258 - MODULE shift 259 - OPEN shift 260 - TYPE shift 261 - VAL shift 262 - . error - - signature_item goto 263 - - -state 70 - toplevel_phrase : EOF . (6) - - . reduce 6 - - -state 71 - toplevel_directive : SHARP . ident (548) - toplevel_directive : SHARP . ident STRING (549) - toplevel_directive : SHARP . ident INT (550) - toplevel_directive : SHARP . ident val_longident (551) - toplevel_directive : SHARP . ident FALSE (552) - toplevel_directive : SHARP . ident TRUE (553) - - LIDENT shift 97 - UIDENT shift 98 - . error - - ident goto 264 - - -state 72 - %entry% : '\003' toplevel_phrase . (577) - - . reduce 577 - - -state 73 - toplevel_phrase : top_structure . SEMISEMI (3) - - SEMISEMI shift 265 - . error - - -state 74 - toplevel_phrase : seq_expr . SEMISEMI (4) - - SEMISEMI shift 266 - . error - - -state 75 - toplevel_phrase : toplevel_directive . SEMISEMI (5) - - SEMISEMI shift 267 - . error - - -state 76 - top_structure : structure_item . (7) - top_structure : structure_item . top_structure (8) - - CLASS shift 12 - EXCEPTION shift 13 - EXTERNAL shift 14 - INCLUDE shift 21 - LET shift 213 - MODULE shift 36 - OPEN shift 40 - TYPE shift 48 - SEMISEMI reduce 7 - - top_structure goto 268 - structure_item goto 76 - - -state 77 - use_file_tail : EOF . (11) - - . reduce 11 - - -state 78 - use_file_tail : SEMISEMI . EOF (12) - use_file_tail : SEMISEMI . seq_expr use_file_tail (13) - use_file_tail : SEMISEMI . structure_item use_file_tail (14) - use_file_tail : SEMISEMI . toplevel_directive use_file_tail (15) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - CLASS shift 12 - EOF shift 269 - EXCEPTION shift 13 - EXTERNAL shift 14 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INCLUDE shift 21 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 30 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - MODULE shift 36 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - OPEN shift 40 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - SHARP shift 71 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - TYPE shift 48 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 270 - toplevel_directive goto 271 - structure_item goto 272 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 79 - %entry% : '\004' use_file . (578) - - . reduce 578 - - -state 80 - use_file : seq_expr . use_file_tail (10) - - CLASS shift 12 - EOF shift 77 - EXCEPTION shift 13 - EXTERNAL shift 14 - INCLUDE shift 21 - LET shift 213 - MODULE shift 36 - OPEN shift 40 - SEMISEMI shift 78 - SHARP shift 71 - TYPE shift 48 - . error - - toplevel_directive goto 81 - structure_item goto 82 - use_file_tail goto 273 - - -state 81 - use_file_tail : toplevel_directive . use_file_tail (17) - - CLASS shift 12 - EOF shift 77 - EXCEPTION shift 13 - EXTERNAL shift 14 - INCLUDE shift 21 - LET shift 213 - MODULE shift 36 - OPEN shift 40 - SEMISEMI shift 78 - SHARP shift 71 - TYPE shift 48 - . error - - toplevel_directive goto 81 - structure_item goto 82 - use_file_tail goto 274 - - -state 82 - use_file_tail : structure_item . use_file_tail (16) - - CLASS shift 12 - EOF shift 77 - EXCEPTION shift 13 - EXTERNAL shift 14 - INCLUDE shift 21 - LET shift 213 - MODULE shift 36 - OPEN shift 40 - SEMISEMI shift 78 - SHARP shift 71 - TYPE shift 48 - . error - - toplevel_directive goto 81 - structure_item goto 82 - use_file_tail goto 275 - - -state 83 - use_file : use_file_tail . (9) - - . reduce 9 - - -state 84 - any_longident : FALSE . (546) - - . reduce 546 - - -state 85 - any_longident : LBRACKET . RBRACKET (544) - - RBRACKET shift 276 - . error - - -state 86 - val_ident : LIDENT . (492) - - . reduce 492 - - -state 87 - val_ident : LPAREN . operator RPAREN (493) - any_longident : LPAREN . RPAREN (545) - - AMPERAMPER shift 163 - AMPERSAND shift 164 - BANG shift 277 - BARBAR shift 166 - COLONEQUAL shift 168 - EQUAL shift 169 - GREATER shift 170 - INFIXOP0 shift 171 - INFIXOP1 shift 172 - INFIXOP2 shift 173 - INFIXOP3 shift 174 - INFIXOP4 shift 175 - LESS shift 176 - MINUS shift 278 - MINUSDOT shift 279 - OR shift 180 - PLUS shift 280 - PLUSDOT shift 281 - PREFIXOP shift 282 - RPAREN shift 283 - STAR shift 185 - . error - - operator goto 187 - - -state 88 - any_longident : TRUE . (547) - - . reduce 547 - - -state 89 - mod_ext_longident : UIDENT . (532) - - . reduce 532 - - -state 90 - %entry% : '\005' any_longident . (579) - - . reduce 579 - - -state 91 - any_longident : val_ident . (541) - - . reduce 541 - - -state 92 - mod_ext_longident : mod_ext_longident . DOT UIDENT (533) - mod_ext_longident : mod_ext_longident . LPAREN mod_ext_longident RPAREN (534) - any_longident : mod_ext_longident . DOT val_ident (542) - any_longident : mod_ext_longident . (543) - - DOT shift 284 - LPAREN shift 285 - $end reduce 543 - - -state 93 - simple_expr : LPAREN . seq_expr RPAREN (240) - simple_expr : LPAREN . seq_expr error (241) - simple_expr : LPAREN . seq_expr type_constraint RPAREN (245) - simple_expr : LPAREN . MODULE module_expr RPAREN (269) - simple_expr : LPAREN . MODULE module_expr COLON package_type RPAREN (270) - simple_expr : LPAREN . MODULE module_expr COLON error (271) - val_ident : LPAREN . operator RPAREN (493) - constr_longident : LPAREN . RPAREN (523) - - AMPERAMPER shift 163 - AMPERSAND shift 164 - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 165 - BARBAR shift 166 - BEGIN shift 10 - CHAR shift 11 - COLONEQUAL shift 168 - EQUAL shift 169 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - GREATER shift 170 - IF shift 20 - INFIXOP0 shift 171 - INFIXOP1 shift 172 - INFIXOP2 shift 173 - INFIXOP3 shift 174 - INFIXOP4 shift 175 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LESS shift 176 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 177 - MINUSDOT shift 178 - MODULE shift 179 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - OR shift 180 - PLUS shift 181 - PLUSDOT shift 182 - PREFIXOP shift 183 - RPAREN shift 184 - STAR shift 185 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 186 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - operator goto 187 - - -state 94 - simple_expr : constr_longident . (238) - - . reduce 238 - - -state 95 - expr : ASSERT simple_expr . (232) - simple_expr : simple_expr . DOT label_longident (246) - simple_expr : simple_expr . DOT LPAREN seq_expr RPAREN (249) - simple_expr : simple_expr . DOT LPAREN seq_expr error (250) - simple_expr : simple_expr . DOT LBRACKET seq_expr RBRACKET (251) - simple_expr : simple_expr . DOT LBRACKET seq_expr error (252) - simple_expr : simple_expr . DOT LBRACE expr RBRACE (253) - simple_expr : simple_expr . DOT LBRACE expr_comma_list error (254) - simple_expr : simple_expr . SHARP label (268) - - DOT shift 286 - SHARP shift 244 - error reduce 232 - AMPERAMPER reduce 232 - AMPERSAND reduce 232 - AND reduce 232 - BAR reduce 232 - BARBAR reduce 232 - BARRBRACKET reduce 232 - CLASS reduce 232 - COLON reduce 232 - COLONCOLON reduce 232 - COLONEQUAL reduce 232 - COLONGREATER reduce 232 - COMMA reduce 232 - CONSTRAINT reduce 232 - DO reduce 232 - DONE reduce 232 - DOWNTO reduce 232 - ELSE reduce 232 - END reduce 232 - EOF reduce 232 - EQUAL reduce 232 - EXCEPTION reduce 232 - EXTERNAL reduce 232 - GREATER reduce 232 - GREATERRBRACE reduce 232 - IN reduce 232 - INCLUDE reduce 232 - INFIXOP0 reduce 232 - INFIXOP1 reduce 232 - INFIXOP2 reduce 232 - INFIXOP3 reduce 232 - INFIXOP4 reduce 232 - INHERIT reduce 232 - INITIALIZER reduce 232 - LESS reduce 232 - LET reduce 232 - METHOD reduce 232 - MINUS reduce 232 - MINUSDOT reduce 232 - MINUSGREATER reduce 232 - MODULE reduce 232 - OPEN reduce 232 - OR reduce 232 - PLUS reduce 232 - PLUSDOT reduce 232 - RBRACE reduce 232 - RBRACKET reduce 232 - RPAREN reduce 232 - SEMI reduce 232 - SEMISEMI reduce 232 - STAR reduce 232 - THEN reduce 232 - TO reduce 232 - TYPE reduce 232 - VAL reduce 232 - WITH reduce 232 - - -state 96 - simple_expr : name_tag . (239) - - . reduce 239 - - -state 97 - ident : LIDENT . (491) - - . reduce 491 - - -state 98 - ident : UIDENT . (490) - - . reduce 490 - - -state 99 - name_tag : BACKQUOTE ident . (554) - - . reduce 554 - - -state 100 - simple_expr : simple_expr . DOT label_longident (246) - simple_expr : simple_expr . DOT LPAREN seq_expr RPAREN (249) - simple_expr : simple_expr . DOT LPAREN seq_expr error (250) - simple_expr : simple_expr . DOT LBRACKET seq_expr RBRACKET (251) - simple_expr : simple_expr . DOT LBRACKET seq_expr error (252) - simple_expr : simple_expr . DOT LBRACE expr RBRACE (253) - simple_expr : simple_expr . DOT LBRACE expr_comma_list error (254) - simple_expr : BANG simple_expr . (263) - simple_expr : simple_expr . SHARP label (268) - - . reduce 263 - - -state 101 - simple_expr : BEGIN END . (243) - - . reduce 243 - - -state 102 - expr : LET . rec_flag let_bindings IN seq_expr (189) - expr : LET . MODULE UIDENT module_binding IN seq_expr (190) - expr : LET . OPEN mod_longident IN seq_expr (191) - rec_flag : . (555) - - MODULE shift 159 - OPEN shift 160 - REC shift 161 - BACKQUOTE reduce 555 - CHAR reduce 555 - FALSE reduce 555 - FLOAT reduce 555 - INT reduce 555 - INT32 reduce 555 - INT64 reduce 555 - LAZY reduce 555 - LBRACE reduce 555 - LBRACKET reduce 555 - LBRACKETBAR reduce 555 - LIDENT reduce 555 - LPAREN reduce 555 - MINUS reduce 555 - NATIVEINT reduce 555 - PLUS reduce 555 - SHARP reduce 555 - STRING reduce 555 - TRUE reduce 555 - UIDENT reduce 555 - UNDERSCORE reduce 555 - - rec_flag goto 287 - - -state 103 - simple_expr : BEGIN seq_expr . END (242) - simple_expr : BEGIN seq_expr . error (244) - - error shift 288 - END shift 289 - . error - - -state 104 - structure_item : CLASS TYPE . class_type_declarations (52) - virtual_flag : . (563) - - VIRTUAL shift 105 - LBRACKET reduce 563 - LIDENT reduce 563 - - class_type_declarations goto 290 - virtual_flag goto 291 - class_type_declaration goto 292 - - -state 105 - virtual_flag : VIRTUAL . (564) - - . reduce 564 - - -state 106 - structure_item : CLASS class_declarations . (51) - class_declarations : class_declarations . AND class_declaration (88) - - AND shift 293 - error reduce 51 - CLASS reduce 51 - END reduce 51 - EOF reduce 51 - EXCEPTION reduce 51 - EXTERNAL reduce 51 - INCLUDE reduce 51 - LET reduce 51 - MODULE reduce 51 - OPEN reduce 51 - SEMISEMI reduce 51 - SHARP reduce 51 - TYPE reduce 51 - - -state 107 - class_declarations : class_declaration . (89) - - . reduce 89 - - -state 108 - class_declaration : virtual_flag . class_type_parameters LIDENT class_fun_binding (90) - class_type_parameters : . (94) - - LBRACKET shift 294 - LIDENT reduce 94 - - class_type_parameters goto 295 - - -state 109 - structure_item : EXCEPTION UIDENT . constructor_arguments (45) - structure_item : EXCEPTION UIDENT . EQUAL constr_longident (46) - constructor_arguments : . (394) - - EQUAL shift 296 - OF shift 297 - error reduce 394 - CLASS reduce 394 - END reduce 394 - EOF reduce 394 - EXCEPTION reduce 394 - EXTERNAL reduce 394 - INCLUDE reduce 394 - LET reduce 394 - MODULE reduce 394 - OPEN reduce 394 - SEMISEMI reduce 394 - SHARP reduce 394 - TYPE reduce 394 - - constructor_arguments goto 298 - - -state 110 - val_ident : LPAREN . operator RPAREN (493) - - AMPERAMPER shift 163 - AMPERSAND shift 164 - BANG shift 277 - BARBAR shift 166 - COLONEQUAL shift 168 - EQUAL shift 169 - GREATER shift 170 - INFIXOP0 shift 171 - INFIXOP1 shift 172 - INFIXOP2 shift 173 - INFIXOP3 shift 174 - INFIXOP4 shift 175 - LESS shift 176 - MINUS shift 278 - MINUSDOT shift 279 - OR shift 180 - PLUS shift 280 - PLUSDOT shift 281 - PREFIXOP shift 282 - STAR shift 185 - . error - - operator goto 187 - - -state 111 - structure_item : EXTERNAL val_ident . COLON core_type EQUAL primitive_declaration (43) - - COLON shift 299 - . error - - -state 112 - expr : FOR val_ident . EQUAL seq_expr direction_flag seq_expr DO seq_expr DONE (204) - - EQUAL shift 300 - . error - - -state 113 - simple_pattern : CHAR . DOTDOT CHAR (331) - constant : CHAR . (473) - - DOTDOT shift 301 - error reduce 473 - AS reduce 473 - BACKQUOTE reduce 473 - BAR reduce 473 - BARRBRACKET reduce 473 - CHAR reduce 473 - COLON reduce 473 - COLONCOLON reduce 473 - COLONGREATER reduce 473 - COMMA reduce 473 - EQUAL reduce 473 - FALSE reduce 473 - FLOAT reduce 473 - INT reduce 473 - INT32 reduce 473 - INT64 reduce 473 - LABEL reduce 473 - LBRACE reduce 473 - LBRACKET reduce 473 - LBRACKETBAR reduce 473 - LIDENT reduce 473 - LPAREN reduce 473 - MINUS reduce 473 - MINUSGREATER reduce 473 - NATIVEINT reduce 473 - OPTLABEL reduce 473 - PLUS reduce 473 - QUESTION reduce 473 - RBRACE reduce 473 - RBRACKET reduce 473 - RPAREN reduce 473 - SEMI reduce 473 - SHARP reduce 473 - STRING reduce 473 - TILDE reduce 473 - TRUE reduce 473 - UIDENT reduce 473 - UNDERSCORE reduce 473 - WHEN reduce 473 - - -state 114 - labeled_simple_pattern : LABEL . simple_pattern (176) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 302 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 128 - simple_pattern goto 303 - name_tag goto 131 - constant goto 132 - signed_constant goto 133 - - -state 115 - simple_pattern : LBRACE . lbl_pattern_list RBRACE (335) - simple_pattern : LBRACE . lbl_pattern_list error (336) - - LIDENT shift 304 - UIDENT shift 49 - . error - - mod_longident goto 305 - label_longident goto 306 - lbl_pattern_list goto 307 - lbl_pattern goto 308 - - -state 116 - simple_pattern : LBRACKET . pattern_semi_list opt_semi RBRACKET (337) - simple_pattern : LBRACKET . pattern_semi_list opt_semi error (338) - constr_longident : LBRACKET . RBRACKET (522) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - RBRACKET shift 154 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 312 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - pattern_semi_list goto 316 - - -state 117 - simple_pattern : LBRACKETBAR . pattern_semi_list opt_semi BARRBRACKET (339) - simple_pattern : LBRACKETBAR . BARRBRACKET (340) - simple_pattern : LBRACKETBAR . pattern_semi_list opt_semi error (341) - - BACKQUOTE shift 8 - BARRBRACKET shift 317 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 312 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - pattern_semi_list goto 318 - - -state 118 - expr : FUN LPAREN . TYPE LIDENT RPAREN fun_def (194) - simple_pattern : LPAREN . pattern RPAREN (342) - simple_pattern : LPAREN . pattern error (343) - simple_pattern : LPAREN . pattern COLON core_type RPAREN (344) - simple_pattern : LPAREN . pattern COLON core_type error (345) - simple_pattern : LPAREN . MODULE UIDENT RPAREN (346) - simple_pattern : LPAREN . MODULE UIDENT COLON package_type RPAREN (347) - simple_pattern : LPAREN . MODULE UIDENT COLON package_type error (348) - val_ident : LPAREN . operator RPAREN (493) - constr_longident : LPAREN . RPAREN (523) - - AMPERAMPER shift 163 - AMPERSAND shift 164 - BACKQUOTE shift 8 - BANG shift 277 - BARBAR shift 166 - CHAR shift 113 - COLONEQUAL shift 168 - EQUAL shift 169 - FALSE shift 15 - FLOAT shift 16 - GREATER shift 170 - INFIXOP0 shift 171 - INFIXOP1 shift 172 - INFIXOP2 shift 173 - INFIXOP3 shift 174 - INFIXOP4 shift 175 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LESS shift 176 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 319 - MINUSDOT shift 279 - MODULE shift 320 - NATIVEINT shift 37 - OR shift 180 - PLUS shift 321 - PLUSDOT shift 281 - PREFIXOP shift 282 - RPAREN shift 184 - SHARP shift 123 - STAR shift 185 - STRING shift 45 - TRUE shift 46 - TYPE shift 322 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 323 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - operator goto 187 - - -state 119 - signed_constant : MINUS . INT (480) - signed_constant : MINUS . FLOAT (481) - signed_constant : MINUS . INT32 (482) - signed_constant : MINUS . INT64 (483) - signed_constant : MINUS . NATIVEINT (484) - - FLOAT shift 324 - INT shift 325 - INT32 shift 326 - INT64 shift 327 - NATIVEINT shift 328 - . error - - -state 120 - labeled_simple_pattern : OPTLABEL . LPAREN let_pattern opt_default RPAREN (172) - labeled_simple_pattern : OPTLABEL . pattern_var (173) - - LIDENT shift 329 - LPAREN shift 330 - UNDERSCORE shift 331 - . error - - pattern_var goto 332 - - -state 121 - signed_constant : PLUS . INT (485) - signed_constant : PLUS . FLOAT (486) - signed_constant : PLUS . INT32 (487) - signed_constant : PLUS . INT64 (488) - signed_constant : PLUS . NATIVEINT (489) - - FLOAT shift 333 - INT shift 334 - INT32 shift 335 - INT64 shift 336 - NATIVEINT shift 337 - . error - - -state 122 - labeled_simple_pattern : QUESTION . LPAREN label_let_pattern opt_default RPAREN (170) - labeled_simple_pattern : QUESTION . label_var (171) - - LIDENT shift 338 - LPAREN shift 339 - . error - - label_var goto 340 - - -state 123 - simple_pattern : SHARP . type_longident (334) - - LIDENT shift 341 - UIDENT shift 89 - . error - - type_longident goto 342 - mod_ext_longident goto 343 - - -state 124 - labeled_simple_pattern : TILDE . LPAREN label_let_pattern RPAREN (174) - labeled_simple_pattern : TILDE . label_var (175) - - LIDENT shift 338 - LPAREN shift 344 - . error - - label_var goto 345 - - -state 125 - simple_pattern : UNDERSCORE . (329) - - . reduce 329 - - -state 126 - constr_longident : mod_longident . (521) - mod_longident : mod_longident . DOT UIDENT (531) - - DOT shift 346 - error reduce 521 - AS reduce 521 - BACKQUOTE reduce 521 - BAR reduce 521 - BARRBRACKET reduce 521 - CHAR reduce 521 - CLASS reduce 521 - COLON reduce 521 - COLONCOLON reduce 521 - COLONGREATER reduce 521 - COMMA reduce 521 - END reduce 521 - EOF reduce 521 - EQUAL reduce 521 - EXCEPTION reduce 521 - EXTERNAL reduce 521 - FALSE reduce 521 - FLOAT reduce 521 - INCLUDE reduce 521 - INT reduce 521 - INT32 reduce 521 - INT64 reduce 521 - LABEL reduce 521 - LAZY reduce 521 - LBRACE reduce 521 - LBRACKET reduce 521 - LBRACKETBAR reduce 521 - LET reduce 521 - LIDENT reduce 521 - LPAREN reduce 521 - MINUS reduce 521 - MINUSGREATER reduce 521 - MODULE reduce 521 - NATIVEINT reduce 521 - OPEN reduce 521 - OPTLABEL reduce 521 - PLUS reduce 521 - QUESTION reduce 521 - RBRACE reduce 521 - RBRACKET reduce 521 - RPAREN reduce 521 - SEMI reduce 521 - SEMISEMI reduce 521 - SHARP reduce 521 - STRING reduce 521 - TILDE reduce 521 - TRUE reduce 521 - TYPE reduce 521 - UIDENT reduce 521 - UNDERSCORE reduce 521 - WHEN reduce 521 - - -state 127 - simple_pattern : val_ident . (328) - - . reduce 328 - - -state 128 - simple_pattern : constr_longident . (332) - - . reduce 332 - - -state 129 - expr : FUN labeled_simple_pattern . fun_def (193) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 114 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 347 - MINUS shift 119 - MINUSGREATER shift 348 - NATIVEINT shift 37 - OPTLABEL shift 120 - PLUS shift 121 - QUESTION shift 122 - SHARP shift 123 - STRING shift 45 - TILDE shift 124 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - WHEN shift 349 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 128 - labeled_simple_pattern goto 350 - simple_pattern goto 130 - fun_def goto 351 - name_tag goto 131 - constant goto 132 - match_action goto 352 - signed_constant goto 133 - - -state 130 - labeled_simple_pattern : simple_pattern . (177) - - . reduce 177 - - -state 131 - simple_pattern : name_tag . (333) - - . reduce 333 - - -state 132 - signed_constant : constant . (479) - - . reduce 479 - - -state 133 - simple_pattern : signed_constant . (330) - - . reduce 330 - - -state 134 - opt_bar : BAR . (568) - - . reduce 568 - - -state 135 - expr : FUNCTION opt_bar . match_cases (192) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 353 - simple_pattern goto 313 - match_cases goto 354 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 136 - expr : IF seq_expr . THEN expr ELSE expr (201) - expr : IF seq_expr . THEN expr (202) - - THEN shift 355 - . error - - -state 137 - module_expr : FUNCTOR . LPAREN UIDENT COLON module_type RPAREN MINUSGREATER module_expr (21) - - LPAREN shift 356 - . error - - -state 138 - module_expr : LPAREN . module_expr COLON module_type RPAREN (24) - module_expr : LPAREN . module_expr COLON module_type error (25) - module_expr : LPAREN . module_expr RPAREN (26) - module_expr : LPAREN . module_expr error (27) - module_expr : LPAREN . VAL expr RPAREN (28) - module_expr : LPAREN . VAL expr COLON package_type RPAREN (29) - module_expr : LPAREN . VAL expr COLON package_type COLONGREATER package_type RPAREN (30) - module_expr : LPAREN . VAL expr COLONGREATER package_type RPAREN (31) - module_expr : LPAREN . VAL expr COLON error (32) - module_expr : LPAREN . VAL expr COLONGREATER error (33) - module_expr : LPAREN . VAL expr error (34) - - FUNCTOR shift 137 - LPAREN shift 138 - STRUCT shift 139 - UIDENT shift 49 - VAL shift 357 - . error - - module_expr goto 358 - mod_longident goto 141 - - -state 139 - module_expr : STRUCT . structure END (19) - module_expr : STRUCT . structure error (20) - structure_tail : . (37) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - CLASS shift 12 - EXCEPTION shift 13 - EXTERNAL shift 14 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INCLUDE shift 21 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 30 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - MODULE shift 36 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - OPEN shift 40 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - SEMISEMI shift 44 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - TYPE shift 48 - UIDENT shift 49 - WHILE shift 50 - error reduce 37 - END reduce 37 - - structure goto 359 - seq_expr goto 53 - structure_item goto 54 - mod_longident goto 55 - expr goto 56 - structure_tail goto 57 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 140 - module_expr : module_expr . LPAREN module_expr RPAREN (22) - module_expr : module_expr . LPAREN module_expr error (23) - structure_item : INCLUDE module_expr . (53) - - LPAREN shift 360 - error reduce 53 - CLASS reduce 53 - END reduce 53 - EOF reduce 53 - EXCEPTION reduce 53 - EXTERNAL reduce 53 - INCLUDE reduce 53 - LET reduce 53 - MODULE reduce 53 - OPEN reduce 53 - SEMISEMI reduce 53 - SHARP reduce 53 - TYPE reduce 53 - - -state 141 - module_expr : mod_longident . (18) - mod_longident : mod_longident . DOT UIDENT (531) - - DOT shift 346 - error reduce 18 - AND reduce 18 - CLASS reduce 18 - COLON reduce 18 - END reduce 18 - EOF reduce 18 - EQUAL reduce 18 - EXCEPTION reduce 18 - EXTERNAL reduce 18 - IN reduce 18 - INCLUDE reduce 18 - LET reduce 18 - LPAREN reduce 18 - MODULE reduce 18 - OPEN reduce 18 - RPAREN reduce 18 - SEMISEMI reduce 18 - SHARP reduce 18 - TYPE reduce 18 - VAL reduce 18 - WITH reduce 18 - - -state 142 - expr : LAZY simple_expr . (233) - simple_expr : simple_expr . DOT label_longident (246) - simple_expr : simple_expr . DOT LPAREN seq_expr RPAREN (249) - simple_expr : simple_expr . DOT LPAREN seq_expr error (250) - simple_expr : simple_expr . DOT LBRACKET seq_expr RBRACKET (251) - simple_expr : simple_expr . DOT LBRACKET seq_expr error (252) - simple_expr : simple_expr . DOT LBRACE expr RBRACE (253) - simple_expr : simple_expr . DOT LBRACE expr_comma_list error (254) - simple_expr : simple_expr . SHARP label (268) - - DOT shift 286 - SHARP shift 244 - error reduce 233 - AMPERAMPER reduce 233 - AMPERSAND reduce 233 - AND reduce 233 - BAR reduce 233 - BARBAR reduce 233 - BARRBRACKET reduce 233 - CLASS reduce 233 - COLON reduce 233 - COLONCOLON reduce 233 - COLONEQUAL reduce 233 - COLONGREATER reduce 233 - COMMA reduce 233 - CONSTRAINT reduce 233 - DO reduce 233 - DONE reduce 233 - DOWNTO reduce 233 - ELSE reduce 233 - END reduce 233 - EOF reduce 233 - EQUAL reduce 233 - EXCEPTION reduce 233 - EXTERNAL reduce 233 - GREATER reduce 233 - GREATERRBRACE reduce 233 - IN reduce 233 - INCLUDE reduce 233 - INFIXOP0 reduce 233 - INFIXOP1 reduce 233 - INFIXOP2 reduce 233 - INFIXOP3 reduce 233 - INFIXOP4 reduce 233 - INHERIT reduce 233 - INITIALIZER reduce 233 - LESS reduce 233 - LET reduce 233 - METHOD reduce 233 - MINUS reduce 233 - MINUSDOT reduce 233 - MINUSGREATER reduce 233 - MODULE reduce 233 - OPEN reduce 233 - OR reduce 233 - PLUS reduce 233 - PLUSDOT reduce 233 - RBRACE reduce 233 - RBRACKET reduce 233 - RPAREN reduce 233 - SEMI reduce 233 - SEMISEMI reduce 233 - STAR reduce 233 - THEN reduce 233 - TO reduce 233 - TYPE reduce 233 - VAL reduce 233 - WITH reduce 233 - - -state 143 - val_ident : LIDENT . (492) - label_longident : LIDENT . (526) - - error reduce 526 - DOT reduce 492 - EQUAL reduce 526 - RBRACE reduce 526 - SEMI reduce 526 - SHARP reduce 492 - WITH reduce 492 - - -state 144 - simple_expr : mod_longident . DOT LPAREN seq_expr RPAREN (247) - simple_expr : mod_longident . DOT LPAREN seq_expr error (248) - val_longident : mod_longident . DOT val_ident (520) - constr_longident : mod_longident . (521) - label_longident : mod_longident . DOT LIDENT (527) - mod_longident : mod_longident . DOT UIDENT (531) - - DOT shift 361 - SHARP reduce 521 - WITH reduce 521 - - -state 145 - simple_expr : simple_expr . DOT label_longident (246) - simple_expr : simple_expr . DOT LPAREN seq_expr RPAREN (249) - simple_expr : simple_expr . DOT LPAREN seq_expr error (250) - simple_expr : simple_expr . DOT LBRACKET seq_expr RBRACKET (251) - simple_expr : simple_expr . DOT LBRACKET seq_expr error (252) - simple_expr : simple_expr . DOT LBRACE expr RBRACE (253) - simple_expr : simple_expr . DOT LBRACE expr_comma_list error (254) - simple_expr : simple_expr . SHARP label (268) - record_expr : simple_expr . WITH lbl_expr_list (303) - - DOT shift 286 - SHARP shift 244 - WITH shift 362 - . error - - -state 146 - lbl_expr : label_longident . EQUAL expr (308) - lbl_expr : label_longident . (309) - - EQUAL shift 363 - error reduce 309 - RBRACE reduce 309 - SEMI reduce 309 - - -state 147 - simple_expr : LBRACE record_expr . RBRACE (255) - simple_expr : LBRACE record_expr . error (256) - - error shift 364 - RBRACE shift 365 - . error - - -state 148 - record_expr : lbl_expr_list . (304) - - . reduce 304 - - -state 149 - lbl_expr_list : lbl_expr . (305) - lbl_expr_list : lbl_expr . SEMI lbl_expr_list (306) - lbl_expr_list : lbl_expr . SEMI (307) - - SEMI shift 366 - error reduce 305 - RBRACE reduce 305 - - -state 150 - simple_expr : LBRACELESS GREATERRBRACE . (267) - - . reduce 267 - - -state 151 - label : LIDENT . (471) - - . reduce 471 - - -state 152 - field_expr_list : label . EQUAL expr (310) - - EQUAL shift 367 - . error - - -state 153 - simple_expr : LBRACELESS field_expr_list . opt_semi GREATERRBRACE (265) - simple_expr : LBRACELESS field_expr_list . opt_semi error (266) - field_expr_list : field_expr_list . SEMI label EQUAL expr (311) - opt_semi : . (569) - - SEMI shift 368 - error reduce 569 - GREATERRBRACE reduce 569 - - opt_semi goto 369 - - -state 154 - constr_longident : LBRACKET RBRACKET . (522) - - . reduce 522 - - -state 155 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - expr_semi_list : expr . (312) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 312 - BARRBRACKET reduce 312 - RBRACKET reduce 312 - SEMI reduce 312 - - -state 156 - simple_expr : LBRACKET expr_semi_list . opt_semi RBRACKET (260) - simple_expr : LBRACKET expr_semi_list . opt_semi error (261) - expr_semi_list : expr_semi_list . SEMI expr (313) - opt_semi : . (569) - - SEMI shift 370 - error reduce 569 - RBRACKET reduce 569 - - opt_semi goto 371 - - -state 157 - simple_expr : LBRACKETBAR BARRBRACKET . (259) - - . reduce 259 - - -state 158 - simple_expr : LBRACKETBAR expr_semi_list . opt_semi BARRBRACKET (257) - simple_expr : LBRACKETBAR expr_semi_list . opt_semi error (258) - expr_semi_list : expr_semi_list . SEMI expr (313) - opt_semi : . (569) - - SEMI shift 370 - error reduce 569 - BARRBRACKET reduce 569 - - opt_semi goto 372 - - -state 159 - expr : LET MODULE . UIDENT module_binding IN seq_expr (190) - - UIDENT shift 373 - . error - - -state 160 - expr : LET OPEN . mod_longident IN seq_expr (191) - - UIDENT shift 49 - . error - - mod_longident goto 374 - - -state 161 - rec_flag : REC . (556) - - . reduce 556 - - -state 162 - structure_item : LET rec_flag . let_bindings (42) - expr : LET rec_flag . let_bindings IN seq_expr (189) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - let_bindings goto 375 - val_ident goto 376 - constr_longident goto 311 - pattern goto 377 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - let_binding goto 378 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 163 - operator : AMPERAMPER . (512) - - . reduce 512 - - -state 164 - operator : AMPERSAND . (511) - - . reduce 511 - - -state 165 - simple_expr : BANG . simple_expr (263) - operator : BANG . (500) - - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LIDENT shift 86 - LPAREN shift 93 - NATIVEINT shift 37 - NEW shift 38 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - RPAREN reduce 500 - - mod_longident goto 55 - val_ident goto 58 - constr_longident goto 94 - simple_expr goto 100 - name_tag goto 96 - val_longident goto 66 - constant goto 67 - - -state 166 - operator : BARBAR . (510) - - . reduce 510 - - -state 167 - expr : LPAREN COLONCOLON . RPAREN LPAREN expr COMMA expr RPAREN (206) - - RPAREN shift 379 - . error - - -state 168 - operator : COLONEQUAL . (513) - - . reduce 513 - - -state 169 - operator : EQUAL . (506) - - . reduce 506 - - -state 170 - operator : GREATER . (508) - - . reduce 508 - - -state 171 - operator : INFIXOP0 . (495) - - . reduce 495 - - -state 172 - operator : INFIXOP1 . (496) - - . reduce 496 - - -state 173 - operator : INFIXOP2 . (497) - - . reduce 497 - - -state 174 - operator : INFIXOP3 . (498) - - . reduce 498 - - -state 175 - operator : INFIXOP4 . (499) - - . reduce 499 - - -state 176 - operator : LESS . (507) - - . reduce 507 - - -state 177 - operator : MINUS . (503) - subtractive : MINUS . (571) - - ASSERT reduce 571 - BACKQUOTE reduce 571 - BANG reduce 571 - BEGIN reduce 571 - CHAR reduce 571 - FALSE reduce 571 - FLOAT reduce 571 - FOR reduce 571 - FUN reduce 571 - FUNCTION reduce 571 - IF reduce 571 - INT reduce 571 - INT32 reduce 571 - INT64 reduce 571 - LAZY reduce 571 - LBRACE reduce 571 - LBRACELESS reduce 571 - LBRACKET reduce 571 - LBRACKETBAR reduce 571 - LET reduce 571 - LIDENT reduce 571 - LPAREN reduce 571 - MATCH reduce 571 - MINUS reduce 571 - MINUSDOT reduce 571 - NATIVEINT reduce 571 - NEW reduce 571 - OBJECT reduce 571 - PLUS reduce 571 - PLUSDOT reduce 571 - PREFIXOP reduce 571 - RPAREN reduce 503 - STRING reduce 571 - TRUE reduce 571 - TRY reduce 571 - UIDENT reduce 571 - WHILE reduce 571 - - -state 178 - operator : MINUSDOT . (504) - subtractive : MINUSDOT . (572) - - ASSERT reduce 572 - BACKQUOTE reduce 572 - BANG reduce 572 - BEGIN reduce 572 - CHAR reduce 572 - FALSE reduce 572 - FLOAT reduce 572 - FOR reduce 572 - FUN reduce 572 - FUNCTION reduce 572 - IF reduce 572 - INT reduce 572 - INT32 reduce 572 - INT64 reduce 572 - LAZY reduce 572 - LBRACE reduce 572 - LBRACELESS reduce 572 - LBRACKET reduce 572 - LBRACKETBAR reduce 572 - LET reduce 572 - LIDENT reduce 572 - LPAREN reduce 572 - MATCH reduce 572 - MINUS reduce 572 - MINUSDOT reduce 572 - NATIVEINT reduce 572 - NEW reduce 572 - OBJECT reduce 572 - PLUS reduce 572 - PLUSDOT reduce 572 - PREFIXOP reduce 572 - RPAREN reduce 504 - STRING reduce 572 - TRUE reduce 572 - TRY reduce 572 - UIDENT reduce 572 - WHILE reduce 572 - - -state 179 - simple_expr : LPAREN MODULE . module_expr RPAREN (269) - simple_expr : LPAREN MODULE . module_expr COLON package_type RPAREN (270) - simple_expr : LPAREN MODULE . module_expr COLON error (271) - - FUNCTOR shift 137 - LPAREN shift 138 - STRUCT shift 139 - UIDENT shift 49 - . error - - module_expr goto 380 - mod_longident goto 141 - - -state 180 - operator : OR . (509) - - . reduce 509 - - -state 181 - operator : PLUS . (501) - additive : PLUS . (573) - - ASSERT reduce 573 - BACKQUOTE reduce 573 - BANG reduce 573 - BEGIN reduce 573 - CHAR reduce 573 - FALSE reduce 573 - FLOAT reduce 573 - FOR reduce 573 - FUN reduce 573 - FUNCTION reduce 573 - IF reduce 573 - INT reduce 573 - INT32 reduce 573 - INT64 reduce 573 - LAZY reduce 573 - LBRACE reduce 573 - LBRACELESS reduce 573 - LBRACKET reduce 573 - LBRACKETBAR reduce 573 - LET reduce 573 - LIDENT reduce 573 - LPAREN reduce 573 - MATCH reduce 573 - MINUS reduce 573 - MINUSDOT reduce 573 - NATIVEINT reduce 573 - NEW reduce 573 - OBJECT reduce 573 - PLUS reduce 573 - PLUSDOT reduce 573 - PREFIXOP reduce 573 - RPAREN reduce 501 - STRING reduce 573 - TRUE reduce 573 - TRY reduce 573 - UIDENT reduce 573 - WHILE reduce 573 - - -state 182 - operator : PLUSDOT . (502) - additive : PLUSDOT . (574) - - ASSERT reduce 574 - BACKQUOTE reduce 574 - BANG reduce 574 - BEGIN reduce 574 - CHAR reduce 574 - FALSE reduce 574 - FLOAT reduce 574 - FOR reduce 574 - FUN reduce 574 - FUNCTION reduce 574 - IF reduce 574 - INT reduce 574 - INT32 reduce 574 - INT64 reduce 574 - LAZY reduce 574 - LBRACE reduce 574 - LBRACELESS reduce 574 - LBRACKET reduce 574 - LBRACKETBAR reduce 574 - LET reduce 574 - LIDENT reduce 574 - LPAREN reduce 574 - MATCH reduce 574 - MINUS reduce 574 - MINUSDOT reduce 574 - NATIVEINT reduce 574 - NEW reduce 574 - OBJECT reduce 574 - PLUS reduce 574 - PLUSDOT reduce 574 - PREFIXOP reduce 574 - RPAREN reduce 502 - STRING reduce 574 - TRUE reduce 574 - TRY reduce 574 - UIDENT reduce 574 - WHILE reduce 574 - - -state 183 - simple_expr : PREFIXOP . simple_expr (262) - operator : PREFIXOP . (494) - - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LIDENT shift 86 - LPAREN shift 93 - NATIVEINT shift 37 - NEW shift 38 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - RPAREN reduce 494 - - mod_longident goto 55 - val_ident goto 58 - constr_longident goto 94 - simple_expr goto 199 - name_tag goto 96 - val_longident goto 66 - constant goto 67 - - -state 184 - constr_longident : LPAREN RPAREN . (523) - - . reduce 523 - - -state 185 - operator : STAR . (505) - - . reduce 505 - - -state 186 - simple_expr : LPAREN seq_expr . RPAREN (240) - simple_expr : LPAREN seq_expr . error (241) - simple_expr : LPAREN seq_expr . type_constraint RPAREN (245) - - error shift 381 - COLON shift 382 - COLONGREATER shift 383 - RPAREN shift 384 - . error - - type_constraint goto 385 - - -state 187 - val_ident : LPAREN operator . RPAREN (493) - - RPAREN shift 386 - . error - - -state 188 - expr : MATCH seq_expr . WITH opt_bar match_cases (195) - - WITH shift 387 - . error - - -state 189 - structure_item : MODULE REC . module_rec_bindings (48) - - UIDENT shift 388 - . error - - module_rec_bindings goto 389 - module_rec_binding goto 390 - - -state 190 - structure_item : MODULE TYPE . ident EQUAL module_type (49) - - LIDENT shift 97 - UIDENT shift 98 - . error - - ident goto 391 - - -state 191 - structure_item : MODULE UIDENT . module_binding (47) - - COLON shift 392 - EQUAL shift 393 - LPAREN shift 394 - . error - - module_binding goto 395 - - -state 192 - class_longident : LIDENT . (539) - - . reduce 539 - - -state 193 - mod_longident : mod_longident . DOT UIDENT (531) - class_longident : mod_longident . DOT LIDENT (540) - - DOT shift 396 - . error - - -state 194 - simple_expr : NEW class_longident . (264) - - . reduce 264 - - -state 195 - class_self_pattern : LPAREN . pattern RPAREN (111) - class_self_pattern : LPAREN . pattern COLON core_type RPAREN (112) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 397 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 196 - expr : OBJECT class_structure . END (234) - expr : OBJECT class_structure . error (235) - - error shift 398 - END shift 399 - . error - - -state 197 - class_structure : class_self_pattern . class_fields (110) - class_fields : . (114) - - . reduce 114 - - class_fields goto 400 - - -state 198 - structure_item : OPEN mod_longident . (50) - mod_longident : mod_longident . DOT UIDENT (531) - - DOT shift 346 - error reduce 50 - CLASS reduce 50 - END reduce 50 - EOF reduce 50 - EXCEPTION reduce 50 - EXTERNAL reduce 50 - INCLUDE reduce 50 - LET reduce 50 - MODULE reduce 50 - OPEN reduce 50 - SEMISEMI reduce 50 - SHARP reduce 50 - TYPE reduce 50 - - -state 199 - simple_expr : simple_expr . DOT label_longident (246) - simple_expr : simple_expr . DOT LPAREN seq_expr RPAREN (249) - simple_expr : simple_expr . DOT LPAREN seq_expr error (250) - simple_expr : simple_expr . DOT LBRACKET seq_expr RBRACKET (251) - simple_expr : simple_expr . DOT LBRACKET seq_expr error (252) - simple_expr : simple_expr . DOT LBRACE expr RBRACE (253) - simple_expr : simple_expr . DOT LBRACE expr_comma_list error (254) - simple_expr : PREFIXOP simple_expr . (262) - simple_expr : simple_expr . SHARP label (268) - - . reduce 262 - - -state 200 - structure_tail : SEMISEMI seq_expr . structure_tail (39) - structure_tail : . (37) - - CLASS shift 12 - EXCEPTION shift 13 - EXTERNAL shift 14 - INCLUDE shift 21 - LET shift 213 - MODULE shift 36 - OPEN shift 40 - SEMISEMI shift 44 - TYPE shift 48 - error reduce 37 - END reduce 37 - EOF reduce 37 - - structure_item goto 54 - structure_tail goto 401 - - -state 201 - structure_tail : SEMISEMI structure_item . structure_tail (40) - structure_tail : . (37) - - CLASS shift 12 - EXCEPTION shift 13 - EXTERNAL shift 14 - INCLUDE shift 21 - LET shift 213 - MODULE shift 36 - OPEN shift 40 - SEMISEMI shift 44 - TYPE shift 48 - error reduce 37 - END reduce 37 - EOF reduce 37 - - structure_item goto 54 - structure_tail goto 402 - - -state 202 - expr : TRY seq_expr . WITH opt_bar match_cases (196) - expr : TRY seq_expr . WITH error (197) - - WITH shift 403 - . error - - -state 203 - optional_type_parameters : LPAREN . optional_type_parameter_list RPAREN (377) - type_variance : . (386) - - MINUS shift 204 - PLUS shift 205 - QUOTE reduce 386 - UNDERSCORE reduce 386 - - optional_type_parameter goto 404 - optional_type_parameter_list goto 405 - type_variance goto 210 - - -state 204 - type_variance : MINUS . (388) - - . reduce 388 - - -state 205 - type_variance : PLUS . (387) - - . reduce 387 - - -state 206 - structure_item : TYPE type_declarations . (44) - type_declarations : type_declarations . AND type_declaration (362) - - AND shift 406 - error reduce 44 - CLASS reduce 44 - END reduce 44 - EOF reduce 44 - EXCEPTION reduce 44 - EXTERNAL reduce 44 - INCLUDE reduce 44 - LET reduce 44 - MODULE reduce 44 - OPEN reduce 44 - SEMISEMI reduce 44 - SHARP reduce 44 - TYPE reduce 44 - - -state 207 - type_declarations : type_declaration . (361) - - . reduce 361 - - -state 208 - type_declaration : optional_type_parameters . LIDENT type_kind constraints (363) - - LIDENT shift 407 - . error - - -state 209 - optional_type_parameters : optional_type_parameter . (376) - - . reduce 376 - - -state 210 - optional_type_parameter : type_variance . QUOTE ident (378) - optional_type_parameter : type_variance . UNDERSCORE (379) - - QUOTE shift 408 - UNDERSCORE shift 409 - . error - - -state 211 - expr : WHILE seq_expr . DO seq_expr DONE (203) - - DO shift 410 - . error - - -state 212 - implementation : structure EOF . (1) - - . reduce 1 - - -state 213 - structure_item : LET . rec_flag let_bindings (42) - rec_flag : . (555) - - REC shift 161 - BACKQUOTE reduce 555 - CHAR reduce 555 - FALSE reduce 555 - FLOAT reduce 555 - INT reduce 555 - INT32 reduce 555 - INT64 reduce 555 - LAZY reduce 555 - LBRACE reduce 555 - LBRACKET reduce 555 - LBRACKETBAR reduce 555 - LIDENT reduce 555 - LPAREN reduce 555 - MINUS reduce 555 - NATIVEINT reduce 555 - PLUS reduce 555 - SHARP reduce 555 - STRING reduce 555 - TRUE reduce 555 - UIDENT reduce 555 - UNDERSCORE reduce 555 - - rec_flag goto 411 - - -state 214 - structure : seq_expr structure_tail . (36) - - . reduce 36 - - -state 215 - structure_tail : structure_item structure_tail . (41) - - . reduce 41 - - -state 216 - simple_expr : mod_longident DOT . LPAREN seq_expr RPAREN (247) - simple_expr : mod_longident DOT . LPAREN seq_expr error (248) - val_longident : mod_longident DOT . val_ident (520) - mod_longident : mod_longident DOT . UIDENT (531) - - LIDENT shift 86 - LPAREN shift 412 - UIDENT shift 413 - . error - - val_ident goto 414 - - -state 217 - expr : expr AMPERAMPER . expr (223) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 415 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 218 - expr : expr AMPERSAND . expr (222) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 416 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 219 - expr : expr BARBAR . expr (221) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 417 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 220 - expr : expr COLONCOLON . expr (205) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 418 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 221 - expr : expr COLONEQUAL . expr (224) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 419 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 222 - expr_comma_list : expr COMMA . expr (302) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 420 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 223 - expr : expr EQUAL . expr (217) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 421 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 224 - expr : expr GREATER . expr (219) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 422 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 225 - expr : expr INFIXOP0 . expr (207) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 423 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 226 - expr : expr INFIXOP1 . expr (208) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 424 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 227 - expr : expr INFIXOP2 . expr (209) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 425 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 228 - expr : expr INFIXOP3 . expr (210) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 426 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 229 - expr : expr INFIXOP4 . expr (211) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 427 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 230 - expr : expr LESS . expr (218) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 428 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 231 - expr : expr MINUS . expr (214) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 429 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 232 - expr : expr MINUSDOT . expr (215) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 430 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 233 - expr : expr OR . expr (220) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 431 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 234 - expr : expr PLUS . expr (212) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 432 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 235 - expr : expr PLUSDOT . expr (213) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 433 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 236 - seq_expr : expr SEMI . (168) - seq_expr : expr SEMI . seq_expr (169) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - error reduce 168 - AMPERAMPER reduce 168 - AMPERSAND reduce 168 - AND reduce 168 - BAR reduce 168 - BARBAR reduce 168 - BARRBRACKET reduce 168 - CLASS reduce 168 - COLON reduce 168 - COLONCOLON reduce 168 - COLONEQUAL reduce 168 - COLONGREATER reduce 168 - COMMA reduce 168 - CONSTRAINT reduce 168 - DO reduce 168 - DONE reduce 168 - DOWNTO reduce 168 - ELSE reduce 168 - END reduce 168 - EOF reduce 168 - EQUAL reduce 168 - EXCEPTION reduce 168 - EXTERNAL reduce 168 - GREATER reduce 168 - GREATERRBRACE reduce 168 - IN reduce 168 - INCLUDE reduce 168 - INFIXOP0 reduce 168 - INFIXOP1 reduce 168 - INFIXOP2 reduce 168 - INFIXOP3 reduce 168 - INFIXOP4 reduce 168 - INHERIT reduce 168 - INITIALIZER reduce 168 - LESS reduce 168 - METHOD reduce 168 - MINUSGREATER reduce 168 - MODULE reduce 168 - OPEN reduce 168 - OR reduce 168 - RBRACE reduce 168 - RBRACKET reduce 168 - RPAREN reduce 168 - SEMI reduce 168 - SEMISEMI reduce 168 - SHARP reduce 168 - STAR reduce 168 - THEN reduce 168 - TO reduce 168 - TYPE reduce 168 - VAL reduce 168 - WITH reduce 168 - - seq_expr goto 434 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 237 - expr : expr STAR . expr (216) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 435 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 238 - expr : constr_longident simple_expr . (199) - simple_expr : simple_expr . DOT label_longident (246) - simple_expr : simple_expr . DOT LPAREN seq_expr RPAREN (249) - simple_expr : simple_expr . DOT LPAREN seq_expr error (250) - simple_expr : simple_expr . DOT LBRACKET seq_expr RBRACKET (251) - simple_expr : simple_expr . DOT LBRACKET seq_expr error (252) - simple_expr : simple_expr . DOT LBRACE expr RBRACE (253) - simple_expr : simple_expr . DOT LBRACE expr_comma_list error (254) - simple_expr : simple_expr . SHARP label (268) - - DOT shift 286 - SHARP shift 244 - error reduce 199 - AMPERAMPER reduce 199 - AMPERSAND reduce 199 - AND reduce 199 - BAR reduce 199 - BARBAR reduce 199 - BARRBRACKET reduce 199 - CLASS reduce 199 - COLON reduce 199 - COLONCOLON reduce 199 - COLONEQUAL reduce 199 - COLONGREATER reduce 199 - COMMA reduce 199 - CONSTRAINT reduce 199 - DO reduce 199 - DONE reduce 199 - DOWNTO reduce 199 - ELSE reduce 199 - END reduce 199 - EOF reduce 199 - EQUAL reduce 199 - EXCEPTION reduce 199 - EXTERNAL reduce 199 - GREATER reduce 199 - GREATERRBRACE reduce 199 - IN reduce 199 - INCLUDE reduce 199 - INFIXOP0 reduce 199 - INFIXOP1 reduce 199 - INFIXOP2 reduce 199 - INFIXOP3 reduce 199 - INFIXOP4 reduce 199 - INHERIT reduce 199 - INITIALIZER reduce 199 - LESS reduce 199 - LET reduce 199 - METHOD reduce 199 - MINUS reduce 199 - MINUSDOT reduce 199 - MINUSGREATER reduce 199 - MODULE reduce 199 - OPEN reduce 199 - OR reduce 199 - PLUS reduce 199 - PLUSDOT reduce 199 - RBRACE reduce 199 - RBRACKET reduce 199 - RPAREN reduce 199 - SEMI reduce 199 - SEMISEMI reduce 199 - STAR reduce 199 - THEN reduce 199 - TO reduce 199 - TYPE reduce 199 - VAL reduce 199 - WITH reduce 199 - - -state 239 - expr : label LESSMINUS . expr (231) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 436 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 240 - expr : simple_expr DOT . label_longident LESSMINUS expr (227) - expr : simple_expr DOT . LPAREN seq_expr RPAREN LESSMINUS expr (228) - expr : simple_expr DOT . LBRACKET seq_expr RBRACKET LESSMINUS expr (229) - expr : simple_expr DOT . LBRACE expr RBRACE LESSMINUS expr (230) - simple_expr : simple_expr DOT . label_longident (246) - simple_expr : simple_expr DOT . LPAREN seq_expr RPAREN (249) - simple_expr : simple_expr DOT . LPAREN seq_expr error (250) - simple_expr : simple_expr DOT . LBRACKET seq_expr RBRACKET (251) - simple_expr : simple_expr DOT . LBRACKET seq_expr error (252) - simple_expr : simple_expr DOT . LBRACE expr RBRACE (253) - simple_expr : simple_expr DOT . LBRACE expr_comma_list error (254) - - LBRACE shift 437 - LBRACKET shift 438 - LIDENT shift 304 - LPAREN shift 439 - UIDENT shift 49 - . error - - mod_longident goto 305 - label_longident goto 440 - - -state 241 - label_expr : LABEL . simple_expr (276) - - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LIDENT shift 86 - LPAREN shift 93 - NATIVEINT shift 37 - NEW shift 38 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - . error - - mod_longident goto 55 - val_ident goto 58 - constr_longident goto 94 - simple_expr goto 441 - name_tag goto 96 - val_longident goto 66 - constant goto 67 - - -state 242 - label_expr : OPTLABEL . simple_expr (279) - - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LIDENT shift 86 - LPAREN shift 93 - NATIVEINT shift 37 - NEW shift 38 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - . error - - mod_longident goto 55 - val_ident goto 58 - constr_longident goto 94 - simple_expr goto 442 - name_tag goto 96 - val_longident goto 66 - constant goto 67 - - -state 243 - label_expr : QUESTION . label_ident (278) - - LIDENT shift 443 - . error - - label_ident goto 444 - - -state 244 - simple_expr : simple_expr SHARP . label (268) - - LIDENT shift 151 - . error - - label goto 445 - - -state 245 - label_expr : TILDE . label_ident (277) - - LIDENT shift 443 - . error - - label_ident goto 446 - - -state 246 - expr : simple_expr simple_labeled_expr_list . (188) - simple_labeled_expr_list : simple_labeled_expr_list . labeled_simple_expr (273) - - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 241 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LIDENT shift 86 - LPAREN shift 93 - NATIVEINT shift 37 - NEW shift 38 - OPTLABEL shift 242 - PREFIXOP shift 43 - QUESTION shift 243 - STRING shift 45 - TILDE shift 245 - TRUE shift 46 - UIDENT shift 49 - error reduce 188 - AMPERAMPER reduce 188 - AMPERSAND reduce 188 - AND reduce 188 - BAR reduce 188 - BARBAR reduce 188 - BARRBRACKET reduce 188 - CLASS reduce 188 - COLON reduce 188 - COLONCOLON reduce 188 - COLONEQUAL reduce 188 - COLONGREATER reduce 188 - COMMA reduce 188 - CONSTRAINT reduce 188 - DO reduce 188 - DONE reduce 188 - DOWNTO reduce 188 - ELSE reduce 188 - END reduce 188 - EOF reduce 188 - EQUAL reduce 188 - EXCEPTION reduce 188 - EXTERNAL reduce 188 - GREATER reduce 188 - GREATERRBRACE reduce 188 - IN reduce 188 - INCLUDE reduce 188 - INFIXOP0 reduce 188 - INFIXOP1 reduce 188 - INFIXOP2 reduce 188 - INFIXOP3 reduce 188 - INFIXOP4 reduce 188 - INHERIT reduce 188 - INITIALIZER reduce 188 - LESS reduce 188 - LET reduce 188 - METHOD reduce 188 - MINUS reduce 188 - MINUSDOT reduce 188 - MINUSGREATER reduce 188 - MODULE reduce 188 - OPEN reduce 188 - OR reduce 188 - PLUS reduce 188 - PLUSDOT reduce 188 - RBRACE reduce 188 - RBRACKET reduce 188 - RPAREN reduce 188 - SEMI reduce 188 - SEMISEMI reduce 188 - SHARP reduce 188 - STAR reduce 188 - THEN reduce 188 - TO reduce 188 - TYPE reduce 188 - VAL reduce 188 - WITH reduce 188 - - mod_longident goto 55 - val_ident goto 58 - constr_longident goto 94 - simple_expr goto 247 - name_tag goto 96 - val_longident goto 66 - constant goto 67 - labeled_simple_expr goto 447 - label_expr goto 249 - - -state 247 - simple_expr : simple_expr . DOT label_longident (246) - simple_expr : simple_expr . DOT LPAREN seq_expr RPAREN (249) - simple_expr : simple_expr . DOT LPAREN seq_expr error (250) - simple_expr : simple_expr . DOT LBRACKET seq_expr RBRACKET (251) - simple_expr : simple_expr . DOT LBRACKET seq_expr error (252) - simple_expr : simple_expr . DOT LBRACE expr RBRACE (253) - simple_expr : simple_expr . DOT LBRACE expr_comma_list error (254) - simple_expr : simple_expr . SHARP label (268) - labeled_simple_expr : simple_expr . (274) - - DOT shift 286 - SHARP shift 244 - error reduce 274 - AMPERAMPER reduce 274 - AMPERSAND reduce 274 - AND reduce 274 - AS reduce 274 - BACKQUOTE reduce 274 - BANG reduce 274 - BAR reduce 274 - BARBAR reduce 274 - BARRBRACKET reduce 274 - BEGIN reduce 274 - CHAR reduce 274 - CLASS reduce 274 - COLON reduce 274 - COLONCOLON reduce 274 - COLONEQUAL reduce 274 - COLONGREATER reduce 274 - COMMA reduce 274 - CONSTRAINT reduce 274 - DO reduce 274 - DONE reduce 274 - DOWNTO reduce 274 - ELSE reduce 274 - END reduce 274 - EOF reduce 274 - EQUAL reduce 274 - EXCEPTION reduce 274 - EXTERNAL reduce 274 - FALSE reduce 274 - FLOAT reduce 274 - GREATER reduce 274 - GREATERRBRACE reduce 274 - IN reduce 274 - INCLUDE reduce 274 - INFIXOP0 reduce 274 - INFIXOP1 reduce 274 - INFIXOP2 reduce 274 - INFIXOP3 reduce 274 - INFIXOP4 reduce 274 - INHERIT reduce 274 - INITIALIZER reduce 274 - INT reduce 274 - INT32 reduce 274 - INT64 reduce 274 - LABEL reduce 274 - LBRACE reduce 274 - LBRACELESS reduce 274 - LBRACKET reduce 274 - LBRACKETBAR reduce 274 - LESS reduce 274 - LET reduce 274 - LIDENT reduce 274 - LPAREN reduce 274 - METHOD reduce 274 - MINUS reduce 274 - MINUSDOT reduce 274 - MINUSGREATER reduce 274 - MODULE reduce 274 - NATIVEINT reduce 274 - NEW reduce 274 - OPEN reduce 274 - OPTLABEL reduce 274 - OR reduce 274 - PLUS reduce 274 - PLUSDOT reduce 274 - PREFIXOP reduce 274 - QUESTION reduce 274 - RBRACE reduce 274 - RBRACKET reduce 274 - RPAREN reduce 274 - SEMI reduce 274 - SEMISEMI reduce 274 - STAR reduce 274 - STRING reduce 274 - THEN reduce 274 - TILDE reduce 274 - TO reduce 274 - TRUE reduce 274 - TYPE reduce 274 - UIDENT reduce 274 - VAL reduce 274 - WITH reduce 274 - - -state 248 - simple_labeled_expr_list : labeled_simple_expr . (272) - - . reduce 272 - - -state 249 - labeled_simple_expr : label_expr . (275) - - . reduce 275 - - -state 250 - expr_comma_list : expr_comma_list COMMA . expr (301) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 448 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 251 - expr : name_tag simple_expr . (200) - simple_expr : simple_expr . DOT label_longident (246) - simple_expr : simple_expr . DOT LPAREN seq_expr RPAREN (249) - simple_expr : simple_expr . DOT LPAREN seq_expr error (250) - simple_expr : simple_expr . DOT LBRACKET seq_expr RBRACKET (251) - simple_expr : simple_expr . DOT LBRACKET seq_expr error (252) - simple_expr : simple_expr . DOT LBRACE expr RBRACE (253) - simple_expr : simple_expr . DOT LBRACE expr_comma_list error (254) - simple_expr : simple_expr . SHARP label (268) - - DOT shift 286 - SHARP shift 244 - error reduce 200 - AMPERAMPER reduce 200 - AMPERSAND reduce 200 - AND reduce 200 - BAR reduce 200 - BARBAR reduce 200 - BARRBRACKET reduce 200 - CLASS reduce 200 - COLON reduce 200 - COLONCOLON reduce 200 - COLONEQUAL reduce 200 - COLONGREATER reduce 200 - COMMA reduce 200 - CONSTRAINT reduce 200 - DO reduce 200 - DONE reduce 200 - DOWNTO reduce 200 - ELSE reduce 200 - END reduce 200 - EOF reduce 200 - EQUAL reduce 200 - EXCEPTION reduce 200 - EXTERNAL reduce 200 - GREATER reduce 200 - GREATERRBRACE reduce 200 - IN reduce 200 - INCLUDE reduce 200 - INFIXOP0 reduce 200 - INFIXOP1 reduce 200 - INFIXOP2 reduce 200 - INFIXOP3 reduce 200 - INFIXOP4 reduce 200 - INHERIT reduce 200 - INITIALIZER reduce 200 - LESS reduce 200 - LET reduce 200 - METHOD reduce 200 - MINUS reduce 200 - MINUSDOT reduce 200 - MINUSGREATER reduce 200 - MODULE reduce 200 - OPEN reduce 200 - OR reduce 200 - PLUS reduce 200 - PLUSDOT reduce 200 - RBRACE reduce 200 - RBRACKET reduce 200 - RPAREN reduce 200 - SEMI reduce 200 - SEMISEMI reduce 200 - STAR reduce 200 - THEN reduce 200 - TO reduce 200 - TYPE reduce 200 - VAL reduce 200 - WITH reduce 200 - - -state 252 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr : subtractive expr . (225) - expr_comma_list : expr . COMMA expr (302) - - . reduce 225 - - -state 253 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr : additive expr . (226) - expr_comma_list : expr . COMMA expr (302) - - . reduce 226 - - -state 254 - signature_item : CLASS . class_descriptions (81) - signature_item : CLASS . TYPE class_type_declarations (82) - virtual_flag : . (563) - - TYPE shift 449 - VIRTUAL shift 105 - LBRACKET reduce 563 - LIDENT reduce 563 - - class_descriptions goto 450 - virtual_flag goto 451 - class_description goto 452 - - -state 255 - interface : signature EOF . (2) - - . reduce 2 - - -state 256 - signature_item : EXCEPTION . UIDENT constructor_arguments (74) - - UIDENT shift 453 - . error - - -state 257 - signature_item : EXTERNAL . val_ident COLON core_type EQUAL primitive_declaration (72) - - LIDENT shift 86 - LPAREN shift 110 - . error - - val_ident goto 454 - - -state 258 - signature_item : INCLUDE . module_type (80) - - FUNCTOR shift 455 - LIDENT shift 97 - LPAREN shift 456 - MODULE shift 457 - SIG shift 458 - UIDENT shift 459 - . error - - module_type goto 460 - ident goto 461 - mty_longident goto 462 - mod_ext_longident goto 463 - - -state 259 - signature_item : MODULE . UIDENT module_declaration (75) - signature_item : MODULE . REC module_rec_declarations (76) - signature_item : MODULE . TYPE ident (77) - signature_item : MODULE . TYPE ident EQUAL module_type (78) - - REC shift 464 - TYPE shift 465 - UIDENT shift 466 - . error - - -state 260 - signature_item : OPEN . mod_longident (79) - - UIDENT shift 49 - . error - - mod_longident goto 467 - - -state 261 - signature_item : TYPE . type_declarations (73) - optional_type_parameters : . (375) - type_variance : . (386) - - LPAREN shift 203 - MINUS shift 204 - PLUS shift 205 - LIDENT reduce 375 - QUOTE reduce 386 - UNDERSCORE reduce 386 - - type_declarations goto 468 - type_declaration goto 207 - optional_type_parameters goto 208 - optional_type_parameter goto 209 - type_variance goto 210 - - -state 262 - signature_item : VAL . val_ident COLON core_type (71) - - LIDENT shift 86 - LPAREN shift 110 - . error - - val_ident goto 469 - - -state 263 - signature : signature signature_item . (69) - signature : signature signature_item . SEMISEMI (70) - - SEMISEMI shift 470 - error reduce 69 - CLASS reduce 69 - END reduce 69 - EOF reduce 69 - EXCEPTION reduce 69 - EXTERNAL reduce 69 - INCLUDE reduce 69 - MODULE reduce 69 - OPEN reduce 69 - TYPE reduce 69 - VAL reduce 69 - - -state 264 - toplevel_directive : SHARP ident . (548) - toplevel_directive : SHARP ident . STRING (549) - toplevel_directive : SHARP ident . INT (550) - toplevel_directive : SHARP ident . val_longident (551) - toplevel_directive : SHARP ident . FALSE (552) - toplevel_directive : SHARP ident . TRUE (553) - - FALSE shift 471 - INT shift 472 - LIDENT shift 86 - LPAREN shift 110 - STRING shift 473 - TRUE shift 474 - UIDENT shift 49 - CLASS reduce 548 - EOF reduce 548 - EXCEPTION reduce 548 - EXTERNAL reduce 548 - INCLUDE reduce 548 - LET reduce 548 - MODULE reduce 548 - OPEN reduce 548 - SEMISEMI reduce 548 - SHARP reduce 548 - TYPE reduce 548 - - mod_longident goto 475 - val_ident goto 58 - val_longident goto 476 - - -state 265 - toplevel_phrase : top_structure SEMISEMI . (3) - - . reduce 3 - - -state 266 - toplevel_phrase : seq_expr SEMISEMI . (4) - - . reduce 4 - - -state 267 - toplevel_phrase : toplevel_directive SEMISEMI . (5) - - . reduce 5 - - -state 268 - top_structure : structure_item top_structure . (8) - - . reduce 8 - - -state 269 - use_file_tail : SEMISEMI EOF . (12) - - . reduce 12 - - -state 270 - use_file_tail : SEMISEMI seq_expr . use_file_tail (13) - - CLASS shift 12 - EOF shift 77 - EXCEPTION shift 13 - EXTERNAL shift 14 - INCLUDE shift 21 - LET shift 213 - MODULE shift 36 - OPEN shift 40 - SEMISEMI shift 78 - SHARP shift 71 - TYPE shift 48 - . error - - toplevel_directive goto 81 - structure_item goto 82 - use_file_tail goto 477 - - -state 271 - use_file_tail : SEMISEMI toplevel_directive . use_file_tail (15) - - CLASS shift 12 - EOF shift 77 - EXCEPTION shift 13 - EXTERNAL shift 14 - INCLUDE shift 21 - LET shift 213 - MODULE shift 36 - OPEN shift 40 - SEMISEMI shift 78 - SHARP shift 71 - TYPE shift 48 - . error - - toplevel_directive goto 81 - structure_item goto 82 - use_file_tail goto 478 - - -state 272 - use_file_tail : SEMISEMI structure_item . use_file_tail (14) - - CLASS shift 12 - EOF shift 77 - EXCEPTION shift 13 - EXTERNAL shift 14 - INCLUDE shift 21 - LET shift 213 - MODULE shift 36 - OPEN shift 40 - SEMISEMI shift 78 - SHARP shift 71 - TYPE shift 48 - . error - - toplevel_directive goto 81 - structure_item goto 82 - use_file_tail goto 479 - - -state 273 - use_file : seq_expr use_file_tail . (10) - - . reduce 10 - - -state 274 - use_file_tail : toplevel_directive use_file_tail . (17) - - . reduce 17 - - -state 275 - use_file_tail : structure_item use_file_tail . (16) - - . reduce 16 - - -state 276 - any_longident : LBRACKET RBRACKET . (544) - - . reduce 544 - - -state 277 - operator : BANG . (500) - - . reduce 500 - - -state 278 - operator : MINUS . (503) - - . reduce 503 - - -state 279 - operator : MINUSDOT . (504) - - . reduce 504 - - -state 280 - operator : PLUS . (501) - - . reduce 501 - - -state 281 - operator : PLUSDOT . (502) - - . reduce 502 - - -state 282 - operator : PREFIXOP . (494) - - . reduce 494 - - -state 283 - any_longident : LPAREN RPAREN . (545) - - . reduce 545 - - -state 284 - mod_ext_longident : mod_ext_longident DOT . UIDENT (533) - any_longident : mod_ext_longident DOT . val_ident (542) - - LIDENT shift 86 - LPAREN shift 110 - UIDENT shift 480 - . error - - val_ident goto 481 - - -state 285 - mod_ext_longident : mod_ext_longident LPAREN . mod_ext_longident RPAREN (534) - - UIDENT shift 89 - . error - - mod_ext_longident goto 482 - - -state 286 - simple_expr : simple_expr DOT . label_longident (246) - simple_expr : simple_expr DOT . LPAREN seq_expr RPAREN (249) - simple_expr : simple_expr DOT . LPAREN seq_expr error (250) - simple_expr : simple_expr DOT . LBRACKET seq_expr RBRACKET (251) - simple_expr : simple_expr DOT . LBRACKET seq_expr error (252) - simple_expr : simple_expr DOT . LBRACE expr RBRACE (253) - simple_expr : simple_expr DOT . LBRACE expr_comma_list error (254) - - LBRACE shift 483 - LBRACKET shift 484 - LIDENT shift 304 - LPAREN shift 485 - UIDENT shift 49 - . error - - mod_longident goto 305 - label_longident goto 486 - - -state 287 - expr : LET rec_flag . let_bindings IN seq_expr (189) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - let_bindings goto 487 - val_ident goto 376 - constr_longident goto 311 - pattern goto 377 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - let_binding goto 378 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 288 - simple_expr : BEGIN seq_expr error . (244) - - . reduce 244 - - -state 289 - simple_expr : BEGIN seq_expr END . (242) - - . reduce 242 - - -state 290 - structure_item : CLASS TYPE class_type_declarations . (52) - class_type_declarations : class_type_declarations . AND class_type_declaration (164) - - AND shift 488 - error reduce 52 - CLASS reduce 52 - END reduce 52 - EOF reduce 52 - EXCEPTION reduce 52 - EXTERNAL reduce 52 - INCLUDE reduce 52 - LET reduce 52 - MODULE reduce 52 - OPEN reduce 52 - SEMISEMI reduce 52 - SHARP reduce 52 - TYPE reduce 52 - - -state 291 - class_type_declaration : virtual_flag . class_type_parameters LIDENT EQUAL class_signature (166) - class_type_parameters : . (94) - - LBRACKET shift 294 - LIDENT reduce 94 - - class_type_parameters goto 489 - - -state 292 - class_type_declarations : class_type_declaration . (165) - - . reduce 165 - - -state 293 - class_declarations : class_declarations AND . class_declaration (88) - virtual_flag : . (563) - - VIRTUAL shift 105 - LBRACKET reduce 563 - LIDENT reduce 563 - - class_declaration goto 490 - virtual_flag goto 108 - - -state 294 - class_type_parameters : LBRACKET . type_parameter_list RBRACKET (95) - type_variance : . (386) - - MINUS shift 204 - PLUS shift 205 - QUOTE reduce 386 - - type_parameter_list goto 491 - type_variance goto 492 - type_parameter goto 493 - - -state 295 - class_declaration : virtual_flag class_type_parameters . LIDENT class_fun_binding (90) - - LIDENT shift 494 - . error - - -state 296 - structure_item : EXCEPTION UIDENT EQUAL . constr_longident (46) - - FALSE shift 15 - LBRACKET shift 495 - LPAREN shift 496 - TRUE shift 46 - UIDENT shift 49 - . error - - mod_longident goto 126 - constr_longident goto 497 - - -state 297 - constructor_arguments : OF . core_type_list (395) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 341 - LPAREN shift 502 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - type_longident goto 506 - core_type_list goto 507 - simple_core_type goto 508 - mod_ext_longident goto 343 - simple_core_type2 goto 509 - - -state 298 - structure_item : EXCEPTION UIDENT constructor_arguments . (45) - - . reduce 45 - - -state 299 - structure_item : EXTERNAL val_ident COLON . core_type EQUAL primitive_declaration (43) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 513 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 300 - expr : FOR val_ident EQUAL . seq_expr direction_flag seq_expr DO seq_expr DONE (204) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 517 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 301 - simple_pattern : CHAR DOTDOT . CHAR (331) - - CHAR shift 518 - . error - - -state 302 - simple_pattern : LPAREN . pattern RPAREN (342) - simple_pattern : LPAREN . pattern error (343) - simple_pattern : LPAREN . pattern COLON core_type RPAREN (344) - simple_pattern : LPAREN . pattern COLON core_type error (345) - simple_pattern : LPAREN . MODULE UIDENT RPAREN (346) - simple_pattern : LPAREN . MODULE UIDENT COLON package_type RPAREN (347) - simple_pattern : LPAREN . MODULE UIDENT COLON package_type error (348) - val_ident : LPAREN . operator RPAREN (493) - constr_longident : LPAREN . RPAREN (523) - - AMPERAMPER shift 163 - AMPERSAND shift 164 - BACKQUOTE shift 8 - BANG shift 277 - BARBAR shift 166 - CHAR shift 113 - COLONEQUAL shift 168 - EQUAL shift 169 - FALSE shift 15 - FLOAT shift 16 - GREATER shift 170 - INFIXOP0 shift 171 - INFIXOP1 shift 172 - INFIXOP2 shift 173 - INFIXOP3 shift 174 - INFIXOP4 shift 175 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LESS shift 176 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 319 - MINUSDOT shift 279 - MODULE shift 320 - NATIVEINT shift 37 - OR shift 180 - PLUS shift 321 - PLUSDOT shift 281 - PREFIXOP shift 282 - RPAREN shift 184 - SHARP shift 123 - STAR shift 185 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 323 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - operator goto 187 - - -state 303 - labeled_simple_pattern : LABEL simple_pattern . (176) - - . reduce 176 - - -state 304 - label_longident : LIDENT . (526) - - . reduce 526 - - -state 305 - label_longident : mod_longident . DOT LIDENT (527) - mod_longident : mod_longident . DOT UIDENT (531) - - DOT shift 519 - . error - - -state 306 - lbl_pattern : label_longident . EQUAL pattern (357) - lbl_pattern : label_longident . (358) - - EQUAL shift 520 - error reduce 358 - RBRACE reduce 358 - SEMI reduce 358 - - -state 307 - simple_pattern : LBRACE lbl_pattern_list . RBRACE (335) - simple_pattern : LBRACE lbl_pattern_list . error (336) - - error shift 521 - RBRACE shift 522 - . error - - -state 308 - lbl_pattern_list : lbl_pattern . (353) - lbl_pattern_list : lbl_pattern . SEMI (354) - lbl_pattern_list : lbl_pattern . SEMI UNDERSCORE opt_semi (355) - lbl_pattern_list : lbl_pattern . SEMI lbl_pattern_list (356) - - SEMI shift 523 - error reduce 353 - RBRACE reduce 353 - - -state 309 - pattern : LAZY . simple_pattern (327) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 302 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 128 - simple_pattern goto 524 - name_tag goto 131 - constant goto 132 - signed_constant goto 133 - - -state 310 - pattern : LPAREN . COLONCOLON RPAREN LPAREN pattern COMMA pattern RPAREN (325) - simple_pattern : LPAREN . pattern RPAREN (342) - simple_pattern : LPAREN . pattern error (343) - simple_pattern : LPAREN . pattern COLON core_type RPAREN (344) - simple_pattern : LPAREN . pattern COLON core_type error (345) - simple_pattern : LPAREN . MODULE UIDENT RPAREN (346) - simple_pattern : LPAREN . MODULE UIDENT COLON package_type RPAREN (347) - simple_pattern : LPAREN . MODULE UIDENT COLON package_type error (348) - val_ident : LPAREN . operator RPAREN (493) - constr_longident : LPAREN . RPAREN (523) - - AMPERAMPER shift 163 - AMPERSAND shift 164 - BACKQUOTE shift 8 - BANG shift 277 - BARBAR shift 166 - CHAR shift 113 - COLONCOLON shift 525 - COLONEQUAL shift 168 - EQUAL shift 169 - FALSE shift 15 - FLOAT shift 16 - GREATER shift 170 - INFIXOP0 shift 171 - INFIXOP1 shift 172 - INFIXOP2 shift 173 - INFIXOP3 shift 174 - INFIXOP4 shift 175 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LESS shift 176 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 319 - MINUSDOT shift 279 - MODULE shift 320 - NATIVEINT shift 37 - OR shift 180 - PLUS shift 321 - PLUSDOT shift 281 - PREFIXOP shift 282 - RPAREN shift 184 - SHARP shift 123 - STAR shift 185 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 323 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - operator goto 187 - - -state 311 - pattern : constr_longident . pattern (322) - simple_pattern : constr_longident . (332) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - error reduce 332 - AS reduce 332 - BAR reduce 332 - BARRBRACKET reduce 332 - COLON reduce 332 - COLONCOLON reduce 332 - COMMA reduce 332 - EQUAL reduce 332 - MINUSGREATER reduce 332 - RBRACE reduce 332 - RBRACKET reduce 332 - RPAREN reduce 332 - SEMI reduce 332 - WHEN reduce 332 - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 526 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 312 - pattern : pattern . AS val_ident (320) - pattern : pattern . COLONCOLON pattern (324) - pattern : pattern . BAR pattern (326) - pattern_comma_list : pattern . COMMA pattern (350) - pattern_semi_list : pattern . (351) - - AS shift 527 - BAR shift 528 - COLONCOLON shift 529 - COMMA shift 530 - error reduce 351 - BARRBRACKET reduce 351 - RBRACKET reduce 351 - SEMI reduce 351 - - -state 313 - pattern : simple_pattern . (319) - - . reduce 319 - - -state 314 - pattern : name_tag . pattern (323) - simple_pattern : name_tag . (333) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - error reduce 333 - AS reduce 333 - BAR reduce 333 - BARRBRACKET reduce 333 - COLON reduce 333 - COLONCOLON reduce 333 - COMMA reduce 333 - EQUAL reduce 333 - MINUSGREATER reduce 333 - RBRACE reduce 333 - RBRACKET reduce 333 - RPAREN reduce 333 - SEMI reduce 333 - WHEN reduce 333 - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 531 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 315 - pattern : pattern_comma_list . (321) - pattern_comma_list : pattern_comma_list . COMMA pattern (349) - - COMMA shift 532 - error reduce 321 - AS reduce 321 - BAR reduce 321 - BARRBRACKET reduce 321 - COLON reduce 321 - COLONCOLON reduce 321 - EQUAL reduce 321 - MINUSGREATER reduce 321 - RBRACE reduce 321 - RBRACKET reduce 321 - RPAREN reduce 321 - SEMI reduce 321 - WHEN reduce 321 - - -state 316 - simple_pattern : LBRACKET pattern_semi_list . opt_semi RBRACKET (337) - simple_pattern : LBRACKET pattern_semi_list . opt_semi error (338) - pattern_semi_list : pattern_semi_list . SEMI pattern (352) - opt_semi : . (569) - - SEMI shift 533 - error reduce 569 - RBRACKET reduce 569 - - opt_semi goto 534 - - -state 317 - simple_pattern : LBRACKETBAR BARRBRACKET . (340) - - . reduce 340 - - -state 318 - simple_pattern : LBRACKETBAR pattern_semi_list . opt_semi BARRBRACKET (339) - simple_pattern : LBRACKETBAR pattern_semi_list . opt_semi error (341) - pattern_semi_list : pattern_semi_list . SEMI pattern (352) - opt_semi : . (569) - - SEMI shift 533 - error reduce 569 - BARRBRACKET reduce 569 - - opt_semi goto 535 - - -state 319 - signed_constant : MINUS . INT (480) - signed_constant : MINUS . FLOAT (481) - signed_constant : MINUS . INT32 (482) - signed_constant : MINUS . INT64 (483) - signed_constant : MINUS . NATIVEINT (484) - operator : MINUS . (503) - - FLOAT shift 324 - INT shift 325 - INT32 shift 326 - INT64 shift 327 - NATIVEINT shift 328 - RPAREN reduce 503 - - -state 320 - simple_pattern : LPAREN MODULE . UIDENT RPAREN (346) - simple_pattern : LPAREN MODULE . UIDENT COLON package_type RPAREN (347) - simple_pattern : LPAREN MODULE . UIDENT COLON package_type error (348) - - UIDENT shift 536 - . error - - -state 321 - signed_constant : PLUS . INT (485) - signed_constant : PLUS . FLOAT (486) - signed_constant : PLUS . INT32 (487) - signed_constant : PLUS . INT64 (488) - signed_constant : PLUS . NATIVEINT (489) - operator : PLUS . (501) - - FLOAT shift 333 - INT shift 334 - INT32 shift 335 - INT64 shift 336 - NATIVEINT shift 337 - RPAREN reduce 501 - - -state 322 - expr : FUN LPAREN TYPE . LIDENT RPAREN fun_def (194) - - LIDENT shift 537 - . error - - -state 323 - pattern : pattern . AS val_ident (320) - pattern : pattern . COLONCOLON pattern (324) - pattern : pattern . BAR pattern (326) - simple_pattern : LPAREN pattern . RPAREN (342) - simple_pattern : LPAREN pattern . error (343) - simple_pattern : LPAREN pattern . COLON core_type RPAREN (344) - simple_pattern : LPAREN pattern . COLON core_type error (345) - pattern_comma_list : pattern . COMMA pattern (350) - - error shift 538 - AS shift 527 - BAR shift 528 - COLON shift 539 - COLONCOLON shift 529 - COMMA shift 530 - RPAREN shift 540 - . error - - -state 324 - signed_constant : MINUS FLOAT . (481) - - . reduce 481 - - -state 325 - signed_constant : MINUS INT . (480) - - . reduce 480 - - -state 326 - signed_constant : MINUS INT32 . (482) - - . reduce 482 - - -state 327 - signed_constant : MINUS INT64 . (483) - - . reduce 483 - - -state 328 - signed_constant : MINUS NATIVEINT . (484) - - . reduce 484 - - -state 329 - pattern_var : LIDENT . (178) - - . reduce 178 - - -state 330 - labeled_simple_pattern : OPTLABEL LPAREN . let_pattern opt_default RPAREN (172) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 541 - let_pattern goto 542 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 331 - pattern_var : UNDERSCORE . (179) - - . reduce 179 - - -state 332 - labeled_simple_pattern : OPTLABEL pattern_var . (173) - - . reduce 173 - - -state 333 - signed_constant : PLUS FLOAT . (486) - - . reduce 486 - - -state 334 - signed_constant : PLUS INT . (485) - - . reduce 485 - - -state 335 - signed_constant : PLUS INT32 . (487) - - . reduce 487 - - -state 336 - signed_constant : PLUS INT64 . (488) - - . reduce 488 - - -state 337 - signed_constant : PLUS NATIVEINT . (489) - - . reduce 489 - - -state 338 - label_var : LIDENT . (184) - - . reduce 184 - - -state 339 - labeled_simple_pattern : QUESTION LPAREN . label_let_pattern opt_default RPAREN (170) - - LIDENT shift 338 - . error - - label_let_pattern goto 543 - label_var goto 544 - - -state 340 - labeled_simple_pattern : QUESTION label_var . (171) - - . reduce 171 - - -state 341 - type_longident : LIDENT . (528) - - . reduce 528 - - -state 342 - simple_pattern : SHARP type_longident . (334) - - . reduce 334 - - -state 343 - type_longident : mod_ext_longident . DOT LIDENT (529) - mod_ext_longident : mod_ext_longident . DOT UIDENT (533) - mod_ext_longident : mod_ext_longident . LPAREN mod_ext_longident RPAREN (534) - - DOT shift 545 - LPAREN shift 285 - . error - - -state 344 - labeled_simple_pattern : TILDE LPAREN . label_let_pattern RPAREN (174) - - LIDENT shift 338 - . error - - label_let_pattern goto 546 - label_var goto 544 - - -state 345 - labeled_simple_pattern : TILDE label_var . (175) - - . reduce 175 - - -state 346 - mod_longident : mod_longident DOT . UIDENT (531) - - UIDENT shift 413 - . error - - -state 347 - fun_def : LPAREN . TYPE LIDENT RPAREN fun_def (298) - simple_pattern : LPAREN . pattern RPAREN (342) - simple_pattern : LPAREN . pattern error (343) - simple_pattern : LPAREN . pattern COLON core_type RPAREN (344) - simple_pattern : LPAREN . pattern COLON core_type error (345) - simple_pattern : LPAREN . MODULE UIDENT RPAREN (346) - simple_pattern : LPAREN . MODULE UIDENT COLON package_type RPAREN (347) - simple_pattern : LPAREN . MODULE UIDENT COLON package_type error (348) - val_ident : LPAREN . operator RPAREN (493) - constr_longident : LPAREN . RPAREN (523) - - AMPERAMPER shift 163 - AMPERSAND shift 164 - BACKQUOTE shift 8 - BANG shift 277 - BARBAR shift 166 - CHAR shift 113 - COLONEQUAL shift 168 - EQUAL shift 169 - FALSE shift 15 - FLOAT shift 16 - GREATER shift 170 - INFIXOP0 shift 171 - INFIXOP1 shift 172 - INFIXOP2 shift 173 - INFIXOP3 shift 174 - INFIXOP4 shift 175 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LESS shift 176 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 319 - MINUSDOT shift 279 - MODULE shift 320 - NATIVEINT shift 37 - OR shift 180 - PLUS shift 321 - PLUSDOT shift 281 - PREFIXOP shift 282 - RPAREN shift 184 - SHARP shift 123 - STAR shift 185 - STRING shift 45 - TRUE shift 46 - TYPE shift 547 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 323 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - operator goto 187 - - -state 348 - match_action : MINUSGREATER . seq_expr (299) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 548 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 349 - match_action : WHEN . seq_expr MINUSGREATER seq_expr (300) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 549 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 350 - fun_def : labeled_simple_pattern . fun_def (297) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 114 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 347 - MINUS shift 119 - MINUSGREATER shift 348 - NATIVEINT shift 37 - OPTLABEL shift 120 - PLUS shift 121 - QUESTION shift 122 - SHARP shift 123 - STRING shift 45 - TILDE shift 124 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - WHEN shift 349 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 128 - labeled_simple_pattern goto 350 - simple_pattern goto 130 - fun_def goto 550 - name_tag goto 131 - constant goto 132 - match_action goto 352 - signed_constant goto 133 - - -state 351 - expr : FUN labeled_simple_pattern fun_def . (193) - - . reduce 193 - - -state 352 - fun_def : match_action . (296) - - . reduce 296 - - -state 353 - match_cases : pattern . match_action (294) - pattern : pattern . AS val_ident (320) - pattern : pattern . COLONCOLON pattern (324) - pattern : pattern . BAR pattern (326) - pattern_comma_list : pattern . COMMA pattern (350) - - AS shift 527 - BAR shift 528 - COLONCOLON shift 529 - COMMA shift 530 - MINUSGREATER shift 348 - WHEN shift 349 - . error - - match_action goto 551 - - -state 354 - expr : FUNCTION opt_bar match_cases . (192) - match_cases : match_cases . BAR pattern match_action (295) - - BAR shift 552 - error reduce 192 - AMPERAMPER reduce 192 - AMPERSAND reduce 192 - AND reduce 192 - BARBAR reduce 192 - BARRBRACKET reduce 192 - CLASS reduce 192 - COLON reduce 192 - COLONCOLON reduce 192 - COLONEQUAL reduce 192 - COLONGREATER reduce 192 - COMMA reduce 192 - CONSTRAINT reduce 192 - DO reduce 192 - DONE reduce 192 - DOWNTO reduce 192 - ELSE reduce 192 - END reduce 192 - EOF reduce 192 - EQUAL reduce 192 - EXCEPTION reduce 192 - EXTERNAL reduce 192 - GREATER reduce 192 - GREATERRBRACE reduce 192 - IN reduce 192 - INCLUDE reduce 192 - INFIXOP0 reduce 192 - INFIXOP1 reduce 192 - INFIXOP2 reduce 192 - INFIXOP3 reduce 192 - INFIXOP4 reduce 192 - INHERIT reduce 192 - INITIALIZER reduce 192 - LESS reduce 192 - LET reduce 192 - METHOD reduce 192 - MINUS reduce 192 - MINUSDOT reduce 192 - MINUSGREATER reduce 192 - MODULE reduce 192 - OPEN reduce 192 - OR reduce 192 - PLUS reduce 192 - PLUSDOT reduce 192 - RBRACE reduce 192 - RBRACKET reduce 192 - RPAREN reduce 192 - SEMI reduce 192 - SEMISEMI reduce 192 - SHARP reduce 192 - STAR reduce 192 - THEN reduce 192 - TO reduce 192 - TYPE reduce 192 - VAL reduce 192 - WITH reduce 192 - - -state 355 - expr : IF seq_expr THEN . expr ELSE expr (201) - expr : IF seq_expr THEN . expr (202) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 553 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 356 - module_expr : FUNCTOR LPAREN . UIDENT COLON module_type RPAREN MINUSGREATER module_expr (21) - - UIDENT shift 554 - . error - - -state 357 - module_expr : LPAREN VAL . expr RPAREN (28) - module_expr : LPAREN VAL . expr COLON package_type RPAREN (29) - module_expr : LPAREN VAL . expr COLON package_type COLONGREATER package_type RPAREN (30) - module_expr : LPAREN VAL . expr COLONGREATER package_type RPAREN (31) - module_expr : LPAREN VAL . expr COLON error (32) - module_expr : LPAREN VAL . expr COLONGREATER error (33) - module_expr : LPAREN VAL . expr error (34) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 555 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 358 - module_expr : module_expr . LPAREN module_expr RPAREN (22) - module_expr : module_expr . LPAREN module_expr error (23) - module_expr : LPAREN module_expr . COLON module_type RPAREN (24) - module_expr : LPAREN module_expr . COLON module_type error (25) - module_expr : LPAREN module_expr . RPAREN (26) - module_expr : LPAREN module_expr . error (27) - - error shift 556 - COLON shift 557 - LPAREN shift 360 - RPAREN shift 558 - . error - - -state 359 - module_expr : STRUCT structure . END (19) - module_expr : STRUCT structure . error (20) - - error shift 559 - END shift 560 - . error - - -state 360 - module_expr : module_expr LPAREN . module_expr RPAREN (22) - module_expr : module_expr LPAREN . module_expr error (23) - - FUNCTOR shift 137 - LPAREN shift 138 - STRUCT shift 139 - UIDENT shift 49 - . error - - module_expr goto 561 - mod_longident goto 141 - - -state 361 - simple_expr : mod_longident DOT . LPAREN seq_expr RPAREN (247) - simple_expr : mod_longident DOT . LPAREN seq_expr error (248) - val_longident : mod_longident DOT . val_ident (520) - label_longident : mod_longident DOT . LIDENT (527) - mod_longident : mod_longident DOT . UIDENT (531) - - LIDENT shift 562 - LPAREN shift 412 - UIDENT shift 413 - . error - - val_ident goto 414 - - -state 362 - record_expr : simple_expr WITH . lbl_expr_list (303) - - LIDENT shift 304 - UIDENT shift 49 - . error - - mod_longident goto 305 - label_longident goto 146 - lbl_expr_list goto 563 - lbl_expr goto 149 - - -state 363 - lbl_expr : label_longident EQUAL . expr (308) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 564 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 364 - simple_expr : LBRACE record_expr error . (256) - - . reduce 256 - - -state 365 - simple_expr : LBRACE record_expr RBRACE . (255) - - . reduce 255 - - -state 366 - lbl_expr_list : lbl_expr SEMI . lbl_expr_list (306) - lbl_expr_list : lbl_expr SEMI . (307) - - LIDENT shift 304 - UIDENT shift 49 - error reduce 307 - RBRACE reduce 307 - - mod_longident goto 305 - label_longident goto 146 - lbl_expr_list goto 565 - lbl_expr goto 149 - - -state 367 - field_expr_list : label EQUAL . expr (310) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 566 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 368 - field_expr_list : field_expr_list SEMI . label EQUAL expr (311) - opt_semi : SEMI . (570) - - LIDENT shift 151 - error reduce 570 - GREATERRBRACE reduce 570 - - label goto 567 - - -state 369 - simple_expr : LBRACELESS field_expr_list opt_semi . GREATERRBRACE (265) - simple_expr : LBRACELESS field_expr_list opt_semi . error (266) - - error shift 568 - GREATERRBRACE shift 569 - . error - - -state 370 - expr_semi_list : expr_semi_list SEMI . expr (313) - opt_semi : SEMI . (570) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - error reduce 570 - BARRBRACKET reduce 570 - RBRACKET reduce 570 - - mod_longident goto 55 - expr goto 570 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 371 - simple_expr : LBRACKET expr_semi_list opt_semi . RBRACKET (260) - simple_expr : LBRACKET expr_semi_list opt_semi . error (261) - - error shift 571 - RBRACKET shift 572 - . error - - -state 372 - simple_expr : LBRACKETBAR expr_semi_list opt_semi . BARRBRACKET (257) - simple_expr : LBRACKETBAR expr_semi_list opt_semi . error (258) - - error shift 573 - BARRBRACKET shift 574 - . error - - -state 373 - expr : LET MODULE UIDENT . module_binding IN seq_expr (190) - - COLON shift 392 - EQUAL shift 393 - LPAREN shift 394 - . error - - module_binding goto 575 - - -state 374 - expr : LET OPEN mod_longident . IN seq_expr (191) - mod_longident : mod_longident . DOT UIDENT (531) - - DOT shift 346 - IN shift 576 - . error - - -state 375 - structure_item : LET rec_flag let_bindings . (42) - expr : LET rec_flag let_bindings . IN seq_expr (189) - let_bindings : let_bindings . AND let_binding (282) - - AND shift 577 - IN shift 578 - error reduce 42 - CLASS reduce 42 - END reduce 42 - EOF reduce 42 - EXCEPTION reduce 42 - EXTERNAL reduce 42 - INCLUDE reduce 42 - LET reduce 42 - MODULE reduce 42 - OPEN reduce 42 - SEMISEMI reduce 42 - SHARP reduce 42 - TYPE reduce 42 - - -state 376 - let_binding : val_ident . fun_binding (285) - let_binding : val_ident . COLON typevar_list DOT core_type EQUAL seq_expr (286) - let_binding : val_ident . COLON TYPE lident_list DOT core_type EQUAL seq_expr (287) - simple_pattern : val_ident . (328) - - BACKQUOTE shift 8 - CHAR shift 113 - COLON shift 579 - COLONGREATER shift 383 - EQUAL shift 580 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 114 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 581 - MINUS shift 119 - NATIVEINT shift 37 - OPTLABEL shift 120 - PLUS shift 121 - QUESTION shift 122 - SHARP shift 123 - STRING shift 45 - TILDE shift 124 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - AS reduce 328 - BAR reduce 328 - COLONCOLON reduce 328 - COMMA reduce 328 - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 128 - labeled_simple_pattern goto 582 - type_constraint goto 583 - strict_binding goto 584 - simple_pattern goto 130 - name_tag goto 131 - constant goto 132 - fun_binding goto 585 - signed_constant goto 133 - - -state 377 - let_binding : pattern . EQUAL seq_expr (288) - pattern : pattern . AS val_ident (320) - pattern : pattern . COLONCOLON pattern (324) - pattern : pattern . BAR pattern (326) - pattern_comma_list : pattern . COMMA pattern (350) - - AS shift 527 - BAR shift 528 - COLONCOLON shift 529 - COMMA shift 530 - EQUAL shift 586 - . error - - -state 378 - let_bindings : let_binding . (281) - - . reduce 281 - - -state 379 - expr : LPAREN COLONCOLON RPAREN . LPAREN expr COMMA expr RPAREN (206) - - LPAREN shift 587 - . error - - -state 380 - module_expr : module_expr . LPAREN module_expr RPAREN (22) - module_expr : module_expr . LPAREN module_expr error (23) - simple_expr : LPAREN MODULE module_expr . RPAREN (269) - simple_expr : LPAREN MODULE module_expr . COLON package_type RPAREN (270) - simple_expr : LPAREN MODULE module_expr . COLON error (271) - - COLON shift 588 - LPAREN shift 360 - RPAREN shift 589 - . error - - -state 381 - simple_expr : LPAREN seq_expr error . (241) - - . reduce 241 - - -state 382 - type_constraint : COLON . core_type (314) - type_constraint : COLON . core_type COLONGREATER core_type (315) - type_constraint : COLON . error (317) - - error shift 590 - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 591 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 383 - type_constraint : COLONGREATER . core_type (316) - type_constraint : COLONGREATER . error (318) - - error shift 592 - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 593 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 384 - simple_expr : LPAREN seq_expr RPAREN . (240) - - . reduce 240 - - -state 385 - simple_expr : LPAREN seq_expr type_constraint . RPAREN (245) - - RPAREN shift 594 - . error - - -state 386 - val_ident : LPAREN operator RPAREN . (493) - - . reduce 493 - - -state 387 - expr : MATCH seq_expr WITH . opt_bar match_cases (195) - opt_bar : . (567) - - BAR shift 134 - BACKQUOTE reduce 567 - CHAR reduce 567 - FALSE reduce 567 - FLOAT reduce 567 - INT reduce 567 - INT32 reduce 567 - INT64 reduce 567 - LAZY reduce 567 - LBRACE reduce 567 - LBRACKET reduce 567 - LBRACKETBAR reduce 567 - LIDENT reduce 567 - LPAREN reduce 567 - MINUS reduce 567 - NATIVEINT reduce 567 - PLUS reduce 567 - SHARP reduce 567 - STRING reduce 567 - TRUE reduce 567 - UIDENT reduce 567 - UNDERSCORE reduce 567 - - opt_bar goto 595 - - -state 388 - module_rec_binding : UIDENT . COLON module_type EQUAL module_expr (59) - - COLON shift 596 - . error - - -state 389 - structure_item : MODULE REC module_rec_bindings . (48) - module_rec_bindings : module_rec_bindings . AND module_rec_binding (58) - - AND shift 597 - error reduce 48 - CLASS reduce 48 - END reduce 48 - EOF reduce 48 - EXCEPTION reduce 48 - EXTERNAL reduce 48 - INCLUDE reduce 48 - LET reduce 48 - MODULE reduce 48 - OPEN reduce 48 - SEMISEMI reduce 48 - SHARP reduce 48 - TYPE reduce 48 - - -state 390 - module_rec_bindings : module_rec_binding . (57) - - . reduce 57 - - -state 391 - structure_item : MODULE TYPE ident . EQUAL module_type (49) - - EQUAL shift 598 - . error - - -state 392 - module_binding : COLON . module_type EQUAL module_expr (55) - - FUNCTOR shift 455 - LIDENT shift 97 - LPAREN shift 456 - MODULE shift 457 - SIG shift 458 - UIDENT shift 459 - . error - - module_type goto 599 - ident goto 461 - mty_longident goto 462 - mod_ext_longident goto 463 - - -state 393 - module_binding : EQUAL . module_expr (54) - - FUNCTOR shift 137 - LPAREN shift 138 - STRUCT shift 139 - UIDENT shift 49 - . error - - module_expr goto 600 - mod_longident goto 141 - - -state 394 - module_binding : LPAREN . UIDENT COLON module_type RPAREN module_binding (56) - - UIDENT shift 601 - . error - - -state 395 - structure_item : MODULE UIDENT module_binding . (47) - - . reduce 47 - - -state 396 - mod_longident : mod_longident DOT . UIDENT (531) - class_longident : mod_longident DOT . LIDENT (540) - - LIDENT shift 602 - UIDENT shift 413 - . error - - -state 397 - class_self_pattern : LPAREN pattern . RPAREN (111) - class_self_pattern : LPAREN pattern . COLON core_type RPAREN (112) - pattern : pattern . AS val_ident (320) - pattern : pattern . COLONCOLON pattern (324) - pattern : pattern . BAR pattern (326) - pattern_comma_list : pattern . COMMA pattern (350) - - AS shift 527 - BAR shift 528 - COLON shift 603 - COLONCOLON shift 529 - COMMA shift 530 - RPAREN shift 604 - . error - - -state 398 - expr : OBJECT class_structure error . (235) - - . reduce 235 - - -state 399 - expr : OBJECT class_structure END . (234) - - . reduce 234 - - -state 400 - class_structure : class_self_pattern class_fields . (110) - class_fields : class_fields . class_field (115) - - CONSTRAINT shift 605 - INHERIT shift 606 - INITIALIZER shift 607 - METHOD shift 608 - VAL shift 609 - error reduce 110 - END reduce 110 - - class_field goto 610 - virtual_method goto 611 - concrete_method goto 612 - - -state 401 - structure_tail : SEMISEMI seq_expr structure_tail . (39) - - . reduce 39 - - -state 402 - structure_tail : SEMISEMI structure_item structure_tail . (40) - - . reduce 40 - - -state 403 - expr : TRY seq_expr WITH . opt_bar match_cases (196) - expr : TRY seq_expr WITH . error (197) - opt_bar : . (567) - - error shift 613 - BAR shift 134 - BACKQUOTE reduce 567 - CHAR reduce 567 - FALSE reduce 567 - FLOAT reduce 567 - INT reduce 567 - INT32 reduce 567 - INT64 reduce 567 - LAZY reduce 567 - LBRACE reduce 567 - LBRACKET reduce 567 - LBRACKETBAR reduce 567 - LIDENT reduce 567 - LPAREN reduce 567 - MINUS reduce 567 - NATIVEINT reduce 567 - PLUS reduce 567 - SHARP reduce 567 - STRING reduce 567 - TRUE reduce 567 - UIDENT reduce 567 - UNDERSCORE reduce 567 - - opt_bar goto 614 - - -state 404 - optional_type_parameter_list : optional_type_parameter . (380) - - . reduce 380 - - -state 405 - optional_type_parameters : LPAREN optional_type_parameter_list . RPAREN (377) - optional_type_parameter_list : optional_type_parameter_list . COMMA optional_type_parameter (381) - - COMMA shift 615 - RPAREN shift 616 - . error - - -state 406 - type_declarations : type_declarations AND . type_declaration (362) - optional_type_parameters : . (375) - type_variance : . (386) - - LPAREN shift 203 - MINUS shift 204 - PLUS shift 205 - LIDENT reduce 375 - QUOTE reduce 386 - UNDERSCORE reduce 386 - - type_declaration goto 617 - optional_type_parameters goto 208 - optional_type_parameter goto 209 - type_variance goto 210 - - -state 407 - type_declaration : optional_type_parameters LIDENT . type_kind constraints (363) - type_kind : . (366) - - EQUAL shift 618 - error reduce 366 - AND reduce 366 - CLASS reduce 366 - CONSTRAINT reduce 366 - END reduce 366 - EOF reduce 366 - EXCEPTION reduce 366 - EXTERNAL reduce 366 - INCLUDE reduce 366 - LET reduce 366 - MODULE reduce 366 - OPEN reduce 366 - SEMISEMI reduce 366 - SHARP reduce 366 - TYPE reduce 366 - VAL reduce 366 - - type_kind goto 619 - - -state 408 - optional_type_parameter : type_variance QUOTE . ident (378) - - LIDENT shift 97 - UIDENT shift 98 - . error - - ident goto 620 - - -state 409 - optional_type_parameter : type_variance UNDERSCORE . (379) - - . reduce 379 - - -state 410 - expr : WHILE seq_expr DO . seq_expr DONE (203) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 621 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 411 - structure_item : LET rec_flag . let_bindings (42) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - let_bindings goto 622 - val_ident goto 376 - constr_longident goto 311 - pattern goto 377 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - let_binding goto 378 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 412 - simple_expr : mod_longident DOT LPAREN . seq_expr RPAREN (247) - simple_expr : mod_longident DOT LPAREN . seq_expr error (248) - val_ident : LPAREN . operator RPAREN (493) - - AMPERAMPER shift 163 - AMPERSAND shift 164 - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 165 - BARBAR shift 166 - BEGIN shift 10 - CHAR shift 11 - COLONEQUAL shift 168 - EQUAL shift 169 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - GREATER shift 170 - IF shift 20 - INFIXOP0 shift 171 - INFIXOP1 shift 172 - INFIXOP2 shift 173 - INFIXOP3 shift 174 - INFIXOP4 shift 175 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LESS shift 176 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 177 - MINUSDOT shift 178 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - OR shift 180 - PLUS shift 181 - PLUSDOT shift 182 - PREFIXOP shift 183 - STAR shift 185 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 623 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - operator goto 187 - - -state 413 - mod_longident : mod_longident DOT UIDENT . (531) - - . reduce 531 - - -state 414 - val_longident : mod_longident DOT val_ident . (520) - - . reduce 520 - - -state 415 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr AMPERAMPER expr . (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - COLONCOLON shift 220 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 223 - AND reduce 223 - BAR reduce 223 - BARBAR reduce 223 - BARRBRACKET reduce 223 - CLASS reduce 223 - COLON reduce 223 - COLONEQUAL reduce 223 - COLONGREATER reduce 223 - COMMA reduce 223 - CONSTRAINT reduce 223 - DO reduce 223 - DONE reduce 223 - DOWNTO reduce 223 - ELSE reduce 223 - END reduce 223 - EOF reduce 223 - EXCEPTION reduce 223 - EXTERNAL reduce 223 - GREATERRBRACE reduce 223 - IN reduce 223 - INCLUDE reduce 223 - INHERIT reduce 223 - INITIALIZER reduce 223 - LET reduce 223 - METHOD reduce 223 - MINUSGREATER reduce 223 - MODULE reduce 223 - OPEN reduce 223 - OR reduce 223 - RBRACE reduce 223 - RBRACKET reduce 223 - RPAREN reduce 223 - SEMI reduce 223 - SEMISEMI reduce 223 - SHARP reduce 223 - THEN reduce 223 - TO reduce 223 - TYPE reduce 223 - VAL reduce 223 - WITH reduce 223 - - -state 416 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr AMPERSAND expr . (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - COLONCOLON shift 220 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 222 - AND reduce 222 - BAR reduce 222 - BARBAR reduce 222 - BARRBRACKET reduce 222 - CLASS reduce 222 - COLON reduce 222 - COLONEQUAL reduce 222 - COLONGREATER reduce 222 - COMMA reduce 222 - CONSTRAINT reduce 222 - DO reduce 222 - DONE reduce 222 - DOWNTO reduce 222 - ELSE reduce 222 - END reduce 222 - EOF reduce 222 - EXCEPTION reduce 222 - EXTERNAL reduce 222 - GREATERRBRACE reduce 222 - IN reduce 222 - INCLUDE reduce 222 - INHERIT reduce 222 - INITIALIZER reduce 222 - LET reduce 222 - METHOD reduce 222 - MINUSGREATER reduce 222 - MODULE reduce 222 - OPEN reduce 222 - OR reduce 222 - RBRACE reduce 222 - RBRACKET reduce 222 - RPAREN reduce 222 - SEMI reduce 222 - SEMISEMI reduce 222 - SHARP reduce 222 - THEN reduce 222 - TO reduce 222 - TYPE reduce 222 - VAL reduce 222 - WITH reduce 222 - - -state 417 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr BARBAR expr . (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 221 - AND reduce 221 - BAR reduce 221 - BARRBRACKET reduce 221 - CLASS reduce 221 - COLON reduce 221 - COLONEQUAL reduce 221 - COLONGREATER reduce 221 - COMMA reduce 221 - CONSTRAINT reduce 221 - DO reduce 221 - DONE reduce 221 - DOWNTO reduce 221 - ELSE reduce 221 - END reduce 221 - EOF reduce 221 - EXCEPTION reduce 221 - EXTERNAL reduce 221 - GREATERRBRACE reduce 221 - IN reduce 221 - INCLUDE reduce 221 - INHERIT reduce 221 - INITIALIZER reduce 221 - LET reduce 221 - METHOD reduce 221 - MINUSGREATER reduce 221 - MODULE reduce 221 - OPEN reduce 221 - RBRACE reduce 221 - RBRACKET reduce 221 - RPAREN reduce 221 - SEMI reduce 221 - SEMISEMI reduce 221 - SHARP reduce 221 - THEN reduce 221 - TO reduce 221 - TYPE reduce 221 - VAL reduce 221 - WITH reduce 221 - - -state 418 - expr : expr . COLONCOLON expr (205) - expr : expr COLONCOLON expr . (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - COLONCOLON shift 220 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - MINUS shift 231 - MINUSDOT shift 232 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 205 - AMPERAMPER reduce 205 - AMPERSAND reduce 205 - AND reduce 205 - BAR reduce 205 - BARBAR reduce 205 - BARRBRACKET reduce 205 - CLASS reduce 205 - COLON reduce 205 - COLONEQUAL reduce 205 - COLONGREATER reduce 205 - COMMA reduce 205 - CONSTRAINT reduce 205 - DO reduce 205 - DONE reduce 205 - DOWNTO reduce 205 - ELSE reduce 205 - END reduce 205 - EOF reduce 205 - EQUAL reduce 205 - EXCEPTION reduce 205 - EXTERNAL reduce 205 - GREATER reduce 205 - GREATERRBRACE reduce 205 - IN reduce 205 - INCLUDE reduce 205 - INFIXOP0 reduce 205 - INFIXOP1 reduce 205 - INHERIT reduce 205 - INITIALIZER reduce 205 - LESS reduce 205 - LET reduce 205 - METHOD reduce 205 - MINUSGREATER reduce 205 - MODULE reduce 205 - OPEN reduce 205 - OR reduce 205 - RBRACE reduce 205 - RBRACKET reduce 205 - RPAREN reduce 205 - SEMI reduce 205 - SEMISEMI reduce 205 - SHARP reduce 205 - THEN reduce 205 - TO reduce 205 - TYPE reduce 205 - VAL reduce 205 - WITH reduce 205 - - -state 419 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr : expr COLONEQUAL expr . (224) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 224 - AND reduce 224 - BAR reduce 224 - BARRBRACKET reduce 224 - CLASS reduce 224 - COLON reduce 224 - COLONGREATER reduce 224 - CONSTRAINT reduce 224 - DO reduce 224 - DONE reduce 224 - DOWNTO reduce 224 - ELSE reduce 224 - END reduce 224 - EOF reduce 224 - EXCEPTION reduce 224 - EXTERNAL reduce 224 - GREATERRBRACE reduce 224 - IN reduce 224 - INCLUDE reduce 224 - INHERIT reduce 224 - INITIALIZER reduce 224 - LET reduce 224 - METHOD reduce 224 - MINUSGREATER reduce 224 - MODULE reduce 224 - OPEN reduce 224 - RBRACE reduce 224 - RBRACKET reduce 224 - RPAREN reduce 224 - SEMI reduce 224 - SEMISEMI reduce 224 - SHARP reduce 224 - THEN reduce 224 - TO reduce 224 - TYPE reduce 224 - VAL reduce 224 - WITH reduce 224 - - -state 420 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - expr_comma_list : expr COMMA expr . (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 302 - AND reduce 302 - BAR reduce 302 - BARRBRACKET reduce 302 - CLASS reduce 302 - COLON reduce 302 - COLONEQUAL reduce 302 - COLONGREATER reduce 302 - COMMA reduce 302 - CONSTRAINT reduce 302 - DO reduce 302 - DONE reduce 302 - DOWNTO reduce 302 - ELSE reduce 302 - END reduce 302 - EOF reduce 302 - EXCEPTION reduce 302 - EXTERNAL reduce 302 - GREATERRBRACE reduce 302 - IN reduce 302 - INCLUDE reduce 302 - INHERIT reduce 302 - INITIALIZER reduce 302 - LET reduce 302 - METHOD reduce 302 - MINUSGREATER reduce 302 - MODULE reduce 302 - OPEN reduce 302 - RBRACE reduce 302 - RBRACKET reduce 302 - RPAREN reduce 302 - SEMI reduce 302 - SEMISEMI reduce 302 - SHARP reduce 302 - THEN reduce 302 - TO reduce 302 - TYPE reduce 302 - VAL reduce 302 - WITH reduce 302 - - -state 421 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr EQUAL expr . (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - COLONCOLON shift 220 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - MINUS shift 231 - MINUSDOT shift 232 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 217 - AMPERAMPER reduce 217 - AMPERSAND reduce 217 - AND reduce 217 - BAR reduce 217 - BARBAR reduce 217 - BARRBRACKET reduce 217 - CLASS reduce 217 - COLON reduce 217 - COLONEQUAL reduce 217 - COLONGREATER reduce 217 - COMMA reduce 217 - CONSTRAINT reduce 217 - DO reduce 217 - DONE reduce 217 - DOWNTO reduce 217 - ELSE reduce 217 - END reduce 217 - EOF reduce 217 - EQUAL reduce 217 - EXCEPTION reduce 217 - EXTERNAL reduce 217 - GREATER reduce 217 - GREATERRBRACE reduce 217 - IN reduce 217 - INCLUDE reduce 217 - INFIXOP0 reduce 217 - INHERIT reduce 217 - INITIALIZER reduce 217 - LESS reduce 217 - LET reduce 217 - METHOD reduce 217 - MINUSGREATER reduce 217 - MODULE reduce 217 - OPEN reduce 217 - OR reduce 217 - RBRACE reduce 217 - RBRACKET reduce 217 - RPAREN reduce 217 - SEMI reduce 217 - SEMISEMI reduce 217 - SHARP reduce 217 - THEN reduce 217 - TO reduce 217 - TYPE reduce 217 - VAL reduce 217 - WITH reduce 217 - - -state 422 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr GREATER expr . (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - COLONCOLON shift 220 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - MINUS shift 231 - MINUSDOT shift 232 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 219 - AMPERAMPER reduce 219 - AMPERSAND reduce 219 - AND reduce 219 - BAR reduce 219 - BARBAR reduce 219 - BARRBRACKET reduce 219 - CLASS reduce 219 - COLON reduce 219 - COLONEQUAL reduce 219 - COLONGREATER reduce 219 - COMMA reduce 219 - CONSTRAINT reduce 219 - DO reduce 219 - DONE reduce 219 - DOWNTO reduce 219 - ELSE reduce 219 - END reduce 219 - EOF reduce 219 - EQUAL reduce 219 - EXCEPTION reduce 219 - EXTERNAL reduce 219 - GREATER reduce 219 - GREATERRBRACE reduce 219 - IN reduce 219 - INCLUDE reduce 219 - INFIXOP0 reduce 219 - INHERIT reduce 219 - INITIALIZER reduce 219 - LESS reduce 219 - LET reduce 219 - METHOD reduce 219 - MINUSGREATER reduce 219 - MODULE reduce 219 - OPEN reduce 219 - OR reduce 219 - RBRACE reduce 219 - RBRACKET reduce 219 - RPAREN reduce 219 - SEMI reduce 219 - SEMISEMI reduce 219 - SHARP reduce 219 - THEN reduce 219 - TO reduce 219 - TYPE reduce 219 - VAL reduce 219 - WITH reduce 219 - - -state 423 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr INFIXOP0 expr . (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - COLONCOLON shift 220 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - MINUS shift 231 - MINUSDOT shift 232 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 207 - AMPERAMPER reduce 207 - AMPERSAND reduce 207 - AND reduce 207 - BAR reduce 207 - BARBAR reduce 207 - BARRBRACKET reduce 207 - CLASS reduce 207 - COLON reduce 207 - COLONEQUAL reduce 207 - COLONGREATER reduce 207 - COMMA reduce 207 - CONSTRAINT reduce 207 - DO reduce 207 - DONE reduce 207 - DOWNTO reduce 207 - ELSE reduce 207 - END reduce 207 - EOF reduce 207 - EQUAL reduce 207 - EXCEPTION reduce 207 - EXTERNAL reduce 207 - GREATER reduce 207 - GREATERRBRACE reduce 207 - IN reduce 207 - INCLUDE reduce 207 - INFIXOP0 reduce 207 - INHERIT reduce 207 - INITIALIZER reduce 207 - LESS reduce 207 - LET reduce 207 - METHOD reduce 207 - MINUSGREATER reduce 207 - MODULE reduce 207 - OPEN reduce 207 - OR reduce 207 - RBRACE reduce 207 - RBRACKET reduce 207 - RPAREN reduce 207 - SEMI reduce 207 - SEMISEMI reduce 207 - SHARP reduce 207 - THEN reduce 207 - TO reduce 207 - TYPE reduce 207 - VAL reduce 207 - WITH reduce 207 - - -state 424 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr INFIXOP1 expr . (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - COLONCOLON shift 220 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - MINUS shift 231 - MINUSDOT shift 232 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 208 - AMPERAMPER reduce 208 - AMPERSAND reduce 208 - AND reduce 208 - BAR reduce 208 - BARBAR reduce 208 - BARRBRACKET reduce 208 - CLASS reduce 208 - COLON reduce 208 - COLONEQUAL reduce 208 - COLONGREATER reduce 208 - COMMA reduce 208 - CONSTRAINT reduce 208 - DO reduce 208 - DONE reduce 208 - DOWNTO reduce 208 - ELSE reduce 208 - END reduce 208 - EOF reduce 208 - EQUAL reduce 208 - EXCEPTION reduce 208 - EXTERNAL reduce 208 - GREATER reduce 208 - GREATERRBRACE reduce 208 - IN reduce 208 - INCLUDE reduce 208 - INFIXOP0 reduce 208 - INHERIT reduce 208 - INITIALIZER reduce 208 - LESS reduce 208 - LET reduce 208 - METHOD reduce 208 - MINUSGREATER reduce 208 - MODULE reduce 208 - OPEN reduce 208 - OR reduce 208 - RBRACE reduce 208 - RBRACKET reduce 208 - RPAREN reduce 208 - SEMI reduce 208 - SEMISEMI reduce 208 - SHARP reduce 208 - THEN reduce 208 - TO reduce 208 - TYPE reduce 208 - VAL reduce 208 - WITH reduce 208 - - -state 425 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr INFIXOP2 expr . (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - INFIXOP3 shift 228 - INFIXOP4 shift 229 - STAR shift 237 - error reduce 209 - AMPERAMPER reduce 209 - AMPERSAND reduce 209 - AND reduce 209 - BAR reduce 209 - BARBAR reduce 209 - BARRBRACKET reduce 209 - CLASS reduce 209 - COLON reduce 209 - COLONCOLON reduce 209 - COLONEQUAL reduce 209 - COLONGREATER reduce 209 - COMMA reduce 209 - CONSTRAINT reduce 209 - DO reduce 209 - DONE reduce 209 - DOWNTO reduce 209 - ELSE reduce 209 - END reduce 209 - EOF reduce 209 - EQUAL reduce 209 - EXCEPTION reduce 209 - EXTERNAL reduce 209 - GREATER reduce 209 - GREATERRBRACE reduce 209 - IN reduce 209 - INCLUDE reduce 209 - INFIXOP0 reduce 209 - INFIXOP1 reduce 209 - INFIXOP2 reduce 209 - INHERIT reduce 209 - INITIALIZER reduce 209 - LESS reduce 209 - LET reduce 209 - METHOD reduce 209 - MINUS reduce 209 - MINUSDOT reduce 209 - MINUSGREATER reduce 209 - MODULE reduce 209 - OPEN reduce 209 - OR reduce 209 - PLUS reduce 209 - PLUSDOT reduce 209 - RBRACE reduce 209 - RBRACKET reduce 209 - RPAREN reduce 209 - SEMI reduce 209 - SEMISEMI reduce 209 - SHARP reduce 209 - THEN reduce 209 - TO reduce 209 - TYPE reduce 209 - VAL reduce 209 - WITH reduce 209 - - -state 426 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr INFIXOP3 expr . (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - INFIXOP4 shift 229 - error reduce 210 - AMPERAMPER reduce 210 - AMPERSAND reduce 210 - AND reduce 210 - BAR reduce 210 - BARBAR reduce 210 - BARRBRACKET reduce 210 - CLASS reduce 210 - COLON reduce 210 - COLONCOLON reduce 210 - COLONEQUAL reduce 210 - COLONGREATER reduce 210 - COMMA reduce 210 - CONSTRAINT reduce 210 - DO reduce 210 - DONE reduce 210 - DOWNTO reduce 210 - ELSE reduce 210 - END reduce 210 - EOF reduce 210 - EQUAL reduce 210 - EXCEPTION reduce 210 - EXTERNAL reduce 210 - GREATER reduce 210 - GREATERRBRACE reduce 210 - IN reduce 210 - INCLUDE reduce 210 - INFIXOP0 reduce 210 - INFIXOP1 reduce 210 - INFIXOP2 reduce 210 - INFIXOP3 reduce 210 - INHERIT reduce 210 - INITIALIZER reduce 210 - LESS reduce 210 - LET reduce 210 - METHOD reduce 210 - MINUS reduce 210 - MINUSDOT reduce 210 - MINUSGREATER reduce 210 - MODULE reduce 210 - OPEN reduce 210 - OR reduce 210 - PLUS reduce 210 - PLUSDOT reduce 210 - RBRACE reduce 210 - RBRACKET reduce 210 - RPAREN reduce 210 - SEMI reduce 210 - SEMISEMI reduce 210 - SHARP reduce 210 - STAR reduce 210 - THEN reduce 210 - TO reduce 210 - TYPE reduce 210 - VAL reduce 210 - WITH reduce 210 - - -state 427 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr INFIXOP4 expr . (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - INFIXOP4 shift 229 - error reduce 211 - AMPERAMPER reduce 211 - AMPERSAND reduce 211 - AND reduce 211 - BAR reduce 211 - BARBAR reduce 211 - BARRBRACKET reduce 211 - CLASS reduce 211 - COLON reduce 211 - COLONCOLON reduce 211 - COLONEQUAL reduce 211 - COLONGREATER reduce 211 - COMMA reduce 211 - CONSTRAINT reduce 211 - DO reduce 211 - DONE reduce 211 - DOWNTO reduce 211 - ELSE reduce 211 - END reduce 211 - EOF reduce 211 - EQUAL reduce 211 - EXCEPTION reduce 211 - EXTERNAL reduce 211 - GREATER reduce 211 - GREATERRBRACE reduce 211 - IN reduce 211 - INCLUDE reduce 211 - INFIXOP0 reduce 211 - INFIXOP1 reduce 211 - INFIXOP2 reduce 211 - INFIXOP3 reduce 211 - INHERIT reduce 211 - INITIALIZER reduce 211 - LESS reduce 211 - LET reduce 211 - METHOD reduce 211 - MINUS reduce 211 - MINUSDOT reduce 211 - MINUSGREATER reduce 211 - MODULE reduce 211 - OPEN reduce 211 - OR reduce 211 - PLUS reduce 211 - PLUSDOT reduce 211 - RBRACE reduce 211 - RBRACKET reduce 211 - RPAREN reduce 211 - SEMI reduce 211 - SEMISEMI reduce 211 - SHARP reduce 211 - STAR reduce 211 - THEN reduce 211 - TO reduce 211 - TYPE reduce 211 - VAL reduce 211 - WITH reduce 211 - - -state 428 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr LESS expr . (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - COLONCOLON shift 220 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - MINUS shift 231 - MINUSDOT shift 232 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 218 - AMPERAMPER reduce 218 - AMPERSAND reduce 218 - AND reduce 218 - BAR reduce 218 - BARBAR reduce 218 - BARRBRACKET reduce 218 - CLASS reduce 218 - COLON reduce 218 - COLONEQUAL reduce 218 - COLONGREATER reduce 218 - COMMA reduce 218 - CONSTRAINT reduce 218 - DO reduce 218 - DONE reduce 218 - DOWNTO reduce 218 - ELSE reduce 218 - END reduce 218 - EOF reduce 218 - EQUAL reduce 218 - EXCEPTION reduce 218 - EXTERNAL reduce 218 - GREATER reduce 218 - GREATERRBRACE reduce 218 - IN reduce 218 - INCLUDE reduce 218 - INFIXOP0 reduce 218 - INHERIT reduce 218 - INITIALIZER reduce 218 - LESS reduce 218 - LET reduce 218 - METHOD reduce 218 - MINUSGREATER reduce 218 - MODULE reduce 218 - OPEN reduce 218 - OR reduce 218 - RBRACE reduce 218 - RBRACKET reduce 218 - RPAREN reduce 218 - SEMI reduce 218 - SEMISEMI reduce 218 - SHARP reduce 218 - THEN reduce 218 - TO reduce 218 - TYPE reduce 218 - VAL reduce 218 - WITH reduce 218 - - -state 429 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr MINUS expr . (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - INFIXOP3 shift 228 - INFIXOP4 shift 229 - STAR shift 237 - error reduce 214 - AMPERAMPER reduce 214 - AMPERSAND reduce 214 - AND reduce 214 - BAR reduce 214 - BARBAR reduce 214 - BARRBRACKET reduce 214 - CLASS reduce 214 - COLON reduce 214 - COLONCOLON reduce 214 - COLONEQUAL reduce 214 - COLONGREATER reduce 214 - COMMA reduce 214 - CONSTRAINT reduce 214 - DO reduce 214 - DONE reduce 214 - DOWNTO reduce 214 - ELSE reduce 214 - END reduce 214 - EOF reduce 214 - EQUAL reduce 214 - EXCEPTION reduce 214 - EXTERNAL reduce 214 - GREATER reduce 214 - GREATERRBRACE reduce 214 - IN reduce 214 - INCLUDE reduce 214 - INFIXOP0 reduce 214 - INFIXOP1 reduce 214 - INFIXOP2 reduce 214 - INHERIT reduce 214 - INITIALIZER reduce 214 - LESS reduce 214 - LET reduce 214 - METHOD reduce 214 - MINUS reduce 214 - MINUSDOT reduce 214 - MINUSGREATER reduce 214 - MODULE reduce 214 - OPEN reduce 214 - OR reduce 214 - PLUS reduce 214 - PLUSDOT reduce 214 - RBRACE reduce 214 - RBRACKET reduce 214 - RPAREN reduce 214 - SEMI reduce 214 - SEMISEMI reduce 214 - SHARP reduce 214 - THEN reduce 214 - TO reduce 214 - TYPE reduce 214 - VAL reduce 214 - WITH reduce 214 - - -state 430 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr MINUSDOT expr . (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - INFIXOP3 shift 228 - INFIXOP4 shift 229 - STAR shift 237 - error reduce 215 - AMPERAMPER reduce 215 - AMPERSAND reduce 215 - AND reduce 215 - BAR reduce 215 - BARBAR reduce 215 - BARRBRACKET reduce 215 - CLASS reduce 215 - COLON reduce 215 - COLONCOLON reduce 215 - COLONEQUAL reduce 215 - COLONGREATER reduce 215 - COMMA reduce 215 - CONSTRAINT reduce 215 - DO reduce 215 - DONE reduce 215 - DOWNTO reduce 215 - ELSE reduce 215 - END reduce 215 - EOF reduce 215 - EQUAL reduce 215 - EXCEPTION reduce 215 - EXTERNAL reduce 215 - GREATER reduce 215 - GREATERRBRACE reduce 215 - IN reduce 215 - INCLUDE reduce 215 - INFIXOP0 reduce 215 - INFIXOP1 reduce 215 - INFIXOP2 reduce 215 - INHERIT reduce 215 - INITIALIZER reduce 215 - LESS reduce 215 - LET reduce 215 - METHOD reduce 215 - MINUS reduce 215 - MINUSDOT reduce 215 - MINUSGREATER reduce 215 - MODULE reduce 215 - OPEN reduce 215 - OR reduce 215 - PLUS reduce 215 - PLUSDOT reduce 215 - RBRACE reduce 215 - RBRACKET reduce 215 - RPAREN reduce 215 - SEMI reduce 215 - SEMISEMI reduce 215 - SHARP reduce 215 - THEN reduce 215 - TO reduce 215 - TYPE reduce 215 - VAL reduce 215 - WITH reduce 215 - - -state 431 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr OR expr . (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 220 - AND reduce 220 - BAR reduce 220 - BARRBRACKET reduce 220 - CLASS reduce 220 - COLON reduce 220 - COLONEQUAL reduce 220 - COLONGREATER reduce 220 - COMMA reduce 220 - CONSTRAINT reduce 220 - DO reduce 220 - DONE reduce 220 - DOWNTO reduce 220 - ELSE reduce 220 - END reduce 220 - EOF reduce 220 - EXCEPTION reduce 220 - EXTERNAL reduce 220 - GREATERRBRACE reduce 220 - IN reduce 220 - INCLUDE reduce 220 - INHERIT reduce 220 - INITIALIZER reduce 220 - LET reduce 220 - METHOD reduce 220 - MINUSGREATER reduce 220 - MODULE reduce 220 - OPEN reduce 220 - RBRACE reduce 220 - RBRACKET reduce 220 - RPAREN reduce 220 - SEMI reduce 220 - SEMISEMI reduce 220 - SHARP reduce 220 - THEN reduce 220 - TO reduce 220 - TYPE reduce 220 - VAL reduce 220 - WITH reduce 220 - - -state 432 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr PLUS expr . (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - INFIXOP3 shift 228 - INFIXOP4 shift 229 - STAR shift 237 - error reduce 212 - AMPERAMPER reduce 212 - AMPERSAND reduce 212 - AND reduce 212 - BAR reduce 212 - BARBAR reduce 212 - BARRBRACKET reduce 212 - CLASS reduce 212 - COLON reduce 212 - COLONCOLON reduce 212 - COLONEQUAL reduce 212 - COLONGREATER reduce 212 - COMMA reduce 212 - CONSTRAINT reduce 212 - DO reduce 212 - DONE reduce 212 - DOWNTO reduce 212 - ELSE reduce 212 - END reduce 212 - EOF reduce 212 - EQUAL reduce 212 - EXCEPTION reduce 212 - EXTERNAL reduce 212 - GREATER reduce 212 - GREATERRBRACE reduce 212 - IN reduce 212 - INCLUDE reduce 212 - INFIXOP0 reduce 212 - INFIXOP1 reduce 212 - INFIXOP2 reduce 212 - INHERIT reduce 212 - INITIALIZER reduce 212 - LESS reduce 212 - LET reduce 212 - METHOD reduce 212 - MINUS reduce 212 - MINUSDOT reduce 212 - MINUSGREATER reduce 212 - MODULE reduce 212 - OPEN reduce 212 - OR reduce 212 - PLUS reduce 212 - PLUSDOT reduce 212 - RBRACE reduce 212 - RBRACKET reduce 212 - RPAREN reduce 212 - SEMI reduce 212 - SEMISEMI reduce 212 - SHARP reduce 212 - THEN reduce 212 - TO reduce 212 - TYPE reduce 212 - VAL reduce 212 - WITH reduce 212 - - -state 433 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr PLUSDOT expr . (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - INFIXOP3 shift 228 - INFIXOP4 shift 229 - STAR shift 237 - error reduce 213 - AMPERAMPER reduce 213 - AMPERSAND reduce 213 - AND reduce 213 - BAR reduce 213 - BARBAR reduce 213 - BARRBRACKET reduce 213 - CLASS reduce 213 - COLON reduce 213 - COLONCOLON reduce 213 - COLONEQUAL reduce 213 - COLONGREATER reduce 213 - COMMA reduce 213 - CONSTRAINT reduce 213 - DO reduce 213 - DONE reduce 213 - DOWNTO reduce 213 - ELSE reduce 213 - END reduce 213 - EOF reduce 213 - EQUAL reduce 213 - EXCEPTION reduce 213 - EXTERNAL reduce 213 - GREATER reduce 213 - GREATERRBRACE reduce 213 - IN reduce 213 - INCLUDE reduce 213 - INFIXOP0 reduce 213 - INFIXOP1 reduce 213 - INFIXOP2 reduce 213 - INHERIT reduce 213 - INITIALIZER reduce 213 - LESS reduce 213 - LET reduce 213 - METHOD reduce 213 - MINUS reduce 213 - MINUSDOT reduce 213 - MINUSGREATER reduce 213 - MODULE reduce 213 - OPEN reduce 213 - OR reduce 213 - PLUS reduce 213 - PLUSDOT reduce 213 - RBRACE reduce 213 - RBRACKET reduce 213 - RPAREN reduce 213 - SEMI reduce 213 - SEMISEMI reduce 213 - SHARP reduce 213 - THEN reduce 213 - TO reduce 213 - TYPE reduce 213 - VAL reduce 213 - WITH reduce 213 - - -state 434 - seq_expr : expr SEMI seq_expr . (169) - - . reduce 169 - - -state 435 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr STAR expr . (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - INFIXOP4 shift 229 - error reduce 216 - AMPERAMPER reduce 216 - AMPERSAND reduce 216 - AND reduce 216 - BAR reduce 216 - BARBAR reduce 216 - BARRBRACKET reduce 216 - CLASS reduce 216 - COLON reduce 216 - COLONCOLON reduce 216 - COLONEQUAL reduce 216 - COLONGREATER reduce 216 - COMMA reduce 216 - CONSTRAINT reduce 216 - DO reduce 216 - DONE reduce 216 - DOWNTO reduce 216 - ELSE reduce 216 - END reduce 216 - EOF reduce 216 - EQUAL reduce 216 - EXCEPTION reduce 216 - EXTERNAL reduce 216 - GREATER reduce 216 - GREATERRBRACE reduce 216 - IN reduce 216 - INCLUDE reduce 216 - INFIXOP0 reduce 216 - INFIXOP1 reduce 216 - INFIXOP2 reduce 216 - INFIXOP3 reduce 216 - INHERIT reduce 216 - INITIALIZER reduce 216 - LESS reduce 216 - LET reduce 216 - METHOD reduce 216 - MINUS reduce 216 - MINUSDOT reduce 216 - MINUSGREATER reduce 216 - MODULE reduce 216 - OPEN reduce 216 - OR reduce 216 - PLUS reduce 216 - PLUSDOT reduce 216 - RBRACE reduce 216 - RBRACKET reduce 216 - RPAREN reduce 216 - SEMI reduce 216 - SEMISEMI reduce 216 - SHARP reduce 216 - STAR reduce 216 - THEN reduce 216 - TO reduce 216 - TYPE reduce 216 - VAL reduce 216 - WITH reduce 216 - - -state 436 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr : label LESSMINUS expr . (231) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 231 - AND reduce 231 - BAR reduce 231 - BARRBRACKET reduce 231 - CLASS reduce 231 - COLON reduce 231 - COLONGREATER reduce 231 - CONSTRAINT reduce 231 - DO reduce 231 - DONE reduce 231 - DOWNTO reduce 231 - ELSE reduce 231 - END reduce 231 - EOF reduce 231 - EXCEPTION reduce 231 - EXTERNAL reduce 231 - GREATERRBRACE reduce 231 - IN reduce 231 - INCLUDE reduce 231 - INHERIT reduce 231 - INITIALIZER reduce 231 - LET reduce 231 - METHOD reduce 231 - MINUSGREATER reduce 231 - MODULE reduce 231 - OPEN reduce 231 - RBRACE reduce 231 - RBRACKET reduce 231 - RPAREN reduce 231 - SEMI reduce 231 - SEMISEMI reduce 231 - SHARP reduce 231 - THEN reduce 231 - TO reduce 231 - TYPE reduce 231 - VAL reduce 231 - WITH reduce 231 - - -state 437 - expr : simple_expr DOT LBRACE . expr RBRACE LESSMINUS expr (230) - simple_expr : simple_expr DOT LBRACE . expr RBRACE (253) - simple_expr : simple_expr DOT LBRACE . expr_comma_list error (254) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 624 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 625 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 438 - expr : simple_expr DOT LBRACKET . seq_expr RBRACKET LESSMINUS expr (229) - simple_expr : simple_expr DOT LBRACKET . seq_expr RBRACKET (251) - simple_expr : simple_expr DOT LBRACKET . seq_expr error (252) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 626 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 439 - expr : simple_expr DOT LPAREN . seq_expr RPAREN LESSMINUS expr (228) - simple_expr : simple_expr DOT LPAREN . seq_expr RPAREN (249) - simple_expr : simple_expr DOT LPAREN . seq_expr error (250) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 627 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 440 - expr : simple_expr DOT label_longident . LESSMINUS expr (227) - simple_expr : simple_expr DOT label_longident . (246) - - LESSMINUS shift 628 - error reduce 246 - AMPERAMPER reduce 246 - AMPERSAND reduce 246 - AND reduce 246 - BACKQUOTE reduce 246 - BANG reduce 246 - BAR reduce 246 - BARBAR reduce 246 - BARRBRACKET reduce 246 - BEGIN reduce 246 - CHAR reduce 246 - CLASS reduce 246 - COLON reduce 246 - COLONCOLON reduce 246 - COLONEQUAL reduce 246 - COLONGREATER reduce 246 - COMMA reduce 246 - CONSTRAINT reduce 246 - DO reduce 246 - DONE reduce 246 - DOT reduce 246 - DOWNTO reduce 246 - ELSE reduce 246 - END reduce 246 - EOF reduce 246 - EQUAL reduce 246 - EXCEPTION reduce 246 - EXTERNAL reduce 246 - FALSE reduce 246 - FLOAT reduce 246 - GREATER reduce 246 - GREATERRBRACE reduce 246 - IN reduce 246 - INCLUDE reduce 246 - INFIXOP0 reduce 246 - INFIXOP1 reduce 246 - INFIXOP2 reduce 246 - INFIXOP3 reduce 246 - INFIXOP4 reduce 246 - INHERIT reduce 246 - INITIALIZER reduce 246 - INT reduce 246 - INT32 reduce 246 - INT64 reduce 246 - LABEL reduce 246 - LBRACE reduce 246 - LBRACELESS reduce 246 - LBRACKET reduce 246 - LBRACKETBAR reduce 246 - LESS reduce 246 - LET reduce 246 - LIDENT reduce 246 - LPAREN reduce 246 - METHOD reduce 246 - MINUS reduce 246 - MINUSDOT reduce 246 - MINUSGREATER reduce 246 - MODULE reduce 246 - NATIVEINT reduce 246 - NEW reduce 246 - OPEN reduce 246 - OPTLABEL reduce 246 - OR reduce 246 - PLUS reduce 246 - PLUSDOT reduce 246 - PREFIXOP reduce 246 - QUESTION reduce 246 - RBRACE reduce 246 - RBRACKET reduce 246 - RPAREN reduce 246 - SEMI reduce 246 - SEMISEMI reduce 246 - SHARP reduce 246 - STAR reduce 246 - STRING reduce 246 - THEN reduce 246 - TILDE reduce 246 - TO reduce 246 - TRUE reduce 246 - TYPE reduce 246 - UIDENT reduce 246 - VAL reduce 246 - WITH reduce 246 - - -state 441 - simple_expr : simple_expr . DOT label_longident (246) - simple_expr : simple_expr . DOT LPAREN seq_expr RPAREN (249) - simple_expr : simple_expr . DOT LPAREN seq_expr error (250) - simple_expr : simple_expr . DOT LBRACKET seq_expr RBRACKET (251) - simple_expr : simple_expr . DOT LBRACKET seq_expr error (252) - simple_expr : simple_expr . DOT LBRACE expr RBRACE (253) - simple_expr : simple_expr . DOT LBRACE expr_comma_list error (254) - simple_expr : simple_expr . SHARP label (268) - label_expr : LABEL simple_expr . (276) - - DOT shift 286 - SHARP shift 244 - error reduce 276 - AMPERAMPER reduce 276 - AMPERSAND reduce 276 - AND reduce 276 - AS reduce 276 - BACKQUOTE reduce 276 - BANG reduce 276 - BAR reduce 276 - BARBAR reduce 276 - BARRBRACKET reduce 276 - BEGIN reduce 276 - CHAR reduce 276 - CLASS reduce 276 - COLON reduce 276 - COLONCOLON reduce 276 - COLONEQUAL reduce 276 - COLONGREATER reduce 276 - COMMA reduce 276 - CONSTRAINT reduce 276 - DO reduce 276 - DONE reduce 276 - DOWNTO reduce 276 - ELSE reduce 276 - END reduce 276 - EOF reduce 276 - EQUAL reduce 276 - EXCEPTION reduce 276 - EXTERNAL reduce 276 - FALSE reduce 276 - FLOAT reduce 276 - GREATER reduce 276 - GREATERRBRACE reduce 276 - IN reduce 276 - INCLUDE reduce 276 - INFIXOP0 reduce 276 - INFIXOP1 reduce 276 - INFIXOP2 reduce 276 - INFIXOP3 reduce 276 - INFIXOP4 reduce 276 - INHERIT reduce 276 - INITIALIZER reduce 276 - INT reduce 276 - INT32 reduce 276 - INT64 reduce 276 - LABEL reduce 276 - LBRACE reduce 276 - LBRACELESS reduce 276 - LBRACKET reduce 276 - LBRACKETBAR reduce 276 - LESS reduce 276 - LET reduce 276 - LIDENT reduce 276 - LPAREN reduce 276 - METHOD reduce 276 - MINUS reduce 276 - MINUSDOT reduce 276 - MINUSGREATER reduce 276 - MODULE reduce 276 - NATIVEINT reduce 276 - NEW reduce 276 - OPEN reduce 276 - OPTLABEL reduce 276 - OR reduce 276 - PLUS reduce 276 - PLUSDOT reduce 276 - PREFIXOP reduce 276 - QUESTION reduce 276 - RBRACE reduce 276 - RBRACKET reduce 276 - RPAREN reduce 276 - SEMI reduce 276 - SEMISEMI reduce 276 - STAR reduce 276 - STRING reduce 276 - THEN reduce 276 - TILDE reduce 276 - TO reduce 276 - TRUE reduce 276 - TYPE reduce 276 - UIDENT reduce 276 - VAL reduce 276 - WITH reduce 276 - - -state 442 - simple_expr : simple_expr . DOT label_longident (246) - simple_expr : simple_expr . DOT LPAREN seq_expr RPAREN (249) - simple_expr : simple_expr . DOT LPAREN seq_expr error (250) - simple_expr : simple_expr . DOT LBRACKET seq_expr RBRACKET (251) - simple_expr : simple_expr . DOT LBRACKET seq_expr error (252) - simple_expr : simple_expr . DOT LBRACE expr RBRACE (253) - simple_expr : simple_expr . DOT LBRACE expr_comma_list error (254) - simple_expr : simple_expr . SHARP label (268) - label_expr : OPTLABEL simple_expr . (279) - - DOT shift 286 - SHARP shift 244 - error reduce 279 - AMPERAMPER reduce 279 - AMPERSAND reduce 279 - AND reduce 279 - AS reduce 279 - BACKQUOTE reduce 279 - BANG reduce 279 - BAR reduce 279 - BARBAR reduce 279 - BARRBRACKET reduce 279 - BEGIN reduce 279 - CHAR reduce 279 - CLASS reduce 279 - COLON reduce 279 - COLONCOLON reduce 279 - COLONEQUAL reduce 279 - COLONGREATER reduce 279 - COMMA reduce 279 - CONSTRAINT reduce 279 - DO reduce 279 - DONE reduce 279 - DOWNTO reduce 279 - ELSE reduce 279 - END reduce 279 - EOF reduce 279 - EQUAL reduce 279 - EXCEPTION reduce 279 - EXTERNAL reduce 279 - FALSE reduce 279 - FLOAT reduce 279 - GREATER reduce 279 - GREATERRBRACE reduce 279 - IN reduce 279 - INCLUDE reduce 279 - INFIXOP0 reduce 279 - INFIXOP1 reduce 279 - INFIXOP2 reduce 279 - INFIXOP3 reduce 279 - INFIXOP4 reduce 279 - INHERIT reduce 279 - INITIALIZER reduce 279 - INT reduce 279 - INT32 reduce 279 - INT64 reduce 279 - LABEL reduce 279 - LBRACE reduce 279 - LBRACELESS reduce 279 - LBRACKET reduce 279 - LBRACKETBAR reduce 279 - LESS reduce 279 - LET reduce 279 - LIDENT reduce 279 - LPAREN reduce 279 - METHOD reduce 279 - MINUS reduce 279 - MINUSDOT reduce 279 - MINUSGREATER reduce 279 - MODULE reduce 279 - NATIVEINT reduce 279 - NEW reduce 279 - OPEN reduce 279 - OPTLABEL reduce 279 - OR reduce 279 - PLUS reduce 279 - PLUSDOT reduce 279 - PREFIXOP reduce 279 - QUESTION reduce 279 - RBRACE reduce 279 - RBRACKET reduce 279 - RPAREN reduce 279 - SEMI reduce 279 - SEMISEMI reduce 279 - STAR reduce 279 - STRING reduce 279 - THEN reduce 279 - TILDE reduce 279 - TO reduce 279 - TRUE reduce 279 - TYPE reduce 279 - UIDENT reduce 279 - VAL reduce 279 - WITH reduce 279 - - -state 443 - label_ident : LIDENT . (280) - - . reduce 280 - - -state 444 - label_expr : QUESTION label_ident . (278) - - . reduce 278 - - -state 445 - simple_expr : simple_expr SHARP label . (268) - - . reduce 268 - - -state 446 - label_expr : TILDE label_ident . (277) - - . reduce 277 - - -state 447 - simple_labeled_expr_list : simple_labeled_expr_list labeled_simple_expr . (273) - - . reduce 273 - - -state 448 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr_comma_list COMMA expr . (301) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 301 - AND reduce 301 - BAR reduce 301 - BARRBRACKET reduce 301 - CLASS reduce 301 - COLON reduce 301 - COLONEQUAL reduce 301 - COLONGREATER reduce 301 - COMMA reduce 301 - CONSTRAINT reduce 301 - DO reduce 301 - DONE reduce 301 - DOWNTO reduce 301 - ELSE reduce 301 - END reduce 301 - EOF reduce 301 - EXCEPTION reduce 301 - EXTERNAL reduce 301 - GREATERRBRACE reduce 301 - IN reduce 301 - INCLUDE reduce 301 - INHERIT reduce 301 - INITIALIZER reduce 301 - LET reduce 301 - METHOD reduce 301 - MINUSGREATER reduce 301 - MODULE reduce 301 - OPEN reduce 301 - RBRACE reduce 301 - RBRACKET reduce 301 - RPAREN reduce 301 - SEMI reduce 301 - SEMISEMI reduce 301 - SHARP reduce 301 - THEN reduce 301 - TO reduce 301 - TYPE reduce 301 - VAL reduce 301 - WITH reduce 301 - - -state 449 - signature_item : CLASS TYPE . class_type_declarations (82) - virtual_flag : . (563) - - VIRTUAL shift 105 - LBRACKET reduce 563 - LIDENT reduce 563 - - class_type_declarations goto 629 - virtual_flag goto 291 - class_type_declaration goto 292 - - -state 450 - signature_item : CLASS class_descriptions . (81) - class_descriptions : class_descriptions . AND class_description (161) - - AND shift 630 - error reduce 81 - CLASS reduce 81 - END reduce 81 - EOF reduce 81 - EXCEPTION reduce 81 - EXTERNAL reduce 81 - INCLUDE reduce 81 - MODULE reduce 81 - OPEN reduce 81 - SEMISEMI reduce 81 - TYPE reduce 81 - VAL reduce 81 - - -state 451 - class_description : virtual_flag . class_type_parameters LIDENT COLON class_type (163) - class_type_parameters : . (94) - - LBRACKET shift 294 - LIDENT reduce 94 - - class_type_parameters goto 631 - - -state 452 - class_descriptions : class_description . (162) - - . reduce 162 - - -state 453 - signature_item : EXCEPTION UIDENT . constructor_arguments (74) - constructor_arguments : . (394) - - OF shift 297 - error reduce 394 - CLASS reduce 394 - END reduce 394 - EOF reduce 394 - EXCEPTION reduce 394 - EXTERNAL reduce 394 - INCLUDE reduce 394 - MODULE reduce 394 - OPEN reduce 394 - SEMISEMI reduce 394 - TYPE reduce 394 - VAL reduce 394 - - constructor_arguments goto 632 - - -state 454 - signature_item : EXTERNAL val_ident . COLON core_type EQUAL primitive_declaration (72) - - COLON shift 633 - . error - - -state 455 - module_type : FUNCTOR . LPAREN UIDENT COLON module_type RPAREN MINUSGREATER module_type (63) - - LPAREN shift 634 - . error - - -state 456 - module_type : LPAREN . module_type RPAREN (66) - module_type : LPAREN . module_type error (67) - - FUNCTOR shift 455 - LIDENT shift 97 - LPAREN shift 456 - MODULE shift 457 - SIG shift 458 - UIDENT shift 459 - . error - - module_type goto 635 - ident goto 461 - mty_longident goto 462 - mod_ext_longident goto 463 - - -state 457 - module_type : MODULE . TYPE OF module_expr (65) - - TYPE shift 636 - . error - - -state 458 - module_type : SIG . signature END (61) - module_type : SIG . signature error (62) - signature : . (68) - - . reduce 68 - - signature goto 637 - - -state 459 - ident : UIDENT . (490) - mod_ext_longident : UIDENT . (532) - - error reduce 490 - AND reduce 490 - CLASS reduce 490 - COLONGREATER reduce 490 - DOT reduce 532 - END reduce 490 - EOF reduce 490 - EQUAL reduce 490 - EXCEPTION reduce 490 - EXTERNAL reduce 490 - INCLUDE reduce 490 - LET reduce 490 - LPAREN reduce 532 - MODULE reduce 490 - OPEN reduce 490 - RPAREN reduce 490 - SEMISEMI reduce 490 - SHARP reduce 490 - TYPE reduce 490 - VAL reduce 490 - WITH reduce 490 - - -state 460 - module_type : module_type . WITH with_constraints (64) - signature_item : INCLUDE module_type . (80) - - WITH shift 638 - error reduce 80 - CLASS reduce 80 - END reduce 80 - EOF reduce 80 - EXCEPTION reduce 80 - EXTERNAL reduce 80 - INCLUDE reduce 80 - MODULE reduce 80 - OPEN reduce 80 - SEMISEMI reduce 80 - TYPE reduce 80 - VAL reduce 80 - - -state 461 - mty_longident : ident . (535) - - . reduce 535 - - -state 462 - module_type : mty_longident . (60) - - . reduce 60 - - -state 463 - mod_ext_longident : mod_ext_longident . DOT UIDENT (533) - mod_ext_longident : mod_ext_longident . LPAREN mod_ext_longident RPAREN (534) - mty_longident : mod_ext_longident . DOT ident (536) - - DOT shift 639 - LPAREN shift 285 - . error - - -state 464 - signature_item : MODULE REC . module_rec_declarations (76) - - UIDENT shift 640 - . error - - module_rec_declarations goto 641 - module_rec_declaration goto 642 - - -state 465 - signature_item : MODULE TYPE . ident (77) - signature_item : MODULE TYPE . ident EQUAL module_type (78) - - LIDENT shift 97 - UIDENT shift 98 - . error - - ident goto 643 - - -state 466 - signature_item : MODULE UIDENT . module_declaration (75) - - COLON shift 644 - LPAREN shift 645 - . error - - module_declaration goto 646 - - -state 467 - signature_item : OPEN mod_longident . (79) - mod_longident : mod_longident . DOT UIDENT (531) - - DOT shift 346 - error reduce 79 - CLASS reduce 79 - END reduce 79 - EOF reduce 79 - EXCEPTION reduce 79 - EXTERNAL reduce 79 - INCLUDE reduce 79 - MODULE reduce 79 - OPEN reduce 79 - SEMISEMI reduce 79 - TYPE reduce 79 - VAL reduce 79 - - -state 468 - signature_item : TYPE type_declarations . (73) - type_declarations : type_declarations . AND type_declaration (362) - - AND shift 406 - error reduce 73 - CLASS reduce 73 - END reduce 73 - EOF reduce 73 - EXCEPTION reduce 73 - EXTERNAL reduce 73 - INCLUDE reduce 73 - MODULE reduce 73 - OPEN reduce 73 - SEMISEMI reduce 73 - TYPE reduce 73 - VAL reduce 73 - - -state 469 - signature_item : VAL val_ident . COLON core_type (71) - - COLON shift 647 - . error - - -state 470 - signature : signature signature_item SEMISEMI . (70) - - . reduce 70 - - -state 471 - toplevel_directive : SHARP ident FALSE . (552) - - . reduce 552 - - -state 472 - toplevel_directive : SHARP ident INT . (550) - - . reduce 550 - - -state 473 - toplevel_directive : SHARP ident STRING . (549) - - . reduce 549 - - -state 474 - toplevel_directive : SHARP ident TRUE . (553) - - . reduce 553 - - -state 475 - val_longident : mod_longident . DOT val_ident (520) - mod_longident : mod_longident . DOT UIDENT (531) - - DOT shift 648 - . error - - -state 476 - toplevel_directive : SHARP ident val_longident . (551) - - . reduce 551 - - -state 477 - use_file_tail : SEMISEMI seq_expr use_file_tail . (13) - - . reduce 13 - - -state 478 - use_file_tail : SEMISEMI toplevel_directive use_file_tail . (15) - - . reduce 15 - - -state 479 - use_file_tail : SEMISEMI structure_item use_file_tail . (14) - - . reduce 14 - - -state 480 - mod_ext_longident : mod_ext_longident DOT UIDENT . (533) - - . reduce 533 - - -state 481 - any_longident : mod_ext_longident DOT val_ident . (542) - - . reduce 542 - - -state 482 - mod_ext_longident : mod_ext_longident . DOT UIDENT (533) - mod_ext_longident : mod_ext_longident . LPAREN mod_ext_longident RPAREN (534) - mod_ext_longident : mod_ext_longident LPAREN mod_ext_longident . RPAREN (534) - - DOT shift 649 - LPAREN shift 285 - RPAREN shift 650 - . error - - -state 483 - simple_expr : simple_expr DOT LBRACE . expr RBRACE (253) - simple_expr : simple_expr DOT LBRACE . expr_comma_list error (254) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 651 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 625 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 484 - simple_expr : simple_expr DOT LBRACKET . seq_expr RBRACKET (251) - simple_expr : simple_expr DOT LBRACKET . seq_expr error (252) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 652 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 485 - simple_expr : simple_expr DOT LPAREN . seq_expr RPAREN (249) - simple_expr : simple_expr DOT LPAREN . seq_expr error (250) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 653 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 486 - simple_expr : simple_expr DOT label_longident . (246) - - . reduce 246 - - -state 487 - expr : LET rec_flag let_bindings . IN seq_expr (189) - let_bindings : let_bindings . AND let_binding (282) - - AND shift 577 - IN shift 578 - . error - - -state 488 - class_type_declarations : class_type_declarations AND . class_type_declaration (164) - virtual_flag : . (563) - - VIRTUAL shift 105 - LBRACKET reduce 563 - LIDENT reduce 563 - - virtual_flag goto 291 - class_type_declaration goto 654 - - -state 489 - class_type_declaration : virtual_flag class_type_parameters . LIDENT EQUAL class_signature (166) - - LIDENT shift 655 - . error - - -state 490 - class_declarations : class_declarations AND class_declaration . (88) - - . reduce 88 - - -state 491 - class_type_parameters : LBRACKET type_parameter_list . RBRACKET (95) - type_parameter_list : type_parameter_list . COMMA type_parameter (390) - - COMMA shift 656 - RBRACKET shift 657 - . error - - -state 492 - type_parameter : type_variance . QUOTE ident (385) - - QUOTE shift 658 - . error - - -state 493 - type_parameter_list : type_parameter . (389) - - . reduce 389 - - -state 494 - class_declaration : virtual_flag class_type_parameters LIDENT . class_fun_binding (90) - - BACKQUOTE shift 8 - CHAR shift 113 - COLON shift 659 - EQUAL shift 660 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 114 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 302 - MINUS shift 119 - NATIVEINT shift 37 - OPTLABEL shift 120 - PLUS shift 121 - QUESTION shift 122 - SHARP shift 123 - STRING shift 45 - TILDE shift 124 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 128 - class_fun_binding goto 661 - labeled_simple_pattern goto 662 - simple_pattern goto 130 - name_tag goto 131 - constant goto 132 - signed_constant goto 133 - - -state 495 - constr_longident : LBRACKET . RBRACKET (522) - - RBRACKET shift 154 - . error - - -state 496 - constr_longident : LPAREN . RPAREN (523) - - RPAREN shift 184 - . error - - -state 497 - structure_item : EXCEPTION UIDENT EQUAL constr_longident . (46) - - . reduce 46 - - -state 498 - simple_core_type2 : LBRACKET . tag_field RBRACKET (434) - simple_core_type2 : LBRACKET . BAR row_field_list RBRACKET (435) - simple_core_type2 : LBRACKET . row_field BAR row_field_list RBRACKET (436) - - BACKQUOTE shift 8 - BAR shift 663 - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 341 - LPAREN shift 664 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - name_tag goto 665 - type_longident goto 506 - mod_ext_longident goto 343 - simple_core_type2 goto 666 - tag_field goto 667 - row_field goto 668 - - -state 499 - simple_core_type2 : LBRACKETLESS . opt_bar row_field_list RBRACKET (439) - simple_core_type2 : LBRACKETLESS . opt_bar row_field_list GREATER name_tag_list RBRACKET (440) - opt_bar : . (567) - - BAR shift 134 - BACKQUOTE reduce 567 - LBRACKET reduce 567 - LBRACKETLESS reduce 567 - LBRACKETGREATER reduce 567 - LESS reduce 567 - LIDENT reduce 567 - LPAREN reduce 567 - QUOTE reduce 567 - SHARP reduce 567 - UIDENT reduce 567 - UNDERSCORE reduce 567 - - opt_bar goto 669 - - -state 500 - simple_core_type2 : LBRACKETGREATER . opt_bar row_field_list RBRACKET (437) - simple_core_type2 : LBRACKETGREATER . RBRACKET (438) - opt_bar : . (567) - - BAR shift 134 - RBRACKET shift 670 - BACKQUOTE reduce 567 - LBRACKET reduce 567 - LBRACKETLESS reduce 567 - LBRACKETGREATER reduce 567 - LESS reduce 567 - LIDENT reduce 567 - LPAREN reduce 567 - QUOTE reduce 567 - SHARP reduce 567 - UIDENT reduce 567 - UNDERSCORE reduce 567 - - opt_bar goto 671 - - -state 501 - simple_core_type2 : LESS . meth_list GREATER (429) - simple_core_type2 : LESS . GREATER (430) - - DOTDOT shift 672 - GREATER shift 673 - LIDENT shift 151 - . error - - label goto 674 - meth_list goto 675 - field goto 676 - - -state 502 - simple_core_type : LPAREN . core_type_comma_list RPAREN (423) - simple_core_type2 : LPAREN . core_type_comma_list RPAREN type_longident (428) - simple_core_type2 : LPAREN . core_type_comma_list RPAREN SHARP class_longident opt_present (433) - simple_core_type2 : LPAREN . MODULE package_type RPAREN (441) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - MODULE shift 677 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 678 - core_type_comma_list goto 679 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 503 - simple_core_type2 : QUOTE . ident (424) - - LIDENT shift 97 - UIDENT shift 98 - . error - - ident goto 680 - - -state 504 - simple_core_type2 : SHARP . class_longident opt_present (431) - - LIDENT shift 192 - UIDENT shift 49 - . error - - mod_longident goto 193 - class_longident goto 681 - - -state 505 - simple_core_type2 : UNDERSCORE . (425) - - . reduce 425 - - -state 506 - simple_core_type2 : type_longident . (426) - - . reduce 426 - - -state 507 - constructor_arguments : OF core_type_list . (395) - core_type_list : core_type_list . STAR simple_core_type (466) - - STAR shift 682 - error reduce 395 - CLASS reduce 395 - END reduce 395 - EOF reduce 395 - EXCEPTION reduce 395 - EXTERNAL reduce 395 - INCLUDE reduce 395 - LET reduce 395 - MODULE reduce 395 - OPEN reduce 395 - SEMISEMI reduce 395 - SHARP reduce 395 - TYPE reduce 395 - VAL reduce 395 - - -state 508 - core_type_list : simple_core_type . (465) - - . reduce 465 - - -state 509 - simple_core_type : simple_core_type2 . (422) - simple_core_type2 : simple_core_type2 . type_longident (427) - simple_core_type2 : simple_core_type2 . SHARP class_longident opt_present (432) - - LIDENT shift 341 - SHARP shift 683 - UIDENT shift 89 - error reduce 422 - AMPERSAND reduce 422 - AND reduce 422 - AS reduce 422 - BAR reduce 422 - CLASS reduce 422 - COLONGREATER reduce 422 - COMMA reduce 422 - CONSTRAINT reduce 422 - END reduce 422 - EOF reduce 422 - EQUAL reduce 422 - EXCEPTION reduce 422 - EXTERNAL reduce 422 - GREATER reduce 422 - INCLUDE reduce 422 - INHERIT reduce 422 - INITIALIZER reduce 422 - LET reduce 422 - METHOD reduce 422 - MINUSGREATER reduce 422 - MODULE reduce 422 - OPEN reduce 422 - RBRACE reduce 422 - RBRACKET reduce 422 - RPAREN reduce 422 - SEMI reduce 422 - SEMISEMI reduce 422 - STAR reduce 422 - TYPE reduce 422 - VAL reduce 422 - WITH reduce 422 - - type_longident goto 684 - mod_ext_longident goto 343 - - -state 510 - core_type2 : LIDENT . COLON core_type2 MINUSGREATER core_type2 (420) - type_longident : LIDENT . (528) - - COLON shift 685 - error reduce 528 - AMPERSAND reduce 528 - AND reduce 528 - AS reduce 528 - BAR reduce 528 - CLASS reduce 528 - COLONGREATER reduce 528 - COMMA reduce 528 - CONSTRAINT reduce 528 - END reduce 528 - EOF reduce 528 - EQUAL reduce 528 - EXCEPTION reduce 528 - EXTERNAL reduce 528 - GREATER reduce 528 - INCLUDE reduce 528 - INHERIT reduce 528 - INITIALIZER reduce 528 - LET reduce 528 - LIDENT reduce 528 - METHOD reduce 528 - MINUSGREATER reduce 528 - MODULE reduce 528 - OPEN reduce 528 - RBRACE reduce 528 - RBRACKET reduce 528 - RPAREN reduce 528 - SEMI reduce 528 - SEMISEMI reduce 528 - SHARP reduce 528 - STAR reduce 528 - TYPE reduce 528 - UIDENT reduce 528 - VAL reduce 528 - WITH reduce 528 - - -state 511 - core_type2 : OPTLABEL . core_type2 MINUSGREATER core_type2 (419) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 686 - simple_core_type2 goto 509 - - -state 512 - core_type2 : QUESTION . LIDENT COLON core_type2 MINUSGREATER core_type2 (418) - - LIDENT shift 687 - . error - - -state 513 - structure_item : EXTERNAL val_ident COLON core_type . EQUAL primitive_declaration (43) - - EQUAL shift 688 - . error - - -state 514 - core_type2 : simple_core_type_or_tuple . (417) - - . reduce 417 - - -state 515 - simple_core_type_or_tuple : simple_core_type . (461) - simple_core_type_or_tuple : simple_core_type . STAR core_type_list (462) - - STAR shift 689 - error reduce 461 - AMPERSAND reduce 461 - AND reduce 461 - AS reduce 461 - BAR reduce 461 - CLASS reduce 461 - COLONGREATER reduce 461 - COMMA reduce 461 - CONSTRAINT reduce 461 - END reduce 461 - EOF reduce 461 - EQUAL reduce 461 - EXCEPTION reduce 461 - EXTERNAL reduce 461 - GREATER reduce 461 - INCLUDE reduce 461 - INHERIT reduce 461 - INITIALIZER reduce 461 - LET reduce 461 - METHOD reduce 461 - MINUSGREATER reduce 461 - MODULE reduce 461 - OPEN reduce 461 - RBRACE reduce 461 - RBRACKET reduce 461 - RPAREN reduce 461 - SEMI reduce 461 - SEMISEMI reduce 461 - SHARP reduce 461 - TYPE reduce 461 - VAL reduce 461 - WITH reduce 461 - - -state 516 - core_type : core_type2 . (415) - core_type : core_type2 . AS QUOTE ident (416) - core_type2 : core_type2 . MINUSGREATER core_type2 (421) - - AS shift 690 - MINUSGREATER shift 691 - error reduce 415 - AMPERSAND reduce 415 - AND reduce 415 - BAR reduce 415 - CLASS reduce 415 - COLONGREATER reduce 415 - COMMA reduce 415 - CONSTRAINT reduce 415 - END reduce 415 - EOF reduce 415 - EQUAL reduce 415 - EXCEPTION reduce 415 - EXTERNAL reduce 415 - GREATER reduce 415 - INCLUDE reduce 415 - INHERIT reduce 415 - INITIALIZER reduce 415 - LET reduce 415 - METHOD reduce 415 - MODULE reduce 415 - OPEN reduce 415 - RBRACE reduce 415 - RBRACKET reduce 415 - RPAREN reduce 415 - SEMI reduce 415 - SEMISEMI reduce 415 - SHARP reduce 415 - TYPE reduce 415 - VAL reduce 415 - WITH reduce 415 - - -state 517 - expr : FOR val_ident EQUAL seq_expr . direction_flag seq_expr DO seq_expr DONE (204) - - DOWNTO shift 692 - TO shift 693 - . error - - direction_flag goto 694 - - -state 518 - simple_pattern : CHAR DOTDOT CHAR . (331) - - . reduce 331 - - -state 519 - label_longident : mod_longident DOT . LIDENT (527) - mod_longident : mod_longident DOT . UIDENT (531) - - LIDENT shift 695 - UIDENT shift 413 - . error - - -state 520 - lbl_pattern : label_longident EQUAL . pattern (357) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 696 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 521 - simple_pattern : LBRACE lbl_pattern_list error . (336) - - . reduce 336 - - -state 522 - simple_pattern : LBRACE lbl_pattern_list RBRACE . (335) - - . reduce 335 - - -state 523 - lbl_pattern_list : lbl_pattern SEMI . (354) - lbl_pattern_list : lbl_pattern SEMI . UNDERSCORE opt_semi (355) - lbl_pattern_list : lbl_pattern SEMI . lbl_pattern_list (356) - - LIDENT shift 304 - UIDENT shift 49 - UNDERSCORE shift 697 - error reduce 354 - RBRACE reduce 354 - - mod_longident goto 305 - label_longident goto 306 - lbl_pattern_list goto 698 - lbl_pattern goto 308 - - -state 524 - pattern : LAZY simple_pattern . (327) - - . reduce 327 - - -state 525 - pattern : LPAREN COLONCOLON . RPAREN LPAREN pattern COMMA pattern RPAREN (325) - - RPAREN shift 699 - . error - - -state 526 - pattern : pattern . AS val_ident (320) - pattern : constr_longident pattern . (322) - pattern : pattern . COLONCOLON pattern (324) - pattern : pattern . BAR pattern (326) - pattern_comma_list : pattern . COMMA pattern (350) - - . reduce 322 - - -state 527 - pattern : pattern AS . val_ident (320) - - LIDENT shift 86 - LPAREN shift 110 - . error - - val_ident goto 700 - - -state 528 - pattern : pattern BAR . pattern (326) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 701 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 529 - pattern : pattern COLONCOLON . pattern (324) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 702 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 530 - pattern_comma_list : pattern COMMA . pattern (350) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 703 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 531 - pattern : pattern . AS val_ident (320) - pattern : name_tag pattern . (323) - pattern : pattern . COLONCOLON pattern (324) - pattern : pattern . BAR pattern (326) - pattern_comma_list : pattern . COMMA pattern (350) - - . reduce 323 - - -state 532 - pattern_comma_list : pattern_comma_list COMMA . pattern (349) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 704 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 533 - pattern_semi_list : pattern_semi_list SEMI . pattern (352) - opt_semi : SEMI . (570) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - error reduce 570 - BARRBRACKET reduce 570 - RBRACKET reduce 570 - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 705 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 534 - simple_pattern : LBRACKET pattern_semi_list opt_semi . RBRACKET (337) - simple_pattern : LBRACKET pattern_semi_list opt_semi . error (338) - - error shift 706 - RBRACKET shift 707 - . error - - -state 535 - simple_pattern : LBRACKETBAR pattern_semi_list opt_semi . BARRBRACKET (339) - simple_pattern : LBRACKETBAR pattern_semi_list opt_semi . error (341) - - error shift 708 - BARRBRACKET shift 709 - . error - - -state 536 - simple_pattern : LPAREN MODULE UIDENT . RPAREN (346) - simple_pattern : LPAREN MODULE UIDENT . COLON package_type RPAREN (347) - simple_pattern : LPAREN MODULE UIDENT . COLON package_type error (348) - - COLON shift 710 - RPAREN shift 711 - . error - - -state 537 - expr : FUN LPAREN TYPE LIDENT . RPAREN fun_def (194) - - RPAREN shift 712 - . error - - -state 538 - simple_pattern : LPAREN pattern error . (343) - - . reduce 343 - - -state 539 - simple_pattern : LPAREN pattern COLON . core_type RPAREN (344) - simple_pattern : LPAREN pattern COLON . core_type error (345) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 713 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 540 - simple_pattern : LPAREN pattern RPAREN . (342) - - . reduce 342 - - -state 541 - let_pattern : pattern . (185) - let_pattern : pattern . COLON core_type (186) - pattern : pattern . AS val_ident (320) - pattern : pattern . COLONCOLON pattern (324) - pattern : pattern . BAR pattern (326) - pattern_comma_list : pattern . COMMA pattern (350) - - AS shift 527 - BAR shift 528 - COLON shift 714 - COLONCOLON shift 529 - COMMA shift 530 - EQUAL reduce 185 - RPAREN reduce 185 - - -state 542 - labeled_simple_pattern : OPTLABEL LPAREN let_pattern . opt_default RPAREN (172) - opt_default : . (180) - - EQUAL shift 715 - RPAREN reduce 180 - - opt_default goto 716 - - -state 543 - labeled_simple_pattern : QUESTION LPAREN label_let_pattern . opt_default RPAREN (170) - opt_default : . (180) - - EQUAL shift 715 - RPAREN reduce 180 - - opt_default goto 717 - - -state 544 - label_let_pattern : label_var . (182) - label_let_pattern : label_var . COLON core_type (183) - - COLON shift 718 - EQUAL reduce 182 - RPAREN reduce 182 - - -state 545 - type_longident : mod_ext_longident DOT . LIDENT (529) - mod_ext_longident : mod_ext_longident DOT . UIDENT (533) - - LIDENT shift 719 - UIDENT shift 480 - . error - - -state 546 - labeled_simple_pattern : TILDE LPAREN label_let_pattern . RPAREN (174) - - RPAREN shift 720 - . error - - -state 547 - fun_def : LPAREN TYPE . LIDENT RPAREN fun_def (298) - - LIDENT shift 721 - . error - - -state 548 - match_action : MINUSGREATER seq_expr . (299) - - . reduce 299 - - -state 549 - match_action : WHEN seq_expr . MINUSGREATER seq_expr (300) - - MINUSGREATER shift 722 - . error - - -state 550 - fun_def : labeled_simple_pattern fun_def . (297) - - . reduce 297 - - -state 551 - match_cases : pattern match_action . (294) - - . reduce 294 - - -state 552 - match_cases : match_cases BAR . pattern match_action (295) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 723 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 553 - expr : IF seq_expr THEN expr . ELSE expr (201) - expr : IF seq_expr THEN expr . (202) - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - ELSE shift 724 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 202 - AND reduce 202 - BAR reduce 202 - BARRBRACKET reduce 202 - CLASS reduce 202 - COLON reduce 202 - COLONGREATER reduce 202 - CONSTRAINT reduce 202 - DO reduce 202 - DONE reduce 202 - DOWNTO reduce 202 - END reduce 202 - EOF reduce 202 - EXCEPTION reduce 202 - EXTERNAL reduce 202 - GREATERRBRACE reduce 202 - IN reduce 202 - INCLUDE reduce 202 - INHERIT reduce 202 - INITIALIZER reduce 202 - LET reduce 202 - METHOD reduce 202 - MINUSGREATER reduce 202 - MODULE reduce 202 - OPEN reduce 202 - RBRACE reduce 202 - RBRACKET reduce 202 - RPAREN reduce 202 - SEMI reduce 202 - SEMISEMI reduce 202 - SHARP reduce 202 - THEN reduce 202 - TO reduce 202 - TYPE reduce 202 - VAL reduce 202 - WITH reduce 202 - - -state 554 - module_expr : FUNCTOR LPAREN UIDENT . COLON module_type RPAREN MINUSGREATER module_expr (21) - - COLON shift 725 - . error - - -state 555 - module_expr : LPAREN VAL expr . RPAREN (28) - module_expr : LPAREN VAL expr . COLON package_type RPAREN (29) - module_expr : LPAREN VAL expr . COLON package_type COLONGREATER package_type RPAREN (30) - module_expr : LPAREN VAL expr . COLONGREATER package_type RPAREN (31) - module_expr : LPAREN VAL expr . COLON error (32) - module_expr : LPAREN VAL expr . COLONGREATER error (33) - module_expr : LPAREN VAL expr . error (34) - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - error shift 726 - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLON shift 727 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COLONGREATER shift 728 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - RPAREN shift 729 - STAR shift 237 - . error - - -state 556 - module_expr : LPAREN module_expr error . (27) - - . reduce 27 - - -state 557 - module_expr : LPAREN module_expr COLON . module_type RPAREN (24) - module_expr : LPAREN module_expr COLON . module_type error (25) - - FUNCTOR shift 455 - LIDENT shift 97 - LPAREN shift 456 - MODULE shift 457 - SIG shift 458 - UIDENT shift 459 - . error - - module_type goto 730 - ident goto 461 - mty_longident goto 462 - mod_ext_longident goto 463 - - -state 558 - module_expr : LPAREN module_expr RPAREN . (26) - - . reduce 26 - - -state 559 - module_expr : STRUCT structure error . (20) - - . reduce 20 - - -state 560 - module_expr : STRUCT structure END . (19) - - . reduce 19 - - -state 561 - module_expr : module_expr . LPAREN module_expr RPAREN (22) - module_expr : module_expr LPAREN module_expr . RPAREN (22) - module_expr : module_expr . LPAREN module_expr error (23) - module_expr : module_expr LPAREN module_expr . error (23) - - error shift 731 - LPAREN shift 360 - RPAREN shift 732 - . error - - -state 562 - val_ident : LIDENT . (492) - label_longident : mod_longident DOT LIDENT . (527) - - error reduce 527 - DOT reduce 492 - EQUAL reduce 527 - RBRACE reduce 527 - SEMI reduce 527 - SHARP reduce 492 - WITH reduce 492 - - -state 563 - record_expr : simple_expr WITH lbl_expr_list . (303) - - . reduce 303 - - -state 564 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - lbl_expr : label_longident EQUAL expr . (308) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 308 - RBRACE reduce 308 - SEMI reduce 308 - - -state 565 - lbl_expr_list : lbl_expr SEMI lbl_expr_list . (306) - - . reduce 306 - - -state 566 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - field_expr_list : label EQUAL expr . (310) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 310 - GREATERRBRACE reduce 310 - SEMI reduce 310 - - -state 567 - field_expr_list : field_expr_list SEMI label . EQUAL expr (311) - - EQUAL shift 733 - . error - - -state 568 - simple_expr : LBRACELESS field_expr_list opt_semi error . (266) - - . reduce 266 - - -state 569 - simple_expr : LBRACELESS field_expr_list opt_semi GREATERRBRACE . (265) - - . reduce 265 - - -state 570 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - expr_semi_list : expr_semi_list SEMI expr . (313) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 313 - BARRBRACKET reduce 313 - RBRACKET reduce 313 - SEMI reduce 313 - - -state 571 - simple_expr : LBRACKET expr_semi_list opt_semi error . (261) - - . reduce 261 - - -state 572 - simple_expr : LBRACKET expr_semi_list opt_semi RBRACKET . (260) - - . reduce 260 - - -state 573 - simple_expr : LBRACKETBAR expr_semi_list opt_semi error . (258) - - . reduce 258 - - -state 574 - simple_expr : LBRACKETBAR expr_semi_list opt_semi BARRBRACKET . (257) - - . reduce 257 - - -state 575 - expr : LET MODULE UIDENT module_binding . IN seq_expr (190) - - IN shift 734 - . error - - -state 576 - expr : LET OPEN mod_longident IN . seq_expr (191) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 735 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 577 - let_bindings : let_bindings AND . let_binding (282) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 376 - constr_longident goto 311 - pattern goto 377 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - let_binding goto 736 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 578 - expr : LET rec_flag let_bindings IN . seq_expr (189) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 737 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 579 - let_binding : val_ident COLON . typevar_list DOT core_type EQUAL seq_expr (286) - let_binding : val_ident COLON . TYPE lident_list DOT core_type EQUAL seq_expr (287) - type_constraint : COLON . core_type (314) - type_constraint : COLON . core_type COLONGREATER core_type (315) - type_constraint : COLON . error (317) - - error shift 590 - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 738 - SHARP shift 504 - TYPE shift 739 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 591 - simple_core_type_or_tuple goto 514 - typevar_list goto 740 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 580 - strict_binding : EQUAL . seq_expr (291) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 741 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 581 - strict_binding : LPAREN . TYPE LIDENT RPAREN fun_binding (293) - simple_pattern : LPAREN . pattern RPAREN (342) - simple_pattern : LPAREN . pattern error (343) - simple_pattern : LPAREN . pattern COLON core_type RPAREN (344) - simple_pattern : LPAREN . pattern COLON core_type error (345) - simple_pattern : LPAREN . MODULE UIDENT RPAREN (346) - simple_pattern : LPAREN . MODULE UIDENT COLON package_type RPAREN (347) - simple_pattern : LPAREN . MODULE UIDENT COLON package_type error (348) - val_ident : LPAREN . operator RPAREN (493) - constr_longident : LPAREN . RPAREN (523) - - AMPERAMPER shift 163 - AMPERSAND shift 164 - BACKQUOTE shift 8 - BANG shift 277 - BARBAR shift 166 - CHAR shift 113 - COLONEQUAL shift 168 - EQUAL shift 169 - FALSE shift 15 - FLOAT shift 16 - GREATER shift 170 - INFIXOP0 shift 171 - INFIXOP1 shift 172 - INFIXOP2 shift 173 - INFIXOP3 shift 174 - INFIXOP4 shift 175 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LESS shift 176 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 319 - MINUSDOT shift 279 - MODULE shift 320 - NATIVEINT shift 37 - OR shift 180 - PLUS shift 321 - PLUSDOT shift 281 - PREFIXOP shift 282 - RPAREN shift 184 - SHARP shift 123 - STAR shift 185 - STRING shift 45 - TRUE shift 46 - TYPE shift 742 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 323 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - operator goto 187 - - -state 582 - strict_binding : labeled_simple_pattern . fun_binding (292) - - BACKQUOTE shift 8 - CHAR shift 113 - COLON shift 382 - COLONGREATER shift 383 - EQUAL shift 580 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 114 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 581 - MINUS shift 119 - NATIVEINT shift 37 - OPTLABEL shift 120 - PLUS shift 121 - QUESTION shift 122 - SHARP shift 123 - STRING shift 45 - TILDE shift 124 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 128 - labeled_simple_pattern goto 582 - type_constraint goto 583 - strict_binding goto 584 - simple_pattern goto 130 - name_tag goto 131 - constant goto 132 - fun_binding goto 743 - signed_constant goto 133 - - -state 583 - fun_binding : type_constraint . EQUAL seq_expr (290) - - EQUAL shift 744 - . error - - -state 584 - fun_binding : strict_binding . (289) - - . reduce 289 - - -state 585 - let_binding : val_ident fun_binding . (285) - - . reduce 285 - - -state 586 - let_binding : pattern EQUAL . seq_expr (288) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 745 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 587 - expr : LPAREN COLONCOLON RPAREN LPAREN . expr COMMA expr RPAREN (206) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 746 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 588 - simple_expr : LPAREN MODULE module_expr COLON . package_type RPAREN (270) - simple_expr : LPAREN MODULE module_expr COLON . error (271) - - error shift 747 - LIDENT shift 97 - UIDENT shift 459 - . error - - package_type goto 748 - ident goto 461 - mty_longident goto 749 - mod_ext_longident goto 463 - - -state 589 - simple_expr : LPAREN MODULE module_expr RPAREN . (269) - - . reduce 269 - - -state 590 - type_constraint : COLON error . (317) - - . reduce 317 - - -state 591 - type_constraint : COLON core_type . (314) - type_constraint : COLON core_type . COLONGREATER core_type (315) - - COLONGREATER shift 750 - EQUAL reduce 314 - RPAREN reduce 314 - - -state 592 - type_constraint : COLONGREATER error . (318) - - . reduce 318 - - -state 593 - type_constraint : COLONGREATER core_type . (316) - - . reduce 316 - - -state 594 - simple_expr : LPAREN seq_expr type_constraint RPAREN . (245) - - . reduce 245 - - -state 595 - expr : MATCH seq_expr WITH opt_bar . match_cases (195) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 353 - simple_pattern goto 313 - match_cases goto 751 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 596 - module_rec_binding : UIDENT COLON . module_type EQUAL module_expr (59) - - FUNCTOR shift 455 - LIDENT shift 97 - LPAREN shift 456 - MODULE shift 457 - SIG shift 458 - UIDENT shift 459 - . error - - module_type goto 752 - ident goto 461 - mty_longident goto 462 - mod_ext_longident goto 463 - - -state 597 - module_rec_bindings : module_rec_bindings AND . module_rec_binding (58) - - UIDENT shift 388 - . error - - module_rec_binding goto 753 - - -state 598 - structure_item : MODULE TYPE ident EQUAL . module_type (49) - - FUNCTOR shift 455 - LIDENT shift 97 - LPAREN shift 456 - MODULE shift 457 - SIG shift 458 - UIDENT shift 459 - . error - - module_type goto 754 - ident goto 461 - mty_longident goto 462 - mod_ext_longident goto 463 - - -state 599 - module_binding : COLON module_type . EQUAL module_expr (55) - module_type : module_type . WITH with_constraints (64) - - EQUAL shift 755 - WITH shift 638 - . error - - -state 600 - module_expr : module_expr . LPAREN module_expr RPAREN (22) - module_expr : module_expr . LPAREN module_expr error (23) - module_binding : EQUAL module_expr . (54) - - LPAREN shift 360 - error reduce 54 - CLASS reduce 54 - END reduce 54 - EOF reduce 54 - EXCEPTION reduce 54 - EXTERNAL reduce 54 - IN reduce 54 - INCLUDE reduce 54 - LET reduce 54 - MODULE reduce 54 - OPEN reduce 54 - SEMISEMI reduce 54 - SHARP reduce 54 - TYPE reduce 54 - - -state 601 - module_binding : LPAREN UIDENT . COLON module_type RPAREN module_binding (56) - - COLON shift 756 - . error - - -state 602 - class_longident : mod_longident DOT LIDENT . (540) - - . reduce 540 - - -state 603 - class_self_pattern : LPAREN pattern COLON . core_type RPAREN (112) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 757 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 604 - class_self_pattern : LPAREN pattern RPAREN . (111) - - . reduce 111 - - -state 605 - class_field : CONSTRAINT . constrain_field (121) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 758 - constrain_field goto 759 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 606 - class_field : INHERIT . override_flag class_expr parent_binder (116) - override_flag : . (565) - - BANG shift 760 - FUN reduce 565 - LBRACKET reduce 565 - LET reduce 565 - LIDENT reduce 565 - LPAREN reduce 565 - OBJECT reduce 565 - UIDENT reduce 565 - - override_flag goto 761 - - -state 607 - class_field : INITIALIZER . seq_expr (122) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 762 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 608 - virtual_method : METHOD . override_flag PRIVATE VIRTUAL label COLON poly_type (129) - virtual_method : METHOD . override_flag VIRTUAL private_flag label COLON poly_type (130) - concrete_method : METHOD . override_flag private_flag label strict_binding (131) - concrete_method : METHOD . override_flag private_flag label COLON poly_type EQUAL seq_expr (132) - concrete_method : METHOD . override_flag private_flag label COLON TYPE lident_list DOT core_type EQUAL seq_expr (133) - override_flag : . (565) - - BANG shift 760 - LIDENT reduce 565 - PRIVATE reduce 565 - VIRTUAL reduce 565 - - override_flag goto 763 - - -state 609 - class_field : VAL . virtual_value (117) - class_field : VAL . value (118) - override_flag : . (565) - - BANG shift 760 - VIRTUAL shift 764 - LIDENT reduce 565 - MUTABLE reduce 565 - - override_flag goto 765 - virtual_value goto 766 - value goto 767 - - -state 610 - class_fields : class_fields class_field . (115) - - . reduce 115 - - -state 611 - class_field : virtual_method . (119) - - . reduce 119 - - -state 612 - class_field : concrete_method . (120) - - . reduce 120 - - -state 613 - expr : TRY seq_expr WITH error . (197) - - . reduce 197 - - -state 614 - expr : TRY seq_expr WITH opt_bar . match_cases (196) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 353 - simple_pattern goto 313 - match_cases goto 768 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 615 - optional_type_parameter_list : optional_type_parameter_list COMMA . optional_type_parameter (381) - type_variance : . (386) - - MINUS shift 204 - PLUS shift 205 - QUOTE reduce 386 - UNDERSCORE reduce 386 - - optional_type_parameter goto 769 - type_variance goto 210 - - -state 616 - optional_type_parameters : LPAREN optional_type_parameter_list RPAREN . (377) - - . reduce 377 - - -state 617 - type_declarations : type_declarations AND type_declaration . (362) - - . reduce 362 - - -state 618 - type_kind : EQUAL . core_type (367) - type_kind : EQUAL . PRIVATE core_type (368) - type_kind : EQUAL . constructor_declarations (369) - type_kind : EQUAL . PRIVATE constructor_declarations (370) - type_kind : EQUAL . private_flag BAR constructor_declarations (371) - type_kind : EQUAL . private_flag LBRACE label_declarations opt_semi RBRACE (372) - type_kind : EQUAL . core_type EQUAL private_flag opt_bar constructor_declarations (373) - type_kind : EQUAL . core_type EQUAL private_flag LBRACE label_declarations opt_semi RBRACE (374) - private_flag : . (559) - - COLONCOLON shift 770 - FALSE shift 771 - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 772 - OPTLABEL shift 511 - PRIVATE shift 773 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - TRUE shift 774 - UIDENT shift 775 - UNDERSCORE shift 505 - BAR reduce 559 - LBRACE reduce 559 - - core_type goto 776 - private_flag goto 777 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - constructor_declarations goto 778 - constructor_declaration goto 779 - constr_ident goto 780 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 619 - type_declaration : optional_type_parameters LIDENT type_kind . constraints (363) - constraints : . (365) - - . reduce 365 - - constraints goto 781 - - -state 620 - optional_type_parameter : type_variance QUOTE ident . (378) - - . reduce 378 - - -state 621 - expr : WHILE seq_expr DO seq_expr . DONE (203) - - DONE shift 782 - . error - - -state 622 - structure_item : LET rec_flag let_bindings . (42) - let_bindings : let_bindings . AND let_binding (282) - - AND shift 577 - error reduce 42 - CLASS reduce 42 - END reduce 42 - EOF reduce 42 - EXCEPTION reduce 42 - EXTERNAL reduce 42 - INCLUDE reduce 42 - LET reduce 42 - MODULE reduce 42 - OPEN reduce 42 - SEMISEMI reduce 42 - SHARP reduce 42 - TYPE reduce 42 - - -state 623 - simple_expr : mod_longident DOT LPAREN seq_expr . RPAREN (247) - simple_expr : mod_longident DOT LPAREN seq_expr . error (248) - - error shift 783 - RPAREN shift 784 - . error - - -state 624 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr : simple_expr DOT LBRACE expr . RBRACE LESSMINUS expr (230) - simple_expr : simple_expr DOT LBRACE expr . RBRACE (253) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - RBRACE shift 785 - STAR shift 237 - . error - - -state 625 - expr : expr_comma_list . (198) - simple_expr : simple_expr DOT LBRACE expr_comma_list . error (254) - expr_comma_list : expr_comma_list . COMMA expr (301) - - error shift 786 - COMMA shift 250 - AMPERAMPER reduce 198 - AMPERSAND reduce 198 - BARBAR reduce 198 - COLONCOLON reduce 198 - COLONEQUAL reduce 198 - EQUAL reduce 198 - GREATER reduce 198 - INFIXOP0 reduce 198 - INFIXOP1 reduce 198 - INFIXOP2 reduce 198 - INFIXOP3 reduce 198 - INFIXOP4 reduce 198 - LESS reduce 198 - MINUS reduce 198 - MINUSDOT reduce 198 - OR reduce 198 - PLUS reduce 198 - PLUSDOT reduce 198 - RBRACE reduce 198 - STAR reduce 198 - - -state 626 - expr : simple_expr DOT LBRACKET seq_expr . RBRACKET LESSMINUS expr (229) - simple_expr : simple_expr DOT LBRACKET seq_expr . RBRACKET (251) - simple_expr : simple_expr DOT LBRACKET seq_expr . error (252) - - error shift 787 - RBRACKET shift 788 - . error - - -state 627 - expr : simple_expr DOT LPAREN seq_expr . RPAREN LESSMINUS expr (228) - simple_expr : simple_expr DOT LPAREN seq_expr . RPAREN (249) - simple_expr : simple_expr DOT LPAREN seq_expr . error (250) - - error shift 789 - RPAREN shift 790 - . error - - -state 628 - expr : simple_expr DOT label_longident LESSMINUS . expr (227) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 791 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 629 - signature_item : CLASS TYPE class_type_declarations . (82) - class_type_declarations : class_type_declarations . AND class_type_declaration (164) - - AND shift 488 - error reduce 82 - CLASS reduce 82 - END reduce 82 - EOF reduce 82 - EXCEPTION reduce 82 - EXTERNAL reduce 82 - INCLUDE reduce 82 - MODULE reduce 82 - OPEN reduce 82 - SEMISEMI reduce 82 - TYPE reduce 82 - VAL reduce 82 - - -state 630 - class_descriptions : class_descriptions AND . class_description (161) - virtual_flag : . (563) - - VIRTUAL shift 105 - LBRACKET reduce 563 - LIDENT reduce 563 - - virtual_flag goto 451 - class_description goto 792 - - -state 631 - class_description : virtual_flag class_type_parameters . LIDENT COLON class_type (163) - - LIDENT shift 793 - . error - - -state 632 - signature_item : EXCEPTION UIDENT constructor_arguments . (74) - - . reduce 74 - - -state 633 - signature_item : EXTERNAL val_ident COLON . core_type EQUAL primitive_declaration (72) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 794 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 634 - module_type : FUNCTOR LPAREN . UIDENT COLON module_type RPAREN MINUSGREATER module_type (63) - - UIDENT shift 795 - . error - - -state 635 - module_type : module_type . WITH with_constraints (64) - module_type : LPAREN module_type . RPAREN (66) - module_type : LPAREN module_type . error (67) - - error shift 796 - RPAREN shift 797 - WITH shift 638 - . error - - -state 636 - module_type : MODULE TYPE . OF module_expr (65) - - OF shift 798 - . error - - -state 637 - module_type : SIG signature . END (61) - module_type : SIG signature . error (62) - signature : signature . signature_item (69) - signature : signature . signature_item SEMISEMI (70) - - error shift 799 - CLASS shift 254 - END shift 800 - EXCEPTION shift 256 - EXTERNAL shift 257 - INCLUDE shift 258 - MODULE shift 259 - OPEN shift 260 - TYPE shift 261 - VAL shift 262 - . error - - signature_item goto 263 - - -state 638 - module_type : module_type WITH . with_constraints (64) - - MODULE shift 801 - TYPE shift 802 - . error - - with_constraints goto 803 - with_constraint goto 804 - - -state 639 - mod_ext_longident : mod_ext_longident DOT . UIDENT (533) - mty_longident : mod_ext_longident DOT . ident (536) - - LIDENT shift 97 - UIDENT shift 805 - . error - - ident goto 806 - - -state 640 - module_rec_declaration : UIDENT . COLON module_type (87) - - COLON shift 807 - . error - - -state 641 - signature_item : MODULE REC module_rec_declarations . (76) - module_rec_declarations : module_rec_declarations . AND module_rec_declaration (86) - - AND shift 808 - error reduce 76 - CLASS reduce 76 - END reduce 76 - EOF reduce 76 - EXCEPTION reduce 76 - EXTERNAL reduce 76 - INCLUDE reduce 76 - MODULE reduce 76 - OPEN reduce 76 - SEMISEMI reduce 76 - TYPE reduce 76 - VAL reduce 76 - - -state 642 - module_rec_declarations : module_rec_declaration . (85) - - . reduce 85 - - -state 643 - signature_item : MODULE TYPE ident . (77) - signature_item : MODULE TYPE ident . EQUAL module_type (78) - - EQUAL shift 809 - error reduce 77 - CLASS reduce 77 - END reduce 77 - EOF reduce 77 - EXCEPTION reduce 77 - EXTERNAL reduce 77 - INCLUDE reduce 77 - MODULE reduce 77 - OPEN reduce 77 - SEMISEMI reduce 77 - TYPE reduce 77 - VAL reduce 77 - - -state 644 - module_declaration : COLON . module_type (83) - - FUNCTOR shift 455 - LIDENT shift 97 - LPAREN shift 456 - MODULE shift 457 - SIG shift 458 - UIDENT shift 459 - . error - - module_type goto 810 - ident goto 461 - mty_longident goto 462 - mod_ext_longident goto 463 - - -state 645 - module_declaration : LPAREN . UIDENT COLON module_type RPAREN module_declaration (84) - - UIDENT shift 811 - . error - - -state 646 - signature_item : MODULE UIDENT module_declaration . (75) - - . reduce 75 - - -state 647 - signature_item : VAL val_ident COLON . core_type (71) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 812 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 648 - val_longident : mod_longident DOT . val_ident (520) - mod_longident : mod_longident DOT . UIDENT (531) - - LIDENT shift 86 - LPAREN shift 110 - UIDENT shift 413 - . error - - val_ident goto 414 - - -state 649 - mod_ext_longident : mod_ext_longident DOT . UIDENT (533) - - UIDENT shift 480 - . error - - -state 650 - mod_ext_longident : mod_ext_longident LPAREN mod_ext_longident RPAREN . (534) - - . reduce 534 - - -state 651 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - simple_expr : simple_expr DOT LBRACE expr . RBRACE (253) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - RBRACE shift 813 - STAR shift 237 - . error - - -state 652 - simple_expr : simple_expr DOT LBRACKET seq_expr . RBRACKET (251) - simple_expr : simple_expr DOT LBRACKET seq_expr . error (252) - - error shift 787 - RBRACKET shift 814 - . error - - -state 653 - simple_expr : simple_expr DOT LPAREN seq_expr . RPAREN (249) - simple_expr : simple_expr DOT LPAREN seq_expr . error (250) - - error shift 789 - RPAREN shift 815 - . error - - -state 654 - class_type_declarations : class_type_declarations AND class_type_declaration . (164) - - . reduce 164 - - -state 655 - class_type_declaration : virtual_flag class_type_parameters LIDENT . EQUAL class_signature (166) - - EQUAL shift 816 - . error - - -state 656 - type_parameter_list : type_parameter_list COMMA . type_parameter (390) - type_variance : . (386) - - MINUS shift 204 - PLUS shift 205 - QUOTE reduce 386 - - type_variance goto 492 - type_parameter goto 817 - - -state 657 - class_type_parameters : LBRACKET type_parameter_list RBRACKET . (95) - - . reduce 95 - - -state 658 - type_parameter : type_variance QUOTE . ident (385) - - LIDENT shift 97 - UIDENT shift 98 - . error - - ident goto 818 - - -state 659 - class_fun_binding : COLON . class_type EQUAL class_expr (92) - - LBRACKET shift 819 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 820 - LPAREN shift 502 - OBJECT shift 821 - OPTLABEL shift 822 - QUESTION shift 823 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - class_type goto 824 - class_signature goto 825 - simple_core_type_or_tuple goto 826 - clty_longident goto 827 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 828 - simple_core_type2 goto 509 - - -state 660 - class_fun_binding : EQUAL . class_expr (91) - - FUN shift 829 - LBRACKET shift 830 - LET shift 831 - LIDENT shift 192 - LPAREN shift 832 - OBJECT shift 833 - UIDENT shift 49 - . error - - mod_longident goto 193 - class_expr goto 834 - class_simple_expr goto 835 - class_longident goto 836 - - -state 661 - class_declaration : virtual_flag class_type_parameters LIDENT class_fun_binding . (90) - - . reduce 90 - - -state 662 - class_fun_binding : labeled_simple_pattern . class_fun_binding (93) - - BACKQUOTE shift 8 - CHAR shift 113 - COLON shift 659 - EQUAL shift 660 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 114 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 302 - MINUS shift 119 - NATIVEINT shift 37 - OPTLABEL shift 120 - PLUS shift 121 - QUESTION shift 122 - SHARP shift 123 - STRING shift 45 - TILDE shift 124 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 128 - class_fun_binding goto 837 - labeled_simple_pattern goto 662 - simple_pattern goto 130 - name_tag goto 131 - constant goto 132 - signed_constant goto 133 - - -state 663 - simple_core_type2 : LBRACKET BAR . row_field_list RBRACKET (435) - - BACKQUOTE shift 8 - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 341 - LPAREN shift 664 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - name_tag goto 665 - type_longident goto 506 - mod_ext_longident goto 343 - simple_core_type2 goto 666 - tag_field goto 838 - row_field_list goto 839 - row_field goto 840 - - -state 664 - simple_core_type2 : LPAREN . core_type_comma_list RPAREN type_longident (428) - simple_core_type2 : LPAREN . core_type_comma_list RPAREN SHARP class_longident opt_present (433) - simple_core_type2 : LPAREN . MODULE package_type RPAREN (441) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - MODULE shift 677 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 678 - core_type_comma_list goto 841 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 665 - tag_field : name_tag . OF opt_ampersand amper_type_list (451) - tag_field : name_tag . (452) - - OF shift 842 - BAR reduce 452 - GREATER reduce 452 - RBRACKET reduce 452 - - -state 666 - simple_core_type2 : simple_core_type2 . type_longident (427) - simple_core_type2 : simple_core_type2 . SHARP class_longident opt_present (432) - row_field : simple_core_type2 . (450) - - LIDENT shift 341 - SHARP shift 683 - UIDENT shift 89 - BAR reduce 450 - GREATER reduce 450 - RBRACKET reduce 450 - - type_longident goto 684 - mod_ext_longident goto 343 - - -state 667 - simple_core_type2 : LBRACKET tag_field . RBRACKET (434) - row_field : tag_field . (449) - - RBRACKET shift 843 - BAR reduce 449 - - -state 668 - simple_core_type2 : LBRACKET row_field . BAR row_field_list RBRACKET (436) - - BAR shift 844 - . error - - -state 669 - simple_core_type2 : LBRACKETLESS opt_bar . row_field_list RBRACKET (439) - simple_core_type2 : LBRACKETLESS opt_bar . row_field_list GREATER name_tag_list RBRACKET (440) - - BACKQUOTE shift 8 - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 341 - LPAREN shift 664 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - name_tag goto 665 - type_longident goto 506 - mod_ext_longident goto 343 - simple_core_type2 goto 666 - tag_field goto 838 - row_field_list goto 845 - row_field goto 840 - - -state 670 - simple_core_type2 : LBRACKETGREATER RBRACKET . (438) - - . reduce 438 - - -state 671 - simple_core_type2 : LBRACKETGREATER opt_bar . row_field_list RBRACKET (437) - - BACKQUOTE shift 8 - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 341 - LPAREN shift 664 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - name_tag goto 665 - type_longident goto 506 - mod_ext_longident goto 343 - simple_core_type2 goto 666 - tag_field goto 838 - row_field_list goto 846 - row_field goto 840 - - -state 672 - meth_list : DOTDOT . (469) - - . reduce 469 - - -state 673 - simple_core_type2 : LESS GREATER . (430) - - . reduce 430 - - -state 674 - field : label . COLON poly_type (470) - - COLON shift 847 - . error - - -state 675 - simple_core_type2 : LESS meth_list . GREATER (429) - - GREATER shift 848 - . error - - -state 676 - meth_list : field . SEMI meth_list (467) - meth_list : field . opt_semi (468) - opt_semi : . (569) - - SEMI shift 849 - GREATER reduce 569 - - opt_semi goto 850 - - -state 677 - simple_core_type2 : LPAREN MODULE . package_type RPAREN (441) - - LIDENT shift 97 - UIDENT shift 459 - . error - - package_type goto 851 - ident goto 461 - mty_longident goto 749 - mod_ext_longident goto 463 - - -state 678 - core_type_comma_list : core_type . (463) - - . reduce 463 - - -state 679 - simple_core_type : LPAREN core_type_comma_list . RPAREN (423) - simple_core_type2 : LPAREN core_type_comma_list . RPAREN type_longident (428) - simple_core_type2 : LPAREN core_type_comma_list . RPAREN SHARP class_longident opt_present (433) - core_type_comma_list : core_type_comma_list . COMMA core_type (464) - - COMMA shift 852 - RPAREN shift 853 - . error - - -state 680 - simple_core_type2 : QUOTE ident . (424) - - . reduce 424 - - -state 681 - simple_core_type2 : SHARP class_longident . opt_present (431) - opt_present : . (458) - - LBRACKETGREATER shift 854 - error reduce 458 - AMPERSAND reduce 458 - AND reduce 458 - AS reduce 458 - BAR reduce 458 - CLASS reduce 458 - COLONGREATER reduce 458 - COMMA reduce 458 - CONSTRAINT reduce 458 - END reduce 458 - EOF reduce 458 - EQUAL reduce 458 - EXCEPTION reduce 458 - EXTERNAL reduce 458 - GREATER reduce 458 - INCLUDE reduce 458 - INHERIT reduce 458 - INITIALIZER reduce 458 - LET reduce 458 - LIDENT reduce 458 - METHOD reduce 458 - MINUSGREATER reduce 458 - MODULE reduce 458 - OPEN reduce 458 - RBRACE reduce 458 - RBRACKET reduce 458 - RPAREN reduce 458 - SEMI reduce 458 - SEMISEMI reduce 458 - SHARP reduce 458 - STAR reduce 458 - TYPE reduce 458 - UIDENT reduce 458 - VAL reduce 458 - WITH reduce 458 - - opt_present goto 855 - - -state 682 - core_type_list : core_type_list STAR . simple_core_type (466) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 341 - LPAREN shift 502 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - type_longident goto 506 - simple_core_type goto 856 - mod_ext_longident goto 343 - simple_core_type2 goto 509 - - -state 683 - simple_core_type2 : simple_core_type2 SHARP . class_longident opt_present (432) - - LIDENT shift 192 - UIDENT shift 49 - . error - - mod_longident goto 193 - class_longident goto 857 - - -state 684 - simple_core_type2 : simple_core_type2 type_longident . (427) - - . reduce 427 - - -state 685 - core_type2 : LIDENT COLON . core_type2 MINUSGREATER core_type2 (420) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 858 - simple_core_type2 goto 509 - - -state 686 - core_type2 : OPTLABEL core_type2 . MINUSGREATER core_type2 (419) - core_type2 : core_type2 . MINUSGREATER core_type2 (421) - - MINUSGREATER shift 859 - . error - - -state 687 - core_type2 : QUESTION LIDENT . COLON core_type2 MINUSGREATER core_type2 (418) - - COLON shift 860 - . error - - -state 688 - structure_item : EXTERNAL val_ident COLON core_type EQUAL . primitive_declaration (43) - - STRING shift 861 - . error - - primitive_declaration goto 862 - - -state 689 - simple_core_type_or_tuple : simple_core_type STAR . core_type_list (462) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 341 - LPAREN shift 502 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - type_longident goto 506 - core_type_list goto 863 - simple_core_type goto 508 - mod_ext_longident goto 343 - simple_core_type2 goto 509 - - -state 690 - core_type : core_type2 AS . QUOTE ident (416) - - QUOTE shift 864 - . error - - -state 691 - core_type2 : core_type2 MINUSGREATER . core_type2 (421) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 865 - simple_core_type2 goto 509 - - -state 692 - direction_flag : DOWNTO . (558) - - . reduce 558 - - -state 693 - direction_flag : TO . (557) - - . reduce 557 - - -state 694 - expr : FOR val_ident EQUAL seq_expr direction_flag . seq_expr DO seq_expr DONE (204) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 866 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 695 - label_longident : mod_longident DOT LIDENT . (527) - - . reduce 527 - - -state 696 - pattern : pattern . AS val_ident (320) - pattern : pattern . COLONCOLON pattern (324) - pattern : pattern . BAR pattern (326) - pattern_comma_list : pattern . COMMA pattern (350) - lbl_pattern : label_longident EQUAL pattern . (357) - - AS shift 527 - BAR shift 528 - COLONCOLON shift 529 - COMMA shift 530 - error reduce 357 - RBRACE reduce 357 - SEMI reduce 357 - - -state 697 - lbl_pattern_list : lbl_pattern SEMI UNDERSCORE . opt_semi (355) - opt_semi : . (569) - - SEMI shift 867 - error reduce 569 - RBRACE reduce 569 - - opt_semi goto 868 - - -state 698 - lbl_pattern_list : lbl_pattern SEMI lbl_pattern_list . (356) - - . reduce 356 - - -state 699 - pattern : LPAREN COLONCOLON RPAREN . LPAREN pattern COMMA pattern RPAREN (325) - - LPAREN shift 869 - . error - - -state 700 - pattern : pattern AS val_ident . (320) - - . reduce 320 - - -state 701 - pattern : pattern . AS val_ident (320) - pattern : pattern . COLONCOLON pattern (324) - pattern : pattern . BAR pattern (326) - pattern : pattern BAR pattern . (326) - pattern_comma_list : pattern . COMMA pattern (350) - - COLONCOLON shift 529 - COMMA shift 530 - error reduce 326 - AS reduce 326 - BAR reduce 326 - BARRBRACKET reduce 326 - COLON reduce 326 - EQUAL reduce 326 - MINUSGREATER reduce 326 - RBRACE reduce 326 - RBRACKET reduce 326 - RPAREN reduce 326 - SEMI reduce 326 - WHEN reduce 326 - - -state 702 - pattern : pattern . AS val_ident (320) - pattern : pattern . COLONCOLON pattern (324) - pattern : pattern COLONCOLON pattern . (324) - pattern : pattern . BAR pattern (326) - pattern_comma_list : pattern . COMMA pattern (350) - - COLONCOLON shift 529 - error reduce 324 - AS reduce 324 - BAR reduce 324 - BARRBRACKET reduce 324 - COLON reduce 324 - COMMA reduce 324 - EQUAL reduce 324 - MINUSGREATER reduce 324 - RBRACE reduce 324 - RBRACKET reduce 324 - RPAREN reduce 324 - SEMI reduce 324 - WHEN reduce 324 - - -state 703 - pattern : pattern . AS val_ident (320) - pattern : pattern . COLONCOLON pattern (324) - pattern : pattern . BAR pattern (326) - pattern_comma_list : pattern . COMMA pattern (350) - pattern_comma_list : pattern COMMA pattern . (350) - - COLONCOLON shift 529 - error reduce 350 - AS reduce 350 - BAR reduce 350 - BARRBRACKET reduce 350 - COLON reduce 350 - COMMA reduce 350 - EQUAL reduce 350 - MINUSGREATER reduce 350 - RBRACE reduce 350 - RBRACKET reduce 350 - RPAREN reduce 350 - SEMI reduce 350 - WHEN reduce 350 - - -state 704 - pattern : pattern . AS val_ident (320) - pattern : pattern . COLONCOLON pattern (324) - pattern : pattern . BAR pattern (326) - pattern_comma_list : pattern_comma_list COMMA pattern . (349) - pattern_comma_list : pattern . COMMA pattern (350) - - COLONCOLON shift 529 - error reduce 349 - AS reduce 349 - BAR reduce 349 - BARRBRACKET reduce 349 - COLON reduce 349 - COMMA reduce 349 - EQUAL reduce 349 - MINUSGREATER reduce 349 - RBRACE reduce 349 - RBRACKET reduce 349 - RPAREN reduce 349 - SEMI reduce 349 - WHEN reduce 349 - - -state 705 - pattern : pattern . AS val_ident (320) - pattern : pattern . COLONCOLON pattern (324) - pattern : pattern . BAR pattern (326) - pattern_comma_list : pattern . COMMA pattern (350) - pattern_semi_list : pattern_semi_list SEMI pattern . (352) - - AS shift 527 - BAR shift 528 - COLONCOLON shift 529 - COMMA shift 530 - error reduce 352 - BARRBRACKET reduce 352 - RBRACKET reduce 352 - SEMI reduce 352 - - -state 706 - simple_pattern : LBRACKET pattern_semi_list opt_semi error . (338) - - . reduce 338 - - -state 707 - simple_pattern : LBRACKET pattern_semi_list opt_semi RBRACKET . (337) - - . reduce 337 - - -state 708 - simple_pattern : LBRACKETBAR pattern_semi_list opt_semi error . (341) - - . reduce 341 - - -state 709 - simple_pattern : LBRACKETBAR pattern_semi_list opt_semi BARRBRACKET . (339) - - . reduce 339 - - -state 710 - simple_pattern : LPAREN MODULE UIDENT COLON . package_type RPAREN (347) - simple_pattern : LPAREN MODULE UIDENT COLON . package_type error (348) - - LIDENT shift 97 - UIDENT shift 459 - . error - - package_type goto 870 - ident goto 461 - mty_longident goto 749 - mod_ext_longident goto 463 - - -state 711 - simple_pattern : LPAREN MODULE UIDENT RPAREN . (346) - - . reduce 346 - - -state 712 - expr : FUN LPAREN TYPE LIDENT RPAREN . fun_def (194) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 114 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 347 - MINUS shift 119 - MINUSGREATER shift 348 - NATIVEINT shift 37 - OPTLABEL shift 120 - PLUS shift 121 - QUESTION shift 122 - SHARP shift 123 - STRING shift 45 - TILDE shift 124 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - WHEN shift 349 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 128 - labeled_simple_pattern goto 350 - simple_pattern goto 130 - fun_def goto 871 - name_tag goto 131 - constant goto 132 - match_action goto 352 - signed_constant goto 133 - - -state 713 - simple_pattern : LPAREN pattern COLON core_type . RPAREN (344) - simple_pattern : LPAREN pattern COLON core_type . error (345) - - error shift 872 - RPAREN shift 873 - . error - - -state 714 - let_pattern : pattern COLON . core_type (186) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 874 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 715 - opt_default : EQUAL . seq_expr (181) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 875 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 716 - labeled_simple_pattern : OPTLABEL LPAREN let_pattern opt_default . RPAREN (172) - - RPAREN shift 876 - . error - - -state 717 - labeled_simple_pattern : QUESTION LPAREN label_let_pattern opt_default . RPAREN (170) - - RPAREN shift 877 - . error - - -state 718 - label_let_pattern : label_var COLON . core_type (183) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 878 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 719 - type_longident : mod_ext_longident DOT LIDENT . (529) - - . reduce 529 - - -state 720 - labeled_simple_pattern : TILDE LPAREN label_let_pattern RPAREN . (174) - - . reduce 174 - - -state 721 - fun_def : LPAREN TYPE LIDENT . RPAREN fun_def (298) - - RPAREN shift 879 - . error - - -state 722 - match_action : WHEN seq_expr MINUSGREATER . seq_expr (300) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 880 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 723 - match_cases : match_cases BAR pattern . match_action (295) - pattern : pattern . AS val_ident (320) - pattern : pattern . COLONCOLON pattern (324) - pattern : pattern . BAR pattern (326) - pattern_comma_list : pattern . COMMA pattern (350) - - AS shift 527 - BAR shift 528 - COLONCOLON shift 529 - COMMA shift 530 - MINUSGREATER shift 348 - WHEN shift 349 - . error - - match_action goto 881 - - -state 724 - expr : IF seq_expr THEN expr ELSE . expr (201) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 882 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 725 - module_expr : FUNCTOR LPAREN UIDENT COLON . module_type RPAREN MINUSGREATER module_expr (21) - - FUNCTOR shift 455 - LIDENT shift 97 - LPAREN shift 456 - MODULE shift 457 - SIG shift 458 - UIDENT shift 459 - . error - - module_type goto 883 - ident goto 461 - mty_longident goto 462 - mod_ext_longident goto 463 - - -state 726 - module_expr : LPAREN VAL expr error . (34) - - . reduce 34 - - -state 727 - module_expr : LPAREN VAL expr COLON . package_type RPAREN (29) - module_expr : LPAREN VAL expr COLON . package_type COLONGREATER package_type RPAREN (30) - module_expr : LPAREN VAL expr COLON . error (32) - - error shift 884 - LIDENT shift 97 - UIDENT shift 459 - . error - - package_type goto 885 - ident goto 461 - mty_longident goto 749 - mod_ext_longident goto 463 - - -state 728 - module_expr : LPAREN VAL expr COLONGREATER . package_type RPAREN (31) - module_expr : LPAREN VAL expr COLONGREATER . error (33) - - error shift 886 - LIDENT shift 97 - UIDENT shift 459 - . error - - package_type goto 887 - ident goto 461 - mty_longident goto 749 - mod_ext_longident goto 463 - - -state 729 - module_expr : LPAREN VAL expr RPAREN . (28) - - . reduce 28 - - -state 730 - module_expr : LPAREN module_expr COLON module_type . RPAREN (24) - module_expr : LPAREN module_expr COLON module_type . error (25) - module_type : module_type . WITH with_constraints (64) - - error shift 888 - RPAREN shift 889 - WITH shift 638 - . error - - -state 731 - module_expr : module_expr LPAREN module_expr error . (23) - - . reduce 23 - - -state 732 - module_expr : module_expr LPAREN module_expr RPAREN . (22) - - . reduce 22 - - -state 733 - field_expr_list : field_expr_list SEMI label EQUAL . expr (311) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 890 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 734 - expr : LET MODULE UIDENT module_binding IN . seq_expr (190) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 891 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 735 - expr : LET OPEN mod_longident IN seq_expr . (191) - - . reduce 191 - - -state 736 - let_bindings : let_bindings AND let_binding . (282) - - . reduce 282 - - -state 737 - expr : LET rec_flag let_bindings IN seq_expr . (189) - - . reduce 189 - - -state 738 - typevar_list : QUOTE . ident (411) - simple_core_type2 : QUOTE . ident (424) - - LIDENT shift 97 - UIDENT shift 98 - . error - - ident goto 892 - - -state 739 - let_binding : val_ident COLON TYPE . lident_list DOT core_type EQUAL seq_expr (287) - - LIDENT shift 893 - . error - - lident_list goto 894 - - -state 740 - let_binding : val_ident COLON typevar_list . DOT core_type EQUAL seq_expr (286) - typevar_list : typevar_list . QUOTE ident (412) - - DOT shift 895 - QUOTE shift 896 - . error - - -state 741 - strict_binding : EQUAL seq_expr . (291) - - . reduce 291 - - -state 742 - strict_binding : LPAREN TYPE . LIDENT RPAREN fun_binding (293) - - LIDENT shift 897 - . error - - -state 743 - strict_binding : labeled_simple_pattern fun_binding . (292) - - . reduce 292 - - -state 744 - fun_binding : type_constraint EQUAL . seq_expr (290) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 898 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 745 - let_binding : pattern EQUAL seq_expr . (288) - - . reduce 288 - - -state 746 - expr : expr . COLONCOLON expr (205) - expr : LPAREN COLONCOLON RPAREN LPAREN expr . COMMA expr RPAREN (206) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 899 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - . error - - -state 747 - simple_expr : LPAREN MODULE module_expr COLON error . (271) - - . reduce 271 - - -state 748 - simple_expr : LPAREN MODULE module_expr COLON package_type . RPAREN (270) - - RPAREN shift 900 - . error - - -state 749 - package_type : mty_longident . (442) - package_type : mty_longident . WITH package_type_cstrs (443) - - WITH shift 901 - error reduce 442 - COLONGREATER reduce 442 - RPAREN reduce 442 - - -state 750 - type_constraint : COLON core_type COLONGREATER . core_type (315) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 902 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 751 - expr : MATCH seq_expr WITH opt_bar match_cases . (195) - match_cases : match_cases . BAR pattern match_action (295) - - BAR shift 552 - error reduce 195 - AMPERAMPER reduce 195 - AMPERSAND reduce 195 - AND reduce 195 - BARBAR reduce 195 - BARRBRACKET reduce 195 - CLASS reduce 195 - COLON reduce 195 - COLONCOLON reduce 195 - COLONEQUAL reduce 195 - COLONGREATER reduce 195 - COMMA reduce 195 - CONSTRAINT reduce 195 - DO reduce 195 - DONE reduce 195 - DOWNTO reduce 195 - ELSE reduce 195 - END reduce 195 - EOF reduce 195 - EQUAL reduce 195 - EXCEPTION reduce 195 - EXTERNAL reduce 195 - GREATER reduce 195 - GREATERRBRACE reduce 195 - IN reduce 195 - INCLUDE reduce 195 - INFIXOP0 reduce 195 - INFIXOP1 reduce 195 - INFIXOP2 reduce 195 - INFIXOP3 reduce 195 - INFIXOP4 reduce 195 - INHERIT reduce 195 - INITIALIZER reduce 195 - LESS reduce 195 - LET reduce 195 - METHOD reduce 195 - MINUS reduce 195 - MINUSDOT reduce 195 - MINUSGREATER reduce 195 - MODULE reduce 195 - OPEN reduce 195 - OR reduce 195 - PLUS reduce 195 - PLUSDOT reduce 195 - RBRACE reduce 195 - RBRACKET reduce 195 - RPAREN reduce 195 - SEMI reduce 195 - SEMISEMI reduce 195 - SHARP reduce 195 - STAR reduce 195 - THEN reduce 195 - TO reduce 195 - TYPE reduce 195 - VAL reduce 195 - WITH reduce 195 - - -state 752 - module_rec_binding : UIDENT COLON module_type . EQUAL module_expr (59) - module_type : module_type . WITH with_constraints (64) - - EQUAL shift 903 - WITH shift 638 - . error - - -state 753 - module_rec_bindings : module_rec_bindings AND module_rec_binding . (58) - - . reduce 58 - - -state 754 - structure_item : MODULE TYPE ident EQUAL module_type . (49) - module_type : module_type . WITH with_constraints (64) - - WITH shift 638 - error reduce 49 - CLASS reduce 49 - END reduce 49 - EOF reduce 49 - EXCEPTION reduce 49 - EXTERNAL reduce 49 - INCLUDE reduce 49 - LET reduce 49 - MODULE reduce 49 - OPEN reduce 49 - SEMISEMI reduce 49 - SHARP reduce 49 - TYPE reduce 49 - - -state 755 - module_binding : COLON module_type EQUAL . module_expr (55) - - FUNCTOR shift 137 - LPAREN shift 138 - STRUCT shift 139 - UIDENT shift 49 - . error - - module_expr goto 904 - mod_longident goto 141 - - -state 756 - module_binding : LPAREN UIDENT COLON . module_type RPAREN module_binding (56) - - FUNCTOR shift 455 - LIDENT shift 97 - LPAREN shift 456 - MODULE shift 457 - SIG shift 458 - UIDENT shift 459 - . error - - module_type goto 905 - ident goto 461 - mty_longident goto 462 - mod_ext_longident goto 463 - - -state 757 - class_self_pattern : LPAREN pattern COLON core_type . RPAREN (112) - - RPAREN shift 906 - . error - - -state 758 - constrain_field : core_type . EQUAL core_type (160) - - EQUAL shift 907 - . error - - -state 759 - class_field : CONSTRAINT constrain_field . (121) - - . reduce 121 - - -state 760 - override_flag : BANG . (566) - - . reduce 566 - - -state 761 - class_field : INHERIT override_flag . class_expr parent_binder (116) - - FUN shift 829 - LBRACKET shift 830 - LET shift 831 - LIDENT shift 192 - LPAREN shift 832 - OBJECT shift 833 - UIDENT shift 49 - . error - - mod_longident goto 193 - class_expr goto 908 - class_simple_expr goto 835 - class_longident goto 836 - - -state 762 - class_field : INITIALIZER seq_expr . (122) - - . reduce 122 - - -state 763 - virtual_method : METHOD override_flag . PRIVATE VIRTUAL label COLON poly_type (129) - virtual_method : METHOD override_flag . VIRTUAL private_flag label COLON poly_type (130) - concrete_method : METHOD override_flag . private_flag label strict_binding (131) - concrete_method : METHOD override_flag . private_flag label COLON poly_type EQUAL seq_expr (132) - concrete_method : METHOD override_flag . private_flag label COLON TYPE lident_list DOT core_type EQUAL seq_expr (133) - private_flag : . (559) - - PRIVATE shift 909 - VIRTUAL shift 910 - LIDENT reduce 559 - - private_flag goto 911 - - -state 764 - virtual_value : VIRTUAL . mutable_flag label COLON core_type (126) - mutable_flag : . (561) - - MUTABLE shift 912 - LIDENT reduce 561 - - mutable_flag goto 913 - - -state 765 - virtual_value : override_flag . MUTABLE VIRTUAL label COLON core_type (125) - value : override_flag . mutable_flag label EQUAL seq_expr (127) - value : override_flag . mutable_flag label type_constraint EQUAL seq_expr (128) - mutable_flag : . (561) - - MUTABLE shift 914 - LIDENT reduce 561 - - mutable_flag goto 915 - - -state 766 - class_field : VAL virtual_value . (117) - - . reduce 117 - - -state 767 - class_field : VAL value . (118) - - . reduce 118 - - -state 768 - expr : TRY seq_expr WITH opt_bar match_cases . (196) - match_cases : match_cases . BAR pattern match_action (295) - - BAR shift 552 - error reduce 196 - AMPERAMPER reduce 196 - AMPERSAND reduce 196 - AND reduce 196 - BARBAR reduce 196 - BARRBRACKET reduce 196 - CLASS reduce 196 - COLON reduce 196 - COLONCOLON reduce 196 - COLONEQUAL reduce 196 - COLONGREATER reduce 196 - COMMA reduce 196 - CONSTRAINT reduce 196 - DO reduce 196 - DONE reduce 196 - DOWNTO reduce 196 - ELSE reduce 196 - END reduce 196 - EOF reduce 196 - EQUAL reduce 196 - EXCEPTION reduce 196 - EXTERNAL reduce 196 - GREATER reduce 196 - GREATERRBRACE reduce 196 - IN reduce 196 - INCLUDE reduce 196 - INFIXOP0 reduce 196 - INFIXOP1 reduce 196 - INFIXOP2 reduce 196 - INFIXOP3 reduce 196 - INFIXOP4 reduce 196 - INHERIT reduce 196 - INITIALIZER reduce 196 - LESS reduce 196 - LET reduce 196 - METHOD reduce 196 - MINUS reduce 196 - MINUSDOT reduce 196 - MINUSGREATER reduce 196 - MODULE reduce 196 - OPEN reduce 196 - OR reduce 196 - PLUS reduce 196 - PLUSDOT reduce 196 - RBRACE reduce 196 - RBRACKET reduce 196 - RPAREN reduce 196 - SEMI reduce 196 - SEMISEMI reduce 196 - SHARP reduce 196 - STAR reduce 196 - THEN reduce 196 - TO reduce 196 - TYPE reduce 196 - VAL reduce 196 - WITH reduce 196 - - -state 769 - optional_type_parameter_list : optional_type_parameter_list COMMA optional_type_parameter . (381) - - . reduce 381 - - -state 770 - constr_ident : COLONCOLON . (516) - - . reduce 516 - - -state 771 - constr_ident : FALSE . (517) - - . reduce 517 - - -state 772 - simple_core_type : LPAREN . core_type_comma_list RPAREN (423) - simple_core_type2 : LPAREN . core_type_comma_list RPAREN type_longident (428) - simple_core_type2 : LPAREN . core_type_comma_list RPAREN SHARP class_longident opt_present (433) - simple_core_type2 : LPAREN . MODULE package_type RPAREN (441) - constr_ident : LPAREN . RPAREN (515) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - MODULE shift 677 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - RPAREN shift 916 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 678 - core_type_comma_list goto 679 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 773 - type_kind : EQUAL PRIVATE . core_type (368) - type_kind : EQUAL PRIVATE . constructor_declarations (370) - private_flag : PRIVATE . (560) - - COLONCOLON shift 770 - FALSE shift 771 - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 772 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - TRUE shift 774 - UIDENT shift 775 - UNDERSCORE shift 505 - BAR reduce 560 - LBRACE reduce 560 - - core_type goto 917 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - constructor_declarations goto 918 - constructor_declaration goto 779 - constr_ident goto 780 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 774 - constr_ident : TRUE . (518) - - . reduce 518 - - -state 775 - constr_ident : UIDENT . (514) - mod_ext_longident : UIDENT . (532) - - error reduce 514 - AND reduce 514 - BAR reduce 514 - CLASS reduce 514 - COLON reduce 514 - CONSTRAINT reduce 514 - DOT reduce 532 - END reduce 514 - EOF reduce 514 - EXCEPTION reduce 514 - EXTERNAL reduce 514 - INCLUDE reduce 514 - LET reduce 514 - LPAREN reduce 532 - MODULE reduce 514 - OF reduce 514 - OPEN reduce 514 - SEMISEMI reduce 514 - SHARP reduce 514 - TYPE reduce 514 - VAL reduce 514 - - -state 776 - type_kind : EQUAL core_type . (367) - type_kind : EQUAL core_type . EQUAL private_flag opt_bar constructor_declarations (373) - type_kind : EQUAL core_type . EQUAL private_flag LBRACE label_declarations opt_semi RBRACE (374) - - EQUAL shift 919 - error reduce 367 - AND reduce 367 - CLASS reduce 367 - CONSTRAINT reduce 367 - END reduce 367 - EOF reduce 367 - EXCEPTION reduce 367 - EXTERNAL reduce 367 - INCLUDE reduce 367 - LET reduce 367 - MODULE reduce 367 - OPEN reduce 367 - SEMISEMI reduce 367 - SHARP reduce 367 - TYPE reduce 367 - VAL reduce 367 - - -state 777 - type_kind : EQUAL private_flag . BAR constructor_declarations (371) - type_kind : EQUAL private_flag . LBRACE label_declarations opt_semi RBRACE (372) - - BAR shift 920 - LBRACE shift 921 - . error - - -state 778 - type_kind : EQUAL constructor_declarations . (369) - constructor_declarations : constructor_declarations . BAR constructor_declaration (392) - - BAR shift 922 - error reduce 369 - AND reduce 369 - CLASS reduce 369 - CONSTRAINT reduce 369 - END reduce 369 - EOF reduce 369 - EXCEPTION reduce 369 - EXTERNAL reduce 369 - INCLUDE reduce 369 - LET reduce 369 - MODULE reduce 369 - OPEN reduce 369 - SEMISEMI reduce 369 - SHARP reduce 369 - TYPE reduce 369 - VAL reduce 369 - - -state 779 - constructor_declarations : constructor_declaration . (391) - - . reduce 391 - - -state 780 - constructor_declaration : constr_ident . generalized_constructor_arguments (393) - generalized_constructor_arguments : . (396) - - COLON shift 923 - OF shift 924 - error reduce 396 - AND reduce 396 - BAR reduce 396 - CLASS reduce 396 - CONSTRAINT reduce 396 - END reduce 396 - EOF reduce 396 - EXCEPTION reduce 396 - EXTERNAL reduce 396 - INCLUDE reduce 396 - LET reduce 396 - MODULE reduce 396 - OPEN reduce 396 - SEMISEMI reduce 396 - SHARP reduce 396 - TYPE reduce 396 - VAL reduce 396 - - generalized_constructor_arguments goto 925 - - -state 781 - type_declaration : optional_type_parameters LIDENT type_kind constraints . (363) - constraints : constraints . CONSTRAINT constrain (364) - - CONSTRAINT shift 926 - error reduce 363 - AND reduce 363 - CLASS reduce 363 - END reduce 363 - EOF reduce 363 - EXCEPTION reduce 363 - EXTERNAL reduce 363 - INCLUDE reduce 363 - LET reduce 363 - MODULE reduce 363 - OPEN reduce 363 - SEMISEMI reduce 363 - SHARP reduce 363 - TYPE reduce 363 - VAL reduce 363 - - -state 782 - expr : WHILE seq_expr DO seq_expr DONE . (203) - - . reduce 203 - - -state 783 - simple_expr : mod_longident DOT LPAREN seq_expr error . (248) - - . reduce 248 - - -state 784 - simple_expr : mod_longident DOT LPAREN seq_expr RPAREN . (247) - - . reduce 247 - - -state 785 - expr : simple_expr DOT LBRACE expr RBRACE . LESSMINUS expr (230) - simple_expr : simple_expr DOT LBRACE expr RBRACE . (253) - - LESSMINUS shift 927 - error reduce 253 - AMPERAMPER reduce 253 - AMPERSAND reduce 253 - AND reduce 253 - BACKQUOTE reduce 253 - BANG reduce 253 - BAR reduce 253 - BARBAR reduce 253 - BARRBRACKET reduce 253 - BEGIN reduce 253 - CHAR reduce 253 - CLASS reduce 253 - COLON reduce 253 - COLONCOLON reduce 253 - COLONEQUAL reduce 253 - COLONGREATER reduce 253 - COMMA reduce 253 - CONSTRAINT reduce 253 - DO reduce 253 - DONE reduce 253 - DOT reduce 253 - DOWNTO reduce 253 - ELSE reduce 253 - END reduce 253 - EOF reduce 253 - EQUAL reduce 253 - EXCEPTION reduce 253 - EXTERNAL reduce 253 - FALSE reduce 253 - FLOAT reduce 253 - GREATER reduce 253 - GREATERRBRACE reduce 253 - IN reduce 253 - INCLUDE reduce 253 - INFIXOP0 reduce 253 - INFIXOP1 reduce 253 - INFIXOP2 reduce 253 - INFIXOP3 reduce 253 - INFIXOP4 reduce 253 - INHERIT reduce 253 - INITIALIZER reduce 253 - INT reduce 253 - INT32 reduce 253 - INT64 reduce 253 - LABEL reduce 253 - LBRACE reduce 253 - LBRACELESS reduce 253 - LBRACKET reduce 253 - LBRACKETBAR reduce 253 - LESS reduce 253 - LET reduce 253 - LIDENT reduce 253 - LPAREN reduce 253 - METHOD reduce 253 - MINUS reduce 253 - MINUSDOT reduce 253 - MINUSGREATER reduce 253 - MODULE reduce 253 - NATIVEINT reduce 253 - NEW reduce 253 - OPEN reduce 253 - OPTLABEL reduce 253 - OR reduce 253 - PLUS reduce 253 - PLUSDOT reduce 253 - PREFIXOP reduce 253 - QUESTION reduce 253 - RBRACE reduce 253 - RBRACKET reduce 253 - RPAREN reduce 253 - SEMI reduce 253 - SEMISEMI reduce 253 - SHARP reduce 253 - STAR reduce 253 - STRING reduce 253 - THEN reduce 253 - TILDE reduce 253 - TO reduce 253 - TRUE reduce 253 - TYPE reduce 253 - UIDENT reduce 253 - VAL reduce 253 - WITH reduce 253 - - -state 786 - simple_expr : simple_expr DOT LBRACE expr_comma_list error . (254) - - . reduce 254 - - -state 787 - simple_expr : simple_expr DOT LBRACKET seq_expr error . (252) - - . reduce 252 - - -state 788 - expr : simple_expr DOT LBRACKET seq_expr RBRACKET . LESSMINUS expr (229) - simple_expr : simple_expr DOT LBRACKET seq_expr RBRACKET . (251) - - LESSMINUS shift 928 - error reduce 251 - AMPERAMPER reduce 251 - AMPERSAND reduce 251 - AND reduce 251 - BACKQUOTE reduce 251 - BANG reduce 251 - BAR reduce 251 - BARBAR reduce 251 - BARRBRACKET reduce 251 - BEGIN reduce 251 - CHAR reduce 251 - CLASS reduce 251 - COLON reduce 251 - COLONCOLON reduce 251 - COLONEQUAL reduce 251 - COLONGREATER reduce 251 - COMMA reduce 251 - CONSTRAINT reduce 251 - DO reduce 251 - DONE reduce 251 - DOT reduce 251 - DOWNTO reduce 251 - ELSE reduce 251 - END reduce 251 - EOF reduce 251 - EQUAL reduce 251 - EXCEPTION reduce 251 - EXTERNAL reduce 251 - FALSE reduce 251 - FLOAT reduce 251 - GREATER reduce 251 - GREATERRBRACE reduce 251 - IN reduce 251 - INCLUDE reduce 251 - INFIXOP0 reduce 251 - INFIXOP1 reduce 251 - INFIXOP2 reduce 251 - INFIXOP3 reduce 251 - INFIXOP4 reduce 251 - INHERIT reduce 251 - INITIALIZER reduce 251 - INT reduce 251 - INT32 reduce 251 - INT64 reduce 251 - LABEL reduce 251 - LBRACE reduce 251 - LBRACELESS reduce 251 - LBRACKET reduce 251 - LBRACKETBAR reduce 251 - LESS reduce 251 - LET reduce 251 - LIDENT reduce 251 - LPAREN reduce 251 - METHOD reduce 251 - MINUS reduce 251 - MINUSDOT reduce 251 - MINUSGREATER reduce 251 - MODULE reduce 251 - NATIVEINT reduce 251 - NEW reduce 251 - OPEN reduce 251 - OPTLABEL reduce 251 - OR reduce 251 - PLUS reduce 251 - PLUSDOT reduce 251 - PREFIXOP reduce 251 - QUESTION reduce 251 - RBRACE reduce 251 - RBRACKET reduce 251 - RPAREN reduce 251 - SEMI reduce 251 - SEMISEMI reduce 251 - SHARP reduce 251 - STAR reduce 251 - STRING reduce 251 - THEN reduce 251 - TILDE reduce 251 - TO reduce 251 - TRUE reduce 251 - TYPE reduce 251 - UIDENT reduce 251 - VAL reduce 251 - WITH reduce 251 - - -state 789 - simple_expr : simple_expr DOT LPAREN seq_expr error . (250) - - . reduce 250 - - -state 790 - expr : simple_expr DOT LPAREN seq_expr RPAREN . LESSMINUS expr (228) - simple_expr : simple_expr DOT LPAREN seq_expr RPAREN . (249) - - LESSMINUS shift 929 - error reduce 249 - AMPERAMPER reduce 249 - AMPERSAND reduce 249 - AND reduce 249 - BACKQUOTE reduce 249 - BANG reduce 249 - BAR reduce 249 - BARBAR reduce 249 - BARRBRACKET reduce 249 - BEGIN reduce 249 - CHAR reduce 249 - CLASS reduce 249 - COLON reduce 249 - COLONCOLON reduce 249 - COLONEQUAL reduce 249 - COLONGREATER reduce 249 - COMMA reduce 249 - CONSTRAINT reduce 249 - DO reduce 249 - DONE reduce 249 - DOT reduce 249 - DOWNTO reduce 249 - ELSE reduce 249 - END reduce 249 - EOF reduce 249 - EQUAL reduce 249 - EXCEPTION reduce 249 - EXTERNAL reduce 249 - FALSE reduce 249 - FLOAT reduce 249 - GREATER reduce 249 - GREATERRBRACE reduce 249 - IN reduce 249 - INCLUDE reduce 249 - INFIXOP0 reduce 249 - INFIXOP1 reduce 249 - INFIXOP2 reduce 249 - INFIXOP3 reduce 249 - INFIXOP4 reduce 249 - INHERIT reduce 249 - INITIALIZER reduce 249 - INT reduce 249 - INT32 reduce 249 - INT64 reduce 249 - LABEL reduce 249 - LBRACE reduce 249 - LBRACELESS reduce 249 - LBRACKET reduce 249 - LBRACKETBAR reduce 249 - LESS reduce 249 - LET reduce 249 - LIDENT reduce 249 - LPAREN reduce 249 - METHOD reduce 249 - MINUS reduce 249 - MINUSDOT reduce 249 - MINUSGREATER reduce 249 - MODULE reduce 249 - NATIVEINT reduce 249 - NEW reduce 249 - OPEN reduce 249 - OPTLABEL reduce 249 - OR reduce 249 - PLUS reduce 249 - PLUSDOT reduce 249 - PREFIXOP reduce 249 - QUESTION reduce 249 - RBRACE reduce 249 - RBRACKET reduce 249 - RPAREN reduce 249 - SEMI reduce 249 - SEMISEMI reduce 249 - SHARP reduce 249 - STAR reduce 249 - STRING reduce 249 - THEN reduce 249 - TILDE reduce 249 - TO reduce 249 - TRUE reduce 249 - TYPE reduce 249 - UIDENT reduce 249 - VAL reduce 249 - WITH reduce 249 - - -state 791 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr : simple_expr DOT label_longident LESSMINUS expr . (227) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 227 - AND reduce 227 - BAR reduce 227 - BARRBRACKET reduce 227 - CLASS reduce 227 - COLON reduce 227 - COLONGREATER reduce 227 - CONSTRAINT reduce 227 - DO reduce 227 - DONE reduce 227 - DOWNTO reduce 227 - ELSE reduce 227 - END reduce 227 - EOF reduce 227 - EXCEPTION reduce 227 - EXTERNAL reduce 227 - GREATERRBRACE reduce 227 - IN reduce 227 - INCLUDE reduce 227 - INHERIT reduce 227 - INITIALIZER reduce 227 - LET reduce 227 - METHOD reduce 227 - MINUSGREATER reduce 227 - MODULE reduce 227 - OPEN reduce 227 - RBRACE reduce 227 - RBRACKET reduce 227 - RPAREN reduce 227 - SEMI reduce 227 - SEMISEMI reduce 227 - SHARP reduce 227 - THEN reduce 227 - TO reduce 227 - TYPE reduce 227 - VAL reduce 227 - WITH reduce 227 - - -state 792 - class_descriptions : class_descriptions AND class_description . (161) - - . reduce 161 - - -state 793 - class_description : virtual_flag class_type_parameters LIDENT . COLON class_type (163) - - COLON shift 930 - . error - - -state 794 - signature_item : EXTERNAL val_ident COLON core_type . EQUAL primitive_declaration (72) - - EQUAL shift 931 - . error - - -state 795 - module_type : FUNCTOR LPAREN UIDENT . COLON module_type RPAREN MINUSGREATER module_type (63) - - COLON shift 932 - . error - - -state 796 - module_type : LPAREN module_type error . (67) - - . reduce 67 - - -state 797 - module_type : LPAREN module_type RPAREN . (66) - - . reduce 66 - - -state 798 - module_type : MODULE TYPE OF . module_expr (65) - - FUNCTOR shift 137 - LPAREN shift 138 - STRUCT shift 139 - UIDENT shift 49 - . error - - module_expr goto 933 - mod_longident goto 141 - - -state 799 - module_type : SIG signature error . (62) - - . reduce 62 - - -state 800 - module_type : SIG signature END . (61) - - . reduce 61 - - -state 801 - with_constraint : MODULE . mod_longident EQUAL mod_ext_longident (407) - with_constraint : MODULE . mod_longident COLONEQUAL mod_ext_longident (408) - - UIDENT shift 49 - . error - - mod_longident goto 934 - - -state 802 - with_constraint : TYPE . type_parameters label_longident with_type_binder core_type constraints (405) - with_constraint : TYPE . type_parameters label_longident COLONEQUAL core_type (406) - type_parameters : . (382) - type_variance : . (386) - - LPAREN shift 935 - MINUS shift 204 - PLUS shift 205 - LIDENT reduce 382 - QUOTE reduce 386 - UIDENT reduce 382 - - type_variance goto 492 - type_parameters goto 936 - type_parameter goto 937 - - -state 803 - module_type : module_type WITH with_constraints . (64) - with_constraints : with_constraints . AND with_constraint (404) - - AND shift 938 - error reduce 64 - CLASS reduce 64 - END reduce 64 - EOF reduce 64 - EQUAL reduce 64 - EXCEPTION reduce 64 - EXTERNAL reduce 64 - INCLUDE reduce 64 - LET reduce 64 - MODULE reduce 64 - OPEN reduce 64 - RPAREN reduce 64 - SEMISEMI reduce 64 - SHARP reduce 64 - TYPE reduce 64 - VAL reduce 64 - WITH reduce 64 - - -state 804 - with_constraints : with_constraint . (403) - - . reduce 403 - - -state 805 - ident : UIDENT . (490) - mod_ext_longident : mod_ext_longident DOT UIDENT . (533) - - error reduce 490 - AND reduce 490 - CLASS reduce 490 - COLONGREATER reduce 490 - DOT reduce 533 - END reduce 490 - EOF reduce 490 - EQUAL reduce 490 - EXCEPTION reduce 490 - EXTERNAL reduce 490 - INCLUDE reduce 490 - LET reduce 490 - LPAREN reduce 533 - MODULE reduce 490 - OPEN reduce 490 - RPAREN reduce 490 - SEMISEMI reduce 490 - SHARP reduce 490 - TYPE reduce 490 - VAL reduce 490 - WITH reduce 490 - - -state 806 - mty_longident : mod_ext_longident DOT ident . (536) - - . reduce 536 - - -state 807 - module_rec_declaration : UIDENT COLON . module_type (87) - - FUNCTOR shift 455 - LIDENT shift 97 - LPAREN shift 456 - MODULE shift 457 - SIG shift 458 - UIDENT shift 459 - . error - - module_type goto 939 - ident goto 461 - mty_longident goto 462 - mod_ext_longident goto 463 - - -state 808 - module_rec_declarations : module_rec_declarations AND . module_rec_declaration (86) - - UIDENT shift 640 - . error - - module_rec_declaration goto 940 - - -state 809 - signature_item : MODULE TYPE ident EQUAL . module_type (78) - - FUNCTOR shift 455 - LIDENT shift 97 - LPAREN shift 456 - MODULE shift 457 - SIG shift 458 - UIDENT shift 459 - . error - - module_type goto 941 - ident goto 461 - mty_longident goto 462 - mod_ext_longident goto 463 - - -state 810 - module_type : module_type . WITH with_constraints (64) - module_declaration : COLON module_type . (83) - - WITH shift 638 - error reduce 83 - CLASS reduce 83 - END reduce 83 - EOF reduce 83 - EXCEPTION reduce 83 - EXTERNAL reduce 83 - INCLUDE reduce 83 - MODULE reduce 83 - OPEN reduce 83 - SEMISEMI reduce 83 - TYPE reduce 83 - VAL reduce 83 - - -state 811 - module_declaration : LPAREN UIDENT . COLON module_type RPAREN module_declaration (84) - - COLON shift 942 - . error - - -state 812 - signature_item : VAL val_ident COLON core_type . (71) - - . reduce 71 - - -state 813 - simple_expr : simple_expr DOT LBRACE expr RBRACE . (253) - - . reduce 253 - - -state 814 - simple_expr : simple_expr DOT LBRACKET seq_expr RBRACKET . (251) - - . reduce 251 - - -state 815 - simple_expr : simple_expr DOT LPAREN seq_expr RPAREN . (249) - - . reduce 249 - - -state 816 - class_type_declaration : virtual_flag class_type_parameters LIDENT EQUAL . class_signature (166) - - LBRACKET shift 943 - LIDENT shift 944 - OBJECT shift 821 - UIDENT shift 89 - . error - - class_signature goto 945 - clty_longident goto 827 - mod_ext_longident goto 946 - - -state 817 - type_parameter_list : type_parameter_list COMMA type_parameter . (390) - - . reduce 390 - - -state 818 - type_parameter : type_variance QUOTE ident . (385) - - . reduce 385 - - -state 819 - class_signature : LBRACKET . core_type_comma_list RBRACKET clty_longident (139) - simple_core_type2 : LBRACKET . tag_field RBRACKET (434) - simple_core_type2 : LBRACKET . BAR row_field_list RBRACKET (435) - simple_core_type2 : LBRACKET . row_field BAR row_field_list RBRACKET (436) - - BACKQUOTE shift 8 - BAR shift 663 - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 678 - core_type_comma_list goto 947 - simple_core_type_or_tuple goto 514 - name_tag goto 665 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 948 - tag_field goto 667 - row_field goto 668 - - -state 820 - class_type : LIDENT . COLON simple_core_type_or_tuple MINUSGREATER class_type (137) - type_longident : LIDENT . (528) - clty_longident : LIDENT . (537) - - COLON shift 949 - error reduce 537 - AND reduce 537 - CLASS reduce 537 - END reduce 537 - EOF reduce 537 - EQUAL reduce 537 - EXCEPTION reduce 537 - EXTERNAL reduce 537 - INCLUDE reduce 537 - LIDENT reduce 528 - MINUSGREATER reduce 528 - MODULE reduce 537 - OPEN reduce 537 - RPAREN reduce 537 - SEMISEMI reduce 537 - SHARP reduce 528 - STAR reduce 528 - TYPE reduce 537 - UIDENT reduce 528 - VAL reduce 537 - - -state 821 - class_signature : OBJECT . class_sig_body END (141) - class_signature : OBJECT . class_sig_body error (142) - class_self_type : . (145) - - LPAREN shift 950 - error reduce 145 - CONSTRAINT reduce 145 - END reduce 145 - INHERIT reduce 145 - METHOD reduce 145 - VAL reduce 145 - - class_sig_body goto 951 - class_self_type goto 952 - - -state 822 - class_type : OPTLABEL . simple_core_type_or_tuple MINUSGREATER class_type (136) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 341 - LPAREN shift 502 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - simple_core_type_or_tuple goto 953 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - simple_core_type2 goto 509 - - -state 823 - class_type : QUESTION . LIDENT COLON simple_core_type_or_tuple MINUSGREATER class_type (135) - - LIDENT shift 954 - . error - - -state 824 - class_fun_binding : COLON class_type . EQUAL class_expr (92) - - EQUAL shift 955 - . error - - -state 825 - class_type : class_signature . (134) - - . reduce 134 - - -state 826 - class_type : simple_core_type_or_tuple . MINUSGREATER class_type (138) - - MINUSGREATER shift 956 - . error - - -state 827 - class_signature : clty_longident . (140) - - . reduce 140 - - -state 828 - type_longident : mod_ext_longident . DOT LIDENT (529) - mod_ext_longident : mod_ext_longident . DOT UIDENT (533) - mod_ext_longident : mod_ext_longident . LPAREN mod_ext_longident RPAREN (534) - clty_longident : mod_ext_longident . DOT LIDENT (538) - - DOT shift 957 - LPAREN shift 285 - . error - - -state 829 - class_expr : FUN . class_fun_def (99) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 114 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 302 - MINUS shift 119 - NATIVEINT shift 37 - OPTLABEL shift 120 - PLUS shift 121 - QUESTION shift 122 - SHARP shift 123 - STRING shift 45 - TILDE shift 124 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 128 - labeled_simple_pattern goto 958 - class_fun_def goto 959 - simple_pattern goto 130 - name_tag goto 131 - constant goto 132 - signed_constant goto 133 - - -state 830 - class_simple_expr : LBRACKET . core_type_comma_list RBRACKET class_longident (102) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 678 - core_type_comma_list goto 960 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 831 - class_expr : LET . rec_flag let_bindings IN class_expr (101) - rec_flag : . (555) - - REC shift 161 - BACKQUOTE reduce 555 - CHAR reduce 555 - FALSE reduce 555 - FLOAT reduce 555 - INT reduce 555 - INT32 reduce 555 - INT64 reduce 555 - LAZY reduce 555 - LBRACE reduce 555 - LBRACKET reduce 555 - LBRACKETBAR reduce 555 - LIDENT reduce 555 - LPAREN reduce 555 - MINUS reduce 555 - NATIVEINT reduce 555 - PLUS reduce 555 - SHARP reduce 555 - STRING reduce 555 - TRUE reduce 555 - UIDENT reduce 555 - UNDERSCORE reduce 555 - - rec_flag goto 961 - - -state 832 - class_simple_expr : LPAREN . class_expr COLON class_type RPAREN (106) - class_simple_expr : LPAREN . class_expr COLON class_type error (107) - class_simple_expr : LPAREN . class_expr RPAREN (108) - class_simple_expr : LPAREN . class_expr error (109) - - FUN shift 829 - LBRACKET shift 830 - LET shift 831 - LIDENT shift 192 - LPAREN shift 832 - OBJECT shift 833 - UIDENT shift 49 - . error - - mod_longident goto 193 - class_expr goto 962 - class_simple_expr goto 835 - class_longident goto 836 - - -state 833 - class_simple_expr : OBJECT . class_structure END (104) - class_simple_expr : OBJECT . class_structure error (105) - class_self_pattern : . (113) - - LPAREN shift 195 - error reduce 113 - CONSTRAINT reduce 113 - END reduce 113 - INHERIT reduce 113 - INITIALIZER reduce 113 - METHOD reduce 113 - VAL reduce 113 - - class_structure goto 963 - class_self_pattern goto 197 - - -state 834 - class_fun_binding : EQUAL class_expr . (91) - - . reduce 91 - - -state 835 - class_expr : class_simple_expr . (98) - class_expr : class_simple_expr . simple_labeled_expr_list (100) - - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 241 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LIDENT shift 86 - LPAREN shift 93 - NATIVEINT shift 37 - NEW shift 38 - OPTLABEL shift 242 - PREFIXOP shift 43 - QUESTION shift 243 - STRING shift 45 - TILDE shift 245 - TRUE shift 46 - UIDENT shift 49 - error reduce 98 - AND reduce 98 - AS reduce 98 - CLASS reduce 98 - COLON reduce 98 - CONSTRAINT reduce 98 - END reduce 98 - EOF reduce 98 - EXCEPTION reduce 98 - EXTERNAL reduce 98 - INCLUDE reduce 98 - INHERIT reduce 98 - INITIALIZER reduce 98 - LET reduce 98 - METHOD reduce 98 - MODULE reduce 98 - OPEN reduce 98 - RPAREN reduce 98 - SEMISEMI reduce 98 - SHARP reduce 98 - TYPE reduce 98 - VAL reduce 98 - - mod_longident goto 55 - val_ident goto 58 - constr_longident goto 94 - simple_labeled_expr_list goto 964 - simple_expr goto 247 - name_tag goto 96 - val_longident goto 66 - constant goto 67 - labeled_simple_expr goto 248 - label_expr goto 249 - - -state 836 - class_simple_expr : class_longident . (103) - - . reduce 103 - - -state 837 - class_fun_binding : labeled_simple_pattern class_fun_binding . (93) - - . reduce 93 - - -state 838 - row_field : tag_field . (449) - - . reduce 449 - - -state 839 - simple_core_type2 : LBRACKET BAR row_field_list . RBRACKET (435) - row_field_list : row_field_list . BAR row_field (448) - - BAR shift 965 - RBRACKET shift 966 - . error - - -state 840 - row_field_list : row_field . (447) - - . reduce 447 - - -state 841 - simple_core_type2 : LPAREN core_type_comma_list . RPAREN type_longident (428) - simple_core_type2 : LPAREN core_type_comma_list . RPAREN SHARP class_longident opt_present (433) - core_type_comma_list : core_type_comma_list . COMMA core_type (464) - - COMMA shift 852 - RPAREN shift 967 - . error - - -state 842 - tag_field : name_tag OF . opt_ampersand amper_type_list (451) - opt_ampersand : . (454) - - AMPERSAND shift 968 - LBRACKET reduce 454 - LBRACKETLESS reduce 454 - LBRACKETGREATER reduce 454 - LESS reduce 454 - LIDENT reduce 454 - LPAREN reduce 454 - OPTLABEL reduce 454 - QUESTION reduce 454 - QUOTE reduce 454 - SHARP reduce 454 - UIDENT reduce 454 - UNDERSCORE reduce 454 - - opt_ampersand goto 969 - - -state 843 - simple_core_type2 : LBRACKET tag_field RBRACKET . (434) - - . reduce 434 - - -state 844 - simple_core_type2 : LBRACKET row_field BAR . row_field_list RBRACKET (436) - - BACKQUOTE shift 8 - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 341 - LPAREN shift 664 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - name_tag goto 665 - type_longident goto 506 - mod_ext_longident goto 343 - simple_core_type2 goto 666 - tag_field goto 838 - row_field_list goto 970 - row_field goto 840 - - -state 845 - simple_core_type2 : LBRACKETLESS opt_bar row_field_list . RBRACKET (439) - simple_core_type2 : LBRACKETLESS opt_bar row_field_list . GREATER name_tag_list RBRACKET (440) - row_field_list : row_field_list . BAR row_field (448) - - BAR shift 965 - GREATER shift 971 - RBRACKET shift 972 - . error - - -state 846 - simple_core_type2 : LBRACKETGREATER opt_bar row_field_list . RBRACKET (437) - row_field_list : row_field_list . BAR row_field (448) - - BAR shift 965 - RBRACKET shift 973 - . error - - -state 847 - field : label COLON . poly_type (470) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 738 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 974 - poly_type goto 975 - simple_core_type_or_tuple goto 514 - typevar_list goto 976 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 848 - simple_core_type2 : LESS meth_list GREATER . (429) - - . reduce 429 - - -state 849 - meth_list : field SEMI . meth_list (467) - opt_semi : SEMI . (570) - - DOTDOT shift 672 - LIDENT shift 151 - GREATER reduce 570 - - label goto 674 - meth_list goto 977 - field goto 676 - - -state 850 - meth_list : field opt_semi . (468) - - . reduce 468 - - -state 851 - simple_core_type2 : LPAREN MODULE package_type . RPAREN (441) - - RPAREN shift 978 - . error - - -state 852 - core_type_comma_list : core_type_comma_list COMMA . core_type (464) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 979 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 853 - simple_core_type : LPAREN core_type_comma_list RPAREN . (423) - simple_core_type2 : LPAREN core_type_comma_list RPAREN . type_longident (428) - simple_core_type2 : LPAREN core_type_comma_list RPAREN . SHARP class_longident opt_present (433) - - LIDENT shift 341 - SHARP shift 980 - UIDENT shift 89 - error reduce 423 - AMPERSAND reduce 423 - AND reduce 423 - AS reduce 423 - BAR reduce 423 - CLASS reduce 423 - COLONGREATER reduce 423 - COMMA reduce 423 - CONSTRAINT reduce 423 - END reduce 423 - EOF reduce 423 - EQUAL reduce 423 - EXCEPTION reduce 423 - EXTERNAL reduce 423 - GREATER reduce 423 - INCLUDE reduce 423 - INHERIT reduce 423 - INITIALIZER reduce 423 - LET reduce 423 - METHOD reduce 423 - MINUSGREATER reduce 423 - MODULE reduce 423 - OPEN reduce 423 - RBRACE reduce 423 - RBRACKET reduce 423 - RPAREN reduce 423 - SEMI reduce 423 - SEMISEMI reduce 423 - STAR reduce 423 - TYPE reduce 423 - VAL reduce 423 - WITH reduce 423 - - type_longident goto 981 - mod_ext_longident goto 343 - - -state 854 - opt_present : LBRACKETGREATER . name_tag_list RBRACKET (457) - - BACKQUOTE shift 8 - . error - - name_tag goto 982 - name_tag_list goto 983 - - -state 855 - simple_core_type2 : SHARP class_longident opt_present . (431) - - . reduce 431 - - -state 856 - core_type_list : core_type_list STAR simple_core_type . (466) - - . reduce 466 - - -state 857 - simple_core_type2 : simple_core_type2 SHARP class_longident . opt_present (432) - opt_present : . (458) - - LBRACKETGREATER shift 854 - error reduce 458 - AMPERSAND reduce 458 - AND reduce 458 - AS reduce 458 - BAR reduce 458 - CLASS reduce 458 - COLONGREATER reduce 458 - COMMA reduce 458 - CONSTRAINT reduce 458 - END reduce 458 - EOF reduce 458 - EQUAL reduce 458 - EXCEPTION reduce 458 - EXTERNAL reduce 458 - GREATER reduce 458 - INCLUDE reduce 458 - INHERIT reduce 458 - INITIALIZER reduce 458 - LET reduce 458 - LIDENT reduce 458 - METHOD reduce 458 - MINUSGREATER reduce 458 - MODULE reduce 458 - OPEN reduce 458 - RBRACE reduce 458 - RBRACKET reduce 458 - RPAREN reduce 458 - SEMI reduce 458 - SEMISEMI reduce 458 - SHARP reduce 458 - STAR reduce 458 - TYPE reduce 458 - UIDENT reduce 458 - VAL reduce 458 - WITH reduce 458 - - opt_present goto 984 - - -state 858 - core_type2 : LIDENT COLON core_type2 . MINUSGREATER core_type2 (420) - core_type2 : core_type2 . MINUSGREATER core_type2 (421) - - MINUSGREATER shift 985 - . error - - -state 859 - core_type2 : OPTLABEL core_type2 MINUSGREATER . core_type2 (419) - core_type2 : core_type2 MINUSGREATER . core_type2 (421) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 986 - simple_core_type2 goto 509 - - -state 860 - core_type2 : QUESTION LIDENT COLON . core_type2 MINUSGREATER core_type2 (418) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 987 - simple_core_type2 goto 509 - - -state 861 - primitive_declaration : STRING . (359) - primitive_declaration : STRING . primitive_declaration (360) - - STRING shift 861 - error reduce 359 - CLASS reduce 359 - END reduce 359 - EOF reduce 359 - EXCEPTION reduce 359 - EXTERNAL reduce 359 - INCLUDE reduce 359 - LET reduce 359 - MODULE reduce 359 - OPEN reduce 359 - SEMISEMI reduce 359 - SHARP reduce 359 - TYPE reduce 359 - VAL reduce 359 - - primitive_declaration goto 988 - - -state 862 - structure_item : EXTERNAL val_ident COLON core_type EQUAL primitive_declaration . (43) - - . reduce 43 - - -state 863 - simple_core_type_or_tuple : simple_core_type STAR core_type_list . (462) - core_type_list : core_type_list . STAR simple_core_type (466) - - STAR shift 682 - error reduce 462 - AMPERSAND reduce 462 - AND reduce 462 - AS reduce 462 - BAR reduce 462 - CLASS reduce 462 - COLONGREATER reduce 462 - COMMA reduce 462 - CONSTRAINT reduce 462 - END reduce 462 - EOF reduce 462 - EQUAL reduce 462 - EXCEPTION reduce 462 - EXTERNAL reduce 462 - GREATER reduce 462 - INCLUDE reduce 462 - INHERIT reduce 462 - INITIALIZER reduce 462 - LET reduce 462 - METHOD reduce 462 - MINUSGREATER reduce 462 - MODULE reduce 462 - OPEN reduce 462 - RBRACE reduce 462 - RBRACKET reduce 462 - RPAREN reduce 462 - SEMI reduce 462 - SEMISEMI reduce 462 - SHARP reduce 462 - TYPE reduce 462 - VAL reduce 462 - WITH reduce 462 - - -state 864 - core_type : core_type2 AS QUOTE . ident (416) - - LIDENT shift 97 - UIDENT shift 98 - . error - - ident goto 989 - - -state 865 - core_type2 : core_type2 . MINUSGREATER core_type2 (421) - core_type2 : core_type2 MINUSGREATER core_type2 . (421) - - MINUSGREATER shift 691 - error reduce 421 - AMPERSAND reduce 421 - AND reduce 421 - AS reduce 421 - BAR reduce 421 - CLASS reduce 421 - COLONGREATER reduce 421 - COMMA reduce 421 - CONSTRAINT reduce 421 - END reduce 421 - EOF reduce 421 - EQUAL reduce 421 - EXCEPTION reduce 421 - EXTERNAL reduce 421 - GREATER reduce 421 - INCLUDE reduce 421 - INHERIT reduce 421 - INITIALIZER reduce 421 - LET reduce 421 - METHOD reduce 421 - MODULE reduce 421 - OPEN reduce 421 - RBRACE reduce 421 - RBRACKET reduce 421 - RPAREN reduce 421 - SEMI reduce 421 - SEMISEMI reduce 421 - SHARP reduce 421 - TYPE reduce 421 - VAL reduce 421 - WITH reduce 421 - - -state 866 - expr : FOR val_ident EQUAL seq_expr direction_flag seq_expr . DO seq_expr DONE (204) - - DO shift 990 - . error - - -state 867 - opt_semi : SEMI . (570) - - . reduce 570 - - -state 868 - lbl_pattern_list : lbl_pattern SEMI UNDERSCORE opt_semi . (355) - - . reduce 355 - - -state 869 - pattern : LPAREN COLONCOLON RPAREN LPAREN . pattern COMMA pattern RPAREN (325) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 991 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 870 - simple_pattern : LPAREN MODULE UIDENT COLON package_type . RPAREN (347) - simple_pattern : LPAREN MODULE UIDENT COLON package_type . error (348) - - error shift 992 - RPAREN shift 993 - . error - - -state 871 - expr : FUN LPAREN TYPE LIDENT RPAREN fun_def . (194) - - . reduce 194 - - -state 872 - simple_pattern : LPAREN pattern COLON core_type error . (345) - - . reduce 345 - - -state 873 - simple_pattern : LPAREN pattern COLON core_type RPAREN . (344) - - . reduce 344 - - -state 874 - let_pattern : pattern COLON core_type . (186) - - . reduce 186 - - -state 875 - opt_default : EQUAL seq_expr . (181) - - . reduce 181 - - -state 876 - labeled_simple_pattern : OPTLABEL LPAREN let_pattern opt_default RPAREN . (172) - - . reduce 172 - - -state 877 - labeled_simple_pattern : QUESTION LPAREN label_let_pattern opt_default RPAREN . (170) - - . reduce 170 - - -state 878 - label_let_pattern : label_var COLON core_type . (183) - - . reduce 183 - - -state 879 - fun_def : LPAREN TYPE LIDENT RPAREN . fun_def (298) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 114 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 347 - MINUS shift 119 - MINUSGREATER shift 348 - NATIVEINT shift 37 - OPTLABEL shift 120 - PLUS shift 121 - QUESTION shift 122 - SHARP shift 123 - STRING shift 45 - TILDE shift 124 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - WHEN shift 349 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 128 - labeled_simple_pattern goto 350 - simple_pattern goto 130 - fun_def goto 994 - name_tag goto 131 - constant goto 132 - match_action goto 352 - signed_constant goto 133 - - -state 880 - match_action : WHEN seq_expr MINUSGREATER seq_expr . (300) - - . reduce 300 - - -state 881 - match_cases : match_cases BAR pattern match_action . (295) - - . reduce 295 - - -state 882 - expr : IF seq_expr THEN expr ELSE expr . (201) - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 201 - AND reduce 201 - BAR reduce 201 - BARRBRACKET reduce 201 - CLASS reduce 201 - COLON reduce 201 - COLONGREATER reduce 201 - CONSTRAINT reduce 201 - DO reduce 201 - DONE reduce 201 - DOWNTO reduce 201 - ELSE reduce 201 - END reduce 201 - EOF reduce 201 - EXCEPTION reduce 201 - EXTERNAL reduce 201 - GREATERRBRACE reduce 201 - IN reduce 201 - INCLUDE reduce 201 - INHERIT reduce 201 - INITIALIZER reduce 201 - LET reduce 201 - METHOD reduce 201 - MINUSGREATER reduce 201 - MODULE reduce 201 - OPEN reduce 201 - RBRACE reduce 201 - RBRACKET reduce 201 - RPAREN reduce 201 - SEMI reduce 201 - SEMISEMI reduce 201 - SHARP reduce 201 - THEN reduce 201 - TO reduce 201 - TYPE reduce 201 - VAL reduce 201 - WITH reduce 201 - - -state 883 - module_expr : FUNCTOR LPAREN UIDENT COLON module_type . RPAREN MINUSGREATER module_expr (21) - module_type : module_type . WITH with_constraints (64) - - RPAREN shift 995 - WITH shift 638 - . error - - -state 884 - module_expr : LPAREN VAL expr COLON error . (32) - - . reduce 32 - - -state 885 - module_expr : LPAREN VAL expr COLON package_type . RPAREN (29) - module_expr : LPAREN VAL expr COLON package_type . COLONGREATER package_type RPAREN (30) - - COLONGREATER shift 996 - RPAREN shift 997 - . error - - -state 886 - module_expr : LPAREN VAL expr COLONGREATER error . (33) - - . reduce 33 - - -state 887 - module_expr : LPAREN VAL expr COLONGREATER package_type . RPAREN (31) - - RPAREN shift 998 - . error - - -state 888 - module_expr : LPAREN module_expr COLON module_type error . (25) - - . reduce 25 - - -state 889 - module_expr : LPAREN module_expr COLON module_type RPAREN . (24) - - . reduce 24 - - -state 890 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - field_expr_list : field_expr_list SEMI label EQUAL expr . (311) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 311 - GREATERRBRACE reduce 311 - SEMI reduce 311 - - -state 891 - expr : LET MODULE UIDENT module_binding IN seq_expr . (190) - - . reduce 190 - - -state 892 - typevar_list : QUOTE ident . (411) - simple_core_type2 : QUOTE ident . (424) - - error reduce 424 - AS reduce 424 - COLONGREATER reduce 424 - CONSTRAINT reduce 424 - DOT reduce 411 - END reduce 424 - EQUAL reduce 424 - GREATER reduce 424 - INHERIT reduce 424 - INITIALIZER reduce 424 - LIDENT reduce 424 - METHOD reduce 424 - MINUSGREATER reduce 424 - QUOTE reduce 411 - RBRACE reduce 424 - SEMI reduce 424 - SHARP reduce 424 - STAR reduce 424 - UIDENT reduce 424 - VAL reduce 424 - - -state 893 - lident_list : LIDENT . (283) - lident_list : LIDENT . lident_list (284) - - LIDENT shift 893 - DOT reduce 283 - - lident_list goto 999 - - -state 894 - let_binding : val_ident COLON TYPE lident_list . DOT core_type EQUAL seq_expr (287) - - DOT shift 1000 - . error - - -state 895 - let_binding : val_ident COLON typevar_list DOT . core_type EQUAL seq_expr (286) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1001 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 896 - typevar_list : typevar_list QUOTE . ident (412) - - LIDENT shift 97 - UIDENT shift 98 - . error - - ident goto 1002 - - -state 897 - strict_binding : LPAREN TYPE LIDENT . RPAREN fun_binding (293) - - RPAREN shift 1003 - . error - - -state 898 - fun_binding : type_constraint EQUAL seq_expr . (290) - - . reduce 290 - - -state 899 - expr : LPAREN COLONCOLON RPAREN LPAREN expr COMMA . expr RPAREN (206) - expr_comma_list : expr COMMA . expr (302) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 1004 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 900 - simple_expr : LPAREN MODULE module_expr COLON package_type RPAREN . (270) - - . reduce 270 - - -state 901 - package_type : mty_longident WITH . package_type_cstrs (443) - - TYPE shift 1005 - . error - - package_type_cstrs goto 1006 - package_type_cstr goto 1007 - - -state 902 - type_constraint : COLON core_type COLONGREATER core_type . (315) - - . reduce 315 - - -state 903 - module_rec_binding : UIDENT COLON module_type EQUAL . module_expr (59) - - FUNCTOR shift 137 - LPAREN shift 138 - STRUCT shift 139 - UIDENT shift 49 - . error - - module_expr goto 1008 - mod_longident goto 141 - - -state 904 - module_expr : module_expr . LPAREN module_expr RPAREN (22) - module_expr : module_expr . LPAREN module_expr error (23) - module_binding : COLON module_type EQUAL module_expr . (55) - - LPAREN shift 360 - error reduce 55 - CLASS reduce 55 - END reduce 55 - EOF reduce 55 - EXCEPTION reduce 55 - EXTERNAL reduce 55 - IN reduce 55 - INCLUDE reduce 55 - LET reduce 55 - MODULE reduce 55 - OPEN reduce 55 - SEMISEMI reduce 55 - SHARP reduce 55 - TYPE reduce 55 - - -state 905 - module_binding : LPAREN UIDENT COLON module_type . RPAREN module_binding (56) - module_type : module_type . WITH with_constraints (64) - - RPAREN shift 1009 - WITH shift 638 - . error - - -state 906 - class_self_pattern : LPAREN pattern COLON core_type RPAREN . (112) - - . reduce 112 - - -state 907 - constrain_field : core_type EQUAL . core_type (160) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1010 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 908 - class_field : INHERIT override_flag class_expr . parent_binder (116) - parent_binder : . (124) - - AS shift 1011 - error reduce 124 - CONSTRAINT reduce 124 - END reduce 124 - INHERIT reduce 124 - INITIALIZER reduce 124 - METHOD reduce 124 - VAL reduce 124 - - parent_binder goto 1012 - - -state 909 - virtual_method : METHOD override_flag PRIVATE . VIRTUAL label COLON poly_type (129) - private_flag : PRIVATE . (560) - - VIRTUAL shift 1013 - LIDENT reduce 560 - - -state 910 - virtual_method : METHOD override_flag VIRTUAL . private_flag label COLON poly_type (130) - private_flag : . (559) - - PRIVATE shift 1014 - LIDENT reduce 559 - - private_flag goto 1015 - - -state 911 - concrete_method : METHOD override_flag private_flag . label strict_binding (131) - concrete_method : METHOD override_flag private_flag . label COLON poly_type EQUAL seq_expr (132) - concrete_method : METHOD override_flag private_flag . label COLON TYPE lident_list DOT core_type EQUAL seq_expr (133) - - LIDENT shift 151 - . error - - label goto 1016 - - -state 912 - mutable_flag : MUTABLE . (562) - - . reduce 562 - - -state 913 - virtual_value : VIRTUAL mutable_flag . label COLON core_type (126) - - LIDENT shift 151 - . error - - label goto 1017 - - -state 914 - virtual_value : override_flag MUTABLE . VIRTUAL label COLON core_type (125) - mutable_flag : MUTABLE . (562) - - VIRTUAL shift 1018 - LIDENT reduce 562 - - -state 915 - value : override_flag mutable_flag . label EQUAL seq_expr (127) - value : override_flag mutable_flag . label type_constraint EQUAL seq_expr (128) - - LIDENT shift 151 - . error - - label goto 1019 - - -state 916 - constr_ident : LPAREN RPAREN . (515) - - . reduce 515 - - -state 917 - type_kind : EQUAL PRIVATE core_type . (368) - - . reduce 368 - - -state 918 - type_kind : EQUAL PRIVATE constructor_declarations . (370) - constructor_declarations : constructor_declarations . BAR constructor_declaration (392) - - BAR shift 922 - error reduce 370 - AND reduce 370 - CLASS reduce 370 - CONSTRAINT reduce 370 - END reduce 370 - EOF reduce 370 - EXCEPTION reduce 370 - EXTERNAL reduce 370 - INCLUDE reduce 370 - LET reduce 370 - MODULE reduce 370 - OPEN reduce 370 - SEMISEMI reduce 370 - SHARP reduce 370 - TYPE reduce 370 - VAL reduce 370 - - -state 919 - type_kind : EQUAL core_type EQUAL . private_flag opt_bar constructor_declarations (373) - type_kind : EQUAL core_type EQUAL . private_flag LBRACE label_declarations opt_semi RBRACE (374) - private_flag : . (559) - - PRIVATE shift 1014 - BAR reduce 559 - COLONCOLON reduce 559 - FALSE reduce 559 - LBRACE reduce 559 - LPAREN reduce 559 - TRUE reduce 559 - UIDENT reduce 559 - - private_flag goto 1020 - - -state 920 - type_kind : EQUAL private_flag BAR . constructor_declarations (371) - - COLONCOLON shift 770 - FALSE shift 771 - LPAREN shift 1021 - TRUE shift 774 - UIDENT shift 1022 - . error - - constructor_declarations goto 1023 - constructor_declaration goto 779 - constr_ident goto 780 - - -state 921 - type_kind : EQUAL private_flag LBRACE . label_declarations opt_semi RBRACE (372) - mutable_flag : . (561) - - MUTABLE shift 912 - LIDENT reduce 561 - - mutable_flag goto 1024 - label_declarations goto 1025 - label_declaration goto 1026 - - -state 922 - constructor_declarations : constructor_declarations BAR . constructor_declaration (392) - - COLONCOLON shift 770 - FALSE shift 771 - LPAREN shift 1021 - TRUE shift 774 - UIDENT shift 1022 - . error - - constructor_declaration goto 1027 - constr_ident goto 780 - - -state 923 - generalized_constructor_arguments : COLON . core_type_list MINUSGREATER simple_core_type (398) - generalized_constructor_arguments : COLON . simple_core_type (399) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 341 - LPAREN shift 502 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - type_longident goto 506 - core_type_list goto 1028 - simple_core_type goto 1029 - mod_ext_longident goto 343 - simple_core_type2 goto 509 - - -state 924 - generalized_constructor_arguments : OF . core_type_list (397) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 341 - LPAREN shift 502 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - type_longident goto 506 - core_type_list goto 1030 - simple_core_type goto 508 - mod_ext_longident goto 343 - simple_core_type2 goto 509 - - -state 925 - constructor_declaration : constr_ident generalized_constructor_arguments . (393) - - . reduce 393 - - -state 926 - constraints : constraints CONSTRAINT . constrain (364) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1031 - simple_core_type_or_tuple goto 514 - constrain goto 1032 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 927 - expr : simple_expr DOT LBRACE expr RBRACE LESSMINUS . expr (230) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 1033 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 928 - expr : simple_expr DOT LBRACKET seq_expr RBRACKET LESSMINUS . expr (229) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 1034 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 929 - expr : simple_expr DOT LPAREN seq_expr RPAREN LESSMINUS . expr (228) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - mod_longident goto 55 - expr goto 1035 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 930 - class_description : virtual_flag class_type_parameters LIDENT COLON . class_type (163) - - LBRACKET shift 819 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 820 - LPAREN shift 502 - OBJECT shift 821 - OPTLABEL shift 822 - QUESTION shift 823 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - class_type goto 1036 - class_signature goto 825 - simple_core_type_or_tuple goto 826 - clty_longident goto 827 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 828 - simple_core_type2 goto 509 - - -state 931 - signature_item : EXTERNAL val_ident COLON core_type EQUAL . primitive_declaration (72) - - STRING shift 861 - . error - - primitive_declaration goto 1037 - - -state 932 - module_type : FUNCTOR LPAREN UIDENT COLON . module_type RPAREN MINUSGREATER module_type (63) - - FUNCTOR shift 455 - LIDENT shift 97 - LPAREN shift 456 - MODULE shift 457 - SIG shift 458 - UIDENT shift 459 - . error - - module_type goto 1038 - ident goto 461 - mty_longident goto 462 - mod_ext_longident goto 463 - - -state 933 - module_expr : module_expr . LPAREN module_expr RPAREN (22) - module_expr : module_expr . LPAREN module_expr error (23) - module_type : MODULE TYPE OF module_expr . (65) - - LPAREN shift 360 - error reduce 65 - AND reduce 65 - CLASS reduce 65 - END reduce 65 - EOF reduce 65 - EQUAL reduce 65 - EXCEPTION reduce 65 - EXTERNAL reduce 65 - INCLUDE reduce 65 - LET reduce 65 - MODULE reduce 65 - OPEN reduce 65 - RPAREN reduce 65 - SEMISEMI reduce 65 - SHARP reduce 65 - TYPE reduce 65 - VAL reduce 65 - WITH reduce 65 - - -state 934 - with_constraint : MODULE mod_longident . EQUAL mod_ext_longident (407) - with_constraint : MODULE mod_longident . COLONEQUAL mod_ext_longident (408) - mod_longident : mod_longident . DOT UIDENT (531) - - COLONEQUAL shift 1039 - DOT shift 346 - EQUAL shift 1040 - . error - - -state 935 - type_parameters : LPAREN . type_parameter_list RPAREN (384) - type_variance : . (386) - - MINUS shift 204 - PLUS shift 205 - QUOTE reduce 386 - - type_parameter_list goto 1041 - type_variance goto 492 - type_parameter goto 493 - - -state 936 - with_constraint : TYPE type_parameters . label_longident with_type_binder core_type constraints (405) - with_constraint : TYPE type_parameters . label_longident COLONEQUAL core_type (406) - - LIDENT shift 304 - UIDENT shift 49 - . error - - mod_longident goto 305 - label_longident goto 1042 - - -state 937 - type_parameters : type_parameter . (383) - - . reduce 383 - - -state 938 - with_constraints : with_constraints AND . with_constraint (404) - - MODULE shift 801 - TYPE shift 802 - . error - - with_constraint goto 1043 - - -state 939 - module_type : module_type . WITH with_constraints (64) - module_rec_declaration : UIDENT COLON module_type . (87) - - WITH shift 638 - error reduce 87 - AND reduce 87 - CLASS reduce 87 - END reduce 87 - EOF reduce 87 - EXCEPTION reduce 87 - EXTERNAL reduce 87 - INCLUDE reduce 87 - MODULE reduce 87 - OPEN reduce 87 - SEMISEMI reduce 87 - TYPE reduce 87 - VAL reduce 87 - - -state 940 - module_rec_declarations : module_rec_declarations AND module_rec_declaration . (86) - - . reduce 86 - - -state 941 - module_type : module_type . WITH with_constraints (64) - signature_item : MODULE TYPE ident EQUAL module_type . (78) - - WITH shift 638 - error reduce 78 - CLASS reduce 78 - END reduce 78 - EOF reduce 78 - EXCEPTION reduce 78 - EXTERNAL reduce 78 - INCLUDE reduce 78 - MODULE reduce 78 - OPEN reduce 78 - SEMISEMI reduce 78 - TYPE reduce 78 - VAL reduce 78 - - -state 942 - module_declaration : LPAREN UIDENT COLON . module_type RPAREN module_declaration (84) - - FUNCTOR shift 455 - LIDENT shift 97 - LPAREN shift 456 - MODULE shift 457 - SIG shift 458 - UIDENT shift 459 - . error - - module_type goto 1044 - ident goto 461 - mty_longident goto 462 - mod_ext_longident goto 463 - - -state 943 - class_signature : LBRACKET . core_type_comma_list RBRACKET clty_longident (139) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 678 - core_type_comma_list goto 947 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 944 - clty_longident : LIDENT . (537) - - . reduce 537 - - -state 945 - class_type_declaration : virtual_flag class_type_parameters LIDENT EQUAL class_signature . (166) - - . reduce 166 - - -state 946 - mod_ext_longident : mod_ext_longident . DOT UIDENT (533) - mod_ext_longident : mod_ext_longident . LPAREN mod_ext_longident RPAREN (534) - clty_longident : mod_ext_longident . DOT LIDENT (538) - - DOT shift 1045 - LPAREN shift 285 - . error - - -state 947 - class_signature : LBRACKET core_type_comma_list . RBRACKET clty_longident (139) - core_type_comma_list : core_type_comma_list . COMMA core_type (464) - - COMMA shift 852 - RBRACKET shift 1046 - . error - - -state 948 - simple_core_type : simple_core_type2 . (422) - simple_core_type2 : simple_core_type2 . type_longident (427) - simple_core_type2 : simple_core_type2 . SHARP class_longident opt_present (432) - row_field : simple_core_type2 . (450) - - LIDENT shift 341 - SHARP shift 683 - UIDENT shift 89 - AS reduce 422 - BAR reduce 450 - COMMA reduce 422 - MINUSGREATER reduce 422 - RBRACKET reduce 422 - STAR reduce 422 - - type_longident goto 684 - mod_ext_longident goto 343 - - -state 949 - class_type : LIDENT COLON . simple_core_type_or_tuple MINUSGREATER class_type (137) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 341 - LPAREN shift 502 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - simple_core_type_or_tuple goto 1047 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - simple_core_type2 goto 509 - - -state 950 - class_self_type : LPAREN . core_type RPAREN (144) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1048 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 951 - class_signature : OBJECT class_sig_body . END (141) - class_signature : OBJECT class_sig_body . error (142) - - error shift 1049 - END shift 1050 - . error - - -state 952 - class_sig_body : class_self_type . class_sig_fields (143) - class_sig_fields : . (146) - - . reduce 146 - - class_sig_fields goto 1051 - - -state 953 - class_type : OPTLABEL simple_core_type_or_tuple . MINUSGREATER class_type (136) - - MINUSGREATER shift 1052 - . error - - -state 954 - class_type : QUESTION LIDENT . COLON simple_core_type_or_tuple MINUSGREATER class_type (135) - - COLON shift 1053 - . error - - -state 955 - class_fun_binding : COLON class_type EQUAL . class_expr (92) - - FUN shift 829 - LBRACKET shift 830 - LET shift 831 - LIDENT shift 192 - LPAREN shift 832 - OBJECT shift 833 - UIDENT shift 49 - . error - - mod_longident goto 193 - class_expr goto 1054 - class_simple_expr goto 835 - class_longident goto 836 - - -state 956 - class_type : simple_core_type_or_tuple MINUSGREATER . class_type (138) - - LBRACKET shift 819 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 820 - LPAREN shift 502 - OBJECT shift 821 - OPTLABEL shift 822 - QUESTION shift 823 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - class_type goto 1055 - class_signature goto 825 - simple_core_type_or_tuple goto 826 - clty_longident goto 827 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 828 - simple_core_type2 goto 509 - - -state 957 - type_longident : mod_ext_longident DOT . LIDENT (529) - mod_ext_longident : mod_ext_longident DOT . UIDENT (533) - clty_longident : mod_ext_longident DOT . LIDENT (538) - - LIDENT shift 1056 - UIDENT shift 480 - . error - - -state 958 - class_fun_def : labeled_simple_pattern . MINUSGREATER class_expr (96) - class_fun_def : labeled_simple_pattern . class_fun_def (97) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 114 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 302 - MINUS shift 119 - MINUSGREATER shift 1057 - NATIVEINT shift 37 - OPTLABEL shift 120 - PLUS shift 121 - QUESTION shift 122 - SHARP shift 123 - STRING shift 45 - TILDE shift 124 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 128 - labeled_simple_pattern goto 958 - class_fun_def goto 1058 - simple_pattern goto 130 - name_tag goto 131 - constant goto 132 - signed_constant goto 133 - - -state 959 - class_expr : FUN class_fun_def . (99) - - . reduce 99 - - -state 960 - class_simple_expr : LBRACKET core_type_comma_list . RBRACKET class_longident (102) - core_type_comma_list : core_type_comma_list . COMMA core_type (464) - - COMMA shift 852 - RBRACKET shift 1059 - . error - - -state 961 - class_expr : LET rec_flag . let_bindings IN class_expr (101) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - let_bindings goto 1060 - val_ident goto 376 - constr_longident goto 311 - pattern goto 377 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - let_binding goto 378 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 962 - class_simple_expr : LPAREN class_expr . COLON class_type RPAREN (106) - class_simple_expr : LPAREN class_expr . COLON class_type error (107) - class_simple_expr : LPAREN class_expr . RPAREN (108) - class_simple_expr : LPAREN class_expr . error (109) - - error shift 1061 - COLON shift 1062 - RPAREN shift 1063 - . error - - -state 963 - class_simple_expr : OBJECT class_structure . END (104) - class_simple_expr : OBJECT class_structure . error (105) - - error shift 1064 - END shift 1065 - . error - - -state 964 - class_expr : class_simple_expr simple_labeled_expr_list . (100) - simple_labeled_expr_list : simple_labeled_expr_list . labeled_simple_expr (273) - - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 241 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LIDENT shift 86 - LPAREN shift 93 - NATIVEINT shift 37 - NEW shift 38 - OPTLABEL shift 242 - PREFIXOP shift 43 - QUESTION shift 243 - STRING shift 45 - TILDE shift 245 - TRUE shift 46 - UIDENT shift 49 - error reduce 100 - AND reduce 100 - AS reduce 100 - CLASS reduce 100 - COLON reduce 100 - CONSTRAINT reduce 100 - END reduce 100 - EOF reduce 100 - EXCEPTION reduce 100 - EXTERNAL reduce 100 - INCLUDE reduce 100 - INHERIT reduce 100 - INITIALIZER reduce 100 - LET reduce 100 - METHOD reduce 100 - MODULE reduce 100 - OPEN reduce 100 - RPAREN reduce 100 - SEMISEMI reduce 100 - SHARP reduce 100 - TYPE reduce 100 - VAL reduce 100 - - mod_longident goto 55 - val_ident goto 58 - constr_longident goto 94 - simple_expr goto 247 - name_tag goto 96 - val_longident goto 66 - constant goto 67 - labeled_simple_expr goto 447 - label_expr goto 249 - - -state 965 - row_field_list : row_field_list BAR . row_field (448) - - BACKQUOTE shift 8 - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 341 - LPAREN shift 664 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - name_tag goto 665 - type_longident goto 506 - mod_ext_longident goto 343 - simple_core_type2 goto 666 - tag_field goto 838 - row_field goto 1066 - - -state 966 - simple_core_type2 : LBRACKET BAR row_field_list RBRACKET . (435) - - . reduce 435 - - -state 967 - simple_core_type2 : LPAREN core_type_comma_list RPAREN . type_longident (428) - simple_core_type2 : LPAREN core_type_comma_list RPAREN . SHARP class_longident opt_present (433) - - LIDENT shift 341 - SHARP shift 980 - UIDENT shift 89 - . error - - type_longident goto 981 - mod_ext_longident goto 343 - - -state 968 - opt_ampersand : AMPERSAND . (453) - - . reduce 453 - - -state 969 - tag_field : name_tag OF opt_ampersand . amper_type_list (451) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1067 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - amper_type_list goto 1068 - - -state 970 - simple_core_type2 : LBRACKET row_field BAR row_field_list . RBRACKET (436) - row_field_list : row_field_list . BAR row_field (448) - - BAR shift 965 - RBRACKET shift 1069 - . error - - -state 971 - simple_core_type2 : LBRACKETLESS opt_bar row_field_list GREATER . name_tag_list RBRACKET (440) - - BACKQUOTE shift 8 - . error - - name_tag goto 982 - name_tag_list goto 1070 - - -state 972 - simple_core_type2 : LBRACKETLESS opt_bar row_field_list RBRACKET . (439) - - . reduce 439 - - -state 973 - simple_core_type2 : LBRACKETGREATER opt_bar row_field_list RBRACKET . (437) - - . reduce 437 - - -state 974 - poly_type : core_type . (413) - - . reduce 413 - - -state 975 - field : label COLON poly_type . (470) - - . reduce 470 - - -state 976 - typevar_list : typevar_list . QUOTE ident (412) - poly_type : typevar_list . DOT core_type (414) - - DOT shift 1071 - QUOTE shift 896 - . error - - -state 977 - meth_list : field SEMI meth_list . (467) - - . reduce 467 - - -state 978 - simple_core_type2 : LPAREN MODULE package_type RPAREN . (441) - - . reduce 441 - - -state 979 - core_type_comma_list : core_type_comma_list COMMA core_type . (464) - - . reduce 464 - - -state 980 - simple_core_type2 : LPAREN core_type_comma_list RPAREN SHARP . class_longident opt_present (433) - - LIDENT shift 192 - UIDENT shift 49 - . error - - mod_longident goto 193 - class_longident goto 1072 - - -state 981 - simple_core_type2 : LPAREN core_type_comma_list RPAREN type_longident . (428) - - . reduce 428 - - -state 982 - name_tag_list : name_tag . (459) - - . reduce 459 - - -state 983 - opt_present : LBRACKETGREATER name_tag_list . RBRACKET (457) - name_tag_list : name_tag_list . name_tag (460) - - BACKQUOTE shift 8 - RBRACKET shift 1073 - . error - - name_tag goto 1074 - - -state 984 - simple_core_type2 : simple_core_type2 SHARP class_longident opt_present . (432) - - . reduce 432 - - -state 985 - core_type2 : LIDENT COLON core_type2 MINUSGREATER . core_type2 (420) - core_type2 : core_type2 MINUSGREATER . core_type2 (421) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 1075 - simple_core_type2 goto 509 - - -state 986 - core_type2 : OPTLABEL core_type2 MINUSGREATER core_type2 . (419) - core_type2 : core_type2 . MINUSGREATER core_type2 (421) - core_type2 : core_type2 MINUSGREATER core_type2 . (421) - - MINUSGREATER shift 691 - error reduce 419 - AMPERSAND reduce 419 - AND reduce 419 - AS reduce 419 - BAR reduce 419 - CLASS reduce 419 - COLONGREATER reduce 419 - COMMA reduce 419 - CONSTRAINT reduce 419 - END reduce 419 - EOF reduce 419 - EQUAL reduce 419 - EXCEPTION reduce 419 - EXTERNAL reduce 419 - GREATER reduce 419 - INCLUDE reduce 419 - INHERIT reduce 419 - INITIALIZER reduce 419 - LET reduce 419 - METHOD reduce 419 - MODULE reduce 419 - OPEN reduce 419 - RBRACE reduce 419 - RBRACKET reduce 419 - RPAREN reduce 419 - SEMI reduce 419 - SEMISEMI reduce 419 - SHARP reduce 419 - TYPE reduce 419 - VAL reduce 419 - WITH reduce 419 - - -state 987 - core_type2 : QUESTION LIDENT COLON core_type2 . MINUSGREATER core_type2 (418) - core_type2 : core_type2 . MINUSGREATER core_type2 (421) - - MINUSGREATER shift 1076 - . error - - -state 988 - primitive_declaration : STRING primitive_declaration . (360) - - . reduce 360 - - -state 989 - core_type : core_type2 AS QUOTE ident . (416) - - . reduce 416 - - -state 990 - expr : FOR val_ident EQUAL seq_expr direction_flag seq_expr DO . seq_expr DONE (204) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 1077 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 991 - pattern : pattern . AS val_ident (320) - pattern : pattern . COLONCOLON pattern (324) - pattern : LPAREN COLONCOLON RPAREN LPAREN pattern . COMMA pattern RPAREN (325) - pattern : pattern . BAR pattern (326) - pattern_comma_list : pattern . COMMA pattern (350) - - AS shift 527 - BAR shift 528 - COLONCOLON shift 529 - COMMA shift 1078 - . error - - -state 992 - simple_pattern : LPAREN MODULE UIDENT COLON package_type error . (348) - - . reduce 348 - - -state 993 - simple_pattern : LPAREN MODULE UIDENT COLON package_type RPAREN . (347) - - . reduce 347 - - -state 994 - fun_def : LPAREN TYPE LIDENT RPAREN fun_def . (298) - - . reduce 298 - - -state 995 - module_expr : FUNCTOR LPAREN UIDENT COLON module_type RPAREN . MINUSGREATER module_expr (21) - - MINUSGREATER shift 1079 - . error - - -state 996 - module_expr : LPAREN VAL expr COLON package_type COLONGREATER . package_type RPAREN (30) - - LIDENT shift 97 - UIDENT shift 459 - . error - - package_type goto 1080 - ident goto 461 - mty_longident goto 749 - mod_ext_longident goto 463 - - -state 997 - module_expr : LPAREN VAL expr COLON package_type RPAREN . (29) - - . reduce 29 - - -state 998 - module_expr : LPAREN VAL expr COLONGREATER package_type RPAREN . (31) - - . reduce 31 - - -state 999 - lident_list : LIDENT lident_list . (284) - - . reduce 284 - - -state 1000 - let_binding : val_ident COLON TYPE lident_list DOT . core_type EQUAL seq_expr (287) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1081 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1001 - let_binding : val_ident COLON typevar_list DOT core_type . EQUAL seq_expr (286) - - EQUAL shift 1082 - . error - - -state 1002 - typevar_list : typevar_list QUOTE ident . (412) - - . reduce 412 - - -state 1003 - strict_binding : LPAREN TYPE LIDENT RPAREN . fun_binding (293) - - BACKQUOTE shift 8 - CHAR shift 113 - COLON shift 382 - COLONGREATER shift 383 - EQUAL shift 580 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 114 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 581 - MINUS shift 119 - NATIVEINT shift 37 - OPTLABEL shift 120 - PLUS shift 121 - QUESTION shift 122 - SHARP shift 123 - STRING shift 45 - TILDE shift 124 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 128 - labeled_simple_pattern goto 582 - type_constraint goto 583 - strict_binding goto 584 - simple_pattern goto 130 - name_tag goto 131 - constant goto 132 - fun_binding goto 1083 - signed_constant goto 133 - - -state 1004 - expr : expr . COLONCOLON expr (205) - expr : LPAREN COLONCOLON RPAREN LPAREN expr COMMA expr . RPAREN (206) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr_comma_list : expr . COMMA expr (302) - expr_comma_list : expr COMMA expr . (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - RPAREN shift 1084 - STAR shift 237 - COLONEQUAL reduce 302 - COMMA reduce 302 - - -state 1005 - package_type_cstr : TYPE . label_longident EQUAL core_type (444) - - LIDENT shift 304 - UIDENT shift 49 - . error - - mod_longident goto 305 - label_longident goto 1085 - - -state 1006 - package_type : mty_longident WITH package_type_cstrs . (443) - - . reduce 443 - - -state 1007 - package_type_cstrs : package_type_cstr . (445) - package_type_cstrs : package_type_cstr . AND package_type_cstrs (446) - - AND shift 1086 - error reduce 445 - COLONGREATER reduce 445 - RPAREN reduce 445 - - -state 1008 - module_expr : module_expr . LPAREN module_expr RPAREN (22) - module_expr : module_expr . LPAREN module_expr error (23) - module_rec_binding : UIDENT COLON module_type EQUAL module_expr . (59) - - LPAREN shift 360 - error reduce 59 - AND reduce 59 - CLASS reduce 59 - END reduce 59 - EOF reduce 59 - EXCEPTION reduce 59 - EXTERNAL reduce 59 - INCLUDE reduce 59 - LET reduce 59 - MODULE reduce 59 - OPEN reduce 59 - SEMISEMI reduce 59 - SHARP reduce 59 - TYPE reduce 59 - - -state 1009 - module_binding : LPAREN UIDENT COLON module_type RPAREN . module_binding (56) - - COLON shift 392 - EQUAL shift 393 - LPAREN shift 394 - . error - - module_binding goto 1087 - - -state 1010 - constrain_field : core_type EQUAL core_type . (160) - - . reduce 160 - - -state 1011 - parent_binder : AS . LIDENT (123) - - LIDENT shift 1088 - . error - - -state 1012 - class_field : INHERIT override_flag class_expr parent_binder . (116) - - . reduce 116 - - -state 1013 - virtual_method : METHOD override_flag PRIVATE VIRTUAL . label COLON poly_type (129) - - LIDENT shift 151 - . error - - label goto 1089 - - -state 1014 - private_flag : PRIVATE . (560) - - . reduce 560 - - -state 1015 - virtual_method : METHOD override_flag VIRTUAL private_flag . label COLON poly_type (130) - - LIDENT shift 151 - . error - - label goto 1090 - - -state 1016 - concrete_method : METHOD override_flag private_flag label . strict_binding (131) - concrete_method : METHOD override_flag private_flag label . COLON poly_type EQUAL seq_expr (132) - concrete_method : METHOD override_flag private_flag label . COLON TYPE lident_list DOT core_type EQUAL seq_expr (133) - - BACKQUOTE shift 8 - CHAR shift 113 - COLON shift 1091 - EQUAL shift 580 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LABEL shift 114 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 581 - MINUS shift 119 - NATIVEINT shift 37 - OPTLABEL shift 120 - PLUS shift 121 - QUESTION shift 122 - SHARP shift 123 - STRING shift 45 - TILDE shift 124 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 128 - labeled_simple_pattern goto 582 - strict_binding goto 1092 - simple_pattern goto 130 - name_tag goto 131 - constant goto 132 - signed_constant goto 133 - - -state 1017 - virtual_value : VIRTUAL mutable_flag label . COLON core_type (126) - - COLON shift 1093 - . error - - -state 1018 - virtual_value : override_flag MUTABLE VIRTUAL . label COLON core_type (125) - - LIDENT shift 151 - . error - - label goto 1094 - - -state 1019 - value : override_flag mutable_flag label . EQUAL seq_expr (127) - value : override_flag mutable_flag label . type_constraint EQUAL seq_expr (128) - - COLON shift 382 - COLONGREATER shift 383 - EQUAL shift 1095 - . error - - type_constraint goto 1096 - - -state 1020 - type_kind : EQUAL core_type EQUAL private_flag . opt_bar constructor_declarations (373) - type_kind : EQUAL core_type EQUAL private_flag . LBRACE label_declarations opt_semi RBRACE (374) - opt_bar : . (567) - - BAR shift 134 - LBRACE shift 1097 - COLONCOLON reduce 567 - FALSE reduce 567 - LPAREN reduce 567 - TRUE reduce 567 - UIDENT reduce 567 - - opt_bar goto 1098 - - -state 1021 - constr_ident : LPAREN . RPAREN (515) - - RPAREN shift 916 - . error - - -state 1022 - constr_ident : UIDENT . (514) - - . reduce 514 - - -state 1023 - type_kind : EQUAL private_flag BAR constructor_declarations . (371) - constructor_declarations : constructor_declarations . BAR constructor_declaration (392) - - BAR shift 922 - error reduce 371 - AND reduce 371 - CLASS reduce 371 - CONSTRAINT reduce 371 - END reduce 371 - EOF reduce 371 - EXCEPTION reduce 371 - EXTERNAL reduce 371 - INCLUDE reduce 371 - LET reduce 371 - MODULE reduce 371 - OPEN reduce 371 - SEMISEMI reduce 371 - SHARP reduce 371 - TYPE reduce 371 - VAL reduce 371 - - -state 1024 - label_declaration : mutable_flag . label COLON poly_type (402) - - LIDENT shift 151 - . error - - label goto 1099 - - -state 1025 - type_kind : EQUAL private_flag LBRACE label_declarations . opt_semi RBRACE (372) - label_declarations : label_declarations . SEMI label_declaration (401) - opt_semi : . (569) - - SEMI shift 1100 - RBRACE reduce 569 - - opt_semi goto 1101 - - -state 1026 - label_declarations : label_declaration . (400) - - . reduce 400 - - -state 1027 - constructor_declarations : constructor_declarations BAR constructor_declaration . (392) - - . reduce 392 - - -state 1028 - generalized_constructor_arguments : COLON core_type_list . MINUSGREATER simple_core_type (398) - core_type_list : core_type_list . STAR simple_core_type (466) - - MINUSGREATER shift 1102 - STAR shift 682 - . error - - -state 1029 - generalized_constructor_arguments : COLON simple_core_type . (399) - core_type_list : simple_core_type . (465) - - error reduce 399 - AND reduce 399 - BAR reduce 399 - CLASS reduce 399 - CONSTRAINT reduce 399 - END reduce 399 - EOF reduce 399 - EXCEPTION reduce 399 - EXTERNAL reduce 399 - INCLUDE reduce 399 - LET reduce 399 - MINUSGREATER reduce 465 - MODULE reduce 399 - OPEN reduce 399 - SEMISEMI reduce 399 - SHARP reduce 399 - STAR reduce 465 - TYPE reduce 399 - VAL reduce 399 - - -state 1030 - generalized_constructor_arguments : OF core_type_list . (397) - core_type_list : core_type_list . STAR simple_core_type (466) - - STAR shift 682 - error reduce 397 - AND reduce 397 - BAR reduce 397 - CLASS reduce 397 - CONSTRAINT reduce 397 - END reduce 397 - EOF reduce 397 - EXCEPTION reduce 397 - EXTERNAL reduce 397 - INCLUDE reduce 397 - LET reduce 397 - MODULE reduce 397 - OPEN reduce 397 - SEMISEMI reduce 397 - SHARP reduce 397 - TYPE reduce 397 - VAL reduce 397 - - -state 1031 - constrain : core_type . EQUAL core_type (159) - - EQUAL shift 1103 - . error - - -state 1032 - constraints : constraints CONSTRAINT constrain . (364) - - . reduce 364 - - -state 1033 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr : simple_expr DOT LBRACE expr RBRACE LESSMINUS expr . (230) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 230 - AND reduce 230 - BAR reduce 230 - BARRBRACKET reduce 230 - CLASS reduce 230 - COLON reduce 230 - COLONGREATER reduce 230 - CONSTRAINT reduce 230 - DO reduce 230 - DONE reduce 230 - DOWNTO reduce 230 - ELSE reduce 230 - END reduce 230 - EOF reduce 230 - EXCEPTION reduce 230 - EXTERNAL reduce 230 - GREATERRBRACE reduce 230 - IN reduce 230 - INCLUDE reduce 230 - INHERIT reduce 230 - INITIALIZER reduce 230 - LET reduce 230 - METHOD reduce 230 - MINUSGREATER reduce 230 - MODULE reduce 230 - OPEN reduce 230 - RBRACE reduce 230 - RBRACKET reduce 230 - RPAREN reduce 230 - SEMI reduce 230 - SEMISEMI reduce 230 - SHARP reduce 230 - THEN reduce 230 - TO reduce 230 - TYPE reduce 230 - VAL reduce 230 - WITH reduce 230 - - -state 1034 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr : simple_expr DOT LBRACKET seq_expr RBRACKET LESSMINUS expr . (229) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 229 - AND reduce 229 - BAR reduce 229 - BARRBRACKET reduce 229 - CLASS reduce 229 - COLON reduce 229 - COLONGREATER reduce 229 - CONSTRAINT reduce 229 - DO reduce 229 - DONE reduce 229 - DOWNTO reduce 229 - ELSE reduce 229 - END reduce 229 - EOF reduce 229 - EXCEPTION reduce 229 - EXTERNAL reduce 229 - GREATERRBRACE reduce 229 - IN reduce 229 - INCLUDE reduce 229 - INHERIT reduce 229 - INITIALIZER reduce 229 - LET reduce 229 - METHOD reduce 229 - MINUSGREATER reduce 229 - MODULE reduce 229 - OPEN reduce 229 - RBRACE reduce 229 - RBRACKET reduce 229 - RPAREN reduce 229 - SEMI reduce 229 - SEMISEMI reduce 229 - SHARP reduce 229 - THEN reduce 229 - TO reduce 229 - TYPE reduce 229 - VAL reduce 229 - WITH reduce 229 - - -state 1035 - expr : expr . COLONCOLON expr (205) - expr : expr . INFIXOP0 expr (207) - expr : expr . INFIXOP1 expr (208) - expr : expr . INFIXOP2 expr (209) - expr : expr . INFIXOP3 expr (210) - expr : expr . INFIXOP4 expr (211) - expr : expr . PLUS expr (212) - expr : expr . PLUSDOT expr (213) - expr : expr . MINUS expr (214) - expr : expr . MINUSDOT expr (215) - expr : expr . STAR expr (216) - expr : expr . EQUAL expr (217) - expr : expr . LESS expr (218) - expr : expr . GREATER expr (219) - expr : expr . OR expr (220) - expr : expr . BARBAR expr (221) - expr : expr . AMPERSAND expr (222) - expr : expr . AMPERAMPER expr (223) - expr : expr . COLONEQUAL expr (224) - expr : simple_expr DOT LPAREN seq_expr RPAREN LESSMINUS expr . (228) - expr_comma_list : expr . COMMA expr (302) - - AMPERAMPER shift 217 - AMPERSAND shift 218 - BARBAR shift 219 - COLONCOLON shift 220 - COLONEQUAL shift 221 - COMMA shift 222 - EQUAL shift 223 - GREATER shift 224 - INFIXOP0 shift 225 - INFIXOP1 shift 226 - INFIXOP2 shift 227 - INFIXOP3 shift 228 - INFIXOP4 shift 229 - LESS shift 230 - MINUS shift 231 - MINUSDOT shift 232 - OR shift 233 - PLUS shift 234 - PLUSDOT shift 235 - STAR shift 237 - error reduce 228 - AND reduce 228 - BAR reduce 228 - BARRBRACKET reduce 228 - CLASS reduce 228 - COLON reduce 228 - COLONGREATER reduce 228 - CONSTRAINT reduce 228 - DO reduce 228 - DONE reduce 228 - DOWNTO reduce 228 - ELSE reduce 228 - END reduce 228 - EOF reduce 228 - EXCEPTION reduce 228 - EXTERNAL reduce 228 - GREATERRBRACE reduce 228 - IN reduce 228 - INCLUDE reduce 228 - INHERIT reduce 228 - INITIALIZER reduce 228 - LET reduce 228 - METHOD reduce 228 - MINUSGREATER reduce 228 - MODULE reduce 228 - OPEN reduce 228 - RBRACE reduce 228 - RBRACKET reduce 228 - RPAREN reduce 228 - SEMI reduce 228 - SEMISEMI reduce 228 - SHARP reduce 228 - THEN reduce 228 - TO reduce 228 - TYPE reduce 228 - VAL reduce 228 - WITH reduce 228 - - -state 1036 - class_description : virtual_flag class_type_parameters LIDENT COLON class_type . (163) - - . reduce 163 - - -state 1037 - signature_item : EXTERNAL val_ident COLON core_type EQUAL primitive_declaration . (72) - - . reduce 72 - - -state 1038 - module_type : FUNCTOR LPAREN UIDENT COLON module_type . RPAREN MINUSGREATER module_type (63) - module_type : module_type . WITH with_constraints (64) - - RPAREN shift 1104 - WITH shift 638 - . error - - -state 1039 - with_constraint : MODULE mod_longident COLONEQUAL . mod_ext_longident (408) - - UIDENT shift 89 - . error - - mod_ext_longident goto 1105 - - -state 1040 - with_constraint : MODULE mod_longident EQUAL . mod_ext_longident (407) - - UIDENT shift 89 - . error - - mod_ext_longident goto 1106 - - -state 1041 - type_parameters : LPAREN type_parameter_list . RPAREN (384) - type_parameter_list : type_parameter_list . COMMA type_parameter (390) - - COMMA shift 656 - RPAREN shift 1107 - . error - - -state 1042 - with_constraint : TYPE type_parameters label_longident . with_type_binder core_type constraints (405) - with_constraint : TYPE type_parameters label_longident . COLONEQUAL core_type (406) - - COLONEQUAL shift 1108 - EQUAL shift 1109 - . error - - with_type_binder goto 1110 - - -state 1043 - with_constraints : with_constraints AND with_constraint . (404) - - . reduce 404 - - -state 1044 - module_type : module_type . WITH with_constraints (64) - module_declaration : LPAREN UIDENT COLON module_type . RPAREN module_declaration (84) - - RPAREN shift 1111 - WITH shift 638 - . error - - -state 1045 - mod_ext_longident : mod_ext_longident DOT . UIDENT (533) - clty_longident : mod_ext_longident DOT . LIDENT (538) - - LIDENT shift 1112 - UIDENT shift 480 - . error - - -state 1046 - class_signature : LBRACKET core_type_comma_list RBRACKET . clty_longident (139) - - LIDENT shift 944 - UIDENT shift 89 - . error - - clty_longident goto 1113 - mod_ext_longident goto 946 - - -state 1047 - class_type : LIDENT COLON simple_core_type_or_tuple . MINUSGREATER class_type (137) - - MINUSGREATER shift 1114 - . error - - -state 1048 - class_self_type : LPAREN core_type . RPAREN (144) - - RPAREN shift 1115 - . error - - -state 1049 - class_signature : OBJECT class_sig_body error . (142) - - . reduce 142 - - -state 1050 - class_signature : OBJECT class_sig_body END . (141) - - . reduce 141 - - -state 1051 - class_sig_body : class_self_type class_sig_fields . (143) - class_sig_fields : class_sig_fields . class_sig_field (147) - - CONSTRAINT shift 1116 - INHERIT shift 1117 - METHOD shift 1118 - VAL shift 1119 - error reduce 143 - END reduce 143 - - class_sig_field goto 1120 - virtual_method_type goto 1121 - method_type goto 1122 - - -state 1052 - class_type : OPTLABEL simple_core_type_or_tuple MINUSGREATER . class_type (136) - - LBRACKET shift 819 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 820 - LPAREN shift 502 - OBJECT shift 821 - OPTLABEL shift 822 - QUESTION shift 823 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - class_type goto 1123 - class_signature goto 825 - simple_core_type_or_tuple goto 826 - clty_longident goto 827 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 828 - simple_core_type2 goto 509 - - -state 1053 - class_type : QUESTION LIDENT COLON . simple_core_type_or_tuple MINUSGREATER class_type (135) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 341 - LPAREN shift 502 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - simple_core_type_or_tuple goto 1124 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - simple_core_type2 goto 509 - - -state 1054 - class_fun_binding : COLON class_type EQUAL class_expr . (92) - - . reduce 92 - - -state 1055 - class_type : simple_core_type_or_tuple MINUSGREATER class_type . (138) - - . reduce 138 - - -state 1056 - type_longident : mod_ext_longident DOT LIDENT . (529) - clty_longident : mod_ext_longident DOT LIDENT . (538) - - error reduce 538 - AND reduce 538 - CLASS reduce 538 - END reduce 538 - EOF reduce 538 - EQUAL reduce 538 - EXCEPTION reduce 538 - EXTERNAL reduce 538 - INCLUDE reduce 538 - LIDENT reduce 529 - MINUSGREATER reduce 529 - MODULE reduce 538 - OPEN reduce 538 - RPAREN reduce 538 - SEMISEMI reduce 538 - SHARP reduce 529 - STAR reduce 529 - TYPE reduce 538 - UIDENT reduce 529 - VAL reduce 538 - - -state 1057 - class_fun_def : labeled_simple_pattern MINUSGREATER . class_expr (96) - - FUN shift 829 - LBRACKET shift 830 - LET shift 831 - LIDENT shift 192 - LPAREN shift 832 - OBJECT shift 833 - UIDENT shift 49 - . error - - mod_longident goto 193 - class_expr goto 1125 - class_simple_expr goto 835 - class_longident goto 836 - - -state 1058 - class_fun_def : labeled_simple_pattern class_fun_def . (97) - - . reduce 97 - - -state 1059 - class_simple_expr : LBRACKET core_type_comma_list RBRACKET . class_longident (102) - - LIDENT shift 192 - UIDENT shift 49 - . error - - mod_longident goto 193 - class_longident goto 1126 - - -state 1060 - class_expr : LET rec_flag let_bindings . IN class_expr (101) - let_bindings : let_bindings . AND let_binding (282) - - AND shift 577 - IN shift 1127 - . error - - -state 1061 - class_simple_expr : LPAREN class_expr error . (109) - - . reduce 109 - - -state 1062 - class_simple_expr : LPAREN class_expr COLON . class_type RPAREN (106) - class_simple_expr : LPAREN class_expr COLON . class_type error (107) - - LBRACKET shift 819 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 820 - LPAREN shift 502 - OBJECT shift 821 - OPTLABEL shift 822 - QUESTION shift 823 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - class_type goto 1128 - class_signature goto 825 - simple_core_type_or_tuple goto 826 - clty_longident goto 827 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 828 - simple_core_type2 goto 509 - - -state 1063 - class_simple_expr : LPAREN class_expr RPAREN . (108) - - . reduce 108 - - -state 1064 - class_simple_expr : OBJECT class_structure error . (105) - - . reduce 105 - - -state 1065 - class_simple_expr : OBJECT class_structure END . (104) - - . reduce 104 - - -state 1066 - row_field_list : row_field_list BAR row_field . (448) - - . reduce 448 - - -state 1067 - amper_type_list : core_type . (455) - - . reduce 455 - - -state 1068 - tag_field : name_tag OF opt_ampersand amper_type_list . (451) - amper_type_list : amper_type_list . AMPERSAND core_type (456) - - AMPERSAND shift 1129 - BAR reduce 451 - GREATER reduce 451 - RBRACKET reduce 451 - - -state 1069 - simple_core_type2 : LBRACKET row_field BAR row_field_list RBRACKET . (436) - - . reduce 436 - - -state 1070 - simple_core_type2 : LBRACKETLESS opt_bar row_field_list GREATER name_tag_list . RBRACKET (440) - name_tag_list : name_tag_list . name_tag (460) - - BACKQUOTE shift 8 - RBRACKET shift 1130 - . error - - name_tag goto 1074 - - -state 1071 - poly_type : typevar_list DOT . core_type (414) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1131 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1072 - simple_core_type2 : LPAREN core_type_comma_list RPAREN SHARP class_longident . opt_present (433) - opt_present : . (458) - - LBRACKETGREATER shift 854 - error reduce 458 - AMPERSAND reduce 458 - AND reduce 458 - AS reduce 458 - BAR reduce 458 - CLASS reduce 458 - COLONGREATER reduce 458 - COMMA reduce 458 - CONSTRAINT reduce 458 - END reduce 458 - EOF reduce 458 - EQUAL reduce 458 - EXCEPTION reduce 458 - EXTERNAL reduce 458 - GREATER reduce 458 - INCLUDE reduce 458 - INHERIT reduce 458 - INITIALIZER reduce 458 - LET reduce 458 - LIDENT reduce 458 - METHOD reduce 458 - MINUSGREATER reduce 458 - MODULE reduce 458 - OPEN reduce 458 - RBRACE reduce 458 - RBRACKET reduce 458 - RPAREN reduce 458 - SEMI reduce 458 - SEMISEMI reduce 458 - SHARP reduce 458 - STAR reduce 458 - TYPE reduce 458 - UIDENT reduce 458 - VAL reduce 458 - WITH reduce 458 - - opt_present goto 1132 - - -state 1073 - opt_present : LBRACKETGREATER name_tag_list RBRACKET . (457) - - . reduce 457 - - -state 1074 - name_tag_list : name_tag_list name_tag . (460) - - . reduce 460 - - -state 1075 - core_type2 : LIDENT COLON core_type2 MINUSGREATER core_type2 . (420) - core_type2 : core_type2 . MINUSGREATER core_type2 (421) - core_type2 : core_type2 MINUSGREATER core_type2 . (421) - - MINUSGREATER shift 691 - error reduce 420 - AMPERSAND reduce 420 - AND reduce 420 - AS reduce 420 - BAR reduce 420 - CLASS reduce 420 - COLONGREATER reduce 420 - COMMA reduce 420 - CONSTRAINT reduce 420 - END reduce 420 - EOF reduce 420 - EQUAL reduce 420 - EXCEPTION reduce 420 - EXTERNAL reduce 420 - GREATER reduce 420 - INCLUDE reduce 420 - INHERIT reduce 420 - INITIALIZER reduce 420 - LET reduce 420 - METHOD reduce 420 - MODULE reduce 420 - OPEN reduce 420 - RBRACE reduce 420 - RBRACKET reduce 420 - RPAREN reduce 420 - SEMI reduce 420 - SEMISEMI reduce 420 - SHARP reduce 420 - TYPE reduce 420 - VAL reduce 420 - WITH reduce 420 - - -state 1076 - core_type2 : QUESTION LIDENT COLON core_type2 MINUSGREATER . core_type2 (418) - core_type2 : core_type2 MINUSGREATER . core_type2 (421) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 1133 - simple_core_type2 goto 509 - - -state 1077 - expr : FOR val_ident EQUAL seq_expr direction_flag seq_expr DO seq_expr . DONE (204) - - DONE shift 1134 - . error - - -state 1078 - pattern : LPAREN COLONCOLON RPAREN LPAREN pattern COMMA . pattern RPAREN (325) - pattern_comma_list : pattern COMMA . pattern (350) - - BACKQUOTE shift 8 - CHAR shift 113 - FALSE shift 15 - FLOAT shift 16 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 309 - LBRACE shift 115 - LBRACKET shift 116 - LBRACKETBAR shift 117 - LIDENT shift 86 - LPAREN shift 310 - MINUS shift 119 - NATIVEINT shift 37 - PLUS shift 121 - SHARP shift 123 - STRING shift 45 - TRUE shift 46 - UIDENT shift 49 - UNDERSCORE shift 125 - . error - - mod_longident goto 126 - val_ident goto 127 - constr_longident goto 311 - pattern goto 1135 - simple_pattern goto 313 - name_tag goto 314 - constant goto 132 - pattern_comma_list goto 315 - signed_constant goto 133 - - -state 1079 - module_expr : FUNCTOR LPAREN UIDENT COLON module_type RPAREN MINUSGREATER . module_expr (21) - - FUNCTOR shift 137 - LPAREN shift 138 - STRUCT shift 139 - UIDENT shift 49 - . error - - module_expr goto 1136 - mod_longident goto 141 - - -state 1080 - module_expr : LPAREN VAL expr COLON package_type COLONGREATER package_type . RPAREN (30) - - RPAREN shift 1137 - . error - - -state 1081 - let_binding : val_ident COLON TYPE lident_list DOT core_type . EQUAL seq_expr (287) - - EQUAL shift 1138 - . error - - -state 1082 - let_binding : val_ident COLON typevar_list DOT core_type EQUAL . seq_expr (286) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 1139 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 1083 - strict_binding : LPAREN TYPE LIDENT RPAREN fun_binding . (293) - - . reduce 293 - - -state 1084 - expr : LPAREN COLONCOLON RPAREN LPAREN expr COMMA expr RPAREN . (206) - - . reduce 206 - - -state 1085 - package_type_cstr : TYPE label_longident . EQUAL core_type (444) - - EQUAL shift 1140 - . error - - -state 1086 - package_type_cstrs : package_type_cstr AND . package_type_cstrs (446) - - TYPE shift 1005 - . error - - package_type_cstrs goto 1141 - package_type_cstr goto 1007 - - -state 1087 - module_binding : LPAREN UIDENT COLON module_type RPAREN module_binding . (56) - - . reduce 56 - - -state 1088 - parent_binder : AS LIDENT . (123) - - . reduce 123 - - -state 1089 - virtual_method : METHOD override_flag PRIVATE VIRTUAL label . COLON poly_type (129) - - COLON shift 1142 - . error - - -state 1090 - virtual_method : METHOD override_flag VIRTUAL private_flag label . COLON poly_type (130) - - COLON shift 1143 - . error - - -state 1091 - concrete_method : METHOD override_flag private_flag label COLON . poly_type EQUAL seq_expr (132) - concrete_method : METHOD override_flag private_flag label COLON . TYPE lident_list DOT core_type EQUAL seq_expr (133) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 738 - SHARP shift 504 - TYPE shift 1144 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 974 - poly_type goto 1145 - simple_core_type_or_tuple goto 514 - typevar_list goto 976 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1092 - concrete_method : METHOD override_flag private_flag label strict_binding . (131) - - . reduce 131 - - -state 1093 - virtual_value : VIRTUAL mutable_flag label COLON . core_type (126) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1146 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1094 - virtual_value : override_flag MUTABLE VIRTUAL label . COLON core_type (125) - - COLON shift 1147 - . error - - -state 1095 - value : override_flag mutable_flag label EQUAL . seq_expr (127) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 1148 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 1096 - value : override_flag mutable_flag label type_constraint . EQUAL seq_expr (128) - - EQUAL shift 1149 - . error - - -state 1097 - type_kind : EQUAL core_type EQUAL private_flag LBRACE . label_declarations opt_semi RBRACE (374) - mutable_flag : . (561) - - MUTABLE shift 912 - LIDENT reduce 561 - - mutable_flag goto 1024 - label_declarations goto 1150 - label_declaration goto 1026 - - -state 1098 - type_kind : EQUAL core_type EQUAL private_flag opt_bar . constructor_declarations (373) - - COLONCOLON shift 770 - FALSE shift 771 - LPAREN shift 1021 - TRUE shift 774 - UIDENT shift 1022 - . error - - constructor_declarations goto 1151 - constructor_declaration goto 779 - constr_ident goto 780 - - -state 1099 - label_declaration : mutable_flag label . COLON poly_type (402) - - COLON shift 1152 - . error - - -state 1100 - label_declarations : label_declarations SEMI . label_declaration (401) - opt_semi : SEMI . (570) - mutable_flag : . (561) - - MUTABLE shift 912 - LIDENT reduce 561 - RBRACE reduce 570 - - mutable_flag goto 1024 - label_declaration goto 1153 - - -state 1101 - type_kind : EQUAL private_flag LBRACE label_declarations opt_semi . RBRACE (372) - - RBRACE shift 1154 - . error - - -state 1102 - generalized_constructor_arguments : COLON core_type_list MINUSGREATER . simple_core_type (398) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 341 - LPAREN shift 502 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - type_longident goto 506 - simple_core_type goto 1155 - mod_ext_longident goto 343 - simple_core_type2 goto 509 - - -state 1103 - constrain : core_type EQUAL . core_type (159) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1156 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1104 - module_type : FUNCTOR LPAREN UIDENT COLON module_type RPAREN . MINUSGREATER module_type (63) - - MINUSGREATER shift 1157 - . error - - -state 1105 - with_constraint : MODULE mod_longident COLONEQUAL mod_ext_longident . (408) - mod_ext_longident : mod_ext_longident . DOT UIDENT (533) - mod_ext_longident : mod_ext_longident . LPAREN mod_ext_longident RPAREN (534) - - DOT shift 649 - LPAREN shift 285 - error reduce 408 - AND reduce 408 - CLASS reduce 408 - END reduce 408 - EOF reduce 408 - EQUAL reduce 408 - EXCEPTION reduce 408 - EXTERNAL reduce 408 - INCLUDE reduce 408 - LET reduce 408 - MODULE reduce 408 - OPEN reduce 408 - RPAREN reduce 408 - SEMISEMI reduce 408 - SHARP reduce 408 - TYPE reduce 408 - VAL reduce 408 - WITH reduce 408 - - -state 1106 - with_constraint : MODULE mod_longident EQUAL mod_ext_longident . (407) - mod_ext_longident : mod_ext_longident . DOT UIDENT (533) - mod_ext_longident : mod_ext_longident . LPAREN mod_ext_longident RPAREN (534) - - DOT shift 649 - LPAREN shift 285 - error reduce 407 - AND reduce 407 - CLASS reduce 407 - END reduce 407 - EOF reduce 407 - EQUAL reduce 407 - EXCEPTION reduce 407 - EXTERNAL reduce 407 - INCLUDE reduce 407 - LET reduce 407 - MODULE reduce 407 - OPEN reduce 407 - RPAREN reduce 407 - SEMISEMI reduce 407 - SHARP reduce 407 - TYPE reduce 407 - VAL reduce 407 - WITH reduce 407 - - -state 1107 - type_parameters : LPAREN type_parameter_list RPAREN . (384) - - . reduce 384 - - -state 1108 - with_constraint : TYPE type_parameters label_longident COLONEQUAL . core_type (406) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1158 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1109 - with_type_binder : EQUAL . (409) - with_type_binder : EQUAL . PRIVATE (410) - - PRIVATE shift 1159 - LBRACKET reduce 409 - LBRACKETLESS reduce 409 - LBRACKETGREATER reduce 409 - LESS reduce 409 - LIDENT reduce 409 - LPAREN reduce 409 - OPTLABEL reduce 409 - QUESTION reduce 409 - QUOTE reduce 409 - SHARP reduce 409 - UIDENT reduce 409 - UNDERSCORE reduce 409 - - -state 1110 - with_constraint : TYPE type_parameters label_longident with_type_binder . core_type constraints (405) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1160 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1111 - module_declaration : LPAREN UIDENT COLON module_type RPAREN . module_declaration (84) - - COLON shift 644 - LPAREN shift 645 - . error - - module_declaration goto 1161 - - -state 1112 - clty_longident : mod_ext_longident DOT LIDENT . (538) - - . reduce 538 - - -state 1113 - class_signature : LBRACKET core_type_comma_list RBRACKET clty_longident . (139) - - . reduce 139 - - -state 1114 - class_type : LIDENT COLON simple_core_type_or_tuple MINUSGREATER . class_type (137) - - LBRACKET shift 819 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 820 - LPAREN shift 502 - OBJECT shift 821 - OPTLABEL shift 822 - QUESTION shift 823 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - class_type goto 1162 - class_signature goto 825 - simple_core_type_or_tuple goto 826 - clty_longident goto 827 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 828 - simple_core_type2 goto 509 - - -state 1115 - class_self_type : LPAREN core_type RPAREN . (144) - - . reduce 144 - - -state 1116 - class_sig_field : CONSTRAINT . constrain_field (152) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 758 - constrain_field goto 1163 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1117 - class_sig_field : INHERIT . class_signature (148) - - LBRACKET shift 943 - LIDENT shift 944 - OBJECT shift 821 - UIDENT shift 89 - . error - - class_signature goto 1164 - clty_longident goto 827 - mod_ext_longident goto 946 - - -state 1118 - method_type : METHOD . private_flag label COLON poly_type (156) - virtual_method_type : METHOD . PRIVATE VIRTUAL label COLON poly_type (157) - virtual_method_type : METHOD . VIRTUAL private_flag label COLON poly_type (158) - private_flag : . (559) - - PRIVATE shift 1165 - VIRTUAL shift 1166 - LIDENT reduce 559 - - private_flag goto 1167 - - -state 1119 - class_sig_field : VAL . value_type (149) - - LIDENT shift 151 - MUTABLE shift 1168 - VIRTUAL shift 1169 - . error - - label goto 1170 - value_type goto 1171 - - -state 1120 - class_sig_fields : class_sig_fields class_sig_field . (147) - - . reduce 147 - - -state 1121 - class_sig_field : virtual_method_type . (150) - - . reduce 150 - - -state 1122 - class_sig_field : method_type . (151) - - . reduce 151 - - -state 1123 - class_type : OPTLABEL simple_core_type_or_tuple MINUSGREATER class_type . (136) - - . reduce 136 - - -state 1124 - class_type : QUESTION LIDENT COLON simple_core_type_or_tuple . MINUSGREATER class_type (135) - - MINUSGREATER shift 1172 - . error - - -state 1125 - class_fun_def : labeled_simple_pattern MINUSGREATER class_expr . (96) - - . reduce 96 - - -state 1126 - class_simple_expr : LBRACKET core_type_comma_list RBRACKET class_longident . (102) - - . reduce 102 - - -state 1127 - class_expr : LET rec_flag let_bindings IN . class_expr (101) - - FUN shift 829 - LBRACKET shift 830 - LET shift 831 - LIDENT shift 192 - LPAREN shift 832 - OBJECT shift 833 - UIDENT shift 49 - . error - - mod_longident goto 193 - class_expr goto 1173 - class_simple_expr goto 835 - class_longident goto 836 - - -state 1128 - class_simple_expr : LPAREN class_expr COLON class_type . RPAREN (106) - class_simple_expr : LPAREN class_expr COLON class_type . error (107) - - error shift 1174 - RPAREN shift 1175 - . error - - -state 1129 - amper_type_list : amper_type_list AMPERSAND . core_type (456) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1176 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1130 - simple_core_type2 : LBRACKETLESS opt_bar row_field_list GREATER name_tag_list RBRACKET . (440) - - . reduce 440 - - -state 1131 - poly_type : typevar_list DOT core_type . (414) - - . reduce 414 - - -state 1132 - simple_core_type2 : LPAREN core_type_comma_list RPAREN SHARP class_longident opt_present . (433) - - . reduce 433 - - -state 1133 - core_type2 : QUESTION LIDENT COLON core_type2 MINUSGREATER core_type2 . (418) - core_type2 : core_type2 . MINUSGREATER core_type2 (421) - core_type2 : core_type2 MINUSGREATER core_type2 . (421) - - MINUSGREATER shift 691 - error reduce 418 - AMPERSAND reduce 418 - AND reduce 418 - AS reduce 418 - BAR reduce 418 - CLASS reduce 418 - COLONGREATER reduce 418 - COMMA reduce 418 - CONSTRAINT reduce 418 - END reduce 418 - EOF reduce 418 - EQUAL reduce 418 - EXCEPTION reduce 418 - EXTERNAL reduce 418 - GREATER reduce 418 - INCLUDE reduce 418 - INHERIT reduce 418 - INITIALIZER reduce 418 - LET reduce 418 - METHOD reduce 418 - MODULE reduce 418 - OPEN reduce 418 - RBRACE reduce 418 - RBRACKET reduce 418 - RPAREN reduce 418 - SEMI reduce 418 - SEMISEMI reduce 418 - SHARP reduce 418 - TYPE reduce 418 - VAL reduce 418 - WITH reduce 418 - - -state 1134 - expr : FOR val_ident EQUAL seq_expr direction_flag seq_expr DO seq_expr DONE . (204) - - . reduce 204 - - -state 1135 - pattern : pattern . AS val_ident (320) - pattern : pattern . COLONCOLON pattern (324) - pattern : LPAREN COLONCOLON RPAREN LPAREN pattern COMMA pattern . RPAREN (325) - pattern : pattern . BAR pattern (326) - pattern_comma_list : pattern . COMMA pattern (350) - pattern_comma_list : pattern COMMA pattern . (350) - - COLONCOLON shift 529 - RPAREN shift 1177 - AS reduce 350 - BAR reduce 350 - COMMA reduce 350 - - -state 1136 - module_expr : FUNCTOR LPAREN UIDENT COLON module_type RPAREN MINUSGREATER module_expr . (21) - module_expr : module_expr . LPAREN module_expr RPAREN (22) - module_expr : module_expr . LPAREN module_expr error (23) - - LPAREN shift 360 - error reduce 21 - AND reduce 21 - CLASS reduce 21 - COLON reduce 21 - END reduce 21 - EOF reduce 21 - EQUAL reduce 21 - EXCEPTION reduce 21 - EXTERNAL reduce 21 - IN reduce 21 - INCLUDE reduce 21 - LET reduce 21 - MODULE reduce 21 - OPEN reduce 21 - RPAREN reduce 21 - SEMISEMI reduce 21 - SHARP reduce 21 - TYPE reduce 21 - VAL reduce 21 - WITH reduce 21 - - -state 1137 - module_expr : LPAREN VAL expr COLON package_type COLONGREATER package_type RPAREN . (30) - - . reduce 30 - - -state 1138 - let_binding : val_ident COLON TYPE lident_list DOT core_type EQUAL . seq_expr (287) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 1178 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 1139 - let_binding : val_ident COLON typevar_list DOT core_type EQUAL seq_expr . (286) - - . reduce 286 - - -state 1140 - package_type_cstr : TYPE label_longident EQUAL . core_type (444) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1179 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1141 - package_type_cstrs : package_type_cstr AND package_type_cstrs . (446) - - . reduce 446 - - -state 1142 - virtual_method : METHOD override_flag PRIVATE VIRTUAL label COLON . poly_type (129) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 738 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 974 - poly_type goto 1180 - simple_core_type_or_tuple goto 514 - typevar_list goto 976 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1143 - virtual_method : METHOD override_flag VIRTUAL private_flag label COLON . poly_type (130) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 738 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 974 - poly_type goto 1181 - simple_core_type_or_tuple goto 514 - typevar_list goto 976 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1144 - concrete_method : METHOD override_flag private_flag label COLON TYPE . lident_list DOT core_type EQUAL seq_expr (133) - - LIDENT shift 893 - . error - - lident_list goto 1182 - - -state 1145 - concrete_method : METHOD override_flag private_flag label COLON poly_type . EQUAL seq_expr (132) - - EQUAL shift 1183 - . error - - -state 1146 - virtual_value : VIRTUAL mutable_flag label COLON core_type . (126) - - . reduce 126 - - -state 1147 - virtual_value : override_flag MUTABLE VIRTUAL label COLON . core_type (125) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1184 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1148 - value : override_flag mutable_flag label EQUAL seq_expr . (127) - - . reduce 127 - - -state 1149 - value : override_flag mutable_flag label type_constraint EQUAL . seq_expr (128) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 1185 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 1150 - type_kind : EQUAL core_type EQUAL private_flag LBRACE label_declarations . opt_semi RBRACE (374) - label_declarations : label_declarations . SEMI label_declaration (401) - opt_semi : . (569) - - SEMI shift 1100 - RBRACE reduce 569 - - opt_semi goto 1186 - - -state 1151 - type_kind : EQUAL core_type EQUAL private_flag opt_bar constructor_declarations . (373) - constructor_declarations : constructor_declarations . BAR constructor_declaration (392) - - BAR shift 922 - error reduce 373 - AND reduce 373 - CLASS reduce 373 - CONSTRAINT reduce 373 - END reduce 373 - EOF reduce 373 - EXCEPTION reduce 373 - EXTERNAL reduce 373 - INCLUDE reduce 373 - LET reduce 373 - MODULE reduce 373 - OPEN reduce 373 - SEMISEMI reduce 373 - SHARP reduce 373 - TYPE reduce 373 - VAL reduce 373 - - -state 1152 - label_declaration : mutable_flag label COLON . poly_type (402) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 738 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 974 - poly_type goto 1187 - simple_core_type_or_tuple goto 514 - typevar_list goto 976 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1153 - label_declarations : label_declarations SEMI label_declaration . (401) - - . reduce 401 - - -state 1154 - type_kind : EQUAL private_flag LBRACE label_declarations opt_semi RBRACE . (372) - - . reduce 372 - - -state 1155 - generalized_constructor_arguments : COLON core_type_list MINUSGREATER simple_core_type . (398) - - . reduce 398 - - -state 1156 - constrain : core_type EQUAL core_type . (159) - - . reduce 159 - - -state 1157 - module_type : FUNCTOR LPAREN UIDENT COLON module_type RPAREN MINUSGREATER . module_type (63) - - FUNCTOR shift 455 - LIDENT shift 97 - LPAREN shift 456 - MODULE shift 457 - SIG shift 458 - UIDENT shift 459 - . error - - module_type goto 1188 - ident goto 461 - mty_longident goto 462 - mod_ext_longident goto 463 - - -state 1158 - with_constraint : TYPE type_parameters label_longident COLONEQUAL core_type . (406) - - . reduce 406 - - -state 1159 - with_type_binder : EQUAL PRIVATE . (410) - - . reduce 410 - - -state 1160 - with_constraint : TYPE type_parameters label_longident with_type_binder core_type . constraints (405) - constraints : . (365) - - . reduce 365 - - constraints goto 1189 - - -state 1161 - module_declaration : LPAREN UIDENT COLON module_type RPAREN module_declaration . (84) - - . reduce 84 - - -state 1162 - class_type : LIDENT COLON simple_core_type_or_tuple MINUSGREATER class_type . (137) - - . reduce 137 - - -state 1163 - class_sig_field : CONSTRAINT constrain_field . (152) - - . reduce 152 - - -state 1164 - class_sig_field : INHERIT class_signature . (148) - - . reduce 148 - - -state 1165 - virtual_method_type : METHOD PRIVATE . VIRTUAL label COLON poly_type (157) - private_flag : PRIVATE . (560) - - VIRTUAL shift 1190 - LIDENT reduce 560 - - -state 1166 - virtual_method_type : METHOD VIRTUAL . private_flag label COLON poly_type (158) - private_flag : . (559) - - PRIVATE shift 1014 - LIDENT reduce 559 - - private_flag goto 1191 - - -state 1167 - method_type : METHOD private_flag . label COLON poly_type (156) - - LIDENT shift 151 - . error - - label goto 1192 - - -state 1168 - value_type : MUTABLE . virtual_flag label COLON core_type (154) - virtual_flag : . (563) - - VIRTUAL shift 105 - LIDENT reduce 563 - - virtual_flag goto 1193 - - -state 1169 - value_type : VIRTUAL . mutable_flag label COLON core_type (153) - mutable_flag : . (561) - - MUTABLE shift 912 - LIDENT reduce 561 - - mutable_flag goto 1194 - - -state 1170 - value_type : label . COLON core_type (155) - - COLON shift 1195 - . error - - -state 1171 - class_sig_field : VAL value_type . (149) - - . reduce 149 - - -state 1172 - class_type : QUESTION LIDENT COLON simple_core_type_or_tuple MINUSGREATER . class_type (135) - - LBRACKET shift 819 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 820 - LPAREN shift 502 - OBJECT shift 821 - OPTLABEL shift 822 - QUESTION shift 823 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - class_type goto 1196 - class_signature goto 825 - simple_core_type_or_tuple goto 826 - clty_longident goto 827 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 828 - simple_core_type2 goto 509 - - -state 1173 - class_expr : LET rec_flag let_bindings IN class_expr . (101) - - . reduce 101 - - -state 1174 - class_simple_expr : LPAREN class_expr COLON class_type error . (107) - - . reduce 107 - - -state 1175 - class_simple_expr : LPAREN class_expr COLON class_type RPAREN . (106) - - . reduce 106 - - -state 1176 - amper_type_list : amper_type_list AMPERSAND core_type . (456) - - . reduce 456 - - -state 1177 - pattern : LPAREN COLONCOLON RPAREN LPAREN pattern COMMA pattern RPAREN . (325) - - . reduce 325 - - -state 1178 - let_binding : val_ident COLON TYPE lident_list DOT core_type EQUAL seq_expr . (287) - - . reduce 287 - - -state 1179 - package_type_cstr : TYPE label_longident EQUAL core_type . (444) - - . reduce 444 - - -state 1180 - virtual_method : METHOD override_flag PRIVATE VIRTUAL label COLON poly_type . (129) - - . reduce 129 - - -state 1181 - virtual_method : METHOD override_flag VIRTUAL private_flag label COLON poly_type . (130) - - . reduce 130 - - -state 1182 - concrete_method : METHOD override_flag private_flag label COLON TYPE lident_list . DOT core_type EQUAL seq_expr (133) - - DOT shift 1197 - . error - - -state 1183 - concrete_method : METHOD override_flag private_flag label COLON poly_type EQUAL . seq_expr (132) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 1198 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 1184 - virtual_value : override_flag MUTABLE VIRTUAL label COLON core_type . (125) - - . reduce 125 - - -state 1185 - value : override_flag mutable_flag label type_constraint EQUAL seq_expr . (128) - - . reduce 128 - - -state 1186 - type_kind : EQUAL core_type EQUAL private_flag LBRACE label_declarations opt_semi . RBRACE (374) - - RBRACE shift 1199 - . error - - -state 1187 - label_declaration : mutable_flag label COLON poly_type . (402) - - . reduce 402 - - -state 1188 - module_type : FUNCTOR LPAREN UIDENT COLON module_type RPAREN MINUSGREATER module_type . (63) - module_type : module_type . WITH with_constraints (64) - - WITH shift 638 - error reduce 63 - AND reduce 63 - CLASS reduce 63 - END reduce 63 - EOF reduce 63 - EQUAL reduce 63 - EXCEPTION reduce 63 - EXTERNAL reduce 63 - INCLUDE reduce 63 - LET reduce 63 - MODULE reduce 63 - OPEN reduce 63 - RPAREN reduce 63 - SEMISEMI reduce 63 - SHARP reduce 63 - TYPE reduce 63 - VAL reduce 63 - - -state 1189 - constraints : constraints . CONSTRAINT constrain (364) - with_constraint : TYPE type_parameters label_longident with_type_binder core_type constraints . (405) - - CONSTRAINT shift 926 - error reduce 405 - AND reduce 405 - CLASS reduce 405 - END reduce 405 - EOF reduce 405 - EQUAL reduce 405 - EXCEPTION reduce 405 - EXTERNAL reduce 405 - INCLUDE reduce 405 - LET reduce 405 - MODULE reduce 405 - OPEN reduce 405 - RPAREN reduce 405 - SEMISEMI reduce 405 - SHARP reduce 405 - TYPE reduce 405 - VAL reduce 405 - WITH reduce 405 - - -state 1190 - virtual_method_type : METHOD PRIVATE VIRTUAL . label COLON poly_type (157) - - LIDENT shift 151 - . error - - label goto 1200 - - -state 1191 - virtual_method_type : METHOD VIRTUAL private_flag . label COLON poly_type (158) - - LIDENT shift 151 - . error - - label goto 1201 - - -state 1192 - method_type : METHOD private_flag label . COLON poly_type (156) - - COLON shift 1202 - . error - - -state 1193 - value_type : MUTABLE virtual_flag . label COLON core_type (154) - - LIDENT shift 151 - . error - - label goto 1203 - - -state 1194 - value_type : VIRTUAL mutable_flag . label COLON core_type (153) - - LIDENT shift 151 - . error - - label goto 1204 - - -state 1195 - value_type : label COLON . core_type (155) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1205 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1196 - class_type : QUESTION LIDENT COLON simple_core_type_or_tuple MINUSGREATER class_type . (135) - - . reduce 135 - - -state 1197 - concrete_method : METHOD override_flag private_flag label COLON TYPE lident_list DOT . core_type EQUAL seq_expr (133) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1206 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1198 - concrete_method : METHOD override_flag private_flag label COLON poly_type EQUAL seq_expr . (132) - - . reduce 132 - - -state 1199 - type_kind : EQUAL core_type EQUAL private_flag LBRACE label_declarations opt_semi RBRACE . (374) - - . reduce 374 - - -state 1200 - virtual_method_type : METHOD PRIVATE VIRTUAL label . COLON poly_type (157) - - COLON shift 1207 - . error - - -state 1201 - virtual_method_type : METHOD VIRTUAL private_flag label . COLON poly_type (158) - - COLON shift 1208 - . error - - -state 1202 - method_type : METHOD private_flag label COLON . poly_type (156) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 738 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 974 - poly_type goto 1209 - simple_core_type_or_tuple goto 514 - typevar_list goto 976 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1203 - value_type : MUTABLE virtual_flag label . COLON core_type (154) - - COLON shift 1210 - . error - - -state 1204 - value_type : VIRTUAL mutable_flag label . COLON core_type (153) - - COLON shift 1211 - . error - - -state 1205 - value_type : label COLON core_type . (155) - - . reduce 155 - - -state 1206 - concrete_method : METHOD override_flag private_flag label COLON TYPE lident_list DOT core_type . EQUAL seq_expr (133) - - EQUAL shift 1212 - . error - - -state 1207 - virtual_method_type : METHOD PRIVATE VIRTUAL label COLON . poly_type (157) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 738 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 974 - poly_type goto 1213 - simple_core_type_or_tuple goto 514 - typevar_list goto 976 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1208 - virtual_method_type : METHOD VIRTUAL private_flag label COLON . poly_type (158) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 738 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 974 - poly_type goto 1214 - simple_core_type_or_tuple goto 514 - typevar_list goto 976 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1209 - method_type : METHOD private_flag label COLON poly_type . (156) - - . reduce 156 - - -state 1210 - value_type : MUTABLE virtual_flag label COLON . core_type (154) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1215 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1211 - value_type : VIRTUAL mutable_flag label COLON . core_type (153) - - LBRACKET shift 498 - LBRACKETLESS shift 499 - LBRACKETGREATER shift 500 - LESS shift 501 - LIDENT shift 510 - LPAREN shift 502 - OPTLABEL shift 511 - QUESTION shift 512 - QUOTE shift 503 - SHARP shift 504 - UIDENT shift 89 - UNDERSCORE shift 505 - . error - - core_type goto 1216 - simple_core_type_or_tuple goto 514 - type_longident goto 506 - simple_core_type goto 515 - mod_ext_longident goto 343 - core_type2 goto 516 - simple_core_type2 goto 509 - - -state 1212 - concrete_method : METHOD override_flag private_flag label COLON TYPE lident_list DOT core_type EQUAL . seq_expr (133) - - ASSERT shift 7 - BACKQUOTE shift 8 - BANG shift 9 - BEGIN shift 10 - CHAR shift 11 - FALSE shift 15 - FLOAT shift 16 - FOR shift 17 - FUN shift 18 - FUNCTION shift 19 - IF shift 20 - INT shift 22 - INT32 shift 23 - INT64 shift 24 - LAZY shift 25 - LBRACE shift 26 - LBRACELESS shift 27 - LBRACKET shift 28 - LBRACKETBAR shift 29 - LET shift 102 - LIDENT shift 31 - LPAREN shift 32 - MATCH shift 33 - MINUS shift 34 - MINUSDOT shift 35 - NATIVEINT shift 37 - NEW shift 38 - OBJECT shift 39 - PLUS shift 41 - PLUSDOT shift 42 - PREFIXOP shift 43 - STRING shift 45 - TRUE shift 46 - TRY shift 47 - UIDENT shift 49 - WHILE shift 50 - . error - - seq_expr goto 1217 - mod_longident goto 55 - expr goto 56 - val_ident goto 58 - constr_longident goto 59 - label goto 60 - simple_expr goto 61 - expr_comma_list goto 62 - name_tag goto 63 - subtractive goto 64 - additive goto 65 - val_longident goto 66 - constant goto 67 - - -state 1213 - virtual_method_type : METHOD PRIVATE VIRTUAL label COLON poly_type . (157) - - . reduce 157 - - -state 1214 - virtual_method_type : METHOD VIRTUAL private_flag label COLON poly_type . (158) - - . reduce 158 - - -state 1215 - value_type : MUTABLE virtual_flag label COLON core_type . (154) - - . reduce 154 - - -state 1216 - value_type : VIRTUAL mutable_flag label COLON core_type . (153) - - . reduce 153 - - -state 1217 - concrete_method : METHOD override_flag private_flag label COLON TYPE lident_list DOT core_type EQUAL seq_expr . (133) - - . reduce 133 - - -128 terminals, 157 nonterminals -580 grammar rules, 1218 states diff --git a/typer.ml b/typer.ml index bf5104e048..f3da302047 100644 --- a/typer.ml +++ b/typer.ml @@ -3,8 +3,17 @@ type item = Chunk.sync * state type sync = item History.sync type t = item History.t +let initial_env () = + Ident.reinit(); + try + if !Clflags.nopervasives + then Env.initial + else Env.open_pers_signature "Pervasives" Env.initial + with Not_found -> + failwith "cannot open pervasives.cmi" + let initial_env = - let cenv = Lazy.from_fun Compile.initial_env in + let cenv = Lazy.from_fun initial_env in fun () -> let env = Lazy.force cenv in Extensions.register env @@ -67,8 +76,17 @@ let append_step chunks chunk_item t = Some (env, trees, exn :: exns) end - | Chunk.Partial_definitions _ -> - None + | Chunk.Partial_definitions ds -> + let (_,trees,exns) = + List.fold_left + begin fun (env,trees,exns) d -> + try + let tstr,tsg,env = Typemod.type_structure env [d.Location.txt] d.Location.loc in + (env, (tstr,tsg) :: trees, exns) + with exn -> (env, trees, exn :: exns) + end (env,trees,exns) ds + in + Some (env, trees, exns) | Chunk.Module_closing (d,offset) -> begin try diff --git a/utils/config.ml b/utils/config.ml index fdf19627b5..7e02f742b2 100644 --- a/utils/config.ml +++ b/utils/config.ml @@ -10,14 +10,14 @@ (* *) (***********************************************************************) -(* $Id: config.mlp 12511 2012-05-30 13:29:48Z lefessan $ *) +(* $Id: config.mlbuild 12511 2012-05-30 13:29:48Z lefessan $ *) (***********************************************************************) (** **) (** WARNING WARNING WARNING **) (** **) (** When you change this file, you must make the parallel change **) -(** in config.mlbuild **) +(** in config.mlp **) (** **) (***********************************************************************) @@ -25,7 +25,9 @@ (* The main OCaml version string has moved to ../VERSION *) let version = Sys.ocaml_version -let standard_library_default = "/home/def/Local/opam/4.00.1+tk86/lib/ocaml" +module C = Myocamlbuild_config + +let standard_library_default = C.libdir let standard_library = try @@ -36,19 +38,28 @@ let standard_library = with Not_found -> standard_library_default -let standard_runtime = "/home/def/Local/opam/4.00.1+tk86/bin/ocamlrun" -let ccomp_type = "cc" -let bytecomp_c_compiler = "gcc -fno-defer-pop -Wall -DUSE_INTERP_RESULT -D_FILE_OFFSET_BITS=64 -D_REENTRANT -fPIC" -let bytecomp_c_libraries = "-lm -ldl -lcurses -lpthread" -let native_c_compiler = "gcc -Wall -DUSE_INTERP_RESULT -D_FILE_OFFSET_BITS=64 -D_REENTRANT" -let native_c_libraries = "-lm -ldl" -let native_pack_linker = "ld -r -o " -let ranlib = "ranlib" -let ar = "ar" -let cc_profile = "-pg" -let mkdll = "gcc -shared" -let mkexe = "gcc" -let mkmaindll = "gcc -shared" +let windows = + match Sys.os_type with + | "Win32" -> true + | _ -> false + +let sf = Printf.sprintf + +let standard_runtime = + if windows then "ocamlrun" + else C.bindir^"/ocamlrun" +let ccomp_type = C.ccomptype +let bytecomp_c_compiler = sf "%s %s %s" C.bytecc C.bytecccompopts C.sharedcccompopts +let bytecomp_c_libraries = C.bytecclibs +let native_c_compiler = sf "%s %s" C.nativecc C.nativecccompopts +let native_c_libraries = C.nativecclibs +let native_pack_linker = C.packld +let ranlib = C.ranlibcmd +let ar = C.arcmd +let cc_profile = C.cc_profile +let mkdll = C.mkdll +let mkexe = C.mkexe +let mkmaindll = C.mkmaindll let exec_magic_number = "Caml1999X008" and cmi_magic_number = "Caml1999I014" @@ -74,17 +85,17 @@ let lazy_tag = 246 let max_young_wosize = 256 let stack_threshold = 256 (* see byterun/config.h *) -let architecture = "amd64" -let model = "default" -let system = "linux" +let architecture = C.arch +let model = C.model +let system = C.system -let asm = "as" -let asm_cfi_supported = true +let asm = C.asm +let asm_cfi_supported = C.asm_cfi_supported -let ext_obj = ".o" -let ext_asm = ".s" -let ext_lib = ".a" -let ext_dll = ".so" +let ext_obj = C.ext_obj +let ext_asm = C.ext_asm +let ext_lib = C.ext_lib +let ext_dll = C.ext_dll let default_executable_name = match Sys.os_type with @@ -92,7 +103,7 @@ let default_executable_name = | "Win32" | "Cygwin" -> "camlprog.exe" | _ -> "camlprog" -let systhread_supported = true;; +let systhread_supported = C.systhread_support;; let print_config oc = let p name valu = Printf.fprintf oc "%s: %s\n" name valu in diff --git a/utils/config.mlbuild b/utils/config.mlbuild deleted file mode 100644 index 7e02f742b2..0000000000 --- a/utils/config.mlbuild +++ /dev/null @@ -1,136 +0,0 @@ -(***********************************************************************) -(* *) -(* OCaml *) -(* *) -(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *) -(* *) -(* Copyright 1996 Institut National de Recherche en Informatique et *) -(* en Automatique. All rights reserved. This file is distributed *) -(* under the terms of the Q Public License version 1.0. *) -(* *) -(***********************************************************************) - -(* $Id: config.mlbuild 12511 2012-05-30 13:29:48Z lefessan $ *) - -(***********************************************************************) -(** **) -(** WARNING WARNING WARNING **) -(** **) -(** When you change this file, you must make the parallel change **) -(** in config.mlp **) -(** **) -(***********************************************************************) - - -(* The main OCaml version string has moved to ../VERSION *) -let version = Sys.ocaml_version - -module C = Myocamlbuild_config - -let standard_library_default = C.libdir - -let standard_library = - try - Sys.getenv "OCAMLLIB" - with Not_found -> - try - Sys.getenv "CAMLLIB" - with Not_found -> - standard_library_default - -let windows = - match Sys.os_type with - | "Win32" -> true - | _ -> false - -let sf = Printf.sprintf - -let standard_runtime = - if windows then "ocamlrun" - else C.bindir^"/ocamlrun" -let ccomp_type = C.ccomptype -let bytecomp_c_compiler = sf "%s %s %s" C.bytecc C.bytecccompopts C.sharedcccompopts -let bytecomp_c_libraries = C.bytecclibs -let native_c_compiler = sf "%s %s" C.nativecc C.nativecccompopts -let native_c_libraries = C.nativecclibs -let native_pack_linker = C.packld -let ranlib = C.ranlibcmd -let ar = C.arcmd -let cc_profile = C.cc_profile -let mkdll = C.mkdll -let mkexe = C.mkexe -let mkmaindll = C.mkmaindll - -let exec_magic_number = "Caml1999X008" -and cmi_magic_number = "Caml1999I014" -and cmo_magic_number = "Caml1999O007" -and cma_magic_number = "Caml1999A008" -and cmx_magic_number = "Caml1999Y011" -and cmxa_magic_number = "Caml1999Z010" -and ast_impl_magic_number = "Caml1999M015" -and ast_intf_magic_number = "Caml1999N014" -and cmxs_magic_number = "Caml2007D001" -and cmt_magic_number = "Caml2012T001" - -let load_path = ref ([] : string list) - -let interface_suffix = ref ".mli" - -let max_tag = 245 -(* This is normally the same as in obj.ml, but we have to define it - separately because it can differ when we're in the middle of a - bootstrapping phase. *) -let lazy_tag = 246 - -let max_young_wosize = 256 -let stack_threshold = 256 (* see byterun/config.h *) - -let architecture = C.arch -let model = C.model -let system = C.system - -let asm = C.asm -let asm_cfi_supported = C.asm_cfi_supported - -let ext_obj = C.ext_obj -let ext_asm = C.ext_asm -let ext_lib = C.ext_lib -let ext_dll = C.ext_dll - -let default_executable_name = - match Sys.os_type with - "Unix" -> "a.out" - | "Win32" | "Cygwin" -> "camlprog.exe" - | _ -> "camlprog" - -let systhread_supported = C.systhread_support;; - -let print_config oc = - let p name valu = Printf.fprintf oc "%s: %s\n" name valu in - let p_bool name valu = Printf.fprintf oc "%s: %B\n" name valu in - p "version" version; - p "standard_library_default" standard_library_default; - p "standard_library" standard_library; - p "standard_runtime" standard_runtime; - p "ccomp_type" ccomp_type; - p "bytecomp_c_compiler" bytecomp_c_compiler; - p "bytecomp_c_libraries" bytecomp_c_libraries; - p "native_c_compiler" native_c_compiler; - p "native_c_libraries" native_c_libraries; - p "native_pack_linker" native_pack_linker; - p "ranlib" ranlib; - p "cc_profile" cc_profile; - p "architecture" architecture; - p "model" model; - p "system" system; - p "asm" asm; - p_bool "asm_cfi_supported" asm_cfi_supported; - p "ext_obj" ext_obj; - p "ext_asm" ext_asm; - p "ext_lib" ext_lib; - p "ext_dll" ext_dll; - p "os_type" Sys.os_type; - p "default_executable_name" default_executable_name; - p_bool "systhread_supported" systhread_supported; - flush oc; -;; diff --git a/utils/config.mlp b/utils/config.mlp deleted file mode 100644 index cdf67d440e..0000000000 --- a/utils/config.mlp +++ /dev/null @@ -1,125 +0,0 @@ -(***********************************************************************) -(* *) -(* OCaml *) -(* *) -(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *) -(* *) -(* Copyright 1996 Institut National de Recherche en Informatique et *) -(* en Automatique. All rights reserved. This file is distributed *) -(* under the terms of the Q Public License version 1.0. *) -(* *) -(***********************************************************************) - -(* $Id: config.mlp 12511 2012-05-30 13:29:48Z lefessan $ *) - -(***********************************************************************) -(** **) -(** WARNING WARNING WARNING **) -(** **) -(** When you change this file, you must make the parallel change **) -(** in config.mlbuild **) -(** **) -(***********************************************************************) - - -(* The main OCaml version string has moved to ../VERSION *) -let version = Sys.ocaml_version - -let standard_library_default = "%%LIBDIR%%" - -let standard_library = - try - Sys.getenv "OCAMLLIB" - with Not_found -> - try - Sys.getenv "CAMLLIB" - with Not_found -> - standard_library_default - -let standard_runtime = "%%BYTERUN%%" -let ccomp_type = "%%CCOMPTYPE%%" -let bytecomp_c_compiler = "%%BYTECC%%" -let bytecomp_c_libraries = "%%BYTECCLIBS%%" -let native_c_compiler = "%%NATIVECC%%" -let native_c_libraries = "%%NATIVECCLIBS%%" -let native_pack_linker = "%%PACKLD%%" -let ranlib = "%%RANLIBCMD%%" -let ar = "%%ARCMD%%" -let cc_profile = "%%CC_PROFILE%%" -let mkdll = "%%MKDLL%%" -let mkexe = "%%MKEXE%%" -let mkmaindll = "%%MKMAINDLL%%" - -let exec_magic_number = "Caml1999X008" -and cmi_magic_number = "Caml1999I014" -and cmo_magic_number = "Caml1999O007" -and cma_magic_number = "Caml1999A008" -and cmx_magic_number = "Caml1999Y011" -and cmxa_magic_number = "Caml1999Z010" -and ast_impl_magic_number = "Caml1999M015" -and ast_intf_magic_number = "Caml1999N014" -and cmxs_magic_number = "Caml2007D001" -and cmt_magic_number = "Caml2012T001" - -let load_path = ref ([] : string list) - -let interface_suffix = ref ".mli" - -let max_tag = 245 -(* This is normally the same as in obj.ml, but we have to define it - separately because it can differ when we're in the middle of a - bootstrapping phase. *) -let lazy_tag = 246 - -let max_young_wosize = 256 -let stack_threshold = 256 (* see byterun/config.h *) - -let architecture = "%%ARCH%%" -let model = "%%MODEL%%" -let system = "%%SYSTEM%%" - -let asm = "%%ASM%%" -let asm_cfi_supported = %%ASM_CFI_SUPPORTED%% - -let ext_obj = "%%EXT_OBJ%%" -let ext_asm = "%%EXT_ASM%%" -let ext_lib = "%%EXT_LIB%%" -let ext_dll = "%%EXT_DLL%%" - -let default_executable_name = - match Sys.os_type with - "Unix" -> "a.out" - | "Win32" | "Cygwin" -> "camlprog.exe" - | _ -> "camlprog" - -let systhread_supported = %%SYSTHREAD_SUPPORT%%;; - -let print_config oc = - let p name valu = Printf.fprintf oc "%s: %s\n" name valu in - let p_bool name valu = Printf.fprintf oc "%s: %B\n" name valu in - p "version" version; - p "standard_library_default" standard_library_default; - p "standard_library" standard_library; - p "standard_runtime" standard_runtime; - p "ccomp_type" ccomp_type; - p "bytecomp_c_compiler" bytecomp_c_compiler; - p "bytecomp_c_libraries" bytecomp_c_libraries; - p "native_c_compiler" native_c_compiler; - p "native_c_libraries" native_c_libraries; - p "native_pack_linker" native_pack_linker; - p "ranlib" ranlib; - p "cc_profile" cc_profile; - p "architecture" architecture; - p "model" model; - p "system" system; - p "asm" asm; - p_bool "asm_cfi_supported" asm_cfi_supported; - p "ext_obj" ext_obj; - p "ext_asm" ext_asm; - p "ext_lib" ext_lib; - p "ext_dll" ext_dll; - p "os_type" Sys.os_type; - p "default_executable_name" default_executable_name; - p_bool "systhread_supported" systhread_supported; - flush oc; -;; diff --git a/utils/myocamlbuild_config.ml b/utils/myocamlbuild_config.ml new file mode 100644 index 0000000000..eac8f1cc2e --- /dev/null +++ b/utils/myocamlbuild_config.ml @@ -0,0 +1,76 @@ +(* # generated by ./configure -prefix /home/def/Local/opam/4.00.1+tk86 *) +let prefix = "/home/def/Local/opam/4.00.1+tk86";; +let bindir = prefix^"/bin";; +let libdir = prefix^"/lib/ocaml";; +let stublibdir = libdir^"/stublibs";; +let mandir = prefix^"/man";; +let manext = "1";; +let ranlib = "ranlib";; +let ranlibcmd = "ranlib";; +let arcmd = "ar";; +let sharpbangscripts = true;; +let bng_arch = "amd64";; +let bng_asm_level = "1";; +let pthread_link = "-cclib -lpthread";; +let x11_includes = " ";; +let x11_link = "-lX11 ";; +let tk_defs = " "^x11_includes;; +let tk_link = " -ltk8.6 -ltcl8.6 -ldl "^x11_link;; +let libbfd_link = "";; +let bytecc = "gcc";; +let bytecccompopts = "-fno-defer-pop -Wall -DUSE_INTERP_RESULT -D_FILE_OFFSET_BITS=64 -D_REENTRANT";; +let bytecclinkopts = " -Wl,-E";; +let bytecclibs = " -lm -ldl -lcurses -lpthread";; +let byteccrpath = "-Wl,-rpath,";; +let exe = "";; +let supports_shared_libraries = true;; +let sharedcccompopts = "-fPIC";; +let mksharedlibrpath = "-Wl,-rpath,";; +let natdynlinkopts = "-Wl,-E";; +(* SYSLIB=-l"^1^" *) +let syslib x = "-l"^x;; + +(* ## *) +(* MKLIB=ar rc "^1^" "^2^"; ranlib "^1^" *) +let mklib out files opts = Printf.sprintf "ar rc %s %s %s; ranlib %s" out opts files out;; +let arch = "amd64";; +let model = "default";; +let system = "linux";; +let nativecc = "gcc";; +let nativecccompopts = "-Wall -DUSE_INTERP_RESULT -D_FILE_OFFSET_BITS=64 -D_REENTRANT";; +let nativeccprofopts = "-Wall -DUSE_INTERP_RESULT -D_FILE_OFFSET_BITS=64 -D_REENTRANT";; +let nativecclinkopts = "";; +let nativeccrpath = "-Wl,-rpath,";; +let nativecclibs = " -lm -ldl";; +let asm = "as";; +let aspp = "gcc -c";; +let asppprofflags = "-DPROFILING";; +let profiling = "prof";; +let dynlinkopts = " -ldl";; +let otherlibraries = "unix str num dynlink bigarray systhreads threads graph labltk";; +let debugger = "ocamldebugger";; +let cc_profile = "-pg";; +let systhread_support = true;; +let partialld = "ld -r";; +let packld = partialld^" "^nativecclinkopts^" -o\ ";; +let dllcccompopts = "";; + +let o = "o";; +let a = "a";; +let so = "so";; +let ext_obj = ".o";; +let ext_asm = ".s";; +let ext_lib = ".a";; +let ext_dll = ".so";; +let extralibs = "";; +let ccomptype = "cc";; +let toolchain = "cc";; +let natdynlink = true;; +let cmxs = "cmxs";; +let mkexe = bytecc;; +let mkexedebugflag = "-g";; +let mkdll = "gcc -shared";; +let mkmaindll = "gcc -shared";; +let runtimed = "noruntimed";; +let camlp4 = "camlp4";; +let asm_cfi_supported = true;;