 NULL ->
                _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState33
            | NUM _v ->
                _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState33 _v
            | PROC_DECL ->
                _menhir_run3 _menhir_env (Obj.magic _menhir_stack) MenhirState33
            | VAR _v ->
                _menhir_run2 _menhir_env (Obj.magic _menhir_stack) MenhirState33 _v
            | _ ->
                assert (not _menhir_env._menhir_error);
                _menhir_env._menhir_error <- true;
                _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState33) : 'freshtv116)
        | LT ->
            let (_menhir_env : _menhir_env) = _menhir_env in
            let (_menhir_stack : 'freshtv117 * _menhir_state * (
# 18 "Parser.mly"
      (AbstractSyntax.expression)
# 1211 "Parser.ml"
            )) = Obj.magic _menhir_stack in
            ((let _menhir_env = _menhir_discard _menhir_env in
            let _tok = _menhir_env._menhir_token in
            match _tok with
            | FIELD _v ->
                _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState31 _v
            | LPAREN ->
                _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState31
            | NULL ->
                _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState31
            | NUM _v ->
                _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState31 _v
            | PROC_DECL ->
                _menhir_run3 _menhir_env (Obj.magic _menhir_stack) MenhirState31
            | VAR _v ->
                _menhir_run2 _menhir_env (Obj.magic _menhir_stack) MenhirState31 _v
            | _ ->
                assert (not _menhir_env._menhir_error);
                _menhir_env._menhir_error <- true;
                _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState31) : 'freshtv118)
        | MINUS ->
            _menhir_run17 _menhir_env (Obj.magic _menhir_stack)
        | _ ->
            assert (not _menhir_env._menhir_error);
            _menhir_env._menhir_error <- true;
            let (_menhir_env : _menhir_env) = _menhir_env in
            let (_menhir_stack : 'freshtv119 * _menhir_state * (
# 18 "Parser.mly"
      (AbstractSyntax.expression)
# 1241 "Parser.ml"
            )) = Obj.magic _menhir_stack in
            ((let (_menhir_stack, _menhir_s, _) = _menhir_stack in
            _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) : 'freshtv120)) : 'freshtv122)
    | MenhirState31 ->
        let (_menhir_env : _menhir_env) = _menhir_env in
        let (_menhir_stack : (('freshtv127 * _menhir_state * (
# 18 "Parser.mly"
      (AbstractSyntax.expression)
# 1250 "Parser.ml"
        ))) * _menhir_state * (
# 18 "Parser.mly"
      (AbstractSyntax.expression)
# 1254 "Parser.ml"
        )) = Obj.magic _menhir_stack in
        ((assert (not _menhir_env._menhir_error);
        let _tok = _menhir_env._menhir_token in
        match _tok with
        | DOT ->
            _menhir_run19 _menhir_env (Obj.magic _menhir_stack)
        | MINUS ->
            _menhir_run17 _menhir_env (Obj.magic _menhir_stack)
        | ATOM | FIELD _ | IF | LBRACE | LPAREN | MALLOC | NULL | NUM _ | PROC_DECL | SKIP | VAR _ | VAR_DECL | WHILE ->
            let (_menhir_env : _menhir_env) = _menhir_env in
            let (_menhir_stack : (('freshtv123 * _menhir_state * (
# 18 "Parser.mly"
      (AbstractSyntax.expression)
# 1268 "Parser.ml"
            ))) * _menhir_state * (
# 18 "Parser.mly"
      (AbstractSyntax.expression)
# 1272 "Parser.ml"
            )) = Obj.magic _menhir_stack in
            ((let ((_menhir_stack, _menhir_s, (e1 : (
# 18 "Parser.mly"
      (AbstractSyntax.expression)
# 1277 "Parser.ml"
            ))), _, (e2 : (
# 18 "Parser.mly"
      (AbstractSyntax.expression)
# 1281 "Parser.ml"
            ))) = _menhir_stack in
            let _v : (
# 19 "Parser.mly"
      (AbstractSyntax.bool_expression)
# 1286 "Parser.ml"
            ) = 
# 47 "Parser.mly"
                         (Lt (e1, e2))
# 1290 "Parser.ml"
             in
            _menhir_goto_boolean _menhir_env _menhir_stack _menhir_s _v) : 'freshtv124)
        | _ ->
            assert (not _menhir_env._menhir_error);
            _menhir_env._menhir_error <- true;
            let (_menhir_env : _menhir_env) = _menhir_env in
            let (_menhir_stack : (('freshtv125 * _menhir_state * (
# 18 "Parser.mly"
      (AbstractSyntax.expression)
# 1300 "Parser.ml"
            ))) * _menhir_state * (
# 18 "Parser.mly"
      (AbstractSyntax.expression)
# 1304 "Parser.ml"
            )) = Obj.magic _menhir_stack in
            ((let (_menhir_stack, _menhir_s, _) = _menhir_stack in
            _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) : 'freshtv126)) : 'freshtv128)
    | MenhirState33 ->
        let (_menhir_env : _menhir_env) = _menhir_env in
        let (_menhir_stack : (('freshtv133 * _menhir_state * (
# 18 "Parser.mly"
      (AbstractSyntax.expression)
# 1313 "Parser.ml"
        ))) * _menhir_state * (
# 18 "Parser.mly"
      (AbstractSyntax.expression)
# 1317 "Parser.ml"
        )) = Obj.magic _menhir_stack in
        ((assert (not _menhir_env._menhir_error);
        let _tok = _menhir_env._menhir_token in
        match _tok with
        | DOT ->
            _menhir_run19 _menhir_env (Obj.magic _menhir_stack)
        | MINUS ->
            _menhir_run17 _menhir_env (Obj.magic _menhir_stack)
        | ATOM | FIELD _ | IF | LBRACE | LPAREN | MALLOC | NULL | NUM _ | PROC_DECL | SKIP | VAR _ | VAR_DECL | WHILE ->
            let (_menhir_env : _menhir_env) = _menhir_env in
            let (_menhir_stack : (('freshtv129 * _menhir_state * (
# 18 "Parser.mly"
      (AbstractSyntax.expression)
# 1331 "Parser.ml"
            ))) * _menhir_state * (
# 18 "Parser.mly"
      (AbstractSyntax.expression)
# 1335 "Parser.