


generic package nada_lr_vals_fun(package token: Token;)
: (weak) api { package parser_data : Parser_Data;
package tokens : Nada_Tokens;
}
{
package parser_data{
package header {
## nada.grammar
## Copyright 1989, 1992 by AT&T Bell Laboratories
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2013,
## released per terms of SMLNJ-COPYRIGHT.
# Compiled by:
# src/lib/compiler/front/parser/parser.sublib# NB: None of the 'nada' stuff is current usable or used.
# I'm keeping it as a place-holder in case I decide
# to support an alternate syntax like prolog or lisp.
# This is the Nada syntax grammar file.
# Mythryl-Yacc consumes this and spits out an LALR (1)
# parser which eats ASCII text and excretes
# raw_syntax syntax trees -- see
#
# compiler/parse/raw-syntax/raw-syntax.api
# compiler/parse/raw-syntax/raw-syntax.pkg
#
# The file syntax here is very close to classic
# YACC input syntax, with SML substituting for
# C in the actions. The biggest difference is
# that when we declare nonterminal symbols via
# '%nonterm', we also declare types for them.
#
# The top section (to the first double-percent-sign
# separator) contains arbitrary SML code -- support
# for rule actions.
### "A language that doesn't affect the
### way you think about programming, is
### not worth knowing."
###
### -- Alan Perlis
# DESIGN PRINCIPLES
#
# All statements end with a semicolon: Semicolon is -not- a seperator.
#
# Reserved punctuation symbols are ` ' " ( ) { } [ ]
#
# Identifiers are [_A-Za-z][_A-Za-z0-9]*[']*
# Infix operators are composed from & $ hashmark ! ~ - + * / % : < = > ? @ ^ | \ ; . ,
# Prefix and suffix operators are single characters from the above,
# except | > may not be prefix and > | ; : ' , may not be suffix operators.
#
# That means we are barring from infix operators: ( ) { } [ ] " ' `
# from prefix operators: ( ) { } [ ] " ' ` | < >
# and from suffix operators: ( ) { } [ ] " ' ` | < > ; : ' ,
#
# Also prefix '.' is pre-empted for record selection,
# and prefix '*' is pre-empted for dereferencing,
# and prefix '/' is pre-empted for regular expressions.
# The set of user prefix operators is thus > & $ hashmark ! ~ - + % : = > ? @ ^ \ ; . ,
# The set of user suffix operators is thus < & $ hashmark ! ~ - + % = ? @ ^ \ .
#
# The set of user-definable bracket operators is <a> |a| { a} [a] /a/
#
# On reflection, I think we should also allow
# QED style mismatched bracket operators:
#
# <a| <a} <a] <a/
# |a> |a} |a] |a/
# { a> { a| { a] { a/
# [a> [a| [a} [a/
# /a> /a| /a} /a]
#
# I don't expect them to be heavily used, but
# I figure type errors (in particular, "operator
# undefined") will catch typoes just fine, so there
# seems vanishingly little reason not to allow them.
#
# SML operators are composed from: ! % & $ hashmark + - / : < = > ? @ \ ~ ` ^ | *
# That means they are reserving: = ( ) { } [ ] " ' ` , . ;
#
# Equality is == not =
#
# Individual values may be named via
#
# variable = expression;
#
# Assignment to more complicated patterns is handled as
#
# pattern = expression;
#
# Function definition syntax is:
# fun pattern = expression;
# or
# fun pattern => expression;
# pattern => expression;
# ...
# end;
#
# Switch syntax is:
#
# case expression of
# pattern => expression;
# pattern => expression;
# ...
# end;
#
# If-then-else is
#
# if expression then
# statements;
# else
# statements;
# fi;
#
# C-style 'for' loops are
#
# for statements;; expression;; statements do
# statements;
# end;
#
# -- How about:
# for statements while expression end statements do
# end.
#
# -- Also a special but common case
# for 0 < i < n do -- <= allowed too.
# statements.
# end.
include raw_syntax;
include error_message;
include symbol;
include fast_symbol;
include raw_syntax_junk;
include fixity;
Raw_Symbol = fast_symbol::Raw_Symbol;
# Two little fns for use in rule actions, which
# annotate syntax expression and declaration trees
# with the corresponding source file line+column
# number range (s).
#
# They do nothing if the tree is already so annotated:
fun note_expression_location (e as SOURCE_CODE_REGION_FOR_EXPRESSION _, _, _)
=>
e;
note_expression_location (e, a, b)
=>
SOURCE_CODE_REGION_FOR_EXPRESSION (e, (a, b));
end;
fun note_declaration_location (d as SOURCE_CODE_REGION_FOR_DECLARATION _, _, _)
=>
d;
note_declaration_location (d, a, b)
=>
SOURCE_CODE_REGION_FOR_DECLARATION (d, (a, b));
end;
# A few handy constants for use in rule actions:
package_string = "package";
package_hash = hash_string::hash_string "package";
api_string = "api";
api_hash = hash_string::hash_string "api";
macro_string = "macro";
macro_hash = hash_string::hash_string "macro";
transparent_string = "transparent";
transparent_hash = hash_string::hash_string "transparent";
opaque_string = "opaque";
opaque_hash = hash_string::hash_string "opaque";
underbar_hash = hash_string::hash_string "_";
underbar_string = "_";
equal_hash = hash_string::hash_string "=";
equal_string = "=";
bogus_hash = hash_string::hash_string "BOGUS";
bogus_string = "BOGUS";
quoted_bogus_hash = hash_string::hash_string "'BOGUS";
quoted_bogus_string = "'BOGUS";
# The grammar token declaration section starts after this marker:
};
package lr_table = token::lr_table;
package token = token;
stipulate include lr_table; herein
my table={ action_rows =
"\
\\001\000\000\000\
\\001\000\001\000\067\000\002\000\066\000\004\000\065\000\006\000\064\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\012\000\059\000\014\000\058\000\017\000\057\000\021\000\056\000\
\\023\000\055\000\024\000\054\000\025\000\053\000\029\000\052\000\
\\033\000\051\000\035\000\050\000\036\000\049\000\037\000\048\000\
\\046\000\047\000\048\000\046\000\049\000\045\000\050\000\044\000\
\\052\000\043\000\054\000\042\000\055\000\041\000\056\000\040\000\
\\058\000\039\000\060\000\038\000\061\000\037\000\062\000\036\000\
\\063\000\035\000\064\000\034\000\065\000\033\000\066\000\032\000\
\\067\000\031\000\111\000\030\000\112\000\029\000\114\000\028\000\
\\116\000\027\000\000\000\
\\001\000\001\000\067\000\002\000\066\000\004\000\065\000\006\000\071\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\012\000\059\000\014\000\058\000\017\000\057\000\021\000\056\000\
\\023\000\055\000\024\000\054\000\025\000\053\000\035\000\050\000\
\\037\000\048\000\049\000\045\000\050\000\044\000\051\000\139\000\
\\052\000\043\000\054\000\042\000\055\000\041\000\058\000\039\000\
\\060\000\038\000\061\000\037\000\062\000\036\000\063\000\035\000\
\\064\000\034\000\065\000\033\000\066\000\032\000\067\000\031\000\
\\111\000\030\000\116\000\027\000\000\000\
\\001\000\001\000\067\000\002\000\066\000\004\000\065\000\006\000\071\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\012\000\059\000\014\000\058\000\017\000\057\000\021\000\056\000\
\\023\000\055\000\024\000\054\000\025\000\053\000\035\000\050\000\
\\037\000\048\000\049\000\045\000\050\000\044\000\051\000\141\000\
\\052\000\043\000\054\000\042\000\055\000\041\000\058\000\039\000\
\\060\000\038\000\061\000\037\000\062\000\036\000\063\000\035\000\
\\064\000\034\000\065\000\033\000\066\000\032\000\067\000\031\000\
\\111\000\030\000\116\000\027\000\000\000\
\\001\000\001\000\067\000\002\000\066\000\004\000\065\000\006\000\071\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\012\000\059\000\014\000\058\000\017\000\057\000\021\000\056\000\
\\023\000\055\000\024\000\054\000\025\000\053\000\035\000\050\000\
\\037\000\048\000\049\000\045\000\050\000\044\000\052\000\043\000\
\\054\000\042\000\055\000\041\000\058\000\039\000\060\000\038\000\
\\061\000\037\000\062\000\036\000\063\000\035\000\064\000\034\000\
\\065\000\033\000\066\000\032\000\067\000\031\000\097\000\132\000\
\\111\000\030\000\116\000\027\000\000\000\
\\001\000\001\000\067\000\002\000\066\000\004\000\065\000\006\000\071\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\012\000\059\000\014\000\058\000\017\000\057\000\021\000\056\000\
\\023\000\055\000\024\000\054\000\025\000\053\000\035\000\050\000\
\\037\000\048\000\049\000\045\000\050\000\044\000\052\000\043\000\
\\054\000\042\000\055\000\041\000\058\000\039\000\060\000\038\000\
\\061\000\037\000\062\000\036\000\063\000\035\000\064\000\034\000\
\\065\000\033\000\066\000\032\000\067\000\031\000\111\000\030\000\
\\116\000\027\000\000\000\
\\001\000\001\000\067\000\002\000\066\000\004\000\065\000\006\000\071\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\012\000\059\000\014\000\058\000\017\000\057\000\021\000\056\000\
\\023\000\055\000\024\000\054\000\049\000\045\000\050\000\044\000\
\\052\000\043\000\054\000\042\000\055\000\041\000\058\000\039\000\
\\060\000\038\000\061\000\037\000\062\000\036\000\063\000\035\000\
\\064\000\034\000\065\000\033\000\066\000\032\000\111\000\030\000\000\000\
\\001\000\001\000\067\000\002\000\066\000\004\000\065\000\006\000\071\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\014\000\058\000\021\000\056\000\023\000\055\000\024\000\054\000\
\\049\000\045\000\050\000\044\000\052\000\043\000\054\000\042\000\
\\055\000\041\000\058\000\039\000\060\000\038\000\061\000\037\000\
\\062\000\036\000\063\000\035\000\064\000\034\000\065\000\033\000\
\\066\000\032\000\111\000\030\000\000\000\
\\001\000\002\000\129\000\006\000\128\000\007\000\063\000\008\000\062\000\
\\011\000\127\000\012\000\126\000\014\000\125\000\017\000\124\000\
\\021\000\123\000\046\000\122\000\049\000\121\000\050\000\120\000\
\\052\000\119\000\054\000\118\000\060\000\117\000\096\000\116\000\
\\113\000\115\000\000\000\
\\001\000\002\000\129\000\006\000\128\000\007\000\063\000\008\000\062\000\
\\011\000\127\000\012\000\126\000\014\000\125\000\017\000\124\000\
\\046\000\122\000\049\000\121\000\050\000\120\000\052\000\119\000\
\\054\000\118\000\060\000\243\001\096\000\116\000\113\000\115\000\000\000\
\\001\000\002\000\129\000\006\000\128\000\007\000\063\000\008\000\062\000\
\\011\000\127\000\012\000\126\000\014\000\125\000\017\000\124\000\
\\046\000\122\000\049\000\121\000\050\000\120\000\052\000\119\000\
\\054\000\118\000\096\000\116\000\113\000\115\000\000\000\
\\001\000\002\000\129\000\006\000\128\000\007\000\063\000\008\000\062\000\
\\011\000\127\000\012\000\126\000\014\000\125\000\017\000\124\000\
\\049\000\121\000\050\000\120\000\051\000\233\000\052\000\119\000\
\\054\000\118\000\113\000\115\000\000\000\
\\001\000\002\000\129\000\006\000\128\000\007\000\063\000\008\000\062\000\
\\011\000\127\000\012\000\126\000\014\000\125\000\017\000\124\000\
\\049\000\121\000\050\000\120\000\051\000\235\000\052\000\119\000\
\\054\000\118\000\113\000\115\000\000\000\
\\001\000\002\000\129\000\006\000\128\000\007\000\063\000\008\000\062\000\
\\011\000\127\000\012\000\126\000\014\000\125\000\017\000\124\000\
\\049\000\121\000\050\000\120\000\052\000\119\000\054\000\118\000\
\\096\000\237\000\113\000\115\000\000\000\
\\001\000\002\000\129\000\006\000\128\000\007\000\063\000\008\000\062\000\
\\011\000\127\000\012\000\126\000\014\000\125\000\017\000\124\000\
\\049\000\121\000\050\000\120\000\052\000\119\000\054\000\118\000\
\\097\000\224\000\113\000\115\000\000\000\
\\001\000\002\000\129\000\006\000\128\000\007\000\063\000\008\000\062\000\
\\011\000\127\000\012\000\126\000\014\000\125\000\017\000\124\000\
\\049\000\121\000\050\000\120\000\052\000\119\000\054\000\118\000\
\\113\000\115\000\000\000\
\\001\000\002\000\129\000\006\000\128\000\007\000\063\000\008\000\062\000\
\\011\000\127\000\014\000\125\000\049\000\121\000\050\000\120\000\
\\052\000\119\000\054\000\118\000\113\000\115\000\000\000\
\\001\000\003\000\160\000\005\000\159\000\000\000\
\\001\000\004\000\155\000\000\000\
\\001\000\004\000\184\000\006\000\183\000\021\000\056\000\055\000\041\000\
\\058\000\039\000\060\000\038\000\111\000\030\000\000\000\
\\001\000\004\000\086\001\000\000\
\\001\000\004\000\086\001\029\000\085\001\000\000\
\\001\000\005\000\011\001\000\000\
\\001\000\006\000\071\000\007\000\103\000\021\000\056\000\053\000\136\000\
\\055\000\041\000\058\000\039\000\060\000\038\000\111\000\030\000\000\000\
\\001\000\006\000\071\000\007\000\103\000\021\000\056\000\053\000\024\001\
\\055\000\041\000\058\000\039\000\060\000\038\000\111\000\030\000\000\000\
\\001\000\006\000\071\000\007\000\103\000\021\000\056\000\055\000\041\000\
\\058\000\039\000\060\000\038\000\111\000\030\000\000\000\
\\001\000\006\000\071\000\012\000\127\001\021\000\056\000\023\000\126\001\
\\055\000\041\000\058\000\039\000\060\000\038\000\111\000\030\000\000\000\
\\001\000\006\000\071\000\021\000\056\000\055\000\041\000\058\000\039\000\
\\060\000\038\000\111\000\030\000\000\000\
\\001\000\006\000\071\000\021\000\056\000\055\000\041\000\058\000\039\000\
\\060\000\213\001\111\000\030\000\000\000\
\\001\000\006\000\071\000\021\000\056\000\055\000\222\000\058\000\039\000\
\\060\000\038\000\111\000\030\000\000\000\
\\001\000\006\000\071\000\021\000\056\000\055\000\026\002\058\000\039\000\
\\060\000\038\000\111\000\030\000\000\000\
\\001\000\006\000\093\000\021\000\056\000\023\000\152\001\047\000\151\001\
\\055\000\041\000\058\000\039\000\060\000\038\000\111\000\030\000\000\000\
\\001\000\006\000\093\000\021\000\056\000\047\000\199\001\055\000\041\000\
\\058\000\039\000\060\000\038\000\111\000\030\000\000\000\
\\001\000\006\000\093\000\021\000\056\000\055\000\041\000\058\000\039\000\
\\060\000\038\000\111\000\030\000\000\000\
\\001\000\006\000\093\000\021\000\056\000\055\000\041\000\058\000\039\000\
\\060\000\038\000\111\000\030\000\112\000\210\001\000\000\
\\001\000\006\000\093\000\021\000\056\000\055\000\041\000\058\000\039\000\
\\060\000\038\000\111\000\030\000\112\000\227\001\000\000\
\\001\000\006\000\172\000\012\000\171\000\000\000\
\\001\000\006\000\172\000\012\000\171\000\013\000\170\000\052\000\169\000\
\\054\000\168\000\000\000\
\\001\000\006\000\172\000\012\000\171\000\013\000\170\000\052\000\169\000\
\\054\000\143\001\000\000\
\\001\000\006\000\230\000\007\000\103\000\021\000\056\000\043\000\229\000\
\\053\000\228\000\055\000\041\000\058\000\039\000\060\000\038\000\
\\111\000\030\000\000\000\
\\001\000\006\000\230\000\007\000\103\000\021\000\056\000\043\000\229\000\
\\055\000\041\000\058\000\039\000\060\000\038\000\111\000\030\000\000\000\
\\001\000\006\000\206\001\000\000\
\\001\000\006\000\017\002\012\000\016\002\000\000\
\\001\000\012\000\094\000\000\000\
\\001\000\012\000\156\000\000\000\
\\001\000\012\000\238\000\000\000\
\\001\000\012\000\253\000\000\000\
\\001\000\012\000\114\001\000\000\
\\001\000\012\000\127\001\023\000\126\001\000\000\
\\001\000\012\000\201\001\000\000\
\\001\000\012\000\202\001\000\000\
\\001\000\019\000\013\002\028\000\012\002\000\000\
\\001\000\020\000\085\000\026\000\203\000\032\000\084\000\045\000\083\000\
\\059\000\082\000\115\000\081\000\000\000\
\\001\000\020\000\085\000\032\000\084\000\041\000\034\001\045\000\083\000\
\\059\000\082\000\115\000\081\000\000\000\
\\001\000\020\000\085\000\032\000\084\000\045\000\083\000\057\000\010\001\
\\059\000\082\000\115\000\081\000\000\000\
\\001\000\020\000\085\000\032\000\084\000\045\000\083\000\059\000\082\000\
\\097\000\243\000\101\000\208\000\115\000\081\000\000\000\
\\001\000\020\000\085\000\032\000\084\000\045\000\083\000\059\000\082\000\
\\101\000\208\000\115\000\081\000\000\000\
\\001\000\020\000\085\000\032\000\084\000\045\000\083\000\059\000\082\000\
\\108\000\254\000\115\000\081\000\000\000\
\\001\000\021\000\123\000\000\000\
\\001\000\021\000\146\001\000\000\
\\001\000\022\000\214\000\042\000\005\001\000\000\
\\001\000\022\000\214\000\044\000\213\000\000\000\
\\001\000\022\000\214\000\044\000\062\001\000\000\
\\001\000\022\000\214\000\059\000\053\001\097\000\052\001\101\000\051\001\000\000\
\\001\000\022\000\058\001\044\000\139\002\053\000\014\003\100\000\057\001\
\\101\000\014\003\000\000\
\\001\000\027\000\131\001\000\000\
\\001\000\028\000\255\000\000\000\
\\001\000\028\000\004\001\000\000\
\\001\000\028\000\013\001\000\000\
\\001\000\028\000\031\001\000\000\
\\001\000\028\000\035\001\000\000\
\\001\000\028\000\071\001\000\000\
\\001\000\028\000\105\001\000\000\
\\001\000\028\000\128\001\000\000\
\\001\000\028\000\138\001\000\000\
\\001\000\028\000\184\001\000\000\
\\001\000\028\000\228\001\000\000\
\\001\000\028\000\245\001\000\000\
\\001\000\028\000\051\002\100\000\187\001\000\000\
\\001\000\028\000\063\002\000\000\
\\001\000\028\000\064\002\000\000\
\\001\000\028\000\069\002\000\000\
\\001\000\029\000\052\000\046\000\200\000\000\000\
\\001\000\029\000\146\000\000\000\
\\001\000\029\000\146\000\036\000\145\000\000\000\
\\001\000\030\000\000\000\103\000\000\000\000\000\
\\001\000\034\000\229\001\000\000\
\\001\000\036\000\049\000\046\000\133\001\000\000\
\\001\000\036\000\145\000\000\000\
\\001\000\038\000\251\000\000\000\
\\001\000\038\000\103\001\000\000\
\\001\000\038\000\241\001\000\000\
\\001\000\038\000\027\002\000\000\
\\001\000\038\000\028\002\000\000\
\\001\000\038\000\050\002\000\000\
\\001\000\040\000\017\001\097\000\094\001\000\000\
\\001\000\040\000\017\001\097\000\094\001\101\000\140\001\000\000\
\\001\000\044\000\206\000\000\000\
\\001\000\044\000\244\000\000\000\
\\001\000\044\000\009\001\000\000\
\\001\000\044\000\054\001\000\000\
\\001\000\044\000\064\001\000\000\
\\001\000\044\000\072\001\000\000\
\\001\000\044\000\076\001\000\000\
\\001\000\044\000\106\001\000\000\
\\001\000\044\000\107\001\000\000\
\\001\000\044\000\155\001\000\000\
\\001\000\044\000\176\001\000\000\
\\001\000\044\000\200\001\000\000\
\\001\000\044\000\221\001\000\000\
\\001\000\044\000\254\001\000\000\
\\001\000\044\000\014\002\000\000\
\\001\000\044\000\045\002\000\000\
\\001\000\046\000\026\001\096\000\116\000\000\000\
\\001\000\051\000\247\000\000\000\
\\001\000\051\000\249\000\000\000\
\\001\000\051\000\059\001\000\000\
\\001\000\051\000\061\001\000\000\
\\001\000\053\000\246\000\000\000\
\\001\000\053\000\055\001\000\000\
\\001\000\053\000\097\001\000\000\
\\001\000\054\000\113\001\000\000\
\\001\000\054\000\113\001\100\000\059\002\000\000\
\\001\000\055\000\100\001\000\000\
\\001\000\055\000\101\001\000\000\
\\001\000\056\000\177\000\000\000\
\\001\000\056\000\180\000\000\000\
\\001\000\056\000\186\000\000\000\
\\001\000\056\000\188\000\000\000\
\\001\000\056\000\202\000\000\000\
\\001\000\058\000\109\001\111\000\108\001\000\000\
\\001\000\058\000\158\001\111\000\157\001\000\000\
\\001\000\058\000\240\001\111\000\239\001\000\000\
\\001\000\060\000\027\001\000\000\
\\001\000\060\000\029\001\000\000\
\\001\000\060\000\030\001\000\000\
\\001\000\096\000\237\000\000\000\
\\001\000\097\000\242\000\000\000\
\\001\000\097\000\092\001\000\000\
\\001\000\097\000\139\001\000\000\
\\001\000\097\000\172\001\000\000\
\\001\000\097\000\174\001\000\000\
\\001\000\097\000\203\001\000\000\
\\001\000\097\000\018\002\000\000\
\\001\000\097\000\020\002\100\000\187\001\000\000\
\\001\000\099\000\212\000\000\000\
\\001\000\100\000\095\001\000\000\
\\001\000\100\000\220\001\000\000\
\\001\000\100\000\001\002\000\000\
\\001\000\100\000\037\002\000\000\
\\001\000\100\000\067\002\000\000\
\\001\000\103\000\076\000\000\000\
\\001\000\103\000\250\000\000\000\
\\001\000\103\000\000\001\000\000\
\\001\000\103\000\003\001\000\000\
\\001\000\103\000\032\001\000\000\
\\001\000\103\000\204\001\000\000\
\\001\000\103\000\230\001\000\000\
\\001\000\103\000\242\001\000\000\
\\001\000\103\000\019\002\000\000\
\\001\000\104\000\211\000\000\000\
\\001\000\105\000\210\000\000\000\
\\001\000\106\000\209\000\000\000\
\\001\000\107\000\207\000\000\000\
\\001\000\109\000\025\001\000\000\
\\001\000\109\000\046\002\000\000\
\\001\000\112\000\029\000\000\000\
\\073\002\000\000\
\\074\002\001\000\067\000\002\000\066\000\004\000\065\000\006\000\064\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\012\000\059\000\014\000\058\000\017\000\057\000\021\000\056\000\
\\023\000\055\000\024\000\054\000\025\000\053\000\029\000\052\000\
\\033\000\051\000\035\000\050\000\036\000\049\000\037\000\048\000\
\\046\000\047\000\048\000\046\000\049\000\045\000\050\000\044\000\
\\052\000\043\000\054\000\042\000\055\000\041\000\056\000\040\000\
\\058\000\039\000\060\000\038\000\061\000\037\000\062\000\036\000\
\\063\000\035\000\064\000\034\000\065\000\033\000\066\000\032\000\
\\067\000\031\000\111\000\030\000\112\000\029\000\114\000\028\000\
\\116\000\027\000\000\000\
\\075\002\000\000\
\\076\002\000\000\
\\077\002\019\000\077\000\000\000\
\\078\002\019\000\088\000\000\000\
\\079\002\019\000\080\000\000\000\
\\080\002\019\000\079\000\000\000\
\\081\002\000\000\
\\082\002\001\000\067\000\002\000\066\000\004\000\065\000\006\000\064\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\012\000\059\000\014\000\058\000\017\000\057\000\021\000\056\000\
\\023\000\055\000\024\000\054\000\025\000\053\000\029\000\052\000\
\\033\000\051\000\035\000\050\000\036\000\049\000\037\000\048\000\
\\046\000\047\000\048\000\046\000\049\000\045\000\050\000\044\000\
\\052\000\043\000\054\000\042\000\055\000\041\000\056\000\040\000\
\\058\000\039\000\060\000\038\000\061\000\037\000\062\000\036\000\
\\063\000\035\000\064\000\034\000\065\000\033\000\066\000\032\000\
\\067\000\031\000\111\000\030\000\112\000\029\000\114\000\028\000\
\\116\000\027\000\000\000\
\\083\002\000\000\
\\084\002\001\000\067\000\002\000\066\000\004\000\065\000\006\000\064\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\012\000\059\000\014\000\058\000\017\000\057\000\021\000\056\000\
\\023\000\055\000\024\000\054\000\025\000\053\000\029\000\052\000\
\\033\000\051\000\035\000\050\000\036\000\049\000\037\000\048\000\
\\046\000\047\000\048\000\046\000\049\000\045\000\050\000\044\000\
\\052\000\043\000\054\000\042\000\055\000\041\000\056\000\040\000\
\\058\000\039\000\060\000\038\000\061\000\037\000\062\000\036\000\
\\063\000\035\000\064\000\034\000\065\000\033\000\066\000\032\000\
\\067\000\031\000\111\000\030\000\112\000\029\000\114\000\028\000\
\\116\000\027\000\000\000\
\\085\002\000\000\
\\086\002\016\000\069\000\100\000\068\000\000\000\
\\087\002\000\000\
\\088\002\040\000\017\001\000\000\
\\089\002\020\000\085\000\059\000\082\000\000\000\
\\090\002\020\000\085\000\000\000\
\\091\002\000\000\
\\092\002\000\000\
\\093\002\000\000\
\\094\002\000\000\
\\095\002\000\000\
\\096\002\020\000\085\000\032\000\084\000\059\000\082\000\000\000\
\\097\002\020\000\085\000\032\000\084\000\059\000\082\000\000\000\
\\098\002\001\000\067\000\002\000\066\000\004\000\065\000\006\000\071\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\012\000\059\000\014\000\058\000\017\000\057\000\021\000\056\000\
\\023\000\055\000\024\000\054\000\049\000\045\000\050\000\044\000\
\\052\000\043\000\054\000\042\000\055\000\041\000\058\000\039\000\
\\060\000\038\000\061\000\037\000\062\000\036\000\063\000\035\000\
\\064\000\034\000\065\000\033\000\066\000\032\000\111\000\030\000\000\000\
\\099\002\001\000\067\000\002\000\066\000\004\000\065\000\006\000\071\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\012\000\059\000\014\000\058\000\017\000\057\000\021\000\056\000\
\\023\000\055\000\024\000\054\000\049\000\045\000\050\000\044\000\
\\052\000\043\000\054\000\042\000\055\000\041\000\058\000\039\000\
\\060\000\038\000\061\000\037\000\062\000\036\000\063\000\035\000\
\\064\000\034\000\065\000\033\000\066\000\032\000\111\000\030\000\000\000\
\\100\002\015\000\072\000\000\000\
\\101\002\015\000\072\000\000\000\
\\102\002\018\000\073\000\000\000\
\\103\002\018\000\073\000\000\000\
\\104\002\000\000\
\\105\002\000\000\
\\106\002\000\000\
\\107\002\000\000\
\\108\002\000\000\
\\109\002\000\000\
\\110\002\109\000\078\000\000\000\
\\111\002\000\000\
\\112\002\000\000\
\\113\002\000\000\
\\114\002\000\000\
\\115\002\000\000\
\\116\002\000\000\
\\117\002\000\000\
\\118\002\000\000\
\\119\002\000\000\
\\120\002\000\000\
\\121\002\000\000\
\\122\002\000\000\
\\123\002\000\000\
\\124\002\000\000\
\\125\002\000\000\
\\126\002\000\000\
\\127\002\000\000\
\\128\002\000\000\
\\129\002\000\000\
\\130\002\000\000\
\\131\002\000\000\
\\132\002\000\000\
\\133\002\000\000\
\\134\002\000\000\
\\135\002\000\000\
\\136\002\000\000\
\\137\002\000\000\
\\138\002\000\000\
\\139\002\000\000\
\\139\002\044\000\164\000\000\000\
\\139\002\109\000\205\000\000\000\
\\139\002\109\000\028\001\000\000\
\\140\002\000\000\
\\140\002\012\000\114\001\000\000\
\\141\002\000\000\
\\141\002\006\000\071\000\021\000\056\000\055\000\041\000\058\000\039\000\
\\060\000\038\000\111\000\030\000\000\000\
\\141\002\006\000\071\000\021\000\050\001\055\000\041\000\058\000\039\000\
\\060\000\038\000\111\000\030\000\000\000\
\\142\002\000\000\
\\143\002\000\000\
\\143\002\006\000\071\000\021\000\056\000\055\000\004\002\058\000\039\000\
\\060\000\038\000\111\000\030\000\000\000\
\\144\002\000\000\
\\145\002\000\000\
\\146\002\000\000\
\\147\002\000\000\
\\148\002\000\000\
\\149\002\000\000\
\\150\002\000\000\
\\151\002\000\000\
\\152\002\000\000\
\\153\002\109\000\241\000\000\000\
\\154\002\000\000\
\\155\002\020\000\085\000\032\000\084\000\045\000\083\000\059\000\082\000\
\\101\000\208\000\115\000\081\000\000\000\
\\156\002\000\000\
\\157\002\101\000\245\000\000\000\
\\158\002\020\000\085\000\032\000\084\000\045\000\083\000\059\000\082\000\
\\115\000\081\000\000\000\
\\159\002\020\000\085\000\032\000\084\000\045\000\083\000\059\000\082\000\
\\101\000\248\000\115\000\081\000\000\000\
\\160\002\000\000\
\\161\002\000\000\
\\162\002\000\000\
\\163\002\003\000\160\000\000\000\
\\164\002\000\000\
\\165\002\001\000\067\000\002\000\066\000\004\000\065\000\006\000\064\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\012\000\059\000\014\000\058\000\017\000\057\000\021\000\056\000\
\\023\000\055\000\024\000\054\000\025\000\053\000\029\000\052\000\
\\033\000\051\000\035\000\050\000\036\000\049\000\037\000\048\000\
\\046\000\047\000\048\000\193\000\049\000\045\000\050\000\044\000\
\\052\000\043\000\054\000\042\000\055\000\041\000\056\000\192\000\
\\058\000\039\000\060\000\038\000\061\000\037\000\062\000\036\000\
\\063\000\035\000\064\000\034\000\065\000\033\000\066\000\032\000\
\\067\000\031\000\111\000\030\000\112\000\029\000\114\000\028\000\
\\116\000\027\000\000\000\
\\166\002\000\000\
\\167\002\001\000\067\000\002\000\066\000\004\000\065\000\006\000\064\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\012\000\059\000\014\000\058\000\017\000\057\000\021\000\056\000\
\\023\000\055\000\024\000\054\000\025\000\053\000\029\000\052\000\
\\033\000\051\000\035\000\050\000\036\000\049\000\037\000\048\000\
\\046\000\047\000\048\000\193\000\049\000\045\000\050\000\044\000\
\\052\000\043\000\054\000\042\000\055\000\041\000\056\000\192\000\
\\058\000\039\000\060\000\038\000\061\000\037\000\062\000\036\000\
\\063\000\035\000\064\000\034\000\065\000\033\000\066\000\032\000\
\\067\000\031\000\111\000\030\000\112\000\029\000\114\000\028\000\
\\116\000\027\000\000\000\
\\168\002\000\000\
\\169\002\000\000\
\\170\002\000\000\
\\171\002\020\000\085\000\032\000\084\000\045\000\083\000\059\000\082\000\
\\115\000\081\000\000\000\
\\172\002\020\000\085\000\032\000\084\000\045\000\083\000\059\000\082\000\
\\115\000\081\000\000\000\
\\173\002\000\000\
\\174\002\019\000\075\000\000\000\
\\175\002\000\000\
\\176\002\019\000\074\000\000\000\
\\177\002\019\000\087\000\117\000\086\000\000\000\
\\178\002\019\000\006\001\000\000\
\\179\002\000\000\
\\180\002\019\000\074\000\000\000\
\\181\002\006\000\093\000\021\000\056\000\055\000\041\000\058\000\039\000\
\\060\000\038\000\111\000\030\000\000\000\
\\182\002\000\000\
\\183\002\020\000\085\000\032\000\084\000\045\000\083\000\059\000\082\000\
\\115\000\081\000\000\000\
\\184\002\020\000\085\000\032\000\084\000\045\000\083\000\059\000\082\000\
\\115\000\081\000\000\000\
\\185\002\019\000\075\000\000\000\
\\186\002\020\000\085\000\032\000\084\000\045\000\083\000\059\000\082\000\
\\115\000\081\000\000\000\
\\187\002\020\000\085\000\032\000\084\000\045\000\083\000\059\000\082\000\
\\115\000\081\000\000\000\
\\188\002\100\000\002\001\000\000\
\\189\002\040\000\017\001\000\000\
\\190\002\019\000\074\001\000\000\
\\191\002\019\000\129\001\000\000\
\\192\002\000\000\
\\193\002\000\000\
\\194\002\002\000\129\000\006\000\128\000\007\000\063\000\008\000\062\000\
\\011\000\127\000\012\000\126\000\014\000\125\000\017\000\124\000\
\\049\000\121\000\050\000\120\000\052\000\119\000\054\000\118\000\
\\113\000\115\000\000\000\
\\195\002\000\000\
\\196\002\020\000\085\000\032\000\084\000\045\000\083\000\059\000\082\000\
\\115\000\081\000\000\000\
\\197\002\019\000\074\000\000\000\
\\198\002\040\000\017\001\000\000\
\\199\002\019\000\087\000\000\000\
\\200\002\000\000\
\\201\002\000\000\
\\202\002\000\000\
\\203\002\000\000\
\\204\002\101\000\135\001\000\000\
\\205\002\000\000\
\\206\002\006\000\172\000\012\000\171\000\013\000\170\000\052\000\169\000\
\\054\000\168\000\000\000\
\\207\002\040\000\017\001\000\000\
\\208\002\019\000\006\001\000\000\
\\209\002\006\000\172\000\012\000\171\000\013\000\170\000\044\000\008\001\
\\052\000\169\000\054\000\168\000\000\000\
\\210\002\040\000\017\001\000\000\
\\211\002\000\000\
\\212\002\000\000\
\\212\002\101\000\093\001\000\000\
\\213\002\000\000\
\\214\002\040\000\017\001\000\000\
\\215\002\101\000\093\001\000\000\
\\216\002\000\000\
\\217\002\000\000\
\\218\002\000\000\
\\219\002\000\000\
\\220\002\000\000\
\\221\002\000\000\
\\222\002\000\000\
\\223\002\006\000\172\000\012\000\171\000\013\000\170\000\052\000\169\000\
\\054\000\016\001\000\000\
\\224\002\000\000\
\\225\002\000\000\
\\226\002\101\000\096\001\000\000\
\\227\002\000\000\
\\228\002\040\000\017\001\000\000\
\\229\002\040\000\017\001\101\000\140\001\000\000\
\\230\002\000\000\
\\231\002\002\000\129\000\006\000\128\000\007\000\063\000\008\000\062\000\
\\011\000\127\000\012\000\126\000\014\000\125\000\017\000\124\000\
\\049\000\121\000\050\000\120\000\052\000\119\000\054\000\118\000\
\\113\000\115\000\000\000\
\\232\002\000\000\
\\233\002\020\000\085\000\032\000\084\000\045\000\083\000\059\000\082\000\
\\115\000\081\000\000\000\
\\234\002\022\000\214\000\000\000\
\\235\002\040\000\017\001\000\000\
\\236\002\100\000\219\000\000\000\
\\237\002\002\000\129\000\006\000\128\000\007\000\063\000\008\000\062\000\
\\011\000\127\000\012\000\126\000\014\000\125\000\016\000\218\000\
\\017\000\124\000\049\000\121\000\050\000\120\000\052\000\119\000\
\\054\000\118\000\113\000\115\000\000\000\
\\238\002\000\000\
\\239\002\015\000\216\000\000\000\
\\240\002\015\000\216\000\000\000\
\\241\002\018\000\215\000\000\000\
\\242\002\018\000\215\000\000\000\
\\243\002\000\000\
\\244\002\000\000\
\\245\002\000\000\
\\246\002\000\000\
\\247\002\000\000\
\\248\002\000\000\
\\249\002\000\000\
\\250\002\000\000\
\\251\002\000\000\
\\252\002\000\000\
\\253\002\000\000\
\\254\002\000\000\
\\255\002\000\000\
\\000\003\000\000\
\\001\003\000\000\
\\002\003\000\000\
\\003\003\000\000\
\\004\003\000\000\
\\005\003\000\000\
\\006\003\000\000\
\\007\003\000\000\
\\008\003\000\000\
\\009\003\000\000\
\\010\003\101\000\056\001\000\000\
\\011\003\000\000\
\\012\003\000\000\
\\013\003\022\000\214\000\000\000\
\\015\003\022\000\214\000\000\000\
\\016\003\022\000\175\001\040\000\017\001\000\000\
\\017\003\022\000\214\000\000\000\
\\018\003\022\000\214\000\101\000\060\001\000\000\
\\019\003\000\000\
\\020\003\022\000\214\000\059\000\173\001\000\000\
\\021\003\000\000\
\\022\003\019\000\077\000\000\000\
\\023\003\100\000\187\001\000\000\
\\024\003\054\000\186\001\000\000\
\\025\003\000\000\
\\026\003\000\000\
\\027\003\000\000\
\\028\003\115\000\177\001\000\000\
\\029\003\115\000\177\001\000\000\
\\030\003\001\000\067\000\002\000\066\000\004\000\065\000\006\000\064\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\012\000\059\000\014\000\058\000\017\000\057\000\021\000\056\000\
\\023\000\055\000\024\000\054\000\025\000\053\000\029\000\052\000\
\\033\000\051\000\035\000\050\000\036\000\049\000\037\000\048\000\
\\046\000\047\000\048\000\195\001\049\000\045\000\050\000\044\000\
\\052\000\043\000\054\000\042\000\055\000\041\000\056\000\194\001\
\\058\000\039\000\060\000\038\000\061\000\037\000\062\000\036\000\
\\063\000\035\000\064\000\034\000\065\000\033\000\066\000\032\000\
\\067\000\031\000\111\000\030\000\112\000\029\000\114\000\028\000\
\\116\000\027\000\000\000\
\\031\003\000\000\
\\032\003\001\000\067\000\002\000\066\000\004\000\065\000\006\000\064\000\
\\007\000\063\000\008\000\062\000\009\000\061\000\011\000\060\000\
\\012\000\059\000\014\000\058\000\017\000\057\000\021\000\056\000\
\\023\000\055\000\024\000\054\000\025\000\053\000\029\000\052\000\
\\033\000\051\000\035\000\050\000\036\000\049\000\037\000\048\000\
\\046\000\047\000\048\000\195\001\049\000\045\000\050\000\044\000\
\\052\000\043\000\054\000\042\000\055\000\041\000\056\000\194\001\
\\058\000\039\000\060\000\038\000\061\000\037\000\062\000\036\000\
\\063\000\035\000\064\000\034\000\065\000\033\000\066\000\032\000\
\\067\000\031\000\111\000\030\000\112\000\029\000\114\000\028\000\
\\116\000\027\000\000\000\
\\033\003\000\000\
\\034\003\019\000\077\000\000\000\
\\035\003\019\000\080\000\000\000\
\\036\003\000\000\
\\037\003\000\000\
\\038\003\006\000\093\000\021\000\056\000\023\000\152\001\029\000\052\000\
\\033\000\051\000\036\000\049\000\046\000\047\000\047\000\151\001\
\\048\000\238\001\055\000\041\000\056\000\194\001\058\000\039\000\
\\060\000\038\000\111\000\030\000\112\000\029\000\114\000\028\000\000\000\
\\039\003\000\000\
\\040\003\029\000\052\000\033\000\051\000\036\000\049\000\046\000\047\000\
\\048\000\238\001\056\000\194\001\112\000\029\000\114\000\028\000\000\000\
\\041\003\000\000\
\\042\003\019\000\077\000\000\000\
\\043\003\019\000\080\000\000\000\
\\044\003\000\000\
\\045\003\000\000\
\\046\003\100\000\048\001\000\000\
\\047\003\115\000\177\001\000\000\
\\048\003\115\000\177\001\000\000\
\\049\003\019\000\088\000\000\000\
\\050\003\115\000\177\001\000\000\
\\051\003\000\000\
\\052\003\000\000\
\\053\003\000\000\
\\054\003\006\000\170\001\029\000\169\001\031\000\168\001\033\000\167\001\
\\039\000\166\001\056\000\165\001\098\000\164\001\112\000\163\001\000\000\
\\054\003\029\000\169\001\031\000\168\001\033\000\167\001\039\000\166\001\
\\056\000\165\001\098\000\164\001\112\000\163\001\000\000\
\\055\003\000\000\
\\056\003\000\000\
\\057\003\029\000\169\001\031\000\168\001\033\000\167\001\039\000\166\001\
\\056\000\165\001\098\000\164\001\112\000\163\001\000\000\
\\058\003\019\000\036\002\000\000\
\\059\003\019\000\056\002\000\000\
\\060\003\019\000\251\001\000\000\
\\061\003\019\000\251\001\000\000\
\\062\003\019\000\000\002\000\000\
\\063\003\019\000\008\002\000\000\
\\064\003\019\000\087\000\117\000\009\002\000\000\
\\065\003\115\000\177\001\000\000\
\\066\003\000\000\
\\067\003\019\000\253\001\000\000\
\\068\003\019\000\074\000\000\000\
\\069\003\006\000\071\000\021\000\056\000\055\000\041\000\058\000\039\000\
\\060\000\038\000\111\000\030\000\000\000\
\\070\003\000\000\
\\071\003\019\000\036\002\000\000\
\\072\003\044\000\065\002\115\000\177\001\000\000\
\\073\003\000\000\
\\074\003\019\000\056\002\000\000\
\\075\003\000\000\
\\076\003\000\000\
\\077\003\115\000\177\001\000\000\
\\078\003\019\000\251\001\000\000\
\\079\003\044\000\252\001\000\000\
\\080\003\040\000\017\001\000\000\
\\081\003\019\000\008\002\000\000\
\\082\003\006\000\172\000\012\000\171\000\013\000\170\000\052\000\169\000\
\\054\000\168\000\000\000\
\\083\003\040\000\017\001\000\000\
\\084\003\019\000\000\002\000\000\
\\085\003\040\000\017\001\000\000\
\\086\003\019\000\253\001\000\000\
\\087\003\000\000\
\\088\003\000\000\
\\089\003\044\000\254\001\000\000\
\\090\003\000\000\
\\091\003\019\000\013\002\000\000\
\\092\003\000\000\
\\093\003\040\000\017\001\000\000\
\\094\003\019\000\080\000\000\000\
\\095\003\100\000\187\001\000\000\
\\096\003\000\000\
\\097\003\054\000\186\001\000\000\
\\098\003\000\000\
\\099\003\000\000\
\\100\003\054\000\186\001\000\000\
\\101\003\000\000\
\\102\003\000\000\
\\103\003\054\000\186\001\000\000\
\\104\003\054\000\113\001\000\000\
\\105\003\000\000\
\\106\003\115\000\177\001\000\000\
\\107\003\000\000\
\\108\003\054\000\113\001\100\000\112\001\000\000\
\\109\003\000\000\
\\110\003\000\000\
\\111\003\019\000\079\000\000\000\
\\112\003\115\000\177\001\000\000\
\";
action_row_numbers =
"\001\000\180\000\192\000\194\000\
\\198\000\196\000\200\000\018\001\
\\021\001\167\000\202\000\019\001\
\\151\000\171\000\170\000\015\001\
\\210\000\204\000\174\000\173\000\
\\020\001\017\001\022\001\230\000\
\\172\000\005\000\033\000\043\000\
\\245\000\005\000\005\000\005\000\
\\005\000\005\000\025\000\005\000\
\\243\000\242\000\008\000\239\000\
\\004\000\023\000\002\000\003\000\
\\176\000\084\000\005\000\015\000\
\\015\000\018\000\044\000\005\000\
\\017\000\000\000\237\000\006\000\
\\206\000\007\000\208\000\207\000\
\\232\000\231\000\234\000\211\000\
\\209\000\229\000\037\000\006\000\
\\195\000\233\000\006\000\199\000\
\\166\000\125\000\168\000\126\000\
\\019\000\127\000\128\000\010\001\
\\005\000\005\000\015\000\005\000\
\\166\000\082\000\129\000\052\000\
\\250\000\024\001\026\001\235\000\
\\097\000\191\000\163\000\056\000\
\\162\000\161\000\160\000\214\000\
\\252\000\253\000\145\000\093\001\
\\061\000\097\001\096\001\091\001\
\\089\001\087\001\085\001\083\001\
\\082\001\101\001\027\000\029\000\
\\014\000\039\000\011\000\012\000\
\\013\000\045\000\015\000\098\001\
\\016\000\099\001\254\000\100\001\
\\137\000\055\000\217\000\098\000\
\\002\001\118\000\215\000\114\000\
\\004\001\216\000\115\000\218\000\
\\152\000\089\000\177\000\015\000\
\\046\000\057\000\066\000\153\000\
\\033\001\154\000\067\000\060\000\
\\023\001\054\001\099\000\054\000\
\\022\000\006\001\007\000\068\000\
\\201\000\203\000\005\000\057\001\
\\069\001\182\000\037\000\024\000\
\\065\001\070\001\164\000\193\000\
\\197\000\042\001\030\001\113\000\
\\169\000\123\001\133\000\212\000\
\\213\000\236\000\246\000\213\001\
\\134\000\196\001\135\000\069\000\
\\011\001\155\000\010\000\010\001\
\\183\000\053\000\070\000\184\000\
\\025\001\044\001\083\000\150\001\
\\058\000\000\000\027\001\033\000\
\\037\000\222\000\005\000\226\000\
\\225\000\224\000\223\000\005\000\
\\015\000\090\001\015\000\086\001\
\\015\000\037\000\033\001\147\001\
\\241\000\063\000\107\001\100\000\
\\119\000\112\001\106\001\113\001\
\\064\000\116\000\119\001\102\001\
\\117\000\104\001\062\000\027\000\
\\101\000\092\001\094\001\033\000\
\\221\000\220\000\005\000\025\000\
\\219\000\227\000\005\000\228\000\
\\178\000\176\000\071\000\102\000\
\\000\000\035\001\039\001\103\000\
\\037\000\077\001\185\000\005\000\
\\018\000\055\001\033\000\021\000\
\\015\000\007\001\008\001\205\000\
\\016\001\068\001\037\000\037\000\
\\138\000\058\001\095\000\146\000\
\\072\001\120\000\063\001\036\000\
\\136\000\027\000\019\000\123\000\
\\124\000\188\000\012\001\090\000\
\\005\000\181\000\072\000\251\000\
\\043\001\255\000\000\001\029\001\
\\080\001\088\001\084\001\081\001\
\\104\000\105\000\130\000\210\001\
\\238\000\015\000\108\001\015\000\
\\015\000\111\001\040\000\037\000\
\\015\000\103\001\015\000\105\001\
\\005\000\033\001\048\000\095\001\
\\003\001\001\001\005\001\179\000\
\\073\000\036\001\021\000\065\000\
\\087\000\040\001\005\000\034\001\
\\078\001\079\001\053\001\056\001\
\\045\001\047\001\049\001\036\000\
\\051\001\074\000\009\001\139\000\
\\096\000\060\001\059\001\038\000\
\\064\001\037\000\025\000\066\001\
\\071\001\247\000\059\000\027\000\
\\013\001\010\001\190\000\187\000\
\\005\000\031\000\048\000\048\000\
\\106\000\147\001\131\000\155\001\
\\121\000\140\000\121\001\141\000\
\\115\001\114\001\117\001\116\001\
\\120\001\028\001\107\000\151\001\
\\156\001\152\001\175\000\087\000\
\\046\001\000\000\037\001\088\000\
\\041\001\020\000\048\001\052\001\
\\186\000\067\001\037\000\062\001\
\\061\001\037\000\074\001\073\001\
\\047\000\075\000\031\001\125\001\
\\124\001\131\001\131\001\148\001\
\\149\001\032\000\108\000\049\000\
\\050\000\209\001\142\000\157\001\
\\156\000\041\000\034\000\028\000\
\\026\000\027\000\041\000\082\000\
\\147\000\109\000\109\001\015\000\
\\110\001\015\000\005\000\035\000\
\\076\000\038\001\086\000\050\001\
\\076\001\075\001\157\000\127\001\
\\139\001\132\000\135\001\091\000\
\\137\001\136\001\132\001\158\000\
\\009\000\131\001\077\000\198\001\
\\199\001\131\001\031\000\211\001\
\\212\001\206\001\159\001\162\001\
\\181\001\169\001\190\001\110\000\
\\033\000\164\001\148\000\244\000\
\\027\000\167\001\184\001\165\001\
\\163\001\166\001\048\000\048\000\
\\122\001\118\001\032\001\051\000\
\\111\000\042\000\153\001\189\000\
\\014\001\143\001\143\000\145\001\
\\144\001\140\001\159\000\144\000\
\\131\001\048\000\048\000\031\000\
\\133\001\030\000\092\000\126\001\
\\200\001\093\000\197\001\207\001\
\\158\001\041\000\037\000\034\000\
\\033\000\189\001\027\000\037\000\
\\160\001\149\000\240\000\168\001\
\\171\001\185\001\027\000\166\000\
\\208\001\214\001\154\001\035\000\
\\033\000\112\000\248\000\165\000\
\\205\001\141\001\202\001\094\000\
\\129\001\130\001\078\000\134\001\
\\240\000\131\001\032\000\180\001\
\\182\001\188\001\192\001\191\001\
\\186\001\187\001\027\000\048\000\
\\161\001\122\000\172\001\183\001\
\\170\001\193\001\194\001\037\000\
\\042\000\204\001\142\001\203\001\
\\131\001\128\001\079\000\080\000\
\\173\001\174\001\027\000\177\001\
\\150\000\027\000\195\001\249\000\
\\081\000\138\001\201\001\033\000\
\\176\001\048\000\178\001\146\001\
\\175\001\179\001\085\000";
goto_table =
"\
\\004\000\024\000\007\000\023\000\029\000\022\000\032\000\021\000\
\\040\000\020\000\041\000\019\000\043\000\018\000\045\000\017\000\
\\047\000\016\000\049\000\015\000\050\000\014\000\062\000\013\000\
\\063\000\012\000\077\000\011\000\082\000\010\000\086\000\009\000\
\\087\000\070\002\090\000\008\000\093\000\007\000\096\000\006\000\
\\097\000\005\000\098\000\004\000\099\000\003\000\100\000\002\000\
\\101\000\001\000\000\000\
\\000\000\
\\007\000\023\000\045\000\017\000\047\000\016\000\082\000\010\000\
\\096\000\006\000\097\000\005\000\098\000\004\000\099\000\068\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\023\000\032\000\087\000\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\025\000\090\000\026\000\089\000\045\000\088\000\000\000\
\\000\000\
\\000\000\
\\007\000\023\000\032\000\093\000\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\007\000\023\000\032\000\095\000\045\000\017\000\047\000\016\000\
\\082\000\010\000\088\000\094\000\096\000\006\000\097\000\005\000\
\\098\000\004\000\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\007\000\023\000\032\000\095\000\045\000\017\000\047\000\016\000\
\\082\000\010\000\088\000\096\000\096\000\006\000\097\000\005\000\
\\098\000\004\000\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\007\000\023\000\032\000\095\000\045\000\017\000\047\000\016\000\
\\082\000\010\000\088\000\097\000\096\000\006\000\097\000\005\000\
\\098\000\004\000\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\007\000\023\000\032\000\095\000\045\000\017\000\047\000\016\000\
\\082\000\010\000\088\000\098\000\096\000\006\000\097\000\005\000\
\\098\000\004\000\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\045\000\100\000\079\000\099\000\000\000\
\\007\000\023\000\032\000\095\000\045\000\017\000\047\000\016\000\
\\082\000\010\000\088\000\102\000\096\000\006\000\097\000\005\000\
\\098\000\004\000\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\000\000\
\\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\104\000\068\000\103\000\000\000\
\\000\000\
\\007\000\023\000\032\000\129\000\045\000\017\000\047\000\016\000\
\\082\000\010\000\088\000\128\000\096\000\006\000\097\000\005\000\
\\098\000\004\000\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\045\000\100\000\073\000\133\000\074\000\132\000\079\000\131\000\000\000\
\\007\000\023\000\032\000\136\000\045\000\017\000\047\000\016\000\
\\048\000\135\000\082\000\010\000\096\000\006\000\097\000\005\000\
\\098\000\004\000\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\007\000\023\000\032\000\136\000\045\000\017\000\047\000\016\000\
\\048\000\138\000\082\000\010\000\096\000\006\000\097\000\005\000\
\\098\000\004\000\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\004\000\024\000\007\000\023\000\029\000\022\000\032\000\021\000\
\\040\000\020\000\041\000\019\000\043\000\018\000\045\000\017\000\
\\047\000\016\000\049\000\015\000\050\000\014\000\053\000\142\000\
\\059\000\141\000\062\000\013\000\063\000\140\000\077\000\011\000\
\\082\000\010\000\090\000\008\000\093\000\007\000\096\000\006\000\
\\097\000\005\000\098\000\004\000\099\000\003\000\100\000\002\000\
\\101\000\001\000\000\000\
\\000\000\
\\007\000\023\000\032\000\145\000\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\011\000\148\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\038\000\147\000\039\000\146\000\
\\044\000\106\000\047\000\105\000\068\000\103\000\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\151\000\068\000\103\000\070\000\150\000\078\000\149\000\000\000\
\\030\000\152\000\000\000\
\\000\000\
\\007\000\023\000\032\000\155\000\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\008\000\156\000\000\000\
\\009\000\159\000\000\000\
\\000\000\
\\007\000\023\000\045\000\017\000\047\000\016\000\082\000\010\000\
\\096\000\006\000\098\000\160\000\000\000\
\\000\000\
\\007\000\023\000\045\000\017\000\047\000\016\000\082\000\161\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\003\000\165\000\027\000\164\000\083\000\163\000\000\000\
\\007\000\023\000\045\000\017\000\047\000\016\000\082\000\010\000\
\\096\000\006\000\097\000\005\000\098\000\004\000\099\000\003\000\
\\100\000\171\000\000\000\
\\000\000\
\\000\000\
\\007\000\023\000\045\000\017\000\047\000\016\000\082\000\010\000\
\\096\000\006\000\097\000\172\000\098\000\004\000\000\000\
\\000\000\
\\090\000\173\000\000\000\
\\077\000\174\000\000\000\
\\004\000\024\000\007\000\023\000\029\000\022\000\032\000\021\000\
\\040\000\020\000\041\000\019\000\043\000\018\000\045\000\017\000\
\\047\000\016\000\049\000\015\000\050\000\014\000\062\000\013\000\
\\063\000\012\000\077\000\011\000\082\000\010\000\086\000\176\000\
\\090\000\008\000\093\000\007\000\096\000\006\000\097\000\005\000\
\\098\000\004\000\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\062\000\177\000\000\000\
\\023\000\180\000\025\000\179\000\045\000\088\000\000\000\
\\043\000\183\000\000\000\
\\041\000\185\000\000\000\
\\007\000\023\000\029\000\022\000\032\000\021\000\040\000\020\000\
\\045\000\017\000\047\000\016\000\049\000\015\000\050\000\189\000\
\\052\000\188\000\058\000\187\000\077\000\011\000\082\000\010\000\
\\090\000\008\000\093\000\007\000\096\000\006\000\097\000\005\000\
\\098\000\004\000\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\007\000\023\000\032\000\192\000\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\007\000\023\000\032\000\193\000\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\151\000\068\000\103\000\070\000\194\000\078\000\149\000\000\000\
\\007\000\023\000\032\000\195\000\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\090\000\196\000\000\000\
\\029\000\197\000\000\000\
\\004\000\199\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\025\000\090\000\026\000\202\000\045\000\088\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\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\215\000\014\000\109\000\015\000\108\000\016\000\107\000\
\\044\000\106\000\047\000\105\000\068\000\103\000\000\000\
\\000\000\
\\000\000\
\\045\000\218\000\000\000\
\\045\000\219\000\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\221\000\068\000\103\000\000\000\
\\045\000\100\000\071\000\225\000\072\000\224\000\079\000\223\000\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\230\000\068\000\103\000\069\000\229\000\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\230\000\068\000\103\000\069\000\232\000\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\234\000\068\000\103\000\000\000\
\\000\000\
\\015\000\237\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\068\000\103\000\000\000\
\\000\000\
\\044\000\106\000\047\000\105\000\068\000\238\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\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\148\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\038\000\147\000\039\000\250\000\
\\044\000\106\000\047\000\105\000\068\000\103\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\060\000\255\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\003\000\005\001\027\000\164\000\083\000\163\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\023\000\045\000\017\000\047\000\016\000\082\000\010\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\023\000\032\000\012\001\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\000\000\
\\027\000\164\000\083\000\013\001\000\000\
\\000\000\
\\003\000\018\001\027\000\164\000\083\000\017\001\089\000\016\001\000\000\
\\045\000\100\000\075\000\021\001\076\000\020\001\079\000\019\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\023\000\045\000\017\000\047\000\016\000\082\000\010\000\
\\096\000\006\000\097\000\005\000\098\000\004\000\099\000\068\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\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\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\104\000\068\000\103\000\000\000\
\\007\000\023\000\029\000\022\000\032\000\021\000\040\000\020\000\
\\045\000\017\000\047\000\016\000\049\000\015\000\050\000\189\000\
\\052\000\188\000\058\000\031\001\077\000\011\000\082\000\010\000\
\\090\000\008\000\093\000\007\000\096\000\006\000\097\000\005\000\
\\098\000\004\000\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\034\001\000\000\
\\000\000\
\\025\000\035\001\045\000\088\000\000\000\
\\003\000\036\001\027\000\164\000\083\000\163\000\000\000\
\\000\000\
\\007\000\023\000\032\000\038\001\045\000\017\000\047\000\016\000\
\\082\000\010\000\088\000\037\001\096\000\006\000\097\000\005\000\
\\098\000\004\000\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\023\000\032\000\039\001\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\040\001\068\000\103\000\000\000\
\\000\000\
\\014\000\041\001\015\000\108\000\016\000\107\000\044\000\106\000\
\\047\000\105\000\068\000\103\000\000\000\
\\000\000\
\\011\000\042\001\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\068\000\103\000\000\000\
\\003\000\043\001\027\000\164\000\083\000\163\000\000\000\
\\060\000\044\001\000\000\
\\081\000\045\001\000\000\
\\045\000\047\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\
\\045\000\061\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\025\000\063\001\045\000\088\000\000\000\
\\000\000\
\\000\000\
\\007\000\023\000\032\000\064\001\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\045\000\100\000\073\000\065\001\074\000\132\000\079\000\131\000\000\000\
\\000\000\
\\000\000\
\\007\000\023\000\032\000\136\000\045\000\017\000\047\000\016\000\
\\048\000\066\001\082\000\010\000\096\000\006\000\097\000\005\000\
\\098\000\004\000\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\000\000\
\\004\000\024\000\007\000\023\000\029\000\022\000\032\000\021\000\
\\040\000\020\000\041\000\019\000\043\000\018\000\045\000\017\000\
\\047\000\016\000\049\000\015\000\050\000\014\000\053\000\067\001\
\\062\000\013\000\063\000\140\000\077\000\011\000\082\000\010\000\
\\090\000\008\000\093\000\007\000\096\000\006\000\097\000\005\000\
\\098\000\004\000\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\004\000\024\000\007\000\023\000\029\000\022\000\032\000\021\000\
\\040\000\020\000\041\000\019\000\043\000\018\000\045\000\017\000\
\\047\000\016\000\049\000\015\000\050\000\014\000\053\000\142\000\
\\059\000\068\001\062\000\013\000\063\000\140\000\077\000\011\000\
\\082\000\010\000\090\000\008\000\093\000\007\000\096\000\006\000\
\\097\000\005\000\098\000\004\000\099\000\003\000\100\000\002\000\
\\101\000\001\000\000\000\
\\000\000\
\\000\000\
\\009\000\071\001\000\000\
\\000\000\
\\011\000\148\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\038\000\147\000\039\000\073\001\
\\044\000\106\000\047\000\105\000\068\000\103\000\000\000\
\\000\000\
\\003\000\075\001\027\000\164\000\083\000\163\000\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\151\000\068\000\103\000\070\000\076\001\078\000\149\000\000\000\
\\000\000\
\\007\000\023\000\032\000\077\001\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\030\000\078\001\000\000\
\\000\000\
\\025\000\079\001\045\000\088\000\000\000\
\\017\000\082\001\018\000\081\001\028\000\080\001\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\151\000\068\000\103\000\070\000\085\001\078\000\149\000\000\000\
\\000\000\
\\008\000\086\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\003\000\088\001\027\000\164\000\083\000\163\000\091\000\087\001\000\000\
\\003\000\089\001\027\000\164\000\083\000\163\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\027\000\096\001\000\000\
\\000\000\
\\045\000\219\000\000\000\
\\023\000\097\001\025\000\035\001\045\000\088\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\023\000\029\000\022\000\032\000\021\000\040\000\020\000\
\\045\000\017\000\047\000\016\000\049\000\015\000\050\000\189\000\
\\052\000\100\001\077\000\011\000\082\000\010\000\090\000\008\000\
\\093\000\007\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\000\000\
\\007\000\023\000\032\000\102\001\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\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\
\\035\000\109\001\037\000\108\001\000\000\
\\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\230\000\068\000\103\000\069\000\113\001\000\000\
\\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\061\000\115\001\067\000\114\001\068\000\103\000\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\116\001\068\000\103\000\000\000\
\\000\000\
\\045\000\100\000\071\000\225\000\072\000\117\001\079\000\223\000\000\000\
\\003\000\118\001\027\000\164\000\083\000\163\000\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\119\001\068\000\103\000\000\000\
\\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\230\000\068\000\103\000\069\000\120\001\000\000\
\\000\000\
\\007\000\023\000\032\000\121\001\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\060\000\122\001\000\000\
\\001\000\123\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\017\000\082\001\018\000\081\001\028\000\128\001\000\000\
\\000\000\
\\040\000\130\001\000\000\
\\000\000\
\\007\000\023\000\032\000\132\001\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\027\000\134\001\000\000\
\\003\000\135\001\027\000\164\000\083\000\163\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\027\000\164\000\083\000\140\001\089\000\139\001\000\000\
\\000\000\
\\003\000\142\001\027\000\164\000\083\000\163\000\000\000\
\\045\000\100\000\075\000\143\001\076\000\020\001\079\000\019\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\045\000\047\001\000\000\
\\000\000\
\\007\000\023\000\029\000\022\000\032\000\021\000\040\000\020\000\
\\045\000\017\000\047\000\016\000\049\000\015\000\050\000\189\000\
\\052\000\188\000\058\000\145\001\077\000\011\000\082\000\010\000\
\\090\000\008\000\093\000\007\000\096\000\006\000\097\000\005\000\
\\098\000\004\000\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\000\000\
\\000\000\
\\007\000\023\000\032\000\146\001\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\002\000\148\001\025\000\147\001\045\000\088\000\000\000\
\\001\000\151\001\000\000\
\\001\000\152\001\000\000\
\\000\000\
\\081\000\154\001\000\000\
\\000\000\
\\005\000\160\001\006\000\159\001\034\000\158\001\054\000\157\001\000\000\
\\035\000\169\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\
\\005\000\160\001\006\000\159\001\054\000\176\001\000\000\
\\000\000\
\\000\000\
\\040\000\177\001\000\000\
\\000\000\
\\009\000\178\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\017\000\082\001\018\000\179\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\003\000\181\001\027\000\164\000\083\000\163\000\091\000\180\001\000\000\
\\000\000\
\\000\000\
\\003\000\018\001\027\000\164\000\083\000\163\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\084\000\183\001\000\000\
\\000\000\
\\007\000\023\000\019\000\191\001\021\000\190\001\029\000\022\000\
\\032\000\021\000\040\000\020\000\041\000\189\001\045\000\017\000\
\\047\000\016\000\049\000\015\000\050\000\188\001\055\000\187\001\
\\062\000\186\001\077\000\011\000\082\000\010\000\090\000\008\000\
\\093\000\007\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\007\000\023\000\019\000\191\001\021\000\190\001\029\000\022\000\
\\032\000\021\000\040\000\020\000\041\000\189\001\045\000\017\000\
\\047\000\016\000\049\000\015\000\050\000\188\001\055\000\194\001\
\\062\000\186\001\077\000\011\000\082\000\010\000\090\000\008\000\
\\093\000\007\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\000\000\
\\000\000\
\\025\000\196\001\042\000\195\001\045\000\088\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\092\000\203\001\000\000\
\\025\000\207\001\045\000\088\000\066\000\206\001\080\000\205\001\000\000\
\\045\000\210\001\094\000\209\001\000\000\
\\001\000\213\001\045\000\212\001\000\000\
\\031\000\215\001\045\000\214\001\000\000\
\\092\000\216\001\000\000\
\\029\000\217\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\061\000\220\001\067\000\114\001\068\000\103\000\000\000\
\\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\221\001\068\000\103\000\000\000\
\\007\000\023\000\032\000\222\001\045\000\017\000\047\000\016\000\
\\082\000\010\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\025\000\224\001\045\000\088\000\095\000\223\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\002\000\235\001\020\000\234\001\022\000\233\001\025\000\147\001\
\\029\000\022\000\040\000\020\000\041\000\232\001\045\000\088\000\
\\049\000\231\001\056\000\230\001\062\000\229\001\077\000\011\000\
\\090\000\008\000\093\000\007\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\011\000\112\000\012\000\111\000\013\000\110\000\014\000\109\000\
\\015\000\108\000\016\000\107\000\044\000\106\000\047\000\105\000\
\\067\000\104\000\068\000\103\000\000\000\
\\007\000\023\000\019\000\191\001\021\000\190\001\029\000\022\000\
\\032\000\021\000\040\000\020\000\041\000\189\001\045\000\017\000\
\\047\000\016\000\049\000\015\000\050\000\188\001\055\000\242\001\
\\062\000\186\001\077\000\011\000\082\000\010\000\090\000\008\000\
\\093\000\007\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\000\000\
\\000\000\
\\084\000\244\001\000\000\
\\007\000\023\000\019\000\191\001\021\000\190\001\029\000\022\000\
\\032\000\021\000\040\000\020\000\041\000\189\001\045\000\017\000\
\\047\000\016\000\049\000\015\000\050\000\188\001\055\000\245\001\
\\062\000\186\001\077\000\011\000\082\000\010\000\090\000\008\000\
\\093\000\007\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\002\000\246\001\025\000\147\001\045\000\088\000\000\000\
\\000\000\
\\000\000\
\\035\000\247\001\000\000\
\\005\000\160\001\006\000\248\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\025\000\207\001\045\000\088\000\066\000\253\001\000\000\
\\000\000\
\\000\000\
\\045\000\001\002\064\000\000\002\000\000\
\\045\000\004\002\046\000\003\002\000\000\
\\000\000\
\\003\000\005\002\027\000\164\000\083\000\163\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\008\002\000\000\
\\001\000\009\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\024\000\013\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\023\000\019\000\191\001\021\000\190\001\029\000\022\000\
\\032\000\021\000\040\000\020\000\041\000\189\001\045\000\017\000\
\\047\000\016\000\049\000\015\000\050\000\188\001\055\000\019\002\
\\062\000\186\001\077\000\011\000\082\000\010\000\090\000\008\000\
\\093\000\007\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\001\000\020\002\000\000\
\\001\000\021\002\000\000\
\\002\000\022\002\025\000\147\001\045\000\088\000\000\000\
\\007\000\023\000\019\000\191\001\021\000\023\002\029\000\022\000\
\\032\000\021\000\040\000\020\000\041\000\189\001\045\000\017\000\
\\047\000\016\000\049\000\015\000\050\000\188\001\062\000\186\001\
\\077\000\011\000\082\000\010\000\090\000\008\000\093\000\007\000\
\\096\000\006\000\097\000\005\000\098\000\004\000\099\000\003\000\
\\100\000\002\000\101\000\001\000\000\000\
\\045\000\219\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\092\000\027\002\000\000\
\\003\000\028\002\027\000\164\000\083\000\163\000\000\000\
\\025\000\207\001\045\000\088\000\066\000\206\001\080\000\029\002\000\000\
\\025\000\031\002\045\000\088\000\066\000\030\002\000\000\
\\000\000\
\\045\000\210\001\094\000\032\002\000\000\
\\003\000\033\002\027\000\164\000\083\000\163\000\000\000\
\\000\000\
\\000\000\
\\045\000\037\002\085\000\036\002\000\000\
\\000\000\
\\045\000\004\002\046\000\038\002\000\000\
\\000\000\
\\031\000\039\002\045\000\214\001\000\000\
\\090\000\040\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\025\000\224\001\045\000\088\000\095\000\041\002\000\000\
\\025\000\042\002\045\000\088\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\084\000\045\002\000\000\
\\020\000\234\001\022\000\046\002\029\000\022\000\040\000\020\000\
\\041\000\232\001\049\000\231\001\062\000\229\001\077\000\011\000\
\\090\000\008\000\093\000\007\000\000\000\
\\084\000\047\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\045\000\047\001\000\000\
\\007\000\023\000\019\000\191\001\021\000\190\001\029\000\022\000\
\\032\000\021\000\040\000\020\000\041\000\189\001\045\000\017\000\
\\047\000\016\000\049\000\015\000\050\000\188\001\055\000\050\002\
\\062\000\186\001\077\000\011\000\082\000\010\000\090\000\008\000\
\\093\000\007\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\025\000\196\001\042\000\051\002\045\000\088\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\045\000\001\002\064\000\052\002\000\000\
\\001\000\053\002\000\000\
\\000\000\
\\035\000\056\002\036\000\055\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\003\000\058\002\027\000\164\000\083\000\163\000\000\000\
\\024\000\059\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\023\000\019\000\191\001\021\000\190\001\029\000\022\000\
\\032\000\021\000\040\000\020\000\041\000\189\001\045\000\017\000\
\\047\000\016\000\049\000\015\000\050\000\188\001\055\000\060\002\
\\062\000\186\001\077\000\011\000\082\000\010\000\090\000\008\000\
\\093\000\007\000\096\000\006\000\097\000\005\000\098\000\004\000\
\\099\000\003\000\100\000\002\000\101\000\001\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\045\000\037\002\085\000\064\002\000\000\
\\000\000\
\\000\000\
\\045\000\066\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\025\000\068\002\045\000\088\000\000\000\
\\000\000\
\\001\000\069\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\";
numstates = 583;
numrules = 296;
s = REF ""; index = REF 0;
string_to_int = fn () =
{ i = *index;
index := i+2;
char::to_int (string::get(*s, i)) + char::to_int (string::get(*s, i+1)) * 256;
};
string_to_list = fn s' =
{ len = string::length s';
fun f () =
if (*index < len)
string_to_int() ! f();
else NIL; fi;
index := 0;
s := s';
f ();
};
string_to_pairlist = fn (conv_key, conv_entry) = f
where
fun f ()
=
case (string_to_int ())
0 => EMPTY;
n => PAIR (conv_key (n - 1), conv_entry (string_to_int()), f());
esac;
end;
string_to_pairlist_default = fn (conv_key, conv_entry) =
{ conv_row = string_to_pairlist (conv_key, conv_entry);
fn () =
{ default = conv_entry (string_to_int());
row = conv_row();
(row, default);
};
};
string_to_table = fn (convert_row, s') =
{ len = string::length s';
fun f ()
=
if (*index < len)
convert_row() ! f();
else NIL; fi;
s := s';
index := 0;
f ();
};
stipulate
memo = rw_vector::make_rw_vector (numstates+numrules, ERROR);
my _ ={ fun g i
=
{ rw_vector::set (memo, i, REDUCE (i-numstates));
g (i+1);
};
fun f i
=
if (i == numstates)
g i;
else rw_vector::set (memo, i, SHIFT (STATE i));
f (i+1);
fi;
f 0
except
(SUBSCRIPT|INDEX_OUT_OF_BOUNDS) = ();
};
herein
entry_to_action
=
fn 0 => ACCEPT;
1 => ERROR;
j => rw_vector::get (memo, (j - 2));
end;
end;
goto_table = rw_vector::from_list (string_to_table (string_to_pairlist (NONTERM, STATE), goto_table));
action_rows = string_to_table (string_to_pairlist_default (TERM, entry_to_action), action_rows);
action_row_numbers = string_to_list action_row_numbers;
action_table
=
{ action_row_lookup
=
{ a=rw_vector::from_list (action_rows);
fn i = rw_vector::get (a, i);
};
rw_vector::from_list (map action_row_lookup action_row_numbers);
};
lr_table::make_lr_table {
actions => action_table,
gotos => goto_table,
rule_count => numrules,
state_count => numstates,
initial_state => STATE 0 };
};
end;
stipulate include header; herein
Source_Position = Int;
Arg = (Source_Position, Source_Position) -> error_message::Plaint_Sink;
package values {
Semantic_Value = TM_VOID | NT_VOID Void -> Void | SUFFIX_OP Void -> (fast_symbol::Raw_Symbol) | PREFIX_OP Void -> (fast_symbol::Raw_Symbol) | LOOSE_INFIX_OP Void -> (fast_symbol::Raw_Symbol)
| TIGHT_INFIX_OP Void -> (fast_symbol::Raw_Symbol) | UNT Void -> (multiword_int::Int) | TYPEVAR_ID Void -> (fast_symbol::Raw_Symbol) | TYPE_ID Void -> (fast_symbol::Raw_Symbol)
| STRING Void -> (String) | SHEBANG Void -> (String) | REAL Void -> (String) | INT0 Void -> (multiword_int::Int) | INT Void -> (multiword_int::Int) | VALUE_ID Void -> (fast_symbol::Raw_Symbol)
| ENDQ Void -> (String) | CONSTRUCTOR_ID Void -> (fast_symbol::Raw_Symbol) | CHUNKL Void -> (String) | CHAR Void -> (String) | ANTIQUOTE_ID Void -> (fast_symbol::Raw_Symbol)
| QQ_LOOSE_INFIX_EXPRESSION Void -> (Raw_Expression) | QQ_APPLY_EXPRESSION Void -> (Raw_Expression) | QQ_INFIX_EXPRESSION Void -> (Raw_Expression) | QQ_PREFIX_EXPRESSION Void -> (Raw_Expression)
| QQ_SUFFIX_EXPRESSION Void -> (Raw_Expression) | QQ_TYPED_EXPRESSION Void -> (Raw_Expression) | QQ_WHERE_ON_API Void -> (List Where_Spec )
| QQ_VALUE_IN_API Void -> (List ( (Symbol, Any_Type) ) ) | QQ_NAMED_VALUE Void -> (List Named_Value ) | QQ_TYPE_IN_API Void -> (List ( (Symbol, List Type_Variable, Null_Or Any_Type) ) )
| QQ_TYPEFUN_ARGLIST Void -> (List Any_Type ) | QQ_NAMED_TYPES Void -> (List Named_Type ) | QQ_TUPLE_TYPE Void -> (List Any_Type ) | QQ_TUPLE_CONTENTS Void -> (List Raw_Expression )
| QQ_TOPLEVEL_STATEMENT Void -> (Declaration) | QQ_TOPLEVEL_PACKAGE_DECLARATIONS Void -> (Declaration) | QQ_GENERIC_IN_API Void -> (List ( (Symbol, Generic_Api_Expression) ) )
| QQ_GENERIC_ARGS Void -> (List ( (Package_Expression, Bool) ) ) | QQ_SIMPLE_TYPE Void -> (Any_Type) | QQ_EXPRESSION_ELEMENT Void -> (Raw_Expression)
| QQ_OPTIONAL_API_CAST Void -> (Package_Cast Api_Expression ) | QQ_SHARING_IN_API Void -> (List Api_Element ) | QQ_SELECTOR Void -> (Symbol) | QQ_RULE Void -> (Case_Rule)
| QQ_NAMED_RECURSIVE_VALUES Void -> (List Named_Recursive_Value ) | QQ_RECORD_TYPE_ELEMENT Void -> ((Symbol, Any_Type)) | QQ_RECORD_TYPE_CONTENTS Void -> (List ( (Symbol, Any_Type) ) )
| QQ_RECORD_ELEMENT Void -> ((Symbol, Raw_Expression)) | QQ_RECORD_CONTENTS Void -> (List ( (Symbol, Raw_Expression) ) ) | QQ_RECORD_PATTERNS Void -> ((List ((Symbol, Case_Pattern)), Bool))
| QQ_RECORD_PATTERN Void -> ((Symbol, Case_Pattern)) | QQ_PATTERN_MATCH Void -> (List Case_Rule ) | QQ_PATTERN_LIST Void -> (List Case_Pattern ) | QQ_PATTERN_ELEMENT Void -> (Case_Pattern)
| QQ_PATTERN Void -> (Case_Pattern) | QQ_PATH_EQUATION Void -> ((fast_symbol::Raw_Symbol ->Symbol) -> List List Symbol ) | QQ_PAT_2C Void -> (List Case_Pattern )
| QQ_PACKAGE_IN_API Void -> (List ( (Symbol, Api_Expression, Null_Or Path) ) ) | QQ_MODULE_DECLARATION Void -> (Declaration) | QQ_NAMED_PACKAGES Void -> (List Named_Package )
| QQ_OR_PATTERN_LIST Void -> (List Case_Pattern ) | QQ_OPTIONAL_TYPE_CONSTRAINT Void -> (Null_Or Any_Type ) | QQ_OPTIONAL_LOCAL_PACKAGE_DECLARATIONS Void -> (Declaration)
| QQ_OPTIONAL_LOCAL_DECLARATIONS_AND_EXPRESSIONS Void -> (Declaration) | QQ_OPTIONAL_LOCAL_DECLARATIONS Void -> (Declaration) | QQ_OPTIONAL_DECLARATIONS_IN_GENERIC_ARGS Void -> (Declaration)
| QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE Void -> (Declaration) | QQ_OPTIONAL_API_ELEMENTS Void -> (List Api_Element ) | QQ_LOCAL_PACKAGE_DECLARATIONS Void -> (Declaration)
| QQ_LOCAL_DECLARATIONS_AND_EXPRESSIONS Void -> (Declaration) | QQ_LOCAL_DECLARATIONS Void -> (Declaration) | QQ_LOCAL_DECLARATION_OR_EXPRESSION Void -> (Declaration)
| QQ_LOCAL_DECLARATION Void -> (Declaration) | QQ_LIST_CONTENTS Void -> (List Raw_Expression ) | QQ_INT Void -> (multiword_int::Int) | QQ_IDENTS Void -> (List Api_Element )
| QQ_VALUE_ID Void -> (fast_symbol::Raw_Symbol) | QQ_ID Void -> (fast_symbol::Raw_Symbol) | QQ_GENERIC_API_NAMINGS Void -> (List Named_Generic_Api )
| QQ_GENERIC_EXPRESSION Void -> (Package_Cast Generic_Api_Expression -> Generic_Expression ) | QQ_GENERIC_NAMINGS Void -> (List Named_Generic )
| QQ_NAMED_FUNCTIONS Void -> (List Nada_Named_Function ) | QQ_FUNCTION_CLAUSES Void -> (List Nada_Pattern_Clause ) | QQ_FUNCTION_CLAUSE Void -> (Nada_Pattern_Clause)
| QQ_OPTIONAL_GENERIC_API_CAST Void -> (Package_Cast Generic_Api_Expression ) | QQ_A_GENERIC_API Void -> (Generic_Api_Expression)
| QQ_GENERIC_PARAMETERS Void -> (List ( (Null_Or Symbol, Api_Expression)) ) | QQ_GENERIC_PARAMETER Void -> ((Null_Or Symbol, Api_Expression)) | QQ_EXPRESSIONS Void -> (List Raw_Expression )
| QQ_EXPRESSION Void -> (Raw_Expression) | QQ_EXCEPTION_IN_API Void -> (List ( (Symbol, Null_Or Any_Type) ) ) | QQ_EXCEPTION_NAMINGS Void -> (List Named_Exception )
| QQ_NAMED_DATATYPES Void -> (List Named_Datatype ) | QQ_ENUM_NAMING Void -> (Named_Datatype_Right_Hand_Side) | QQ_DOTTED_TYP Void -> (List Symbol )
| QQ_DOTTED_IDENTIFIER_P Void -> (List List symbol::Symbol ) | QQ_QUALIFIED_VALUE_ID Void -> ((fast_symbol::Raw_Symbol -> Symbol) -> List Symbol )
| QQ_QUALIFIED_TYPE_ID Void -> ((fast_symbol::Raw_Symbol -> Symbol) -> List Symbol ) | QQ_QUALIFIED_CONSTRUCTOR_ID Void -> ((fast_symbol::Raw_Symbol -> Symbol) -> List Symbol )
| QQ_DECLARATIONS_IN_GENERIC_ARGS Void -> (Declaration) | QQ_DECLARATIONS_IN_PACKAGE Void -> (Declaration) | QQ_DECLARATION_IN_GENERIC_ARGS Void -> (Declaration)
| QQ_DECLARATION_IN_PACKAGE Void -> (Declaration) | QQ_CONSTRUCTORS Void -> (List ( (Symbol, Null_Or Any_Type)) ) | QQ_CONSTRUCTOR Void -> ((Symbol, Null_Or Any_Type))
| QQ_TYPED_PATTERN Void -> (Case_Pattern) | QQ_PREFIX_PATTERN Void -> (Case_Pattern) | QQ_SUFFIX_PATTERN Void -> (Case_Pattern) | QQ_INFIX_PATTERN Void -> (Case_Pattern)
| QQ_APPLY_PATTERN Void -> (Case_Pattern) | QQ_LOOSE_INFIX_PATTERN Void -> (Case_Pattern) | QQ_BLOCK_DECLARATIONS_AND_EXPRESSIONS Void -> (List Declaration )
| QQ_BLOCK_CONTENTS Void -> (Raw_Expression) | QQ_BACKQUOTATION_CONTENTS Void -> (List Raw_Expression ) | QQ_BACKQUOTATION Void -> (List Raw_Expression )
| QQ_API_ELEMENTS Void -> (List Api_Element ) | QQ_API_ELEMENT Void -> (List Api_Element ) | QQ_API_NAMINGS Void -> (List Named_Api ) | QQ_ANY_TYPE Void -> (Any_Type)
| QQ_A_PACKAGE Void -> (Package_Expression) | QQ_AN_API Void -> (Api_Expression);
};
Semantic_Value = values::Semantic_Value;
Result = Declaration;
end;
package error_recovery{
include lr_table;
infix my 60 @@;
fun x @@ y = y ! x;
is_keyword =
fn (TERM 18) => TRUE; (TERM 19) => TRUE; (TERM 20) => TRUE; (TERM 21) => TRUE; (TERM 22) => TRUE; (TERM 24) => TRUE; (TERM 41) => TRUE; (TERM 25) => TRUE; (TERM 42) => TRUE; (TERM 26) => TRUE; (TERM
27) => TRUE; (TERM 28) => TRUE; (TERM 30) => TRUE; (TERM 31) => TRUE; (TERM 32) => TRUE; (TERM 33) => TRUE; (TERM 34) => TRUE; (TERM 35) => TRUE; (TERM 36) => TRUE; (TERM 37) => TRUE; (TERM 38)
=> TRUE; (TERM 45) => TRUE; (TERM 46) => TRUE; (TERM 47) => TRUE; (TERM 55) => TRUE; (TERM 56) => TRUE; (TERM 58) => TRUE; (TERM 59) => TRUE; (TERM 66) => TRUE; (TERM 95) => TRUE; (TERM 97) => TRUE;
(TERM 107) => TRUE; (TERM 111) => TRUE; (TERM 113) => TRUE; (TERM 114) => TRUE; (TERM 115) => TRUE; (TERM 116) => TRUE; _ => FALSE; end;
my preferred_change: List( (List( Terminal ), List( Terminal )) ) =
(NIL
, NIL
@@ (TERM 55)) !
(NIL
, NIL
@@ (TERM 107)) !
(NIL
, NIL
@@ (TERM 26)) !
(NIL
, NIL
@@ (TERM 33)) !
(NIL
, NIL
@@ (TERM 53)) !
(NIL
, NIL
@@ (TERM 96)) !
(NIL
, NIL
@@ (TERM 102)) !
(NIL
@@ (TERM 41), NIL
@@ (TERM 43)) !
(NIL
@@ (TERM 43), NIL
@@ (TERM 41)) !
(NIL
@@ (TERM 18), NIL
@@ (TERM 19)) !
(NIL
@@ (TERM 102), NIL
@@ (TERM 100)) !
(NIL
@@ (TERM 100), NIL
@@ (TERM 102)) !
(NIL
, NIL
@@ (TERM 27) @@ (TERM 5) @@ (TERM 37)) !
(NIL
, NIL
@@ (TERM 5) @@ (TERM 26)) !
NIL;
no_shift =
fn (TERM 29) => TRUE; _ => FALSE; end;
show_terminal =
fn (TERM 0) => "ANTIQUOTE_ID"
; (TERM 1) => "CHAR"
; (TERM 2) => "CHUNKL"
; (TERM 3) => "CONSTRUCTOR_ID"
; (TERM 4) => "ENDQ"
; (TERM 5) => "VALUE_ID"
; (TERM 6) => "INT"
; (TERM 7) => "INT0"
; (TERM 8) => "REAL"
; (TERM 9) => "SHEBANG"
; (TERM 10) => "STRING"
; (TERM 11) => "TYPE_ID"
; (TERM 12) => "TYPEVAR_ID"
; (TERM 13) => "UNT"
; (TERM 14) => "TIGHT_INFIX_OP"
; (TERM 15) => "LOOSE_INFIX_OP"
; (TERM 16) => "PREFIX_OP"
; (TERM 17) => "SUFFIX_OP"
; (TERM 18) => "ALSO_T"
; (TERM 19) => "AND_T"
; (TERM 20) => "API_T"
; (TERM 21) => "AS_T"
; (TERM 22) => "BEGIN_T"
; (TERM 23) => "BEGINQ"
; (TERM 24) => "CASE_T"
; (TERM 25) => "DO_T"
; (TERM 26) => "ELSE_T"
; (TERM 27) => "END_T"
; (TERM 28) => "ENUM_T"
; (TERM 29) => "EOF"
; (TERM 30) => "EQTYPE_T"
; (TERM 31) => "EXCEPT_T"
; (TERM 32) => "EXCEPTION_T"
; (TERM 33) => "FI_T"
; (TERM 34) => "FN_T"
; (TERM 35) => "FUN_T"
; (TERM 36) => "IF_T"
; (TERM 37) => "IN_T"
; (TERM 38) => "INCLUDE_T"
; (TERM 39) => "INFIX_ARROW"
; (TERM 40) => "INFIX_BANGBANG"
; (TERM 41) => "INFIX_DARROW"
; (TERM 42) => "INFIX_DOTDOTDOT"
; (TERM 43) => "INFIX_EQUAL"
; (TERM 44) => "INFIX_QMARKQMARK"
; (TERM 45) => "LAZY_T"
; (TERM 46) => "LET_T"
; (TERM 47) => "LOCAL_T"
; (TERM 48) => "LOOSE_INFIX_LVECTOR"
; (TERM 49) => "LOOSE_INFIX_LBRACKET"
; (TERM 50) => "LOOSE_INFIX_RBRACKET"
; (TERM 51) => "LOOSE_INFIX_LBRACE"
; (TERM 52) => "LOOSE_INFIX_RBRACE"
; (TERM 53) => "LPAREN"
; (TERM 54) => "MACRO"
; (TERM 55) => "MY_T"
; (TERM 56) => "OF_T"
; (TERM 57) => "OPAQUE"
; (TERM 58) => "OR_T"
; (TERM 59) => "PACKAGE_T"
; (TERM 60) => "PREFIX_BAR"
; (TERM 61) => "PREFIX_DOT"
; (TERM 62) => "PREFIX_LANGLE"
; (TERM 63) => "PREFIX_LBRACE"
; (TERM 64) => "PREFIX_LBRACKET"
; (TERM 65) => "PREFIX_SLASH"
; (TERM 66) => "RAISE_T"
; (TERM 67) => "RAW_AMPERSAND"
; (TERM 68) => "RAW_UNDERBAR"
; (TERM 69) => "RAW_DOLLAR"
; (TERM 70) => "RAW_SHARP"
; (TERM 71) => "RAW_BANG"
; (TERM 72) => "RAW_TILDA"
; (TERM 73) => "RAW_DASH"
; (TERM 74) => "RAW_PLUS"
; (TERM 75) => "RAW_STAR"
; (TERM 76) => "RAW_SLASH"
; (TERM 77) => "RAW_PERCENT"
; (TERM 78) => "RAW_COLON"
; (TERM 79) => "RAW_LANGLE"
; (TERM 80) => "RAW_RANGLE"
; (TERM 81) => "RAW_LBRACE"
; (TERM 82) => "RAW_RBRACE"
; (TERM 83) => "RAW_LBRACKET"
; (TERM 84) => "RAW_RBRACKET"
; (TERM 85) => "RAW_EQUAL"
; (TERM 86) => "RAW_QUESTION"
; (TERM 87) => "RAW_ATSIGN"
; (TERM 88) => "RAW_CARET"
; (TERM 89) => "RAW_BAR"
; (TERM 90) => "RAW_BACKSLASH"
; (TERM 91) => "RAW_SEMI"
; (TERM 92) => "RAW_DOT"
; (TERM 93) => "RAW_COMMA"
; (TERM 94) => "RAW_WHITESPACE"
; (TERM 95) => "REC_T"
; (TERM 96) => "RPAREN"
; (TERM 97) => "SHARING_T"
; (TERM 98) => "SUFFIX_BAR"
; (TERM 99) => "SUFFIX_COLON"
; (TERM 100) => "SUFFIX_COMMA"
; (TERM 101) => "SUFFIX_DOT"
; (TERM 102) => "SUFFIX_SEMI"
; (TERM 103) => "SUFFIX_RANGLE"
; (TERM 104) => "SUFFIX_RBRACE"
; (TERM 105) => "SUFFIX_RBRACKET"
; (TERM 106) => "SUFFIX_SLASH"
; (TERM 107) => "THEN_T"
; (TERM 108) => "TIGHT_INFIX_COLON"
; (TERM 109) => "TIGHT_INFIX_DOT"
; (TERM 110) => "TRANSPARENT"
; (TERM 111) => "TYPE_T"
; (TERM 112) => "UNDERBAR"
; (TERM 113) => "USE"
; (TERM 114) => "WHERE_T"
; (TERM 115) => "WHILE_T"
; (TERM 116) => "WITH_T"
; (TERM 117) => "XXX"
; (TERM 118) => "YYY"
; (TERM 119) => "ZZZ"
; _ => "bogus-term"; end;
stipulate include header; herein
errtermvalue=
fn (TERM 5) => values::VALUE_ID(fn () = (raw_symbol (bogus_hash, bogus_string)));
(TERM 12) => values::TYPEVAR_ID(fn () = (raw_symbol (quoted_bogus_hash, quoted_bogus_string)));
(TERM 6) => values::INT(fn () = (multiword_int::from_int 1));
(TERM 7) => values::INT0(fn () = (multiword_int::from_int 0));
(TERM 13) => values::UNT(fn () = (multiword_int::from_int 0));
(TERM 8) => values::REAL(fn () = ("0.0"));
(TERM 10) => values::STRING(fn () = (""));
(TERM 1) => values::CHAR(fn () = ("a"));
_ => values::TM_VOID;
end; end;
my terms: List( Terminal ) = NIL
@@ (TERM 119) @@ (TERM 118) @@ (TERM 117) @@ (TERM 116) @@ (TERM 115) @@ (TERM 114) @@ (TERM 113) @@ (TERM 112) @@ (TERM 111) @@ (TERM 110) @@ (TERM 109) @@ (TERM 108) @@ (TERM 107) @@ (TERM 106) @@
(TERM 105) @@ (TERM 104) @@ (TERM 103) @@ (TERM 102) @@ (TERM 101) @@ (TERM 100) @@ (TERM 99) @@ (TERM 98) @@ (TERM 97) @@ (TERM 96) @@ (TERM 95) @@ (TERM 94) @@ (TERM 93) @@ (TERM 92) @@ (TERM 91)
@@ (TERM 90) @@ (TERM 89) @@ (TERM 88) @@ (TERM 87) @@ (TERM 86) @@ (TERM 85) @@ (TERM 84) @@ (TERM 83) @@ (TERM 82) @@ (TERM 81) @@ (TERM 80) @@ (TERM 79) @@ (TERM 78) @@ (TERM 77) @@ (TERM 76) @@
(TERM 75) @@ (TERM 74) @@ (TERM 73) @@ (TERM 72) @@ (TERM 71) @@ (TERM 70) @@ (TERM 69) @@ (TERM 68) @@ (TERM 67) @@ (TERM 66) @@ (TERM 65) @@ (TERM 64) @@ (TERM 63) @@ (TERM 62) @@ (TERM 61) @@
(TERM 60) @@ (TERM 59) @@ (TERM 58) @@ (TERM 57) @@ (TERM 56) @@ (TERM 55) @@ (TERM 54) @@ (TERM 53) @@ (TERM 52) @@ (TERM 51) @@ (TERM 50) @@ (TERM 49) @@ (TERM 48) @@ (TERM 47) @@ (TERM 46) @@
(TERM 45) @@ (TERM 44) @@ (TERM 43) @@ (TERM 42) @@ (TERM 41) @@ (TERM 40) @@ (TERM 39) @@ (TERM 38) @@ (TERM 37) @@ (TERM 36) @@ (TERM 35) @@ (TERM 34) @@ (TERM 33) @@ (TERM 32) @@ (TERM 31) @@
(TERM 30) @@ (TERM 29) @@ (TERM 28) @@ (TERM 27) @@ (TERM 26) @@ (TERM 25) @@ (TERM 24) @@ (TERM 23) @@ (TERM 22) @@ (TERM 21) @@ (TERM 20) @@ (TERM 19) @@ (TERM 18);
};
package actions {
exception MLY_ACTION Int;
stipulate include header; herein
actions =
fn (i392, default_position, stack,
(error): Arg) =
case (i392, stack)
( 0, ( ( _, ( values::QQ_TOPLEVEL_PACKAGE_DECLARATIONS toplevel_package_declarations1, (toplevel_package_declarationsleft as toplevel_package_declarations1left), (
toplevel_package_declarationsright as toplevel_package_declarations1right))) ! rest671)) => { my result = values::QQ_TOPLEVEL_STATEMENT (fn _ = { my (toplevel_package_declarations as
toplevel_package_declarations1) = toplevel_package_declarations1 ();
(
note_declaration_location (toplevel_package_declarations,
toplevel_package_declarationsleft,
toplevel_package_declarationsright)
);
} );
( lr_table::NONTERM 86, ( result, toplevel_package_declarations1left, toplevel_package_declarations1right), rest671);
}
; ( 1, ( ( _, ( _, _, suffix_semi1right)) ! ( _, ( values::QQ_MODULE_DECLARATION module_declaration1, (module_declarationleft as module_declaration1left), module_declarationright)) ! rest671
)) => { my result = values::QQ_TOPLEVEL_PACKAGE_DECLARATIONS (fn _ = { my (module_declaration as module_declaration1) = module_declaration1 ();
(
note_declaration_location (module_declaration, module_declarationleft, module_declarationright));
} );
( lr_table::NONTERM 85, ( result, module_declaration1left, suffix_semi1right), rest671)
;
}
; ( 2, ( ( _, ( values::QQ_TOPLEVEL_PACKAGE_DECLARATIONS toplevel_package_declarations1, _, toplevel_package_declarations1right)) ! _ ! ( _, ( values::QQ_MODULE_DECLARATION module_declaration1
, (module_declarationleft as module_declaration1left), module_declarationright)) ! rest671)) => { my result = values::QQ_TOPLEVEL_PACKAGE_DECLARATIONS (fn _ = { my (module_declaration as
module_declaration1) = module_declaration1 ();
my (toplevel_package_declarations as toplevel_package_declarations1) = toplevel_package_declarations1 ();
(
make_declaration_sequence (
note_declaration_location (module_declaration, module_declarationleft, module_declarationright),
toplevel_package_declarations
)
);
} );
( lr_table::NONTERM 85, ( result, module_declaration1left, toplevel_package_declarations1right), rest671);
}
; ( 3, ( ( _, ( values::QQ_LOCAL_DECLARATION_OR_EXPRESSION local_declaration_or_expression1, (local_declaration_or_expressionleft as local_declaration_or_expression1left), (
local_declaration_or_expressionright as local_declaration_or_expression1right))) ! rest671)) => { my result = values::QQ_MODULE_DECLARATION (fn _ = { my (local_declaration_or_expression as
local_declaration_or_expression1) = local_declaration_or_expression1 ();
(
note_declaration_location ( local_declaration_or_expression,
local_declaration_or_expressionleft,
local_declaration_or_expressionright
)
);
} );
( lr_table::NONTERM 62, ( result, local_declaration_or_expression1left, local_declaration_or_expression1right), rest671);
}
; ( 4, ( ( _, ( values::QQ_NAMED_PACKAGES named_packages1, named_packages1left, named_packages1right)) ! rest671)) => { my result = values::QQ_MODULE_DECLARATION (fn _ = { my (
named_packages as named_packages1) = named_packages1 ();
(PACKAGE_DECLARATIONS named_packages );
} );
( lr_table::NONTERM 62, ( result, named_packages1left,
named_packages1right), rest671);
}
; ( 5, ( ( _, ( values::QQ_API_NAMINGS api_namings1, api_namings1left, api_namings1right)) ! rest671)) => { my result = values::QQ_MODULE_DECLARATION (fn _ = { my (api_namings as
api_namings1) = api_namings1 ();
(API_DECLARATIONS api_namings );
} );
( lr_table::NONTERM 62, ( result, api_namings1left, api_namings1right), rest671);
}
; ( 6, ( ( _, ( values::QQ_GENERIC_NAMINGS generic_namings1, generic_namings1left, generic_namings1right)) ! rest671)) => { my result = values::QQ_MODULE_DECLARATION (fn _ = { my (
generic_namings as generic_namings1) = generic_namings1 ();
(GENERIC_DECLARATIONS generic_namings );
} );
( lr_table::NONTERM 62, ( result, generic_namings1left,
generic_namings1right), rest671);
}
; ( 7, ( ( _, ( values::QQ_GENERIC_API_NAMINGS generic_api_namings1, generic_api_namings1left, generic_api_namings1right)) ! rest671)) => { my result = values::QQ_MODULE_DECLARATION (fn _ =
{ my (generic_api_namings as generic_api_namings1) = generic_api_namings1 ();
(GENERIC_API_DECLARATIONS generic_api_namings );
} );
( lr_table::NONTERM 62, ( result, generic_api_namings1left,
generic_api_namings1right), rest671);
}
; ( 8, ( ( _, ( _, _, end_t1right)) ! ( _, ( values::QQ_OPTIONAL_LOCAL_PACKAGE_DECLARATIONS optional_local_package_declarations2, optional_local_package_declarations2left,
optional_local_package_declarations2right)) ! _ ! ( _, ( values::QQ_OPTIONAL_LOCAL_PACKAGE_DECLARATIONS optional_local_package_declarations1, optional_local_package_declarations1left,
optional_local_package_declarations1right)) ! ( _, ( _, local_t1left, _)) ! rest671)) => { my result = values::QQ_MODULE_DECLARATION (fn _ = { my optional_local_package_declarations1 =
optional_local_package_declarations1 ();
my optional_local_package_declarations2 = optional_local_package_declarations2 ();
(
LOCAL_DECLARATIONS (
note_declaration_location ( optional_local_package_declarations1,
optional_local_package_declarations1left,
optional_local_package_declarations1right
),
note_declaration_location ( optional_local_package_declarations2,
optional_local_package_declarations2left,
optional_local_package_declarations2right
)
)
);
} );
( lr_table::NONTERM 62, ( result, local_t1left, end_t1right), rest671);
}
; ( 9, ( rest671)) => { my result = values::QQ_OPTIONAL_LOCAL_PACKAGE_DECLARATIONS (fn _ = (SEQUENTIAL_DECLARATIONS []));
( lr_table::NONTERM 58, ( result, default_position, default_position
), rest671);
}
; ( 10, ( ( _, ( values::QQ_LOCAL_PACKAGE_DECLARATIONS local_package_declarations1, local_package_declarations1left, local_package_declarations1right)) ! rest671)) => { my result =
values::QQ_OPTIONAL_LOCAL_PACKAGE_DECLARATIONS (fn _ = { my (local_package_declarations as local_package_declarations1) = local_package_declarations1 ();
(local_package_declarations);
} );
(
lr_table::NONTERM 58, ( result, local_package_declarations1left, local_package_declarations1right), rest671);
}
; ( 11, ( ( _, ( _, _, suffix_semi1right)) ! ( _, ( values::QQ_MODULE_DECLARATION module_declaration1, module_declaration1left, _)) ! rest671)) => { my result =
values::QQ_LOCAL_PACKAGE_DECLARATIONS (fn _ = { my (module_declaration as module_declaration1) = module_declaration1 ();
(module_declaration);
} );
( lr_table::NONTERM 52, ( result,
module_declaration1left, suffix_semi1right), rest671);
}
; ( 12, ( ( _, ( values::QQ_LOCAL_PACKAGE_DECLARATIONS local_package_declarations1, _, local_package_declarations1right)) ! _ ! ( _, ( values::QQ_MODULE_DECLARATION module_declaration1, (
module_declarationleft as module_declaration1left), module_declarationright)) ! rest671)) => { my result = values::QQ_LOCAL_PACKAGE_DECLARATIONS (fn _ = { my (module_declaration as
module_declaration1) = module_declaration1 ();
my (local_package_declarations as local_package_declarations1) = local_package_declarations1 ();
(
make_declaration_sequence (
note_declaration_location (
module_declaration,
module_declarationleft,
module_declarationright
),
local_package_declarations
)
);
} );
( lr_table::NONTERM 52, ( result, module_declaration1left, local_package_declarations1right), rest671);
}
; ( 13, ( ( _, ( values::QQ_LOOSE_INFIX_EXPRESSION loose_infix_expression1, loose_infix_expression1left, loose_infix_expression1right)) ! rest671)) => { my result = values::QQ_EXPRESSION (fn
_ = { my (loose_infix_expression as loose_infix_expression1) = loose_infix_expression1 ();
(loose_infix_expression);
} );
( lr_table::NONTERM 31, ( result, loose_infix_expression1left,
loose_infix_expression1right), rest671);
}
; ( 14, ( ( _, ( _, _, end_t1right)) ! ( _, ( values::QQ_PATTERN_MATCH pattern_match1, _, _)) ! _ ! ( _, ( values::QQ_EXPRESSION expression1, expression1left, _)) ! rest671)) => { my
result = values::QQ_EXPRESSION (fn _ = { my (expression as expression1) = expression1 ();
my (pattern_match as pattern_match1) = pattern_match1 ();
(
EXCEPT_EXPRESSION { expression, rules=>pattern_match } );
} );
( lr_table::NONTERM 31, ( result, expression1left, end_t1right), rest671);
}
; ( 15, ( ( _, ( values::QQ_ANY_TYPE any_type1, _, any_type1right)) ! _ ! ( _, ( values::QQ_LOOSE_INFIX_EXPRESSION loose_infix_expression1, loose_infix_expression1left, _)) ! rest671)) =>
{ my result = values::QQ_EXPRESSION (fn _ = { my (loose_infix_expression as loose_infix_expression1) = loose_infix_expression1 ();
my (any_type as any_type1) = any_type1 ();
(
TYPE_CONSTRAINT_EXPRESSION { expression=>loose_infix_expression, constraint=>any_type } );
} );
( lr_table::NONTERM 31, ( result, loose_infix_expression1left, any_type1right), rest671);
}
; ( 16, ( ( _, ( values::QQ_EXPRESSION expression2, expression2left, expression2right)) ! _ ! ( _, ( values::QQ_EXPRESSION expression1, expression1left, expression1right)) ! rest671)) => {
my result = values::QQ_EXPRESSION (fn _ = { my expression1 = expression1 ();
my expression2 = expression2 ();
(
OR_EXPRESSION (
note_expression_location (expression1, expression1left, expression1right),
note_expression_location (expression2, expression2left, expression2right)
)
);
} );
( lr_table::NONTERM 31, ( result, expression1left, expression2right), rest671);
}
; ( 17, ( ( _, ( values::QQ_EXPRESSION expression2, expression2left, expression2right)) ! _ ! ( _, ( values::QQ_EXPRESSION expression1, expression1left, expression1right)) ! rest671)) => {
my result = values::QQ_EXPRESSION (fn _ = { my expression1 = expression1 ();
my expression2 = expression2 ();
(
AND_EXPRESSION (
note_expression_location (expression1, expression1left, expression1right),
note_expression_location (expression2, expression2left, expression2right)
)
);
} );
( lr_table::NONTERM 31, ( result, expression1left, expression2right), rest671);
}
; ( 18, ( ( _, ( _, _, (end_tright as end_t1right))) ! ( _, ( values::QQ_PATTERN_MATCH pattern_match1, _, _)) ! ( _, ( _, (fn_tleft as fn_t1left), _)) ! rest671)) => { my result =
values::QQ_EXPRESSION (fn _ = { my (pattern_match as pattern_match1) = pattern_match1 ();
(note_expression_location (FN_EXPRESSION pattern_match, fn_tleft, end_tright));
} );
(
lr_table::NONTERM 31, ( result, fn_t1left, end_t1right), rest671);
}
; ( 19, ( ( _, ( _, _, end_t1right)) ! ( _, ( values::QQ_PATTERN_MATCH pattern_match1, _, pattern_matchright)) ! _ ! ( _, ( values::QQ_EXPRESSION expression1, _, _)) ! ( _, ( _, (
case_tleft as case_t1left), _)) ! rest671)) => { my result = values::QQ_EXPRESSION (fn _ = { my (expression as expression1) = expression1 ();
my (pattern_match as pattern_match1) =
pattern_match1 ();
(note_expression_location (
CASE_EXPRESSION { expression, rules=>pattern_match },
case_tleft, pattern_matchright
) )
;
} );
( lr_table::NONTERM 31, ( result, case_t1left, end_t1right), rest671);
}
; ( 20, ( ( _, ( _, _, end_t1right)) ! ( _, ( values::QQ_BLOCK_CONTENTS block_contents1, block_contentsleft, block_contentsright)) ! _ ! ( _, ( values::QQ_EXPRESSION expression1,
expressionleft, expressionright)) ! ( _, ( _, while_t1left, _)) ! rest671)) => { my result = values::QQ_EXPRESSION (fn _ = { my (expression as expression1) = expression1 ();
my (
block_contents as block_contents1) = block_contents1 ();
(
WHILE_EXPRESSION
{ test => note_expression_location (expression, expressionleft, expressionright ),
expression => note_expression_location (block_contents, block_contentsleft, block_contentsright)
}
);
} );
( lr_table::NONTERM 31, ( result, while_t1left, end_t1right), rest671);
}
; ( 21, ( ( _, ( _, _, (end_tright as end_t1right))) ! ( _, ( values::QQ_OPTIONAL_LOCAL_DECLARATIONS_AND_EXPRESSIONS optional_local_declarations_and_expressions1,
optional_local_declarations_and_expressionsleft, optional_local_declarations_and_expressionsright)) ! _ ! ( _, ( values::QQ_EXPRESSION expression1, (expressionleft as expression1left),
expressionright)) ! rest671)) => { my result = values::QQ_EXPRESSION (fn _ = { my (expression as expression1) = expression1 ();
my (optional_local_declarations_and_expressions as
optional_local_declarations_and_expressions1) = optional_local_declarations_and_expressions1 ();
(
note_expression_location (
LET_EXPRESSION {
declaration => note_declaration_location (optional_local_declarations_and_expressions,
optional_local_declarations_and_expressionsleft,
optional_local_declarations_and_expressionsright),
expression => note_expression_location (expression, expressionleft, expressionright)
},
expressionleft, end_tright
)
);
} );
( lr_table::NONTERM 31, ( result, expression1left, end_t1right), rest671);
}
; ( 22, ( ( _, ( _, _, fi_t1right)) ! ( _, ( values::QQ_BLOCK_CONTENTS block_contents2, block_contents2left, block_contents2right)) ! _ ! ( _, ( values::QQ_BLOCK_CONTENTS block_contents1,
block_contents1left, block_contents1right)) ! _ ! ( _, ( values::QQ_EXPRESSION expression1, _, _)) ! ( _, ( _, if_t1left, _)) ! rest671)) => { my result = values::QQ_EXPRESSION (fn _ =
{ my expression1 = expression1 ();
my block_contents1 = block_contents1 ();
my block_contents2 = block_contents2 ();
(
IF_EXPRESSION
{ test_case => expression1,
then_case => note_expression_location (block_contents1, block_contents1left, block_contents1right),
else_case => note_expression_location (block_contents2, block_contents2left, block_contents2right)
}
);
} );
( lr_table::NONTERM 31, ( result, if_t1left, fi_t1right), rest671);
}
; ( 23, ( ( _, ( values::QQ_EXPRESSION expression3, expression3left, expression3right)) ! _ ! ( _, ( values::QQ_EXPRESSION expression2, expression2left, expression2right)) ! _ ! ( _, (
values::QQ_EXPRESSION expression1, expression1left, _)) ! rest671)) => { my result = values::QQ_EXPRESSION (fn _ = { my expression1 = expression1 ();
my expression2 = expression2 ();
my
expression3 = expression3 ();
(
IF_EXPRESSION
{ test_case => expression1,
then_case => note_expression_location (expression2, expression2left, expression2right),
else_case => note_expression_location (expression3, expression3left, expression3right)
}
);
} );
( lr_table::NONTERM 31, ( result, expression1left, expression3right), rest671);
}
; ( 24, ( ( _, ( values::QQ_EXPRESSION expression1, expressionleft, (expressionright as expression1right))) ! ( _, ( _, (raise_tleft as raise_t1left), _)) ! rest671)) => { my result =
values::QQ_EXPRESSION (fn _ = { my (expression as expression1) = expression1 ();
(
note_expression_location (
note_expression_location (RAISE_EXPRESSION expression, expressionleft, expressionright),
raise_tleft, expressionright
) );
} );
(
lr_table::NONTERM 31, ( result, raise_t1left, expression1right), rest671);
}
; ( 25, ( ( _, ( values::QQ_APPLY_EXPRESSION apply_expression1, apply_expression1left, apply_expression1right)) ! rest671)) => { my result = values::QQ_LOOSE_INFIX_EXPRESSION (fn _ = { my
(apply_expression as apply_expression1) = apply_expression1 ();
(apply_expression);
} );
( lr_table::NONTERM 100, ( result, apply_expression1left, apply_expression1right), rest671);
}
; ( 26, ( ( _, ( values::QQ_APPLY_EXPRESSION apply_expression1, _, apply_expression1right)) ! ( _, ( values::LOOSE_INFIX_OP loose_infix_op1, _, _)) ! ( _, (
values::QQ_LOOSE_INFIX_EXPRESSION loose_infix_expression1, loose_infix_expression1left, _)) ! rest671)) => { my result = values::QQ_LOOSE_INFIX_EXPRESSION (fn _ = { my (loose_infix_expression
as loose_infix_expression1) = loose_infix_expression1 ();
my (loose_infix_op as loose_infix_op1) = loose_infix_op1 ();
my (apply_expression as apply_expression1) = apply_expression1 ();
(
APPLY_EXPRESSION { function=>VARIABLE_IN_EXPRESSION [make_value_symbol loose_infix_op],
argument=>TUPLE_EXPRESSION [loose_infix_expression, apply_expression]
}
);
} );
( lr_table::NONTERM 100, ( result, loose_infix_expression1left, apply_expression1right), rest671);
}
; ( 27, ( ( _, ( values::QQ_INFIX_EXPRESSION infix_expression1, infix_expression1left, infix_expression1right)) ! rest671)) => { my result = values::QQ_APPLY_EXPRESSION (fn _ = { my (
infix_expression as infix_expression1) = infix_expression1 ();
(infix_expression);
} );
( lr_table::NONTERM 99, ( result, infix_expression1left, infix_expression1right), rest671);
}
; ( 28, ( ( _, ( values::QQ_INFIX_EXPRESSION infix_expression1, _, infix_expression1right)) ! ( _, ( values::QQ_APPLY_EXPRESSION apply_expression1, apply_expression1left, _)) ! rest671)) =>
{ my result = values::QQ_APPLY_EXPRESSION (fn _ = { my (apply_expression as apply_expression1) = apply_expression1 ();
my (infix_expression as infix_expression1) = infix_expression1 ();
(
APPLY_EXPRESSION { function=>apply_expression,
argument=>infix_expression
}
);
} );
( lr_table::NONTERM 99, ( result, apply_expression1left, infix_expression1right), rest671);
}
; ( 29, ( ( _, ( values::QQ_SUFFIX_EXPRESSION suffix_expression1, suffix_expression1left, suffix_expression1right)) ! rest671)) => { my result = values::QQ_INFIX_EXPRESSION (fn _ = { my (
suffix_expression as suffix_expression1) = suffix_expression1 ();
(suffix_expression);
} );
( lr_table::NONTERM 98, ( result, suffix_expression1left, suffix_expression1right), rest671);
}
; ( 30, ( ( _, ( values::QQ_SUFFIX_EXPRESSION suffix_expression1, _, suffix_expression1right)) ! ( _, ( values::TIGHT_INFIX_OP tight_infix_op1, _, _)) ! ( _, ( values::QQ_INFIX_EXPRESSION
infix_expression1, infix_expression1left, _)) ! rest671)) => { my result = values::QQ_INFIX_EXPRESSION (fn _ = { my (infix_expression as infix_expression1) = infix_expression1 ();
my (
tight_infix_op as tight_infix_op1) = tight_infix_op1 ();
my (suffix_expression as suffix_expression1) = suffix_expression1 ();
(
APPLY_EXPRESSION { function=>VARIABLE_IN_EXPRESSION [make_value_symbol tight_infix_op],
argument=>TUPLE_EXPRESSION [infix_expression, suffix_expression]
}
);
} );
( lr_table::NONTERM 98, ( result, infix_expression1left, suffix_expression1right), rest671);
}
; ( 31, ( ( _, ( values::QQ_PREFIX_EXPRESSION prefix_expression1, prefix_expression1left, prefix_expression1right)) ! rest671)) => { my result = values::QQ_SUFFIX_EXPRESSION (fn _ = { my (
prefix_expression as prefix_expression1) = prefix_expression1 ();
(prefix_expression);
} );
( lr_table::NONTERM 96, ( result, prefix_expression1left, prefix_expression1right), rest671);
}
; ( 32, ( ( _, ( values::SUFFIX_OP suffix_op1, _, suffix_op1right)) ! ( _, ( values::QQ_SUFFIX_EXPRESSION suffix_expression1, suffix_expression1left, _)) ! rest671)) => { my result =
values::QQ_SUFFIX_EXPRESSION (fn _ = { my (suffix_expression as suffix_expression1) = suffix_expression1 ();
my (suffix_op as suffix_op1) = suffix_op1 ();
(
APPLY_EXPRESSION { function=>VARIABLE_IN_EXPRESSION [make_value_symbol suffix_op],
argument=>suffix_expression
}
);
} );
( lr_table::NONTERM 96, ( result, suffix_expression1left, suffix_op1right), rest671);
}
; ( 33, ( ( _, ( values::QQ_TYPED_EXPRESSION typed_expression1, typed_expression1left, typed_expression1right)) ! rest671)) => { my result = values::QQ_PREFIX_EXPRESSION (fn _ = { my (
typed_expression as typed_expression1) = typed_expression1 ();
(typed_expression);
} );
( lr_table::NONTERM 97, ( result, typed_expression1left, typed_expression1right), rest671);
}
; ( 34, ( ( _, ( values::QQ_PREFIX_EXPRESSION prefix_expression1, _, prefix_expression1right)) ! ( _, ( values::PREFIX_OP prefix_op1, prefix_op1left, _)) ! rest671)) => { my result =
values::QQ_PREFIX_EXPRESSION (fn _ = { my (prefix_op as prefix_op1) = prefix_op1 ();
my (prefix_expression as prefix_expression1) = prefix_expression1 ();
(
APPLY_EXPRESSION { function=>VARIABLE_IN_EXPRESSION [make_value_symbol prefix_op],
argument=>prefix_expression
}
);
} );
( lr_table::NONTERM 97, ( result, prefix_op1left, prefix_expression1right), rest671);
}
; ( 35, ( ( _, ( values::QQ_EXPRESSION_ELEMENT expression_element1, expression_element1left, expression_element1right)) ! rest671)) => { my result = values::QQ_TYPED_EXPRESSION (fn _ = {
my (expression_element as expression_element1) = expression_element1 ();
(expression_element);
} );
( lr_table::NONTERM 95, ( result, expression_element1left, expression_element1right),
rest671);
}
; ( 36, ( ( _, ( values::QQ_EXPRESSION_ELEMENT expression_element1, _, expression_element1right)) ! ( _, ( values::TYPE_ID type_id1, type_id1left, _)) ! rest671)) => { my result =
values::QQ_TYPED_EXPRESSION (fn _ = { my (type_id as type_id1) = type_id1 ();
my (expression_element as expression_element1) = expression_element1 ();
(
TYPE_CONSTRAINT_EXPRESSION { expression=>expression_element, constraint=>TYP_TYPE ([make_type_symbol type_id], []) } );
} );
( lr_table::NONTERM 95, ( result, type_id1left,
expression_element1right), rest671);
}
; ( 37, ( ( _, ( values::QQ_VALUE_ID value_id1, value_id1left, value_id1right)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _ = { my (value_id as value_id1) = value_id1
();
(VARIABLE_IN_EXPRESSION ([ make_value_symbol value_id ] ));
} );
( lr_table::NONTERM 81, ( result, value_id1left, value_id1right), rest671);
}
; ( 38, ( ( _, ( _, _, end_t1right)) ! ( _, ( values::QQ_BLOCK_CONTENTS block_contents1, _, _)) ! ( _, ( _, begin_t1left, _)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT
(fn _ = { my (block_contents as block_contents1) = block_contents1 ();
(block_contents);
} );
( lr_table::NONTERM 81, ( result, begin_t1left, end_t1right), rest671);
}
; ( 39, ( ( _, ( values::UNT unt1, unt1left, unt1right)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _ = { my (unt as unt1) = unt1 ();
(UNT_CONSTANT_IN_EXPRESSION unt)
;
} );
( lr_table::NONTERM 81, ( result, unt1left, unt1right), rest671);
}
; ( 40, ( ( _, ( values::REAL real1, real1left, real1right)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _ = { my (real as real1) = real1 ();
(
FLOAT_CONSTANT_IN_EXPRESSION real);
} );
( lr_table::NONTERM 81, ( result, real1left, real1right), rest671);
}
; ( 41, ( ( _, ( values::STRING string1, string1left, string1right)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _ = { my (string as string1) = string1 ();
(
STRING_CONSTANT_IN_EXPRESSION string);
} );
( lr_table::NONTERM 81, ( result, string1left, string1right), rest671);
}
; ( 42, ( ( _, ( values::CHAR char1, char1left, char1right)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _ = { my (char as char1) = char1 ();
(
CHAR_CONSTANT_IN_EXPRESSION char);
} );
( lr_table::NONTERM 81, ( result, char1left, char1right), rest671);
}
; ( 43, ( ( _, ( values::QQ_INT int1, int1left, int1right)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _ = { my (int as int1) = int1 ();
(
INT_CONSTANT_IN_EXPRESSION int);
} );
( lr_table::NONTERM 81, ( result, int1left, int1right), rest671);
}
; ( 44, ( ( _, ( values::CONSTRUCTOR_ID constructor_id1, constructor_id1left, constructor_id1right)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _ = { my (constructor_id
as constructor_id1) = constructor_id1 ();
(VARIABLE_IN_EXPRESSION ([ make_value_symbol constructor_id ] ));
} );
( lr_table::NONTERM 81, ( result, constructor_id1left, constructor_id1right),
rest671);
}
; ( 45, ( ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1, _, qualified_value_id1right)) ! _ ! ( _, ( values::QQ_VALUE_ID value_id1, value_id1left, _)) ! rest671)) => { my result
= values::QQ_EXPRESSION_ELEMENT (fn _ = { my (value_id as value_id1) = value_id1 ();
my (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
(
VARIABLE_IN_EXPRESSION (make_package_symbol value_id ! qualified_value_id make_value_symbol));
} );
( lr_table::NONTERM 81, ( result, value_id1left, qualified_value_id1right), rest671);
}
; ( 46, ( ( _, ( values::QQ_QUALIFIED_CONSTRUCTOR_ID qualified_constructor_id1, _, qualified_constructor_id1right)) ! _ ! ( _, ( values::QQ_VALUE_ID value_id1, value_id1left, _)) ! rest671)
) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _ = { my (value_id as value_id1) = value_id1 ();
my (qualified_constructor_id as qualified_constructor_id1) = qualified_constructor_id1 ()
;
(VARIABLE_IN_EXPRESSION (make_package_symbol value_id ! qualified_constructor_id make_value_symbol));
} );
( lr_table::NONTERM 81, ( result, value_id1left, qualified_constructor_id1right)
, rest671);
}
; ( 47, ( ( _, ( values::QQ_SELECTOR selector1, _, (selectorright as selector1right))) ! ( _, ( _, (prefix_dotleft as prefix_dot1left), _)) ! rest671)) => { my result =
values::QQ_EXPRESSION_ELEMENT (fn _ = { my (selector as selector1) = selector1 ();
(note_expression_location (RECORD_SELECTOR_EXPRESSION selector, prefix_dotleft, selectorright));
} );
(
lr_table::NONTERM 81, ( result, prefix_dot1left, selector1right), rest671);
}
; ( 48, ( ( _, ( _, _, loose_infix_rbrace1right)) ! ( _, ( _, loose_infix_lbrace1left, _)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _ = (RECORD_IN_EXPRESSION NIL))
;
( lr_table::NONTERM 81, ( result, loose_infix_lbrace1left, loose_infix_rbrace1right), rest671);
}
; ( 49, ( ( _, ( _, _, loose_infix_rbracket1right)) ! ( _, ( _, loose_infix_lbracket1left, _)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _ = (LIST_EXPRESSION NIL
));
( lr_table::NONTERM 81, ( result, loose_infix_lbracket1left, loose_infix_rbracket1right), rest671);
}
; ( 50, ( ( _, ( _, _, rparen1right)) ! ( _, ( _, lparen1left, _)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _ = (void_expression));
( lr_table::NONTERM 81, (
result, lparen1left, rparen1right), rest671);
}
; ( 51, ( ( _, ( _, _, loose_infix_rbracket1right)) ! ( _, ( _, loose_infix_lvector1left, _)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _ = (
VECTOR_IN_EXPRESSION NIL));
( lr_table::NONTERM 81, ( result, loose_infix_lvector1left, loose_infix_rbracket1right), rest671);
}
; ( 52, ( ( _, ( _, _, (loose_infix_rbraceright as loose_infix_rbrace1right))) ! ( _, ( values::QQ_RECORD_CONTENTS record_contents1, _, _)) ! ( _, ( _, (loose_infix_lbraceleft as
loose_infix_lbrace1left), _)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _ = { my (record_contents as record_contents1) = record_contents1 ();
(
note_expression_location (RECORD_IN_EXPRESSION record_contents, loose_infix_lbraceleft, loose_infix_rbraceright));
} );
( lr_table::NONTERM 81, ( result, loose_infix_lbrace1left,
loose_infix_rbrace1right), rest671);
}
; ( 53, ( ( _, ( _, _, rparen1right)) ! ( _, ( values::QQ_EXPRESSION expression1, _, _)) ! ( _, ( _, lparen1left, _)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _
= { my (expression as expression1) = expression1 ();
(expression);
} );
( lr_table::NONTERM 81, ( result, lparen1left, rparen1right), rest671);
}
; ( 54, ( ( _, ( _, _, rparen1right)) ! ( _, ( values::QQ_TUPLE_CONTENTS tuple_contents1, _, _)) ! ( _, ( _, lparen1left, _)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT
(fn _ = { my (tuple_contents as tuple_contents1) = tuple_contents1 ();
(TUPLE_EXPRESSION tuple_contents);
} );
( lr_table::NONTERM 81, ( result, lparen1left, rparen1right), rest671)
;
}
; ( 55, ( ( _, ( _, _, suffix_slash1right)) ! ( _, ( values::QQ_TUPLE_CONTENTS tuple_contents1, _, _)) ! ( _, ( _, prefix_slash1left, _)) ! rest671)) => { my result =
values::QQ_EXPRESSION_ELEMENT (fn _ = { my (tuple_contents as tuple_contents1) = tuple_contents1 ();
(TUPLE_EXPRESSION tuple_contents);
} );
( lr_table::NONTERM 81, ( result,
prefix_slash1left, suffix_slash1right), rest671);
}
; ( 56, ( ( _, ( _, _, suffix_bar1right)) ! ( _, ( values::QQ_TUPLE_CONTENTS tuple_contents1, _, _)) ! ( _, ( _, prefix_bar1left, _)) ! rest671)) => { my result =
values::QQ_EXPRESSION_ELEMENT (fn _ = { my (tuple_contents as tuple_contents1) = tuple_contents1 ();
(TUPLE_EXPRESSION tuple_contents);
} );
( lr_table::NONTERM 81, ( result,
prefix_bar1left, suffix_bar1right), rest671);
}
; ( 57, ( ( _, ( _, _, suffix_rangle1right)) ! ( _, ( values::QQ_TUPLE_CONTENTS tuple_contents1, _, _)) ! ( _, ( _, prefix_langle1left, _)) ! rest671)) => { my result =
values::QQ_EXPRESSION_ELEMENT (fn _ = { my (tuple_contents as tuple_contents1) = tuple_contents1 ();
(TUPLE_EXPRESSION tuple_contents);
} );
( lr_table::NONTERM 81, ( result,
prefix_langle1left, suffix_rangle1right), rest671);
}
; ( 58, ( ( _, ( _, _, suffix_rbrace1right)) ! ( _, ( values::QQ_TUPLE_CONTENTS tuple_contents1, _, _)) ! ( _, ( _, prefix_lbrace1left, _)) ! rest671)) => { my result =
values::QQ_EXPRESSION_ELEMENT (fn _ = { my (tuple_contents as tuple_contents1) = tuple_contents1 ();
(TUPLE_EXPRESSION tuple_contents);
} );
( lr_table::NONTERM 81, ( result,
prefix_lbrace1left, suffix_rbrace1right), rest671);
}
; ( 59, ( ( _, ( _, _, suffix_rbracket1right)) ! ( _, ( values::QQ_TUPLE_CONTENTS tuple_contents1, _, _)) ! ( _, ( _, prefix_lbracket1left, _)) ! rest671)) => { my result =
values::QQ_EXPRESSION_ELEMENT (fn _ = { my (tuple_contents as tuple_contents1) = tuple_contents1 ();
(TUPLE_EXPRESSION tuple_contents);
} );
( lr_table::NONTERM 81, ( result,
prefix_lbracket1left, suffix_rbracket1right), rest671);
}
; ( 60, ( ( _, ( _, _, loose_infix_rbracket1right)) ! ( _, ( values::QQ_LIST_CONTENTS list_contents1, _, _)) ! ( _, ( _, loose_infix_lbracket1left, _)) ! rest671)) => { my result =
values::QQ_EXPRESSION_ELEMENT (fn _ = { my (list_contents as list_contents1) = list_contents1 ();
(LIST_EXPRESSION list_contents);
} );
( lr_table::NONTERM 81, ( result,
loose_infix_lbracket1left, loose_infix_rbracket1right), rest671);
}
; ( 61, ( ( _, ( _, _, loose_infix_rbracket1right)) ! ( _, ( values::QQ_LIST_CONTENTS list_contents1, _, _)) ! ( _, ( _, loose_infix_lvector1left, _)) ! rest671)) => { my result =
values::QQ_EXPRESSION_ELEMENT (fn _ = { my (list_contents as list_contents1) = list_contents1 ();
(VECTOR_IN_EXPRESSION list_contents);
} );
( lr_table::NONTERM 81, ( result,
loose_infix_lvector1left, loose_infix_rbracket1right), rest671);
}
; ( 62, ( ( _, ( values::ANTIQUOTE_ID antiquote_id1, antiquote_id1left, antiquote_id1right)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _ = { my (antiquote_id as
antiquote_id1) = antiquote_id1 ();
(VARIABLE_IN_EXPRESSION ( [ make_value_symbol antiquote_id ] ) );
} );
( lr_table::NONTERM 81, ( result, antiquote_id1left, antiquote_id1right), rest671);
}
; ( 63, ( ( _, ( values::QQ_BACKQUOTATION backquotation1, backquotation1left, backquotation1right)) ! rest671)) => { my result = values::QQ_EXPRESSION_ELEMENT (fn _ = { my (backquotation
as backquotation1) = backquotation1 ();
(LIST_EXPRESSION backquotation);
} );
( lr_table::NONTERM 81, ( result, backquotation1left, backquotation1right), rest671);
}
; ( 64, ( ( _, ( values::INT int1, int1left, int1right)) ! rest671)) => { my result = values::QQ_INT (fn _ = { my (int as int1) = int1 ();
(int);
} );
( lr_table::NONTERM 46, ( result
, int1left, int1right), rest671);
}
; ( 65, ( ( _, ( values::INT0 int01, int01left, int01right)) ! rest671)) => { my result = values::QQ_INT (fn _ = { my (int0 as int01) = int01 ();
(int0);
} );
( lr_table::NONTERM 46, (
result, int01left, int01right), rest671);
}
; ( 66, ( ( _, ( values::VALUE_ID value_id1, value_id1left, value_id1right)) ! rest671)) => { my result = values::QQ_VALUE_ID (fn _ = { my (value_id as value_id1) = value_id1 ();
(
value_id);
} );
( lr_table::NONTERM 44, ( result, value_id1left, value_id1right), rest671);
}
; ( 67, ( ( _, ( _, api_t1left, api_t1right)) ! rest671)) => { my result = values::QQ_VALUE_ID (fn _ = (raw_symbol ( api_hash, api_string)));
( lr_table::NONTERM 44, (
result, api_t1left, api_t1right), rest671);
}
; ( 68, ( ( _, ( _, macro1left, macro1right)) ! rest671)) => { my result = values::QQ_VALUE_ID (fn _ = (raw_symbol ( macro_hash, macro_string)));
( lr_table::NONTERM 44, (
result, macro1left, macro1right), rest671);
}
; ( 69, ( ( _, ( _, opaque1left, opaque1right)) ! rest671)) => { my result = values::QQ_VALUE_ID (fn _ = (raw_symbol ( opaque_hash, opaque_string)));
( lr_table::NONTERM 44, (
result, opaque1left, opaque1right), rest671);
}
; ( 70, ( ( _, ( _, package_t1left, package_t1right)) ! rest671)) => { my result = values::QQ_VALUE_ID (fn _ = (raw_symbol ( package_hash, package_string)));
( lr_table::NONTERM 44,
( result, package_t1left, package_t1right), rest671);
}
; ( 71, ( ( _, ( _, transparent1left, transparent1right)) ! rest671)) => { my result = values::QQ_VALUE_ID (fn _ = (raw_symbol (transparent_hash, transparent_string)));
( lr_table::NONTERM
44, ( result, transparent1left, transparent1right), rest671);
}
; ( 72, ( ( _, ( values::CONSTRUCTOR_ID constructor_id1, constructor_id1left, constructor_id1right)) ! rest671)) => { my result = values::QQ_QUALIFIED_CONSTRUCTOR_ID (fn _ = { my (
constructor_id as constructor_id1) = constructor_id1 ();
(fn kind = [kind constructor_id]);
} );
( lr_table::NONTERM 22, ( result, constructor_id1left, constructor_id1right), rest671);
}
; ( 73, ( ( _, ( values::QQ_QUALIFIED_CONSTRUCTOR_ID qualified_constructor_id1, _, qualified_constructor_id1right)) ! _ ! ( _, ( values::VALUE_ID value_id1, value_id1left, _)) ! rest671))
=> { my result = values::QQ_QUALIFIED_CONSTRUCTOR_ID (fn _ = { my (value_id as value_id1) = value_id1 ();
my (qualified_constructor_id as qualified_constructor_id1) =
qualified_constructor_id1 ();
(fn kind = make_package_symbol value_id ! qualified_constructor_id kind);
} );
( lr_table::NONTERM 22, ( result, value_id1left, qualified_constructor_id1right)
, rest671);
}
; ( 74, ( ( _, ( values::TYPE_ID type_id1, type_id1left, type_id1right)) ! rest671)) => { my result = values::QQ_QUALIFIED_TYPE_ID (fn _ = { my (type_id as type_id1) = type_id1 ();
(
fn kind = [kind type_id]);
} );
( lr_table::NONTERM 23, ( result, type_id1left, type_id1right), rest671);
}
; ( 75, ( ( _, ( values::QQ_QUALIFIED_TYPE_ID qualified_type_id1, _, qualified_type_id1right)) ! _ ! ( _, ( values::VALUE_ID value_id1, value_id1left, _)) ! rest671)) => { my result =
values::QQ_QUALIFIED_TYPE_ID (fn _ = { my (value_id as value_id1) = value_id1 ();
my (qualified_type_id as qualified_type_id1) = qualified_type_id1 ();
(
fn kind = make_package_symbol value_id ! qualified_type_id kind);
} );
( lr_table::NONTERM 23, ( result, value_id1left, qualified_type_id1right), rest671);
}
; ( 76, ( ( _, ( values::QQ_VALUE_ID value_id1, value_id1left, value_id1right)) ! rest671)) => { my result = values::QQ_QUALIFIED_VALUE_ID (fn _ = { my (value_id as value_id1) = value_id1
();
(fn kind = [kind value_id]);
} );
( lr_table::NONTERM 24, ( result, value_id1left, value_id1right), rest671);
}
; ( 77, ( ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1, _, qualified_value_id1right)) ! _ ! ( _, ( values::VALUE_ID value_id1, value_id1left, _)) ! rest671)) => { my result =
values::QQ_QUALIFIED_VALUE_ID (fn _ = { my (value_id as value_id1) = value_id1 ();
my (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
(
fn kind = make_package_symbol value_id ! qualified_value_id kind);
} );
( lr_table::NONTERM 24, ( result, value_id1left, qualified_value_id1right), rest671);
}
; ( 78, ( ( _, ( values::QQ_VALUE_ID value_id1, value_id1left, value_id1right)) ! rest671)) => { my result = values::QQ_SELECTOR (fn _ = { my (value_id as value_id1) = value_id1 ();
(
make_label_symbol value_id);
} );
( lr_table::NONTERM 78, ( result, value_id1left, value_id1right), rest671);
}
; ( 79, ( ( _, ( values::INT int1, int1left, int1right)) ! rest671)) => { my result = values::QQ_SELECTOR (fn _ = { my (int as int1) = int1 ();
(
symbol::make_label_symbol (multiword_int::to_string int));
} );
( lr_table::NONTERM 78, ( result, int1left, int1right), rest671);
}
; ( 80, ( ( _, ( values::VALUE_ID value_id1, value_id1left, value_id1right)) ! rest671)) => { my result = values::QQ_ID (fn _ = { my (value_id as value_id1) = value_id1 ();
(value_id)
;
} );
( lr_table::NONTERM 43, ( result, value_id1left, value_id1right), rest671);
}
; ( 81, ( ( _, ( values::QQ_TUPLE_CONTENTS tuple_contents1, _, tuple_contents1right)) ! _ ! ( _, ( values::QQ_EXPRESSION expression1, expression1left, _)) ! rest671)) => { my result =
values::QQ_TUPLE_CONTENTS (fn _ = { my (expression as expression1) = expression1 ();
my (tuple_contents as tuple_contents1) = tuple_contents1 ();
(expression ! tuple_contents);
} );
(
lr_table::NONTERM 87, ( result, expression1left, tuple_contents1right), rest671);
}
; ( 82, ( ( _, ( values::QQ_EXPRESSION expression2, _, expression2right)) ! _ ! ( _, ( values::QQ_EXPRESSION expression1, expression1left, _)) ! rest671)) => { my result =
values::QQ_TUPLE_CONTENTS (fn _ = { my expression1 = expression1 ();
my expression2 = expression2 ();
( [ expression1, expression2 ] );
} );
( lr_table::NONTERM 87, ( result,
expression1left, expression2right), rest671);
}
; ( 83, ( ( _, ( values::QQ_RECORD_CONTENTS record_contents1, _, record_contents1right)) ! _ ! ( _, ( values::QQ_RECORD_ELEMENT record_element1, record_element1left, _)) ! rest671)) => {
my result = values::QQ_RECORD_CONTENTS (fn _ = { my (record_element as record_element1) = record_element1 ();
my (record_contents as record_contents1) = record_contents1 ();
(
record_element ! record_contents);
} );
( lr_table::NONTERM 72, ( result, record_element1left, record_contents1right), rest671);
}
; ( 84, ( ( _, ( values::QQ_RECORD_ELEMENT record_element1, record_element1left, record_element1right)) ! rest671)) => { my result = values::QQ_RECORD_CONTENTS (fn _ = { my (record_element
as record_element1) = record_element1 ();
([ record_element ]);
} );
( lr_table::NONTERM 72, ( result, record_element1left, record_element1right), rest671);
}
; ( 85, ( ( _, ( values::QQ_EXPRESSION expression1, _, expression1right)) ! _ ! ( _, ( values::QQ_SELECTOR selector1, selector1left, _)) ! rest671)) => { my result =
values::QQ_RECORD_ELEMENT (fn _ = { my (selector as selector1) = selector1 ();
my (expression as expression1) = expression1 ();
(selector, expression);
} );
( lr_table::NONTERM 73, ( result
, selector1left, expression1right), rest671);
}
; ( 86, ( ( _, ( values::QQ_EXPRESSION expression1, expression1left, expression1right)) ! rest671)) => { my result = values::QQ_LIST_CONTENTS (fn _ = { my (expression as expression1) =
expression1 ();
( [ expression ] );
} );
( lr_table::NONTERM 47, ( result, expression1left, expression1right), rest671);
}
; ( 87, ( ( _, ( values::QQ_LIST_CONTENTS list_contents1, _, list_contents1right)) ! _ ! ( _, ( values::QQ_EXPRESSION expression1, expression1left, _)) ! rest671)) => { my result =
values::QQ_LIST_CONTENTS (fn _ = { my (expression as expression1) = expression1 ();
my (list_contents as list_contents1) = list_contents1 ();
(expression ! list_contents);
} );
(
lr_table::NONTERM 47, ( result, expression1left, list_contents1right), rest671);
}
; ( 88, ( ( _, ( values::ENDQ endq1, _, endq1right)) ! ( _, ( _, beginq1left, _)) ! rest671)) => { my result = values::QQ_BACKQUOTATION (fn _ = { my (endq as endq1) = endq1 ();
(
[ quote_expression endq ] );
} );
( lr_table::NONTERM 6, ( result, beginq1left, endq1right), rest671);
}
; ( 89, ( ( _, ( values::ENDQ endq1, _, endq1right)) ! ( _, ( values::QQ_BACKQUOTATION_CONTENTS backquotation_contents1, _, _)) ! ( _, ( _, beginq1left, _)) ! rest671)) => { my result
= values::QQ_BACKQUOTATION (fn _ = { my (backquotation_contents as backquotation_contents1) = backquotation_contents1 ();
my (endq as endq1) = endq1 ();
(
backquotation_contents @ [ quote_expression endq ] );
} );
( lr_table::NONTERM 6, ( result, beginq1left, endq1right), rest671);
}
; ( 90, ( ( _, ( values::QQ_EXPRESSION_ELEMENT expression_element1, _, expression_element1right)) ! ( _, ( values::CHUNKL chunkl1, chunkl1left, _)) ! rest671)) => { my result =
values::QQ_BACKQUOTATION_CONTENTS (fn _ = { my (chunkl as chunkl1) = chunkl1 ();
my (expression_element as expression_element1) = expression_element1 ();
(
[ quote_expression chunkl, antiquote_expression expression_element ] );
} );
( lr_table::NONTERM 7, ( result, chunkl1left, expression_element1right), rest671);
}
; ( 91, ( ( _, ( values::QQ_BACKQUOTATION_CONTENTS backquotation_contents1, _, backquotation_contents1right)) ! ( _, ( values::QQ_EXPRESSION_ELEMENT expression_element1, _, _)) ! ( _, (
values::CHUNKL chunkl1, chunkl1left, _)) ! rest671)) => { my result = values::QQ_BACKQUOTATION_CONTENTS (fn _ = { my (chunkl as chunkl1) = chunkl1 ();
my (expression_element as
expression_element1) = expression_element1 ();
my (backquotation_contents as backquotation_contents1) = backquotation_contents1 ();
(
quote_expression chunkl
!
antiquote_expression expression_element
!
backquotation_contents
);
} );
( lr_table::NONTERM 7, ( result, chunkl1left, backquotation_contents1right), rest671);
}
; ( 92, ( rest671)) => { my result = values::QQ_OPTIONAL_LOCAL_DECLARATIONS_AND_EXPRESSIONS (fn _ = (SEQUENTIAL_DECLARATIONS NIL));
( lr_table::NONTERM 57, ( result, default_position,
default_position), rest671);
}
; ( 93, ( ( _, ( values::QQ_LOCAL_DECLARATIONS_AND_EXPRESSIONS local_declarations_and_expressions1, local_declarations_and_expressions1left, local_declarations_and_expressions1right)) ! rest671)
) => { my result = values::QQ_OPTIONAL_LOCAL_DECLARATIONS_AND_EXPRESSIONS (fn _ = { my (local_declarations_and_expressions as local_declarations_and_expressions1) =
local_declarations_and_expressions1 ();
(local_declarations_and_expressions);
} );
( lr_table::NONTERM 57, ( result, local_declarations_and_expressions1left,
local_declarations_and_expressions1right), rest671);
}
; ( 94, ( ( _, ( _, _, suffix_semi1right)) ! ( _, ( values::QQ_LOCAL_DECLARATION_OR_EXPRESSION local_declaration_or_expression1, local_declaration_or_expression1left, _)) ! rest671)) => {
my result = values::QQ_LOCAL_DECLARATIONS_AND_EXPRESSIONS (fn _ = { my (local_declaration_or_expression as local_declaration_or_expression1) = local_declaration_or_expression1 ();
(
local_declaration_or_expression);
} );
( lr_table::NONTERM 51, ( result, local_declaration_or_expression1left, suffix_semi1right), rest671);
}
; ( 95, ( ( _, ( values::QQ_LOCAL_DECLARATIONS_AND_EXPRESSIONS local_declarations_and_expressions1, _, local_declarations_and_expressions1right)) ! _ ! ( _, (
values::QQ_LOCAL_DECLARATION_OR_EXPRESSION local_declaration_or_expression1, (local_declaration_or_expressionleft as local_declaration_or_expression1left), local_declaration_or_expressionright)) !
rest671)) => { my result = values::QQ_LOCAL_DECLARATIONS_AND_EXPRESSIONS (fn _ = { my (local_declaration_or_expression as local_declaration_or_expression1) = local_declaration_or_expression1 ()
;
my (local_declarations_and_expressions as local_declarations_and_expressions1) = local_declarations_and_expressions1 ();
(
make_declaration_sequence (note_declaration_location ( local_declaration_or_expression,
local_declaration_or_expressionleft,
local_declaration_or_expressionright
),
local_declarations_and_expressions
)
);
} );
( lr_table::NONTERM 51, ( result, local_declaration_or_expression1left, local_declarations_and_expressions1right), rest671);
}
; ( 96, ( ( _, ( _, _, suffix_semi1right)) ! ( _, ( _, _, end_tright)) ! ( _, ( values::QQ_OPTIONAL_LOCAL_DECLARATIONS_AND_EXPRESSIONS optional_local_declarations_and_expressions2,
optional_local_declarations_and_expressions2left, optional_local_declarations_and_expressions2right)) ! _ ! ( _, ( values::QQ_OPTIONAL_LOCAL_DECLARATIONS_AND_EXPRESSIONS
optional_local_declarations_and_expressions1, optional_local_declarations_and_expressions1left, optional_local_declarations_and_expressions1right)) ! ( _, ( _, (local_tleft as local_t1left), _))
! rest671)) => { my result = values::QQ_LOCAL_DECLARATIONS_AND_EXPRESSIONS (fn _ = { my optional_local_declarations_and_expressions1 = optional_local_declarations_and_expressions1 ();
my
optional_local_declarations_and_expressions2 = optional_local_declarations_and_expressions2 ();
(
note_declaration_location (
LOCAL_DECLARATIONS (
note_declaration_location (optional_local_declarations_and_expressions1,
optional_local_declarations_and_expressions1left,
optional_local_declarations_and_expressions1right),
note_declaration_location (optional_local_declarations_and_expressions2,
optional_local_declarations_and_expressions2left,
optional_local_declarations_and_expressions2right)
),
local_tleft,
end_tright
)
);
} );
( lr_table::NONTERM 51, ( result, local_t1left, suffix_semi1right), rest671);
}
; ( 97, ( ( _, ( values::QQ_LOCAL_DECLARATION local_declaration1, local_declaration1left, local_declaration1right)) ! rest671)) => { my result = values::QQ_LOCAL_DECLARATION_OR_EXPRESSION (fn
_ = { my (local_declaration as local_declaration1) = local_declaration1 ();
(local_declaration);
} );
( lr_table::NONTERM 49, ( result, local_declaration1left, local_declaration1right),
rest671);
}
; ( 98, ( ( _, ( values::QQ_EXPRESSION expression1, _, (expressionright as expression1right))) ! _ ! ( _, ( values::VALUE_ID value_id1, (value_idleft as value_id1left), _)) ! rest671)) =>
{ my result = values::QQ_LOCAL_DECLARATION_OR_EXPRESSION (fn _ = { my (value_id as value_id1) = value_id1 ();
my (expression as expression1) = expression1 ();
(
note_declaration_location (
VALUE_DECLARATIONS (
[ NAMED_VALUE {
expression,
pattern => (VARIABLE_IN_PATTERN [make_value_symbol value_id]),
is_lazy => FALSE
}
],
NIL
),
value_idleft,
expressionright
)
);
} );
( lr_table::NONTERM 49, ( result, value_id1left, expression1right), rest671);
}
; ( 99, ( ( _, ( values::QQ_EXPRESSION expression1, (expressionleft as expression1left), (expressionright as expression1right))) ! rest671)) => { my result =
values::QQ_LOCAL_DECLARATION_OR_EXPRESSION (fn _ = { my (expression as expression1) = expression1 ();
(
note_declaration_location (
VALUE_DECLARATIONS (
[ NAMED_VALUE {
expression,
pattern => WILDCARD_PATTERN,
is_lazy => FALSE
}
],
NIL
),
expressionleft,
expressionright
)
);
} );
( lr_table::NONTERM 49, ( result, expression1left, expression1right), rest671);
}
; ( 100, ( ( _, ( values::QQ_NAMED_VALUE named_value1, named_value1left, named_value1right)) ! rest671)) => { my result = values::QQ_LOCAL_DECLARATION (fn _ = { my (named_value as
named_value1) = named_value1 ();
(VALUE_DECLARATIONS (named_value, NIL));
} );
( lr_table::NONTERM 48, ( result, named_value1left, named_value1right), rest671);
}
; ( 101, ( ( _, ( values::QQ_NAMED_RECURSIVE_VALUES named_recursive_values1, named_recursive_values1left, named_recursive_values1right)) ! rest671)) => { my result =
values::QQ_LOCAL_DECLARATION (fn _ = { my (named_recursive_values as named_recursive_values1) = named_recursive_values1 ();
(RECURSIVE_VALUE_DECLARATIONS (named_recursive_values, NIL));
} );
(
lr_table::NONTERM 48, ( result, named_recursive_values1left, named_recursive_values1right), rest671);
}
; ( 102, ( ( _, ( values::QQ_NAMED_FUNCTIONS named_functions1, named_functions1left, named_functions1right)) ! rest671)) => { my result = values::QQ_LOCAL_DECLARATION (fn _ = { my (
named_functions as named_functions1) = named_functions1 ();
(NADA_FUNCTION_DECLARATIONS (named_functions, NIL));
} );
( lr_table::NONTERM 48, ( result, named_functions1left,
named_functions1right), rest671);
}
; ( 103, ( ( _, ( values::QQ_NAMED_TYPES named_types1, named_types1left, named_types1right)) ! rest671)) => { my result = values::QQ_LOCAL_DECLARATION (fn _ = { my (named_types as
named_types1) = named_types1 ();
(TYPE_DECLARATIONS named_types);
} );
( lr_table::NONTERM 48, ( result, named_types1left, named_types1right), rest671);
}
; ( 104, ( ( _, ( values::QQ_NAMED_DATATYPES named_datatypes1, named_datatypes1left, named_datatypes1right)) ! rest671)) => { my result = values::QQ_LOCAL_DECLARATION (fn _ = { my (
named_datatypes as named_datatypes1) = named_datatypes1 ();
(ENUM_DECLARATIONS { datatyps => named_datatypes, with_typs => [] } );
} );
( lr_table::NONTERM 48, ( result, named_datatypes1left,
named_datatypes1right), rest671);
}
; ( 105, ( ( _, ( values::QQ_EXCEPTION_NAMINGS exception_namings1, _, exception_namings1right)) ! ( _, ( _, exception_t1left, _)) ! rest671)) => { my result = values::QQ_LOCAL_DECLARATION
(fn _ = { my (exception_namings as exception_namings1) = exception_namings1 ();
(EXCEPTION_DECLARATIONS exception_namings);
} );
( lr_table::NONTERM 48, ( result, exception_t1left,
exception_namings1right), rest671);
}
; ( 106, ( ( _, ( values::QQ_DOTTED_IDENTIFIER_P dotted_identifier_p1, _, dotted_identifier_p1right)) ! ( _, ( _, use1left, _)) ! rest671)) => { my result = values::QQ_LOCAL_DECLARATION
(fn _ = { my (dotted_identifier_p as dotted_identifier_p1) = dotted_identifier_p1 ();
(INCLUDE_DECLARATIONS dotted_identifier_p);
} );
( lr_table::NONTERM 48, ( result, use1left,
dotted_identifier_p1right), rest671);
}
; ( 107, ( ( _, ( values::QQ_NAMED_TYPES named_types1, _, named_types1right)) ! _ ! ( _, ( values::QQ_NAMED_DATATYPES named_datatypes1, named_datatypes1left, _)) ! rest671)) => { my
result = values::QQ_LOCAL_DECLARATION (fn _ = { my (named_datatypes as named_datatypes1) = named_datatypes1 ();
my (named_types as named_types1) = named_types1 ();
(
ENUM_DECLARATIONS { datatyps => named_datatypes, with_typs => named_types } );
} );
( lr_table::NONTERM 48, ( result, named_datatypes1left, named_types1right), rest671);
}
; ( 108, ( ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1, qualified_value_id1left, qualified_value_id1right)) ! rest671)) => { my result = values::QQ_DOTTED_IDENTIFIER_P (fn _ =
{ my (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
( [ qualified_value_id make_package_symbol ] );
} );
( lr_table::NONTERM 25, ( result, qualified_value_id1left,
qualified_value_id1right), rest671);
}
; ( 109, ( ( _, ( values::QQ_DOTTED_IDENTIFIER_P dotted_identifier_p1, _, dotted_identifier_p1right)) ! ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1, qualified_value_id1left, _))
! rest671)) => { my result = values::QQ_DOTTED_IDENTIFIER_P (fn _ = { my (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
my (dotted_identifier_p as dotted_identifier_p1
) = dotted_identifier_p1 ();
( qualified_value_id make_package_symbol ! dotted_identifier_p);
} );
( lr_table::NONTERM 25, ( result, qualified_value_id1left, dotted_identifier_p1right),
rest671);
}
; ( 110, ( ( _, ( values::QQ_EXPRESSION expression1, _, (expressionright as expression1right))) ! _ ! ( _, ( values::QQ_PATTERN pattern1, patternleft, _)) ! _ ! ( _, ( _, my_t1left, _))
! rest671)) => { my result = values::QQ_NAMED_VALUE (fn _ = { my (pattern as pattern1) = pattern1 ();
my (expression as expression1) = expression1 ();
(
[ SOURCE_CODE_REGION_FOR_NAMED_VALUE (
NAMED_VALUE {
expression,
pattern,
is_lazy => TRUE
},
(patternleft, expressionright)
)
]
);
} );
( lr_table::NONTERM 92, ( result, my_t1left, expression1right), rest671);
}
; ( 111, ( ( _, ( values::QQ_EXPRESSION expression1, _, (expressionright as expression1right))) ! _ ! ( _, ( values::QQ_PATTERN pattern1, patternleft, _)) ! ( _, ( _, my_t1left, _)) !
rest671)) => { my result = values::QQ_NAMED_VALUE (fn _ = { my (pattern as pattern1) = pattern1 ();
my (expression as expression1) = expression1 ();
(
[ SOURCE_CODE_REGION_FOR_NAMED_VALUE (
NAMED_VALUE {
expression,
pattern,
is_lazy => FALSE
},
(patternleft, expressionright)
)
]
);
} );
( lr_table::NONTERM 92, ( result, my_t1left, expression1right), rest671);
}
; ( 112, ( ( _, ( values::QQ_NAMED_RECURSIVE_VALUES named_recursive_values2, _, named_recursive_values2right)) ! _ ! ( _, ( values::QQ_NAMED_RECURSIVE_VALUES named_recursive_values1,
named_recursive_values1left, _)) ! rest671)) => { my result = values::QQ_NAMED_RECURSIVE_VALUES (fn _ = { my named_recursive_values1 = named_recursive_values1 ();
my named_recursive_values2
= named_recursive_values2 ();
(named_recursive_values1 @ named_recursive_values2);
} );
( lr_table::NONTERM 76, ( result, named_recursive_values1left, named_recursive_values2right), rest671)
;
}
; ( 113, ( ( _, ( values::QQ_EXPRESSION expression1, _, (expressionright as expression1right))) ! _ ! ( _, ( values::QQ_OPTIONAL_TYPE_CONSTRAINT optional_type_constraint1, _, _)) ! ( _, (
values::QQ_VALUE_ID value_id1, value_idleft, value_idright)) ! _ ! ( _, ( _, my_t1left, _)) ! rest671)) => { my result = values::QQ_NAMED_RECURSIVE_VALUES (fn _ = { my (value_id as
value_id1) = value_id1 ();
my (optional_type_constraint as optional_type_constraint1) = optional_type_constraint1 ();
my (expression as expression1) = expression1 ();
(
{ my (variable_symbol, fixity)
=
make_value_and_fixity_symbols value_id;
[ SOURCE_CODE_REGION_FOR_RECURSIVELY_NAMED_VALUE (
NAMED_RECURSIVE_VALUE {
variable_symbol,
fixity => THE (fixity, (value_idleft, value_idright)),
null_or_type => optional_type_constraint,
expression,
is_lazy => FALSE
},
(value_idleft, expressionright)
)
];
}
);
} );
( lr_table::NONTERM 76, ( result, my_t1left, expression1right), rest671);
}
; ( 114, ( ( _, ( values::QQ_EXPRESSION expression1, _, (expressionright as expression1right))) ! _ ! ( _, ( values::QQ_OPTIONAL_TYPE_CONSTRAINT optional_type_constraint1, _, _)) ! ( _, (
values::QQ_VALUE_ID value_id1, value_idleft, value_idright)) ! _ ! _ ! ( _, ( _, my_t1left, _)) ! rest671)) => { my result = values::QQ_NAMED_RECURSIVE_VALUES (fn _ = { my (value_id as
value_id1) = value_id1 ();
my (optional_type_constraint as optional_type_constraint1) = optional_type_constraint1 ();
my (expression as expression1) = expression1 ();
(
{ my (variable_symbol, fixity)
=
make_value_and_fixity_symbols value_id;
[ SOURCE_CODE_REGION_FOR_RECURSIVELY_NAMED_VALUE (
NAMED_RECURSIVE_VALUE {
variable_symbol,
fixity => THE (fixity, (value_idleft, value_idright)),
null_or_type => optional_type_constraint,
expression,
is_lazy => TRUE
},
(value_idleft, expressionright)
)
];
}
);
} );
( lr_table::NONTERM 76, ( result, my_t1left, expression1right), rest671);
}
; ( 115, ( rest671)) => { my result = values::QQ_OPTIONAL_TYPE_CONSTRAINT (fn _ = (NULL));
( lr_table::NONTERM 59, ( result, default_position, default_position), rest671);
}
; ( 116, ( ( _, ( values::QQ_ANY_TYPE any_type1, _, any_type1right)) ! ( _, ( _, suffix_colon1left, _)) ! rest671)) => { my result = values::QQ_OPTIONAL_TYPE_CONSTRAINT (fn _ = { my (
any_type as any_type1) = any_type1 ();
(THE any_type);
} );
( lr_table::NONTERM 59, ( result, suffix_colon1left, any_type1right), rest671);
}
; ( 117, ( ( _, ( _, _, end_t1right)) ! ( _, ( values::QQ_FUNCTION_CLAUSES function_clauses1, function_clausesleft, function_clausesright)) ! ( _, ( _, fun_t1left, _)) ! rest671)) => {
my result = values::QQ_NAMED_FUNCTIONS (fn _ = { my (function_clauses as function_clauses1) = function_clauses1 ();
(
[ SOURCE_CODE_REGION_FOR_NADA_NAMED_FUNCTION (NADA_NAMED_FUNCTION (function_clauses, FALSE), (function_clausesleft, function_clausesright)) ] );
} );
( lr_table::NONTERM 39, ( result,
fun_t1left, end_t1right), rest671);
}
; ( 118, ( ( _, ( _, _, end_t1right)) ! ( _, ( values::QQ_FUNCTION_CLAUSES function_clauses1, function_clausesleft, function_clausesright)) ! _ ! ( _, ( _, lazy_t1left, _)) ! rest671))
=> { my result = values::QQ_NAMED_FUNCTIONS (fn _ = { my (function_clauses as function_clauses1) = function_clauses1 ();
(
[ SOURCE_CODE_REGION_FOR_NADA_NAMED_FUNCTION (NADA_NAMED_FUNCTION (function_clauses, TRUE ), (function_clausesleft, function_clausesright)) ] );
} );
( lr_table::NONTERM 39, ( result,
lazy_t1left, end_t1right), rest671);
}
; ( 119, ( ( _, ( values::QQ_NAMED_FUNCTIONS named_functions1, _, named_functions1right)) ! _ ! _ ! ( _, ( values::QQ_FUNCTION_CLAUSES function_clauses1, function_clausesleft,
function_clausesright)) ! ( _, ( _, fun_t1left, _)) ! rest671)) => { my result = values::QQ_NAMED_FUNCTIONS (fn _ = { my (function_clauses as function_clauses1) = function_clauses1 ();
my
(named_functions as named_functions1) = named_functions1 ();
(
SOURCE_CODE_REGION_FOR_NADA_NAMED_FUNCTION (NADA_NAMED_FUNCTION (function_clauses, FALSE), (function_clausesleft, function_clausesright)) ! named_functions);
} );
( lr_table::NONTERM 39, (
result, fun_t1left, named_functions1right), rest671);
}
; ( 120, ( ( _, ( values::QQ_NAMED_FUNCTIONS named_functions1, _, named_functions1right)) ! _ ! _ ! ( _, ( values::QQ_FUNCTION_CLAUSES function_clauses1, function_clausesleft,
function_clausesright)) ! _ ! ( _, ( _, lazy_t1left, _)) ! rest671)) => { my result = values::QQ_NAMED_FUNCTIONS (fn _ = { my (function_clauses as function_clauses1) = function_clauses1 ()
;
my (named_functions as named_functions1) = named_functions1 ();
(
SOURCE_CODE_REGION_FOR_NADA_NAMED_FUNCTION (NADA_NAMED_FUNCTION (function_clauses, TRUE ), (function_clausesleft, function_clausesright)) ! named_functions);
} );
( lr_table::NONTERM 39, (
result, lazy_t1left, named_functions1right), rest671);
}
; ( 121, ( ( _, ( _, _, suffix_semi1right)) ! ( _, ( values::QQ_FUNCTION_CLAUSE function_clause1, function_clause1left, _)) ! rest671)) => { my result = values::QQ_FUNCTION_CLAUSES (fn _
= { my (function_clause as function_clause1) = function_clause1 ();
([ function_clause ]);
} );
( lr_table::NONTERM 38, ( result, function_clause1left, suffix_semi1right), rest671);
}
; ( 122, ( ( _, ( values::QQ_FUNCTION_CLAUSES function_clauses1, _, function_clauses1right)) ! _ ! ( _, ( values::QQ_FUNCTION_CLAUSE function_clause1, function_clause1left, _)) ! rest671))
=> { my result = values::QQ_FUNCTION_CLAUSES (fn _ = { my (function_clause as function_clause1) = function_clause1 ();
my (function_clauses as function_clauses1) = function_clauses1 ();
(
function_clause ! function_clauses);
} );
( lr_table::NONTERM 38, ( result, function_clause1left, function_clauses1right), rest671);
}
; ( 123, ( ( _, ( values::QQ_EXPRESSION expression1, expressionleft, (expressionright as expression1right))) ! _ ! ( _, ( values::QQ_OPTIONAL_TYPE_CONSTRAINT optional_type_constraint1, _, _)
) ! ( _, ( values::QQ_LOOSE_INFIX_PATTERN loose_infix_pattern1, loose_infix_pattern1left, _)) ! rest671)) => { my result = values::QQ_FUNCTION_CLAUSE (fn _ = { my (loose_infix_pattern as
loose_infix_pattern1) = loose_infix_pattern1 ();
my (optional_type_constraint as optional_type_constraint1) = optional_type_constraint1 ();
my (expression as expression1) = expression1 ();
(
NADA_PATTERN_CLAUSE {
pattern => loose_infix_pattern,
result_type => optional_type_constraint,
expression => note_expression_location (expression, expressionleft, expressionright)
}
);
} );
( lr_table::NONTERM 37, ( result, loose_infix_pattern1left, expression1right), rest671);
}
; ( 124, ( ( _, ( values::QQ_NAMED_TYPES named_types2, _, named_types2right)) ! _ ! ( _, ( values::QQ_NAMED_TYPES named_types1, named_types1left, _)) ! rest671)) => { my result =
values::QQ_NAMED_TYPES (fn _ = { my named_types1 = named_types1 ();
my named_types2 = named_types2 ();
(named_types1 @ named_types2);
} );
( lr_table::NONTERM 89, ( result, named_types1left
, named_types2right), rest671);
}
; ( 125, ( ( _, ( values::QQ_ANY_TYPE any_type1, any_typeleft, (any_typeright as any_type1right))) ! _ ! ( _, ( values::TYPE_ID type_id1, _, _)) ! ( _, ( _, type_t1left, _)) ! rest671))
=> { my result = values::QQ_NAMED_TYPES (fn _ = { my (type_id as type_id1) = type_id1 ();
my (any_type as any_type1) = any_type1 ();
(
[ SOURCE_CODE_REGION_FOR_NAMED_TYPE (
NAMED_TYPE {
type_variables => NIL,
typ => make_type_symbol type_id,
definition => any_type
},
(any_typeleft, any_typeright)
)
]
);
} );
( lr_table::NONTERM 89, ( result, type_t1left, any_type1right), rest671);
}
; ( 126, ( ( _, ( values::QQ_NAMED_DATATYPES named_datatypes2, _, named_datatypes2right)) ! _ ! ( _, ( values::QQ_NAMED_DATATYPES named_datatypes1, named_datatypes1left, _)) ! rest671)) =>
{ my result = values::QQ_NAMED_DATATYPES (fn _ = { my named_datatypes1 = named_datatypes1 ();
my named_datatypes2 = named_datatypes2 ();
(named_datatypes1 @ named_datatypes2);
} );
(
lr_table::NONTERM 28, ( result, named_datatypes1left, named_datatypes2right), rest671);
}
; ( 127, ( ( _, ( values::QQ_ENUM_NAMING enum_naming1, _, enum_naming1right)) ! _ ! ( _, ( values::TYPE_ID type_id1, _, _)) ! ( _, ( _, enum_t1left, _)) ! rest671)) => { my result =
values::QQ_NAMED_DATATYPES (fn _ = { my (type_id as type_id1) = type_id1 ();
my (enum_naming as enum_naming1) = enum_naming1 ();
(
[ NAMED_ENUM {
typ => make_type_symbol type_id,
type_variables => NIL,
right_hand_side => enum_naming,
is_lazy => FALSE
}
]
);
} );
( lr_table::NONTERM 28, ( result, enum_t1left, enum_naming1right), rest671);
}
; ( 128, ( ( _, ( values::QQ_ENUM_NAMING enum_naming1, _, enum_naming1right)) ! _ ! ( _, ( values::TYPE_ID type_id1, _, _)) ! _ ! ( _, ( _, lazy_t1left, _)) ! rest671)) => { my
result = values::QQ_NAMED_DATATYPES (fn _ = { my (type_id as type_id1) = type_id1 ();
my (enum_naming as enum_naming1) = enum_naming1 ();
(
[ NAMED_ENUM {
typ => make_type_symbol type_id,
type_variables => NIL,
right_hand_side => enum_naming,
is_lazy => TRUE
}
]
);
} );
( lr_table::NONTERM 28, ( result, lazy_t1left, enum_naming1right), rest671);
}
; ( 129, ( ( _, ( values::QQ_CONSTRUCTORS constructors1, constructors1left, constructors1right)) ! rest671)) => { my result = values::QQ_ENUM_NAMING (fn _ = { my (constructors as
constructors1) = constructors1 ();
(VALCONS constructors);
} );
( lr_table::NONTERM 27, ( result, constructors1left, constructors1right), rest671);
}
; ( 130, ( ( _, ( values::QQ_DOTTED_TYP dotted_typ1, _, dotted_typ1right)) ! ( _, ( _, enum_t1left, _)) ! rest671)) => { my result = values::QQ_ENUM_NAMING (fn _ = { my (dotted_typ as
dotted_typ1) = dotted_typ1 ();
(REPLICAS dotted_typ);
} );
( lr_table::NONTERM 27, ( result, enum_t1left, dotted_typ1right), rest671);
}
; ( 131, ( ( _, ( values::QQ_CONSTRUCTOR constructor1, constructor1left, constructor1right)) ! rest671)) => { my result = values::QQ_CONSTRUCTORS (fn _ = { my (constructor as constructor1)
= constructor1 ();
([constructor]);
} );
( lr_table::NONTERM 17, ( result, constructor1left, constructor1right), rest671);
}
; ( 132, ( ( _, ( values::QQ_CONSTRUCTORS constructors1, _, constructors1right)) ! _ ! ( _, ( values::QQ_CONSTRUCTOR constructor1, constructor1left, _)) ! rest671)) => { my result =
values::QQ_CONSTRUCTORS (fn _ = { my (constructor as constructor1) = constructor1 ();
my (constructors as constructors1) = constructors1 ();
(constructor ! constructors);
} );
(
lr_table::NONTERM 17, ( result, constructor1left, constructors1right), rest671);
}
; ( 133, ( ( _, ( values::CONSTRUCTOR_ID constructor_id1, constructor_id1left, constructor_id1right)) ! rest671)) => { my result = values::QQ_CONSTRUCTOR (fn _ = { my (constructor_id as
constructor_id1) = constructor_id1 ();
(make_value_symbol constructor_id, NULL );
} );
( lr_table::NONTERM 16, ( result, constructor_id1left, constructor_id1right), rest671);
}
; ( 134, ( ( _, ( values::QQ_ANY_TYPE any_type1, _, any_type1right)) ! ( _, ( values::CONSTRUCTOR_ID constructor_id1, constructor_id1left, _)) ! rest671)) => { my result =
values::QQ_CONSTRUCTOR (fn _ = { my (constructor_id as constructor_id1) = constructor_id1 ();
my (any_type as any_type1) = any_type1 ();
(make_value_symbol constructor_id, THE any_type);
} )
;
( lr_table::NONTERM 16, ( result, constructor_id1left, any_type1right), rest671);
}
; ( 135, ( ( _, ( values::QQ_EXCEPTION_NAMINGS exception_namings2, _, exception_namings2right)) ! _ ! ( _, ( values::QQ_EXCEPTION_NAMINGS exception_namings1, exception_namings1left, _)) !
rest671)) => { my result = values::QQ_EXCEPTION_NAMINGS (fn _ = { my exception_namings1 = exception_namings1 ();
my exception_namings2 = exception_namings2 ();
(
exception_namings1 @ exception_namings2);
} );
( lr_table::NONTERM 29, ( result, exception_namings1left, exception_namings2right), rest671);
}
; ( 136, ( ( _, ( values::CONSTRUCTOR_ID constructor_id1, constructor_id1left, constructor_id1right)) ! rest671)) => { my result = values::QQ_EXCEPTION_NAMINGS (fn _ = { my (constructor_id
as constructor_id1) = constructor_id1 ();
( [ NAMED_EXCEPTION {
exception_symbol => (make_value_symbol constructor_id),
exception_type => NULL
}
]
);
} );
( lr_table::NONTERM 29, ( result, constructor_id1left, constructor_id1right), rest671);
}
; ( 137, ( ( _, ( values::QQ_ANY_TYPE any_type1, _, any_type1right)) ! ( _, ( values::CONSTRUCTOR_ID constructor_id1, constructor_id1left, _)) ! rest671)) => { my result =
values::QQ_EXCEPTION_NAMINGS (fn _ = { my (constructor_id as constructor_id1) = constructor_id1 ();
my (any_type as any_type1) = any_type1 ();
(
[ NAMED_EXCEPTION {
exception_symbol => (make_value_symbol constructor_id),
exception_type => THE any_type
}
]
);
} );
( lr_table::NONTERM 29, (
result, constructor_id1left, any_type1right), rest671);
}
; ( 138, ( ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1, _, qualified_value_id1right)) ! _ ! ( _, ( values::CONSTRUCTOR_ID constructor_id1, constructor_id1left, _)) ! rest671))
=> { my result = values::QQ_EXCEPTION_NAMINGS (fn _ = { my (constructor_id as constructor_id1) = constructor_id1 ();
my (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
( [ DUPLICATE_NAMED_EXCEPTION {
exception_symbol => make_value_symbol constructor_id,
equal_to => qualified_value_id make_value_symbol
}
]
)
;
} );
( lr_table::NONTERM 29, ( result, constructor_id1left, qualified_value_id1right), rest671);
}
; ( 139, ( ( _, ( values::QQ_SIMPLE_TYPE simple_type1, simple_type1left, simple_type1right)) ! rest671)) => { my result = values::QQ_ANY_TYPE (fn _ = { my (simple_type as simple_type1) =
simple_type1 ();
(simple_type);
} );
( lr_table::NONTERM 2, ( result, simple_type1left, simple_type1right), rest671);
}
; ( 140, ( ( _, ( _, _, rparen1right)) ! ( _, ( values::QQ_TUPLE_TYPE tuple_type1, _, _)) ! ( _, ( _, lparen1left, _)) ! rest671)) => { my result = values::QQ_ANY_TYPE (fn _ = { my
(tuple_type as tuple_type1) = tuple_type1 ();
(TUPLE_TYPE (tuple_type));
} );
( lr_table::NONTERM 2, ( result, lparen1left, rparen1right), rest671);
}
; ( 141, ( ( _, ( values::QQ_ANY_TYPE any_type2, _, any_type2right)) ! _ ! ( _, ( values::QQ_ANY_TYPE any_type1, any_type1left, _)) ! rest671)) => { my result = values::QQ_ANY_TYPE (fn _
= { my any_type1 = any_type1 ();
my any_type2 = any_type2 ();
(TYP_TYPE ( [arrow_typ], [any_type1, any_type2]));
} );
( lr_table::NONTERM 2, ( result, any_type1left, any_type2right),
rest671);
}
; ( 142, ( ( _, ( values::QQ_SIMPLE_TYPE simple_type2, _, simple_type2right)) ! _ ! ( _, ( values::QQ_SIMPLE_TYPE simple_type1, simple_type1left, _)) ! rest671)) => { my result =
values::QQ_TUPLE_TYPE (fn _ = { my simple_type1 = simple_type1 ();
my simple_type2 = simple_type2 ();
( [ simple_type1, simple_type2 ] );
} );
( lr_table::NONTERM 88, ( result,
simple_type1left, simple_type2right), rest671);
}
; ( 143, ( ( _, ( values::QQ_TUPLE_TYPE tuple_type1, _, tuple_type1right)) ! _ ! ( _, ( values::QQ_SIMPLE_TYPE simple_type1, simple_type1left, _)) ! rest671)) => { my result =
values::QQ_TUPLE_TYPE (fn _ = { my (simple_type as simple_type1) = simple_type1 ();
my (tuple_type as tuple_type1) = tuple_type1 ();
(simple_type ! tuple_type);
} );
( lr_table::NONTERM 88,
( result, simple_type1left, tuple_type1right), rest671);
}
; ( 144, ( ( _, ( _, _, loose_infix_rbrace1right)) ! ( _, ( _, loose_infix_lbrace1left, _)) ! rest671)) => { my result = values::QQ_SIMPLE_TYPE (fn _ = (RECORD_TYPE []));
(
lr_table::NONTERM 82, ( result, loose_infix_lbrace1left, loose_infix_rbrace1right), rest671);
}
; ( 145, ( ( _, ( _, _, rparen1right)) ! ( _, ( values::QQ_ANY_TYPE any_type1, _, _)) ! ( _, ( _, lparen1left, _)) ! rest671)) => { my result = values::QQ_SIMPLE_TYPE (fn _ = { my
(any_type as any_type1) = any_type1 ();
(any_type);
} );
( lr_table::NONTERM 82, ( result, lparen1left, rparen1right), rest671);
}
; ( 146, ( ( _, ( values::TYPEVAR_ID typevar_id1, (typevar_idleft as typevar_id1left), (typevar_idright as typevar_id1right))) ! rest671)) => { my result = values::QQ_SIMPLE_TYPE (fn _ = {
my (typevar_id as typevar_id1) = typevar_id1 ();
(
SOURCE_CODE_REGION_FOR_TYPE (
TYPE_VARIABLE_TYPE (TYPE_VARIABLE (make_type_variable_symbol typevar_id)),
(typevar_idleft, typevar_idright)
)
);
} );
( lr_table::NONTERM 82, ( result, typevar_id1left, typevar_id1right), rest671);
}
; ( 147, ( ( _, ( _, _, (loose_infix_rbraceright as loose_infix_rbrace1right))) ! ( _, ( values::QQ_RECORD_TYPE_CONTENTS record_type_contents1, _, _)) ! ( _, ( _, (loose_infix_lbraceleft
as loose_infix_lbrace1left), _)) ! rest671)) => { my result = values::QQ_SIMPLE_TYPE (fn _ = { my (record_type_contents as record_type_contents1) = record_type_contents1 ();
(
SOURCE_CODE_REGION_FOR_TYPE (
RECORD_TYPE record_type_contents,
(loose_infix_lbraceleft, loose_infix_rbraceright)
)
);
} );
( lr_table::NONTERM 82, ( result, loose_infix_lbrace1left, loose_infix_rbrace1right), rest671);
}
; ( 148, ( ( _, ( _, _, rparen1right)) ! ( _, ( values::QQ_TYPEFUN_ARGLIST typefun_arglist1, _, _)) ! _ ! ( _, ( values::QQ_DOTTED_TYP dotted_typ1, (dotted_typleft as dotted_typ1left),
dotted_typright)) ! rest671)) => { my result = values::QQ_SIMPLE_TYPE (fn _ = { my (dotted_typ as dotted_typ1) = dotted_typ1 ();
my (typefun_arglist as typefun_arglist1) = typefun_arglist1 ()
;
(
SOURCE_CODE_REGION_FOR_TYPE (
TYP_TYPE (
dotted_typ,
typefun_arglist
),
( dotted_typleft,
dotted_typright
)
)
);
} );
( lr_table::NONTERM 82, ( result, dotted_typ1left, rparen1right), rest671);
}
; ( 149, ( ( _, ( values::QQ_SIMPLE_TYPE simple_type1, _, simple_type1right)) ! ( _, ( values::QQ_DOTTED_TYP dotted_typ1, (dotted_typleft as dotted_typ1left), dotted_typright)) ! rest671))
=> { my result = values::QQ_SIMPLE_TYPE (fn _ = { my (dotted_typ as dotted_typ1) = dotted_typ1 ();
my (simple_type as simple_type1) = simple_type1 ();
(
SOURCE_CODE_REGION_FOR_TYPE (
TYP_TYPE (
dotted_typ,
[simple_type]
),
( dotted_typleft,
dotted_typright
)
)
);
} );
( lr_table::NONTERM 82, ( result, dotted_typ1left, simple_type1right), rest671);
}
; ( 150, ( ( _, ( values::QQ_DOTTED_TYP dotted_typ1, (dotted_typleft as dotted_typ1left), (dotted_typright as dotted_typ1right))) ! rest671)) => { my result = values::QQ_SIMPLE_TYPE (fn _ =
{ my (dotted_typ as dotted_typ1) = dotted_typ1 ();
(
SOURCE_CODE_REGION_FOR_TYPE (
TYP_TYPE (
dotted_typ,
[]
),
( dotted_typleft,
dotted_typright
)
)
);
} );
( lr_table::NONTERM 82, ( result, dotted_typ1left, dotted_typ1right), rest671);
}
; ( 151, ( ( _, ( values::TYPE_ID type_id1, type_id1left, type_id1right)) ! rest671)) => { my result = values::QQ_DOTTED_TYP (fn _ = { my (type_id as type_id1) = type_id1 ();
(
[make_type_symbol type_id] );
} );
( lr_table::NONTERM 26, ( result, type_id1left, type_id1right), rest671);
}
; ( 152, ( ( _, ( values::QQ_DOTTED_TYP dotted_typ1, _, dotted_typ1right)) ! _ ! ( _, ( values::VALUE_ID value_id1, value_id1left, _)) ! rest671)) => { my result = values::QQ_DOTTED_TYP
(fn _ = { my (value_id as value_id1) = value_id1 ();
my (dotted_typ as dotted_typ1) = dotted_typ1 ();
(make_package_symbol value_id ! dotted_typ);
} );
( lr_table::NONTERM 26, ( result,
value_id1left, dotted_typ1right), rest671);
}
; ( 153, ( ( _, ( values::QQ_RECORD_TYPE_ELEMENT record_type_element1, record_type_element1left, record_type_element1right)) ! rest671)) => { my result = values::QQ_RECORD_TYPE_CONTENTS (fn _
= { my (record_type_element as record_type_element1) = record_type_element1 ();
([ record_type_element ]);
} );
( lr_table::NONTERM 74, ( result, record_type_element1left,
record_type_element1right), rest671);
}
; ( 154, ( ( _, ( values::QQ_RECORD_TYPE_CONTENTS record_type_contents1, _, record_type_contents1right)) ! _ ! ( _, ( values::QQ_RECORD_TYPE_ELEMENT record_type_element1,
record_type_element1left, _)) ! rest671)) => { my result = values::QQ_RECORD_TYPE_CONTENTS (fn _ = { my (record_type_element as record_type_element1) = record_type_element1 ();
my (
record_type_contents as record_type_contents1) = record_type_contents1 ();
(record_type_element ! record_type_contents);
} );
( lr_table::NONTERM 74, ( result, record_type_element1left,
record_type_contents1right), rest671);
}
; ( 155, ( ( _, ( values::QQ_ANY_TYPE any_type1, _, any_type1right)) ! _ ! ( _, ( values::QQ_SELECTOR selector1, selector1left, _)) ! rest671)) => { my result =
values::QQ_RECORD_TYPE_ELEMENT (fn _ = { my (selector as selector1) = selector1 ();
my (any_type as any_type1) = any_type1 ();
(selector, any_type );
} );
( lr_table::NONTERM 75, ( result,
selector1left, any_type1right), rest671);
}
; ( 156, ( ( _, ( values::QQ_ANY_TYPE any_type2, _, any_type2right)) ! _ ! ( _, ( values::QQ_ANY_TYPE any_type1, any_type1left, _)) ! rest671)) => { my result = values::QQ_TYPEFUN_ARGLIST
(fn _ = { my any_type1 = any_type1 ();
my any_type2 = any_type2 ();
( [any_type1, any_type2] );
} );
( lr_table::NONTERM 90, ( result, any_type1left, any_type2right), rest671);
}
; ( 157, ( ( _, ( values::QQ_TYPEFUN_ARGLIST typefun_arglist1, _, typefun_arglist1right)) ! _ ! ( _, ( values::QQ_ANY_TYPE any_type1, any_type1left, _)) ! rest671)) => { my result =
values::QQ_TYPEFUN_ARGLIST (fn _ = { my (any_type as any_type1) = any_type1 ();
my (typefun_arglist as typefun_arglist1) = typefun_arglist1 ();
(any_type ! typefun_arglist);
} );
(
lr_table::NONTERM 90, ( result, any_type1left, typefun_arglist1right), rest671);
}
; ( 158, ( ( _, ( _, _, suffix_semi1right)) ! ( _, ( values::QQ_RULE rule1, rule1left, _)) ! rest671)) => { my result = values::QQ_PATTERN_MATCH (fn _ = { my (rule as rule1) = rule1 ()
;
( [rule] );
} );
( lr_table::NONTERM 69, ( result, rule1left, suffix_semi1right), rest671);
}
; ( 159, ( ( _, ( values::QQ_PATTERN_MATCH pattern_match1, _, pattern_match1right)) ! _ ! ( _, ( values::QQ_RULE rule1, rule1left, _)) ! rest671)) => { my result =
values::QQ_PATTERN_MATCH (fn _ = { my (rule as rule1) = rule1 ();
my (pattern_match as pattern_match1) = pattern_match1 ();
(rule ! pattern_match);
} );
( lr_table::NONTERM 69, ( result,
rule1left, pattern_match1right), rest671);
}
; ( 160, ( ( _, ( values::QQ_EXPRESSION expression1, expressionleft, (expressionright as expression1right))) ! _ ! ( _, ( values::QQ_PATTERN pattern1, pattern1left, _)) ! rest671)) => {
my result = values::QQ_RULE (fn _ = { my (pattern as pattern1) = pattern1 ();
my (expression as expression1) = expression1 ();
(
CASE_RULE {
pattern,
expression => note_expression_location ( expression,
expressionleft,
expressionright
)
}
);
} );
( lr_table::NONTERM 77, ( result, pattern1left, expression1right), rest671);
}
; ( 161, ( ( _, ( values::QQ_PATTERN pattern2, _, pattern2right)) ! _ ! ( _, ( values::QQ_PATTERN pattern1, pattern1left, _)) ! rest671)) => { my result = values::QQ_PATTERN (fn _ = {
my pattern1 = pattern1 ();
my pattern2 = pattern2 ();
(layered (pattern1, pattern2, error (pattern1left, pattern2right)));
} );
( lr_table::NONTERM 66, ( result, pattern1left,
pattern2right), rest671);
}
; ( 162, ( ( _, ( values::QQ_ANY_TYPE any_type1, _, any_type1right)) ! _ ! ( _, ( values::QQ_LOOSE_INFIX_PATTERN loose_infix_pattern1, loose_infix_pattern1left, _)) ! rest671)) => { my
result = values::QQ_PATTERN (fn _ = { my (loose_infix_pattern as loose_infix_pattern1) = loose_infix_pattern1 ();
my (any_type as any_type1) = any_type1 ();
(
TYPE_CONSTRAINT_PATTERN { pattern=>loose_infix_pattern, type_constraint=>any_type } );
} );
( lr_table::NONTERM 66, ( result, loose_infix_pattern1left, any_type1right), rest671);
}
; ( 163, ( ( _, ( values::QQ_LOOSE_INFIX_PATTERN loose_infix_pattern1, loose_infix_pattern1left, loose_infix_pattern1right)) ! rest671)) => { my result = values::QQ_PATTERN (fn _ = { my (
loose_infix_pattern as loose_infix_pattern1) = loose_infix_pattern1 ();
(loose_infix_pattern);
} );
( lr_table::NONTERM 66, ( result, loose_infix_pattern1left, loose_infix_pattern1right),
rest671);
}
; ( 164, ( ( _, ( values::QQ_APPLY_PATTERN apply_pattern1, apply_pattern1left, apply_pattern1right)) ! rest671)) => { my result = values::QQ_LOOSE_INFIX_PATTERN (fn _ = { my (apply_pattern
as apply_pattern1) = apply_pattern1 ();
(apply_pattern);
} );
( lr_table::NONTERM 10, ( result, apply_pattern1left, apply_pattern1right), rest671);
}
; ( 165, ( ( _, ( values::QQ_LOOSE_INFIX_PATTERN loose_infix_pattern1, _, loose_infix_pattern1right)) ! ( _, ( values::LOOSE_INFIX_OP loose_infix_op1, _, _)) ! ( _, (
values::QQ_APPLY_PATTERN apply_pattern1, apply_pattern1left, _)) ! rest671)) => { my result = values::QQ_LOOSE_INFIX_PATTERN (fn _ = { my (apply_pattern as apply_pattern1) = apply_pattern1 ()
;
my (loose_infix_op as loose_infix_op1) = loose_infix_op1 ();
my (loose_infix_pattern as loose_infix_pattern1) = loose_infix_pattern1 ();
(
APPLY_PATTERN { constructor=>VARIABLE_IN_PATTERN [make_value_symbol loose_infix_op],
argument=>TUPLE_PATTERN [loose_infix_pattern, apply_pattern]
}
);
} );
( lr_table::NONTERM 10, ( result, apply_pattern1left, loose_infix_pattern1right), rest671);
}
; ( 166, ( ( _, ( values::QQ_INFIX_PATTERN infix_pattern1, infix_pattern1left, infix_pattern1right)) ! rest671)) => { my result = values::QQ_APPLY_PATTERN (fn _ = { my (infix_pattern as
infix_pattern1) = infix_pattern1 ();
(infix_pattern);
} );
( lr_table::NONTERM 11, ( result, infix_pattern1left, infix_pattern1right), rest671);
}
; ( 167, ( ( _, ( values::QQ_INFIX_PATTERN infix_pattern1, _, infix_pattern1right)) ! ( _, ( values::QQ_APPLY_PATTERN apply_pattern1, apply_pattern1left, _)) ! rest671)) => { my result =
values::QQ_APPLY_PATTERN (fn _ = { my (apply_pattern as apply_pattern1) = apply_pattern1 ();
my (infix_pattern as infix_pattern1) = infix_pattern1 ();
(
APPLY_PATTERN { constructor=>apply_pattern,
argument=>infix_pattern
}
);
} );
( lr_table::NONTERM 11, ( result, apply_pattern1left, infix_pattern1right), rest671);
}
; ( 168, ( ( _, ( values::QQ_SUFFIX_PATTERN suffix_pattern1, suffix_pattern1left, suffix_pattern1right)) ! rest671)) => { my result = values::QQ_INFIX_PATTERN (fn _ = { my (suffix_pattern
as suffix_pattern1) = suffix_pattern1 ();
(suffix_pattern);
} );
( lr_table::NONTERM 12, ( result, suffix_pattern1left, suffix_pattern1right), rest671);
}
; ( 169, ( ( _, ( values::QQ_SUFFIX_PATTERN suffix_pattern1, _, suffix_pattern1right)) ! ( _, ( values::TIGHT_INFIX_OP tight_infix_op1, _, _)) ! ( _, ( values::QQ_INFIX_PATTERN
infix_pattern1, infix_pattern1left, _)) ! rest671)) => { my result = values::QQ_INFIX_PATTERN (fn _ = { my (infix_pattern as infix_pattern1) = infix_pattern1 ();
my (tight_infix_op as
tight_infix_op1) = tight_infix_op1 ();
my (suffix_pattern as suffix_pattern1) = suffix_pattern1 ();
(
APPLY_PATTERN { constructor=>VARIABLE_IN_PATTERN [make_value_symbol tight_infix_op],
argument=>TUPLE_PATTERN [infix_pattern, suffix_pattern]
}
);
} );
( lr_table::NONTERM 12, ( result, infix_pattern1left, suffix_pattern1right), rest671);
}
; ( 170, ( ( _, ( values::QQ_PREFIX_PATTERN prefix_pattern1, prefix_pattern1left, prefix_pattern1right)) ! rest671)) => { my result = values::QQ_SUFFIX_PATTERN (fn _ = { my (prefix_pattern
as prefix_pattern1) = prefix_pattern1 ();
(prefix_pattern);
} );
( lr_table::NONTERM 13, ( result, prefix_pattern1left, prefix_pattern1right), rest671);
}
; ( 171, ( ( _, ( values::SUFFIX_OP suffix_op1, _, suffix_op1right)) ! ( _, ( values::QQ_SUFFIX_PATTERN suffix_pattern1, suffix_pattern1left, _)) ! rest671)) => { my result =
values::QQ_SUFFIX_PATTERN (fn _ = { my (suffix_pattern as suffix_pattern1) = suffix_pattern1 ();
my (suffix_op as suffix_op1) = suffix_op1 ();
(
APPLY_PATTERN { constructor=>VARIABLE_IN_PATTERN [make_value_symbol suffix_op],
argument=>suffix_pattern
}
);
} );
( lr_table::NONTERM 13, ( result, suffix_pattern1left, suffix_op1right), rest671);
}
; ( 172, ( ( _, ( values::QQ_TYPED_PATTERN typed_pattern1, typed_pattern1left, typed_pattern1right)) ! rest671)) => { my result = values::QQ_PREFIX_PATTERN (fn _ = { my (typed_pattern as
typed_pattern1) = typed_pattern1 ();
(typed_pattern);
} );
( lr_table::NONTERM 14, ( result, typed_pattern1left, typed_pattern1right), rest671);
}
; ( 173, ( ( _, ( values::QQ_PREFIX_PATTERN prefix_pattern1, _, prefix_pattern1right)) ! ( _, ( values::PREFIX_OP prefix_op1, prefix_op1left, _)) ! rest671)) => { my result =
values::QQ_PREFIX_PATTERN (fn _ = { my (prefix_op as prefix_op1) = prefix_op1 ();
my (prefix_pattern as prefix_pattern1) = prefix_pattern1 ();
(
APPLY_PATTERN { constructor=>VARIABLE_IN_PATTERN [make_value_symbol prefix_op],
argument=>prefix_pattern
}
);
} );
( lr_table::NONTERM 14, ( result, prefix_op1left, prefix_pattern1right), rest671);
}
; ( 174, ( ( _, ( values::QQ_PATTERN_ELEMENT pattern_element1, pattern_element1left, pattern_element1right)) ! rest671)) => { my result = values::QQ_TYPED_PATTERN (fn _ = { my (
pattern_element as pattern_element1) = pattern_element1 ();
(pattern_element);
} );
( lr_table::NONTERM 15, ( result, pattern_element1left, pattern_element1right), rest671);
}
; ( 175, ( ( _, ( values::QQ_PATTERN_ELEMENT pattern_element1, _, pattern_element1right)) ! ( _, ( values::TYPE_ID type_id1, type_id1left, _)) ! rest671)) => { my result =
values::QQ_TYPED_PATTERN (fn _ = { my (type_id as type_id1) = type_id1 ();
my (pattern_element as pattern_element1) = pattern_element1 ();
(
TYPE_CONSTRAINT_PATTERN { pattern=>pattern_element, type_constraint=>TYP_TYPE ([make_type_symbol type_id], []) } );
} );
( lr_table::NONTERM 15, ( result, type_id1left, pattern_element1right),
rest671);
}
; ( 176, ( ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1, _, qualified_value_id1right)) ! _ ! ( _, ( values::VALUE_ID value_id1, value_id1left, _)) ! rest671)) => { my result =
values::QQ_PATTERN_ELEMENT (fn _ = { my (value_id as value_id1) = value_id1 ();
my (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
(
VARIABLE_IN_PATTERN (make_package_symbol value_id ! qualified_value_id make_value_symbol));
} );
( lr_table::NONTERM 67, ( result, value_id1left, qualified_value_id1right), rest671);
}
; ( 177, ( ( _, ( values::QQ_ID id1, id1left, id1right)) ! rest671)) => { my result = values::QQ_PATTERN_ELEMENT (fn _ = { my (id as id1) = id1 ();
(
VARIABLE_IN_PATTERN [make_value_symbol id]);
} );
( lr_table::NONTERM 67, ( result, id1left, id1right), rest671);
}
; ( 178, ( ( _, ( values::QQ_INT int1, int1left, int1right)) ! rest671)) => { my result = values::QQ_PATTERN_ELEMENT (fn _ = { my (int as int1) = int1 ();
(
INT_CONSTANT_IN_PATTERN int);
} );
( lr_table::NONTERM 67, ( result, int1left, int1right), rest671);
}
; ( 179, ( ( _, ( values::UNT unt1, unt1left, unt1right)) ! rest671)) => { my result = values::QQ_PATTERN_ELEMENT (fn _ = { my (unt as unt1) = unt1 ();
(UNT_CONSTANT_IN_PATTERN unt)
;
} );
( lr_table::NONTERM 67, ( result, unt1left, unt1right), rest671);
}
; ( 180, ( ( _, ( values::STRING string1, string1left, string1right)) ! rest671)) => { my result = values::QQ_PATTERN_ELEMENT (fn _ = { my (string as string1) = string1 ();
(
STRING_CONSTANT_IN_PATTERN string);
} );
( lr_table::NONTERM 67, ( result, string1left, string1right), rest671);
}
; ( 181, ( ( _, ( values::CHAR char1, char1left, char1right)) ! rest671)) => { my result = values::QQ_PATTERN_ELEMENT (fn _ = { my (char as char1) = char1 ();
(
CHAR_CONSTANT_IN_PATTERN char);
} );
( lr_table::NONTERM 67, ( result, char1left, char1right), rest671);
}
; ( 182, ( ( _, ( _, underbar1left, underbar1right)) ! rest671)) => { my result = values::QQ_PATTERN_ELEMENT (fn _ = (WILDCARD_PATTERN));
( lr_table::NONTERM 67, ( result, underbar1left,
underbar1right), rest671);
}
; ( 183, ( ( _, ( _, _, loose_infix_rbracket1right)) ! ( _, ( _, loose_infix_lbracket1left, _)) ! rest671)) => { my result = values::QQ_PATTERN_ELEMENT (fn _ = (LIST_PATTERN NIL));
(
lr_table::NONTERM 67, ( result, loose_infix_lbracket1left, loose_infix_rbracket1right), rest671);
}
; ( 184, ( ( _, ( _, _, loose_infix_rbracket1right)) ! ( _, ( values::QQ_PATTERN_LIST pattern_list1, _, _)) ! ( _, ( _, loose_infix_lbracket1left, _)) ! rest671)) => { my result =
values::QQ_PATTERN_ELEMENT (fn _ = { my (pattern_list as pattern_list1) = pattern_list1 ();
(LIST_PATTERN pattern_list);
} );
( lr_table::NONTERM 67, ( result, loose_infix_lbracket1left,
loose_infix_rbracket1right), rest671);
}
; ( 185, ( ( _, ( _, _, loose_infix_rbracket1right)) ! ( _, ( _, loose_infix_lvector1left, _)) ! rest671)) => { my result = values::QQ_PATTERN_ELEMENT (fn _ = (VECTOR_PATTERN NIL));
(
lr_table::NONTERM 67, ( result, loose_infix_lvector1left, loose_infix_rbracket1right), rest671);
}
; ( 186, ( ( _, ( _, _, loose_infix_rbracket1right)) ! ( _, ( values::QQ_PATTERN_LIST pattern_list1, _, _)) ! ( _, ( _, loose_infix_lvector1left, _)) ! rest671)) => { my result =
values::QQ_PATTERN_ELEMENT (fn _ = { my (pattern_list as pattern_list1) = pattern_list1 ();
(VECTOR_PATTERN pattern_list);
} );
( lr_table::NONTERM 67, ( result, loose_infix_lvector1left,
loose_infix_rbracket1right), rest671);
}
; ( 187, ( ( _, ( _, _, loose_infix_rbrace1right)) ! ( _, ( _, loose_infix_lbrace1left, _)) ! rest671)) => { my result = values::QQ_PATTERN_ELEMENT (fn _ = (void_pattern));
(
lr_table::NONTERM 67, ( result, loose_infix_lbrace1left, loose_infix_rbrace1right), rest671);
}
; ( 188, ( ( _, ( _, _, rparen1right)) ! ( _, ( _, lparen1left, _)) ! rest671)) => { my result = values::QQ_PATTERN_ELEMENT (fn _ = (void_pattern));
( lr_table::NONTERM 67, ( result,
lparen1left, rparen1right), rest671);
}
; ( 189, ( ( _, ( _, _, rparen1right)) ! ( _, ( values::QQ_PATTERN pattern1, _, _)) ! ( _, ( _, lparen1left, _)) ! rest671)) => { my result = values::QQ_PATTERN_ELEMENT (fn _ = {
my (pattern as pattern1) = pattern1 ();
(pattern);
} );
( lr_table::NONTERM 67, ( result, lparen1left, rparen1right), rest671);
}
; ( 190, ( ( _, ( _, _, rparen1right)) ! ( _, ( values::QQ_PATTERN_LIST pattern_list1, _, _)) ! _ ! ( _, ( values::QQ_PATTERN pattern1, _, _)) ! ( _, ( _, lparen1left, _)) ! rest671
)) => { my result = values::QQ_PATTERN_ELEMENT (fn _ = { my (pattern as pattern1) = pattern1 ();
my (pattern_list as pattern_list1) = pattern_list1 ();
(
TUPLE_PATTERN ( pattern ! pattern_list));
} );
( lr_table::NONTERM 67, ( result, lparen1left, rparen1right), rest671);
}
; ( 191, ( ( _, ( _, _, rparen1right)) ! ( _, ( values::QQ_OR_PATTERN_LIST or_pattern_list1, _, _)) ! _ ! ( _, ( values::QQ_PATTERN pattern1, _, _)) ! ( _, ( _, lparen1left, _)) !
rest671)) => { my result = values::QQ_PATTERN_ELEMENT (fn _ = { my (pattern as pattern1) = pattern1 ();
my (or_pattern_list as or_pattern_list1) = or_pattern_list1 ();
(
OR_PATTERN (pattern ! or_pattern_list) );
} );
( lr_table::NONTERM 67, ( result, lparen1left, rparen1right), rest671);
}
; ( 192, ( ( _, ( _, _, (loose_infix_rbraceright as loose_infix_rbrace1right))) ! ( _, ( values::QQ_RECORD_PATTERNS record_patterns1, _, _)) ! ( _, ( _, (loose_infix_lbraceleft as
loose_infix_lbrace1left), _)) ! rest671)) => { my result = values::QQ_PATTERN_ELEMENT (fn _ = { my (record_patterns as record_patterns1) = record_patterns1 ();
(
{ my (definition, is_incomplete)
=
record_patterns;
SOURCE_CODE_REGION_FOR_PATTERN (
RECORD_PATTERN {
definition,
is_incomplete
},
(loose_infix_lbraceleft, loose_infix_rbraceright)
);
}
);
} );
( lr_table::NONTERM 67, ( result, loose_infix_lbrace1left, loose_infix_rbrace1right), rest671);
}
; ( 193, ( ( _, ( values::QQ_RECORD_PATTERN record_pattern1, record_pattern1left, record_pattern1right)) ! rest671)) => { my result = values::QQ_RECORD_PATTERNS (fn _ = { my (
record_pattern as record_pattern1) = record_pattern1 ();
([record_pattern], FALSE);
} );
( lr_table::NONTERM 71, ( result, record_pattern1left, record_pattern1right), rest671);
}
; ( 194, ( ( _, ( _, infix_dotdotdot1left, infix_dotdotdot1right)) ! rest671)) => { my result = values::QQ_RECORD_PATTERNS (fn _ = (NIL, TRUE));
( lr_table::NONTERM 71, ( result,
infix_dotdotdot1left, infix_dotdotdot1right), rest671);
}
; ( 195, ( ( _, ( values::QQ_RECORD_PATTERNS record_patterns1, _, record_patterns1right)) ! _ ! ( _, ( values::QQ_RECORD_PATTERN record_pattern1, record_pattern1left, _)) ! rest671)) => {
my result = values::QQ_RECORD_PATTERNS (fn _ = { my (record_pattern as record_pattern1) = record_pattern1 ();
my (record_patterns as record_patterns1) = record_patterns1 ();
(
{ my (a, (b, fx))
=
(record_pattern, record_patterns);
(a ! b, fx);
}
);
} );
( lr_table::NONTERM 71, ( result, record_pattern1left, record_patterns1right), rest671);
}
; ( 196, ( ( _, ( values::QQ_PATTERN pattern1, _, pattern1right)) ! _ ! ( _, ( values::QQ_SELECTOR selector1, selector1left, _)) ! rest671)) => { my result = values::QQ_RECORD_PATTERN
(fn _ = { my (selector as selector1) = selector1 ();
my (pattern as pattern1) = pattern1 ();
((selector, pattern));
} );
( lr_table::NONTERM 70, ( result, selector1left, pattern1right),
rest671);
}
; ( 197, ( ( _, ( values::VALUE_ID value_id1, value_id1left, value_id1right)) ! rest671)) => { my result = values::QQ_RECORD_PATTERN (fn _ = { my (value_id as value_id1) = value_id1 ();
(
make_label_symbol value_id, VARIABLE_IN_PATTERN [ make_value_symbol value_id ] );
} );
( lr_table::NONTERM 70, ( result, value_id1left, value_id1right), rest671);
}
; ( 198, ( ( _, ( values::QQ_PATTERN pattern1, _, pattern1right)) ! _ ! ( _, ( values::VALUE_ID value_id1, value_id1left, _)) ! rest671)) => { my result = values::QQ_RECORD_PATTERN (fn _
= { my (value_id as value_id1) = value_id1 ();
my (pattern as pattern1) = pattern1 ();
(
make_label_symbol value_id,
AS_PATTERN {
variable_pattern => VARIABLE_IN_PATTERN [make_value_symbol value_id],
expression_pattern => pattern
}
);
} );
( lr_table::NONTERM 70, ( result, value_id1left, pattern1right), rest671);
}
; ( 199, ( ( _, ( values::QQ_ANY_TYPE any_type1, _, any_type1right)) ! _ ! ( _, ( values::VALUE_ID value_id1, value_id1left, _)) ! rest671)) => { my result = values::QQ_RECORD_PATTERN
(fn _ = { my (value_id as value_id1) = value_id1 ();
my (any_type as any_type1) = any_type1 ();
(
make_label_symbol value_id,
TYPE_CONSTRAINT_PATTERN {
pattern => VARIABLE_IN_PATTERN [ make_value_symbol value_id ],
type_constraint => any_type
}
)
;
} );
( lr_table::NONTERM 70, ( result, value_id1left, any_type1right), rest671);
}
; ( 200, ( ( _, ( values::QQ_PATTERN pattern1, _, pattern1right)) ! _ ! ( _, ( values::QQ_ANY_TYPE any_type1, _, _)) ! _ ! ( _, ( values::VALUE_ID value_id1, value_id1left, _)) !
rest671)) => { my result = values::QQ_RECORD_PATTERN (fn _ = { my (value_id as value_id1) = value_id1 ();
my (any_type as any_type1) = any_type1 ();
my (pattern as pattern1) = pattern1 ();
(
make_label_symbol value_id,
AS_PATTERN {
variable_pattern => TYPE_CONSTRAINT_PATTERN {
pattern => VARIABLE_IN_PATTERN [ make_value_symbol value_id ],
type_constraint => any_type
},
expression_pattern => pattern
}
);
} );
( lr_table::NONTERM 70, ( result, value_id1left, pattern1right), rest671);
}
; ( 201, ( ( _, ( values::QQ_PATTERN pattern1, pattern1left, pattern1right)) ! rest671)) => { my result = values::QQ_PATTERN_LIST (fn _ = { my (pattern as pattern1) = pattern1 ();
(
[ pattern ] );
} );
( lr_table::NONTERM 68, ( result, pattern1left, pattern1right), rest671);
}
; ( 202, ( ( _, ( values::QQ_PATTERN_LIST pattern_list1, _, pattern_list1right)) ! _ ! ( _, ( values::QQ_PATTERN pattern1, pattern1left, _)) ! rest671)) => { my result =
values::QQ_PATTERN_LIST (fn _ = { my (pattern as pattern1) = pattern1 ();
my (pattern_list as pattern_list1) = pattern_list1 ();
( pattern ! pattern_list);
} );
( lr_table::NONTERM 68, (
result, pattern1left, pattern_list1right), rest671);
}
; ( 203, ( ( _, ( values::QQ_PATTERN pattern1, pattern1left, pattern1right)) ! rest671)) => { my result = values::QQ_OR_PATTERN_LIST (fn _ = { my (pattern as pattern1) = pattern1 ();
(
[ pattern ] );
} );
( lr_table::NONTERM 60, ( result, pattern1left, pattern1right), rest671);
}
; ( 204, ( ( _, ( values::QQ_OR_PATTERN_LIST or_pattern_list1, _, or_pattern_list1right)) ! _ ! ( _, ( values::QQ_PATTERN pattern1, pattern1left, _)) ! rest671)) => { my result =
values::QQ_OR_PATTERN_LIST (fn _ = { my (pattern as pattern1) = pattern1 ();
my (or_pattern_list as or_pattern_list1) = or_pattern_list1 ();
(pattern ! or_pattern_list);
} );
(
lr_table::NONTERM 60, ( result, pattern1left, or_pattern_list1right), rest671);
}
; ( 205, ( ( _, ( values::QQ_NAMED_PACKAGES named_packages2, _, named_packages2right)) ! _ ! ( _, ( values::QQ_NAMED_PACKAGES named_packages1, named_packages1left, _)) ! rest671)) => { my
result = values::QQ_NAMED_PACKAGES (fn _ = { my named_packages1 = named_packages1 ();
my named_packages2 = named_packages2 ();
(named_packages1 @ named_packages2);
} );
( lr_table::NONTERM
61, ( result, named_packages1left, named_packages2right), rest671);
}
; ( 206, ( ( _, ( values::QQ_A_PACKAGE a_package1, _, (a_packageright as a_package1right))) ! _ ! ( _, ( values::QQ_OPTIONAL_API_CAST optional_api_cast1, _, _)) ! ( _, (
values::QQ_VALUE_ID value_id1, value_idleft, _)) ! _ ! ( _, ( _, my_t1left, _)) ! rest671)) => { my result = values::QQ_NAMED_PACKAGES (fn _ = { my (value_id as value_id1) = value_id1 ()
;
my (optional_api_cast as optional_api_cast1) = optional_api_cast1 ();
my (a_package as a_package1) = a_package1 ();
(
[ SOURCE_CODE_REGION_FOR_NAMED_PACKAGE (
NAMED_PACKAGE {
name_symbol => make_package_symbol value_id,
definition => a_package,
constraint => optional_api_cast,
kind => PLAIN_PACKAGE
},
(value_idleft, a_packageright)
)
]
);
} );
( lr_table::NONTERM 61, ( result, my_t1left, a_package1right), rest671);
}
; ( 207, ( ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1, (qualified_value_idleft as qualified_value_id1left), (qualified_value_idright as qualified_value_id1right))) ! rest671)) =>
{ my result = values::QQ_A_PACKAGE (fn _ = { my (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
(
( SOURCE_CODE_REGION_FOR_PACKAGE (
PACKAGE_BY_NAME (qualified_value_id make_package_symbol),
(qualified_value_idleft, qualified_value_idright)
) ) );
} );
(
lr_table::NONTERM 1, ( result, qualified_value_id1left, qualified_value_id1right), rest671);
}
; ( 208, ( ( _, ( _, _, (end_tright as end_t1right))) ! ( _, ( values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE optional_declarations_and_expressions_in_package1, _, _)) ! ( _, (
_, (begin_tleft as begin_t1left), _)) ! rest671)) => { my result = values::QQ_A_PACKAGE (fn _ = { my (optional_declarations_and_expressions_in_package as
optional_declarations_and_expressions_in_package1) = optional_declarations_and_expressions_in_package1 ();
(
SOURCE_CODE_REGION_FOR_PACKAGE (
PACKAGE_DEFINITION optional_declarations_and_expressions_in_package,
(begin_tleft, end_tright)
) );
} );
( lr_table::NONTERM 1, ( result,
begin_t1left, end_t1right), rest671);
}
; ( 209, ( ( _, ( values::QQ_GENERIC_ARGS generic_args1, _, (generic_argsright as generic_args1right))) ! ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1, (qualified_value_idleft as
qualified_value_id1left), _)) ! rest671)) => { my result = values::QQ_A_PACKAGE (fn _ = { my (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
my (generic_args as
generic_args1) = generic_args1 ();
(
SOURCE_CODE_REGION_FOR_PACKAGE (
CALL_OF_GENERIC (qualified_value_id make_generic_symbol, generic_args),
(qualified_value_idleft, generic_argsright)
) );
} );
(
lr_table::NONTERM 1, ( result, qualified_value_id1left, generic_args1right), rest671);
}
; ( 210, ( ( _, ( _, _, (end_tright as end_t1right))) ! ( _, ( values::QQ_A_PACKAGE a_package1, _, _)) ! _ ! ( _, ( values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE
optional_declarations_and_expressions_in_package1, _, _)) ! ( _, ( _, (let_tleft as let_t1left), _)) ! rest671)) => { my result = values::QQ_A_PACKAGE (fn _ = { my (
optional_declarations_and_expressions_in_package as optional_declarations_and_expressions_in_package1) = optional_declarations_and_expressions_in_package1 ();
my (a_package as a_package1) =
a_package1 ();
( SOURCE_CODE_REGION_FOR_PACKAGE (
LET_IN_PACKAGE (optional_declarations_and_expressions_in_package, a_package),
(let_tleft, end_tright)
) );
} );
(
lr_table::NONTERM 1, ( result, let_t1left, end_t1right), rest671);
}
; ( 211, ( ( _, ( values::QQ_AN_API an_api1, _, (an_apiright as an_api1right))) ! _ ! _ ! ( _, ( values::QQ_A_PACKAGE a_package1, (a_packageleft as a_package1left), _)) ! rest671)) => {
my result = values::QQ_A_PACKAGE (fn _ = { my (a_package as a_package1) = a_package1 ();
my (an_api as an_api1) = an_api1 ();
(
SOURCE_CODE_REGION_FOR_PACKAGE (
PACKAGE_CAST (a_package, WEAK_PACKAGE_CAST an_api),
(a_packageleft, an_apiright)
) );
} );
( lr_table::NONTERM 1, ( result, a_package1left
, an_api1right), rest671);
}
; ( 212, ( ( _, ( values::QQ_AN_API an_api1, _, (an_apiright as an_api1right))) ! _ ! _ ! ( _, ( values::QQ_A_PACKAGE a_package1, (a_packageleft as a_package1left), _)) ! rest671)) => {
my result = values::QQ_A_PACKAGE (fn _ = { my (a_package as a_package1) = a_package1 ();
my (an_api as an_api1) = an_api1 ();
(
SOURCE_CODE_REGION_FOR_PACKAGE (
PACKAGE_CAST (a_package, STRONG_PACKAGE_CAST an_api),
(a_packageleft, an_apiright)
) );
} );
( lr_table::NONTERM 1, ( result,
a_package1left, an_api1right), rest671);
}
; ( 213, ( rest671)) => { my result = values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE (fn _ = (SEQUENTIAL_DECLARATIONS []));
( lr_table::NONTERM 54, ( result, default_position,
default_position), rest671);
}
; ( 214, ( ( _, ( values::QQ_DECLARATIONS_IN_PACKAGE declarations_in_package1, declarations_in_package1left, declarations_in_package1right)) ! rest671)) => { my result =
values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE (fn _ = { my (declarations_in_package as declarations_in_package1) = declarations_in_package1 ();
(declarations_in_package);
} );
(
lr_table::NONTERM 54, ( result, declarations_in_package1left, declarations_in_package1right), rest671);
}
; ( 215, ( ( _, ( _, _, suffix_semi1right)) ! ( _, ( values::QQ_DECLARATION_IN_PACKAGE declaration_in_package1, declaration_in_package1left, _)) ! rest671)) => { my result =
values::QQ_DECLARATIONS_IN_PACKAGE (fn _ = { my (declaration_in_package as declaration_in_package1) = declaration_in_package1 ();
(declaration_in_package);
} );
( lr_table::NONTERM 20, (
result, declaration_in_package1left, suffix_semi1right), rest671);
}
; ( 216, ( ( _, ( values::QQ_DECLARATIONS_IN_PACKAGE declarations_in_package1, _, declarations_in_package1right)) ! _ ! ( _, ( values::QQ_DECLARATION_IN_PACKAGE declaration_in_package1, (
declaration_in_packageleft as declaration_in_package1left), declaration_in_packageright)) ! rest671)) => { my result = values::QQ_DECLARATIONS_IN_PACKAGE (fn _ = { my (declaration_in_package
as declaration_in_package1) = declaration_in_package1 ();
my (declarations_in_package as declarations_in_package1) = declarations_in_package1 ();
(
make_declaration_sequence (
note_declaration_location ( declaration_in_package,
declaration_in_packageleft,
declaration_in_packageright
),
declarations_in_package
)
);
} );
( lr_table::NONTERM 20, ( result, declaration_in_package1left, declarations_in_package1right), rest671);
}
; ( 217, ( ( _, ( values::QQ_NAMED_PACKAGES named_packages1, named_packages1left, named_packages1right)) ! rest671)) => { my result = values::QQ_DECLARATION_IN_PACKAGE (fn _ = { my (
named_packages as named_packages1) = named_packages1 ();
(PACKAGE_DECLARATIONS named_packages);
} );
( lr_table::NONTERM 18, ( result, named_packages1left, named_packages1right), rest671);
}
; ( 218, ( ( _, ( values::QQ_GENERIC_NAMINGS generic_namings1, generic_namings1left, generic_namings1right)) ! rest671)) => { my result = values::QQ_DECLARATION_IN_PACKAGE (fn _ = { my (
generic_namings as generic_namings1) = generic_namings1 ();
(GENERIC_DECLARATIONS generic_namings);
} );
( lr_table::NONTERM 18, ( result, generic_namings1left, generic_namings1right),
rest671);
}
; ( 219, ( ( _, ( values::QQ_LOCAL_DECLARATION_OR_EXPRESSION local_declaration_or_expression1, (local_declaration_or_expressionleft as local_declaration_or_expression1left), (
local_declaration_or_expressionright as local_declaration_or_expression1right))) ! rest671)) => { my result = values::QQ_DECLARATION_IN_PACKAGE (fn _ = { my (local_declaration_or_expression as
local_declaration_or_expression1) = local_declaration_or_expression1 ();
(
note_declaration_location ( local_declaration_or_expression,
local_declaration_or_expressionleft,
local_declaration_or_expressionright
)
);
} );
( lr_table::NONTERM 18, ( result, local_declaration_or_expression1left, local_declaration_or_expression1right), rest671);
}
; ( 220, ( ( _, ( _, _, end_t1right)) ! ( _, ( values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE optional_declarations_and_expressions_in_package2,
optional_declarations_and_expressions_in_package2left, optional_declarations_and_expressions_in_package2right)) ! _ ! ( _, ( values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE
optional_declarations_and_expressions_in_package1, optional_declarations_and_expressions_in_package1left, optional_declarations_and_expressions_in_package1right)) ! ( _, ( _, local_t1left, _))
! rest671)) => { my result = values::QQ_DECLARATION_IN_PACKAGE (fn _ = { my optional_declarations_and_expressions_in_package1 = optional_declarations_and_expressions_in_package1 ();
my
optional_declarations_and_expressions_in_package2 = optional_declarations_and_expressions_in_package2 ();
(
LOCAL_DECLARATIONS (
note_declaration_location (optional_declarations_and_expressions_in_package1,
optional_declarations_and_expressions_in_package1left,
optional_declarations_and_expressions_in_package1right
),
note_declaration_location (optional_declarations_and_expressions_in_package2,
optional_declarations_and_expressions_in_package2left,
optional_declarations_and_expressions_in_package2right
)
)
);
} );
( lr_table::NONTERM 18, ( result, local_t1left, end_t1right), rest671);
}
; ( 221, ( rest671)) => { my result = values::QQ_OPTIONAL_DECLARATIONS_IN_GENERIC_ARGS (fn _ = (SEQUENTIAL_DECLARATIONS []));
( lr_table::NONTERM 55, ( result, default_position,
default_position), rest671);
}
; ( 222, ( ( _, ( values::QQ_DECLARATIONS_IN_GENERIC_ARGS declarations_in_generic_args1, declarations_in_generic_args1left, declarations_in_generic_args1right)) ! rest671)) => { my result =
values::QQ_OPTIONAL_DECLARATIONS_IN_GENERIC_ARGS (fn _ = { my (declarations_in_generic_args as declarations_in_generic_args1) = declarations_in_generic_args1 ();
(declarations_in_generic_args)
;
} );
( lr_table::NONTERM 55, ( result, declarations_in_generic_args1left, declarations_in_generic_args1right), rest671);
}
; ( 223, ( ( _, ( _, _, suffix_semi1right)) ! ( _, ( values::QQ_DECLARATION_IN_GENERIC_ARGS declaration_in_generic_args1, declaration_in_generic_args1left, _)) ! rest671)) => { my result =
values::QQ_DECLARATIONS_IN_GENERIC_ARGS (fn _ = { my (declaration_in_generic_args as declaration_in_generic_args1) = declaration_in_generic_args1 ();
(declaration_in_generic_args);
} );
(
lr_table::NONTERM 21, ( result, declaration_in_generic_args1left, suffix_semi1right), rest671);
}
; ( 224, ( ( _, ( values::QQ_DECLARATIONS_IN_GENERIC_ARGS declarations_in_generic_args1, _, declarations_in_generic_args1right)) ! _ ! ( _, ( values::QQ_DECLARATION_IN_GENERIC_ARGS
declaration_in_generic_args1, (declaration_in_generic_argsleft as declaration_in_generic_args1left), declaration_in_generic_argsright)) ! rest671)) => { my result =
values::QQ_DECLARATIONS_IN_GENERIC_ARGS (fn _ = { my (declaration_in_generic_args as declaration_in_generic_args1) = declaration_in_generic_args1 ();
my (declarations_in_generic_args as
declarations_in_generic_args1) = declarations_in_generic_args1 ();
(
make_declaration_sequence (
note_declaration_location ( declaration_in_generic_args,
declaration_in_generic_argsleft,
declaration_in_generic_argsright
),
declarations_in_generic_args
)
);
} );
( lr_table::NONTERM 21, ( result, declaration_in_generic_args1left, declarations_in_generic_args1right), rest671);
}
; ( 225, ( ( _, ( values::QQ_NAMED_PACKAGES named_packages1, named_packages1left, named_packages1right)) ! rest671)) => { my result = values::QQ_DECLARATION_IN_GENERIC_ARGS (fn _ = { my (
named_packages as named_packages1) = named_packages1 ();
(PACKAGE_DECLARATIONS named_packages);
} );
( lr_table::NONTERM 19, ( result, named_packages1left, named_packages1right), rest671);
}
; ( 226, ( ( _, ( values::QQ_GENERIC_NAMINGS generic_namings1, generic_namings1left, generic_namings1right)) ! rest671)) => { my result = values::QQ_DECLARATION_IN_GENERIC_ARGS (fn _ = {
my (generic_namings as generic_namings1) = generic_namings1 ();
(GENERIC_DECLARATIONS generic_namings);
} );
( lr_table::NONTERM 19, ( result, generic_namings1left, generic_namings1right),
rest671);
}
; ( 227, ( ( _, ( values::QQ_LOCAL_DECLARATION local_declaration1, (local_declarationleft as local_declaration1left), (local_declarationright as local_declaration1right))) ! rest671)) => { my
result = values::QQ_DECLARATION_IN_GENERIC_ARGS (fn _ = { my (local_declaration as local_declaration1) = local_declaration1 ();
(
note_declaration_location ( local_declaration,
local_declarationleft,
local_declarationright
)
);
} );
( lr_table::NONTERM 19, ( result, local_declaration1left, local_declaration1right), rest671);
}
; ( 228, ( ( _, ( _, _, end_t1right)) ! ( _, ( values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE optional_declarations_and_expressions_in_package2,
optional_declarations_and_expressions_in_package2left, optional_declarations_and_expressions_in_package2right)) ! _ ! ( _, ( values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE
optional_declarations_and_expressions_in_package1, optional_declarations_and_expressions_in_package1left, optional_declarations_and_expressions_in_package1right)) ! ( _, ( _, local_t1left, _))
! rest671)) => { my result = values::QQ_DECLARATION_IN_GENERIC_ARGS (fn _ = { my optional_declarations_and_expressions_in_package1 = optional_declarations_and_expressions_in_package1 ();
my
optional_declarations_and_expressions_in_package2 = optional_declarations_and_expressions_in_package2 ();
(
LOCAL_DECLARATIONS (
note_declaration_location (optional_declarations_and_expressions_in_package1,
optional_declarations_and_expressions_in_package1left,
optional_declarations_and_expressions_in_package1right
),
note_declaration_location (optional_declarations_and_expressions_in_package2,
optional_declarations_and_expressions_in_package2left,
optional_declarations_and_expressions_in_package2right
)
)
);
} );
( lr_table::NONTERM 19, ( result, local_t1left, end_t1right), rest671);
}
; ( 229, ( rest671)) => { my result = values::QQ_OPTIONAL_API_CAST (fn _ = ( NO_PACKAGE_CAST ));
( lr_table::NONTERM 80, ( result, default_position, default_position), rest671)
;
}
; ( 230, ( ( _, ( values::QQ_AN_API an_api1, _, an_api1right)) ! _ ! ( _, ( _, suffix_colon1left, _)) ! rest671)) => { my result = values::QQ_OPTIONAL_API_CAST (fn _ = { my (an_api
as an_api1) = an_api1 ();
( WEAK_PACKAGE_CAST (an_api));
} );
( lr_table::NONTERM 80, ( result, suffix_colon1left, an_api1right), rest671);
}
; ( 231, ( ( _, ( values::QQ_AN_API an_api1, _, an_api1right)) ! _ ! ( _, ( _, suffix_colon1left, _)) ! rest671)) => { my result = values::QQ_OPTIONAL_API_CAST (fn _ = { my (an_api
as an_api1) = an_api1 ();
( STRONG_PACKAGE_CAST (an_api));
} );
( lr_table::NONTERM 80, ( result, suffix_colon1left, an_api1right), rest671);
}
; ( 232, ( ( _, ( values::QQ_API_NAMINGS api_namings2, _, api_namings2right)) ! _ ! ( _, ( values::QQ_API_NAMINGS api_namings1, api_namings1left, _)) ! rest671)) => { my result =
values::QQ_API_NAMINGS (fn _ = { my api_namings1 = api_namings1 ();
my api_namings2 = api_namings2 ();
(api_namings1 @ api_namings2);
} );
( lr_table::NONTERM 3, ( result, api_namings1left
, api_namings2right), rest671);
}
; ( 233, ( ( _, ( values::QQ_AN_API an_api1, _, an_api1right)) ! _ ! ( _, ( values::TYPE_ID type_id1, _, _)) ! _ ! ( _, ( _, my_t1left, _)) ! rest671)) => { my result =
values::QQ_API_NAMINGS (fn _ = { my (type_id as type_id1) = type_id1 ();
my (an_api as an_api1) = an_api1 ();
(
[ NAMED_API {
name_symbol => make_api_symbol type_id,
definition => an_api
}
]
);
} );
( lr_table::NONTERM 3, ( result, my_t1left, an_api1right)
, rest671);
}
; ( 234, ( ( _, ( values::TYPE_ID type_id1, (type_idleft as type_id1left), (type_idright as type_id1right))) ! rest671)) => { my result = values::QQ_AN_API (fn _ = { my (type_id as
type_id1) = type_id1 ();
( SOURCE_CODE_REGION_FOR_API (
API_BY_NAME (make_api_symbol type_id),
(type_idleft, type_idright)
) );
} );
( lr_table::NONTERM 0, (
result, type_id1left, type_id1right), rest671);
}
; ( 235, ( ( _, ( _, _, end_t1right)) ! ( _, ( values::QQ_OPTIONAL_API_ELEMENTS optional_api_elements1, optional_api_elementsleft, optional_api_elementsright)) ! ( _, ( _, begin_t1left, _
)) ! rest671)) => { my result = values::QQ_AN_API (fn _ = { my (optional_api_elements as optional_api_elements1) = optional_api_elements1 ();
(
SOURCE_CODE_REGION_FOR_API (
API_DEFINITION (optional_api_elements),
(optional_api_elementsleft, optional_api_elementsright)
) );
} );
( lr_table::NONTERM 0, ( result,
begin_t1left, end_t1right), rest671);
}
; ( 236, ( ( _, ( _, _, end_t1right)) ! ( _, ( values::QQ_WHERE_ON_API where_on_api1, _, where_on_apiright)) ! _ ! ( _, ( values::QQ_AN_API an_api1, (an_apileft as an_api1left), _)) !
rest671)) => { my result = values::QQ_AN_API (fn _ = { my (an_api as an_api1) = an_api1 ();
my (where_on_api as where_on_api1) = where_on_api1 ();
(
SOURCE_CODE_REGION_FOR_API (
API_WITH_WHERE_SPECS (an_api, where_on_api),
(an_apileft, where_on_apiright)
) );
} );
( lr_table::NONTERM 0, ( result, an_api1left,
end_t1right), rest671);
}
; ( 237, ( rest671)) => { my result = values::QQ_OPTIONAL_API_ELEMENTS (fn _ = ( [] ));
( lr_table::NONTERM 53, ( result, default_position, default_position), rest671);
}
; ( 238, ( ( _, ( values::QQ_API_ELEMENTS api_elements1, api_elements1left, api_elements1right)) ! rest671)) => { my result = values::QQ_OPTIONAL_API_ELEMENTS (fn _ = { my (api_elements
as api_elements1) = api_elements1 ();
(api_elements);
} );
( lr_table::NONTERM 53, ( result, api_elements1left, api_elements1right), rest671);
}
; ( 239, ( ( _, ( values::QQ_API_ELEMENTS api_elements1, _, api_elements1right)) ! _ ! ( _, ( values::QQ_API_ELEMENT api_element1, api_element1left, _)) ! rest671)) => { my result =
values::QQ_API_ELEMENTS (fn _ = { my (api_element as api_element1) = api_element1 ();
my (api_elements as api_elements1) = api_elements1 ();
(api_element @ api_elements);
} );
(
lr_table::NONTERM 5, ( result, api_element1left, api_elements1right), rest671);
}
; ( 240, ( ( _, ( _, _, suffix_semi1right)) ! ( _, ( values::QQ_API_ELEMENT api_element1, api_element1left, _)) ! rest671)) => { my result = values::QQ_API_ELEMENTS (fn _ = { my (
api_element as api_element1) = api_element1 ();
(api_element);
} );
( lr_table::NONTERM 5, ( result, api_element1left, suffix_semi1right), rest671);
}
; ( 241, ( ( _, ( values::QQ_PACKAGE_IN_API package_in_api1, _, package_in_api1right)) ! _ ! ( _, ( _, my_t1left, _)) ! rest671)) => { my result = values::QQ_API_ELEMENT (fn _ = { my
(package_in_api as package_in_api1) = package_in_api1 ();
( [ PACKAGES_IN_API package_in_api ] );
} );
( lr_table::NONTERM 4, ( result, my_t1left, package_in_api1right), rest671);
}
; ( 242, ( ( _, ( values::QQ_GENERIC_IN_API generic_in_api1, _, generic_in_api1right)) ! _ ! _ ! ( _, ( _, my_t1left, _)) ! rest671)) => { my result = values::QQ_API_ELEMENT (fn _ = {
my (generic_in_api as generic_in_api1) = generic_in_api1 ();
( [ GENERICS_IN_API generic_in_api ] );
} );
( lr_table::NONTERM 4, ( result, my_t1left, generic_in_api1right), rest671);
}
; ( 243, ( ( _, ( values::QQ_TYPE_IN_API type_in_api1, _, type_in_api1right)) ! ( _, ( _, type_t1left, _)) ! rest671)) => { my result = values::QQ_API_ELEMENT (fn _ = { my (type_in_api
as type_in_api1) = type_in_api1 ();
( [ TYPS_IN_API (type_in_api, FALSE) ] );
} );
( lr_table::NONTERM 4, ( result, type_t1left, type_in_api1right), rest671);
}
; ( 244, ( ( _, ( values::QQ_TYPE_IN_API type_in_api1, _, type_in_api1right)) ! ( _, ( _, eqtype_t1left, _)) ! rest671)) => { my result = values::QQ_API_ELEMENT (fn _ = { my (
type_in_api as type_in_api1) = type_in_api1 ();
( [ TYPS_IN_API (type_in_api, TRUE ) ] );
} );
( lr_table::NONTERM 4, ( result, eqtype_t1left, type_in_api1right), rest671);
}
; ( 245, ( ( _, ( values::QQ_VALUE_IN_API value_in_api1, _, value_in_api1right)) ! ( _, ( _, my_t1left, _)) ! rest671)) => { my result = values::QQ_API_ELEMENT (fn _ = { my (
value_in_api as value_in_api1) = value_in_api1 ();
( [ VALUES_IN_API value_in_api ] );
} );
( lr_table::NONTERM 4, ( result, my_t1left, value_in_api1right), rest671);
}
; ( 246, ( ( _, ( values::QQ_EXCEPTION_IN_API exception_in_api1, _, exception_in_api1right)) ! ( _, ( _, exception_t1left, _)) ! rest671)) => { my result = values::QQ_API_ELEMENT (fn _ =
{ my (exception_in_api as exception_in_api1) = exception_in_api1 ();
( [ EXCEPTIONS_IN_API exception_in_api ] );
} );
( lr_table::NONTERM 4, ( result, exception_t1left, exception_in_api1right
), rest671);
}
; ( 247, ( ( _, ( values::QQ_NAMED_DATATYPES named_datatypes1, _, named_datatypes1right)) ! ( _, ( _, enum_t1left, _)) ! rest671)) => { my result = values::QQ_API_ELEMENT (fn _ = { my
(named_datatypes as named_datatypes1) = named_datatypes1 ();
( [ VALCONS_IN_API { datatyps => named_datatypes, with_typs => NIL } ] );
} );
( lr_table::NONTERM 4, ( result, enum_t1left,
named_datatypes1right), rest671);
}
; ( 248, ( ( _, ( values::QQ_AN_API an_api1, _, an_api1right)) ! ( _, ( _, include_t1left, _)) ! rest671)) => { my result = values::QQ_API_ELEMENT (fn _ = { my (an_api as an_api1) =
an_api1 ();
( [ IMPORT_IN_API an_api ] );
} );
( lr_table::NONTERM 4, ( result, include_t1left, an_api1right), rest671);
}
; ( 249, ( ( _, ( values::QQ_IDENTS idents1, _, idents1right)) ! ( _, ( values::QQ_VALUE_ID value_id1, _, _)) ! ( _, ( _, include_t1left, _)) ! rest671)) => { my result =
values::QQ_API_ELEMENT (fn _ = { my (value_id as value_id1) = value_id1 ();
my (idents as idents1) = idents1 ();
(IMPORT_IN_API (API_BY_NAME (fast_symbol::make_api_symbol value_id)) ! idents)
;
} );
( lr_table::NONTERM 4, ( result, include_t1left, idents1right), rest671);
}
; ( 250, ( ( _, ( values::QQ_SHARING_IN_API sharing_in_api1, _, sharing_in_api1right)) ! ( _, ( _, sharing_t1left, _)) ! rest671)) => { my result = values::QQ_API_ELEMENT (fn _ = { my
(sharing_in_api as sharing_in_api1) = sharing_in_api1 ();
(sharing_in_api);
} );
( lr_table::NONTERM 4, ( result, sharing_t1left, sharing_in_api1right), rest671);
}
; ( 251, ( ( _, ( values::QQ_NAMED_TYPES named_types1, _, named_types1right)) ! _ ! ( _, ( values::QQ_NAMED_DATATYPES named_datatypes1, _, _)) ! ( _, ( _, enum_t1left, _)) ! rest671))
=> { my result = values::QQ_API_ELEMENT (fn _ = { my (named_datatypes as named_datatypes1) = named_datatypes1 ();
my (named_types as named_types1) = named_types1 ();
(
[ VALCONS_IN_API { datatyps => named_datatypes, with_typs => named_types } ] );
} );
( lr_table::NONTERM 4, ( result, enum_t1left, named_types1right), rest671);
}
; ( 252, ( ( _, ( values::QQ_VALUE_ID value_id1, value_id1left, value_id1right)) ! rest671)) => { my result = values::QQ_IDENTS (fn _ = { my (value_id as value_id1) = value_id1 ();
(
[ IMPORT_IN_API (API_BY_NAME (fast_symbol::make_api_symbol value_id)) ] );
} );
( lr_table::NONTERM 45, ( result, value_id1left, value_id1right), rest671);
}
; ( 253, ( ( _, ( values::QQ_IDENTS idents1, _, idents1right)) ! ( _, ( values::QQ_VALUE_ID value_id1, value_id1left, _)) ! rest671)) => { my result = values::QQ_IDENTS (fn _ = { my (
value_id as value_id1) = value_id1 ();
my (idents as idents1) = idents1 ();
( IMPORT_IN_API (API_BY_NAME (fast_symbol::make_api_symbol value_id)) ! idents);
} );
( lr_table::NONTERM 45, (
result, value_id1left, idents1right), rest671);
}
; ( 254, ( ( _, ( values::QQ_PACKAGE_IN_API package_in_api2, _, package_in_api2right)) ! _ ! ( _, ( values::QQ_PACKAGE_IN_API package_in_api1, package_in_api1left, _)) ! rest671)) => { my
result = values::QQ_PACKAGE_IN_API (fn _ = { my package_in_api1 = package_in_api1 ();
my package_in_api2 = package_in_api2 ();
(package_in_api1 @ package_in_api2);
} );
( lr_table::NONTERM
63, ( result, package_in_api1left, package_in_api2right), rest671);
}
; ( 255, ( ( _, ( values::QQ_AN_API an_api1, _, an_api1right)) ! _ ! ( _, ( values::QQ_VALUE_ID value_id1, value_id1left, _)) ! rest671)) => { my result = values::QQ_PACKAGE_IN_API (fn _
= { my (value_id as value_id1) = value_id1 ();
my (an_api as an_api1) = an_api1 ();
( [ (make_package_symbol value_id, an_api, NULL) ] );
} );
( lr_table::NONTERM 63, ( result,
value_id1left, an_api1right), rest671);
}
; ( 256, ( ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1, _, qualified_value_id1right)) ! _ ! ( _, ( values::QQ_AN_API an_api1, _, _)) ! _ ! ( _, ( values::QQ_VALUE_ID
value_id1, value_id1left, _)) ! rest671)) => { my result = values::QQ_PACKAGE_IN_API (fn _ = { my (value_id as value_id1) = value_id1 ();
my (an_api as an_api1) = an_api1 ();
my (
qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
( [ (make_package_symbol value_id, an_api, THE (qualified_value_id make_package_symbol)) ] );
} );
( lr_table::NONTERM 63, (
result, value_id1left, qualified_value_id1right), rest671);
}
; ( 257, ( ( _, ( values::QQ_GENERIC_IN_API generic_in_api2, _, generic_in_api2right)) ! _ ! ( _, ( values::QQ_GENERIC_IN_API generic_in_api1, generic_in_api1left, _)) ! rest671)) => { my
result = values::QQ_GENERIC_IN_API (fn _ = { my generic_in_api1 = generic_in_api1 ();
my generic_in_api2 = generic_in_api2 ();
(generic_in_api1 @ generic_in_api2);
} );
( lr_table::NONTERM
84, ( result, generic_in_api1left, generic_in_api2right), rest671);
}
; ( 258, ( ( _, ( values::QQ_A_GENERIC_API a_generic_api1, _, a_generic_api1right)) ! ( _, ( values::QQ_VALUE_ID value_id1, value_id1left, _)) ! rest671)) => { my result =
values::QQ_GENERIC_IN_API (fn _ = { my (value_id as value_id1) = value_id1 ();
my (a_generic_api as a_generic_api1) = a_generic_api1 ();
( [ (make_generic_symbol value_id, a_generic_api) ] )
;
} );
( lr_table::NONTERM 84, ( result, value_id1left, a_generic_api1right), rest671);
}
; ( 259, ( ( _, ( values::QQ_VALUE_ID value_id1, _, value_id1right)) ! ( _, ( _, suffix_colon1left, _)) ! rest671)) => { my result = values::QQ_A_GENERIC_API (fn _ = { my (value_id as
value_id1) = value_id1 ();
(GENERIC_API_BY_NAME (make_generic_api_symbol value_id));
} );
( lr_table::NONTERM 35, ( result, suffix_colon1left, value_id1right), rest671);
}
; ( 260, ( ( _, ( values::QQ_AN_API an_api1, _, an_api1right)) ! _ ! ( _, ( values::QQ_GENERIC_PARAMETERS generic_parameters1, generic_parameters1left, _)) ! rest671)) => { my result =
values::QQ_A_GENERIC_API (fn _ = { my (generic_parameters as generic_parameters1) = generic_parameters1 ();
my (an_api as an_api1) = an_api1 ();
(
GENERIC_API_DEFINITION {
parameter => generic_parameters,
result => an_api
}
);
} );
( lr_table::NONTERM 35, ( result, generic_parameters1left, an_api1right),
rest671);
}
; ( 261, ( ( _, ( values::QQ_TYPE_IN_API type_in_api2, _, type_in_api2right)) ! _ ! ( _, ( values::QQ_TYPE_IN_API type_in_api1, type_in_api1left, _)) ! rest671)) => { my result =
values::QQ_TYPE_IN_API (fn _ = { my type_in_api1 = type_in_api1 ();
my type_in_api2 = type_in_api2 ();
(type_in_api1 @ type_in_api2);
} );
( lr_table::NONTERM 91, ( result, type_in_api1left
, type_in_api2right), rest671);
}
; ( 262, ( ( _, ( values::VALUE_ID value_id1, value_id1left, value_id1right)) ! rest671)) => { my result = values::QQ_TYPE_IN_API (fn _ = { my (value_id as value_id1) = value_id1 ();
(
[ (make_type_symbol value_id, NIL, NULL ) ] );
} );
( lr_table::NONTERM 91, ( result, value_id1left, value_id1right), rest671);
}
; ( 263, ( ( _, ( values::QQ_ANY_TYPE any_type1, _, any_type1right)) ! _ ! ( _, ( values::VALUE_ID value_id1, value_id1left, _)) ! rest671)) => { my result = values::QQ_TYPE_IN_API (fn _
= { my (value_id as value_id1) = value_id1 ();
my (any_type as any_type1) = any_type1 ();
( [ (make_type_symbol value_id, NIL, THE any_type) ] );
} );
( lr_table::NONTERM 91, ( result,
value_id1left, any_type1right), rest671);
}
; ( 264, ( ( _, ( values::QQ_EXCEPTION_IN_API exception_in_api2, _, exception_in_api2right)) ! _ ! ( _, ( values::QQ_EXCEPTION_IN_API exception_in_api1, exception_in_api1left, _)) ! rest671
)) => { my result = values::QQ_EXCEPTION_IN_API (fn _ = { my exception_in_api1 = exception_in_api1 ();
my exception_in_api2 = exception_in_api2 ();
(exception_in_api1 @ exception_in_api2)
;
} );
( lr_table::NONTERM 30, ( result, exception_in_api1left, exception_in_api2right), rest671);
}
; ( 265, ( ( _, ( values::QQ_VALUE_ID value_id1, value_id1left, value_id1right)) ! rest671)) => { my result = values::QQ_EXCEPTION_IN_API (fn _ = { my (value_id as value_id1) = value_id1
();
( [ (make_value_symbol value_id, NULL ) ] );
} );
( lr_table::NONTERM 30, ( result, value_id1left, value_id1right), rest671);
}
; ( 266, ( ( _, ( values::QQ_ANY_TYPE any_type1, _, any_type1right)) ! ( _, ( values::QQ_VALUE_ID value_id1, value_id1left, _)) ! rest671)) => { my result = values::QQ_EXCEPTION_IN_API
(fn _ = { my (value_id as value_id1) = value_id1 ();
my (any_type as any_type1) = any_type1 ();
( [ (make_value_symbol value_id, THE any_type) ] );
} );
( lr_table::NONTERM 30, ( result,
value_id1left, any_type1right), rest671);
}
; ( 267, ( ( _, ( values::QQ_VALUE_IN_API value_in_api2, _, value_in_api2right)) ! _ ! ( _, ( values::QQ_VALUE_IN_API value_in_api1, value_in_api1left, _)) ! rest671)) => { my result =
values::QQ_VALUE_IN_API (fn _ = { my value_in_api1 = value_in_api1 ();
my value_in_api2 = value_in_api2 ();
(value_in_api1 @ value_in_api2);
} );
( lr_table::NONTERM 93, ( result,
value_in_api1left, value_in_api2right), rest671);
}
; ( 268, ( ( _, ( values::QQ_ANY_TYPE any_type1, _, any_type1right)) ! _ ! ( _, ( values::QQ_VALUE_ID value_id1, value_id1left, _)) ! rest671)) => { my result = values::QQ_VALUE_IN_API
(fn _ = { my (value_id as value_id1) = value_id1 ();
my (any_type as any_type1) = any_type1 ();
( [ (make_value_symbol value_id, any_type) ] );
} );
( lr_table::NONTERM 93, ( result,
value_id1left, any_type1right), rest671);
}
; ( 269, ( ( _, ( values::QQ_SHARING_IN_API sharing_in_api2, _, sharing_in_api2right)) ! _ ! ( _, ( values::QQ_SHARING_IN_API sharing_in_api1, sharing_in_api1left, _)) ! rest671)) => { my
result = values::QQ_SHARING_IN_API (fn _ = { my sharing_in_api1 = sharing_in_api1 ();
my sharing_in_api2 = sharing_in_api2 ();
(sharing_in_api1 @ sharing_in_api2);
} );
( lr_table::NONTERM
79, ( result, sharing_in_api1left, sharing_in_api2right), rest671);
}
; ( 270, ( ( _, ( values::QQ_PATH_EQUATION path_equation1, path_equationleft, (path_equationright as path_equation1right))) ! ( _, ( _, type_t1left, _)) ! rest671)) => { my result =
values::QQ_SHARING_IN_API (fn _ = { my (path_equation as path_equation1) = path_equation1 ();
(
[ SOURCE_CODE_REGION_FOR_API_ELEMENT (
TYPE_SHARING_IN_API (path_equation make_type_symbol),
(path_equationleft, path_equationright)
)
]
);
} );
( lr_table::NONTERM 79, ( result, type_t1left, path_equation1right), rest671);
}
; ( 271, ( ( _, ( values::QQ_PATH_EQUATION path_equation1, (path_equationleft as path_equation1left), (path_equationright as path_equation1right))) ! rest671)) => { my result =
values::QQ_SHARING_IN_API (fn _ = { my (path_equation as path_equation1) = path_equation1 ();
(
[ SOURCE_CODE_REGION_FOR_API_ELEMENT (
PACKAGE_SHARING_IN_API (path_equation make_package_symbol),
(path_equationleft, path_equationright)
)
]
);
} )
;
( lr_table::NONTERM 79, ( result, path_equation1left, path_equation1right), rest671);
}
; ( 272, ( ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id2, _, qualified_value_id2right)) ! _ ! ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1, qualified_value_id1left, _)
) ! rest671)) => { my result = values::QQ_PATH_EQUATION (fn _ = { my qualified_value_id1 = qualified_value_id1 ();
my qualified_value_id2 = qualified_value_id2 ();
(
fn kind = [qualified_value_id1 kind, qualified_value_id2 kind]);
} );
( lr_table::NONTERM 65, ( result, qualified_value_id1left, qualified_value_id2right), rest671);
}
; ( 273, ( ( _, ( values::QQ_PATH_EQUATION path_equation1, _, path_equation1right)) ! _ ! ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1, qualified_value_id1left, _)) ! rest671))
=> { my result = values::QQ_PATH_EQUATION (fn _ = { my (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
my (path_equation as path_equation1) = path_equation1 ();
(
fn kind = qualified_value_id kind ! path_equation kind);
} );
( lr_table::NONTERM 65, ( result, qualified_value_id1left, path_equation1right), rest671);
}
; ( 274, ( ( _, ( values::QQ_WHERE_ON_API where_on_api2, _, where_on_api2right)) ! _ ! ( _, ( values::QQ_WHERE_ON_API where_on_api1, where_on_api1left, _)) ! rest671)) => { my result =
values::QQ_WHERE_ON_API (fn _ = { my where_on_api1 = where_on_api1 ();
my where_on_api2 = where_on_api2 ();
(where_on_api1 @ where_on_api2);
} );
( lr_table::NONTERM 94, ( result,
where_on_api1left, where_on_api2right), rest671);
}
; ( 275, ( ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id2, _, qualified_value_id2right)) ! _ ! ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1, qualified_value_id1left, _)
) ! rest671)) => { my result = values::QQ_WHERE_ON_API (fn _ = { my qualified_value_id1 = qualified_value_id1 ();
my qualified_value_id2 = qualified_value_id2 ();
(
[ WHERE_PACKAGE (qualified_value_id1 make_package_symbol, qualified_value_id2 make_package_symbol) ] );
} );
( lr_table::NONTERM 94, ( result, qualified_value_id1left, qualified_value_id2right)
, rest671);
}
; ( 276, ( ( _, ( values::QQ_ANY_TYPE any_type1, _, any_type1right)) ! _ ! ( _, ( values::QQ_QUALIFIED_TYPE_ID qualified_type_id1, _, _)) ! ( _, ( _, type_t1left, _)) ! rest671)) => {
my result = values::QQ_WHERE_ON_API (fn _ = { my (qualified_type_id as qualified_type_id1) = qualified_type_id1 ();
my (any_type as any_type1) = any_type1 ();
(
[ WHERE_TYPE (qualified_type_id make_type_symbol, NIL, any_type) ] );
} );
( lr_table::NONTERM 94, ( result, type_t1left, any_type1right), rest671);
}
; ( 277, ( ( _, ( values::QQ_GENERIC_NAMINGS generic_namings2, _, generic_namings2right)) ! _ ! ( _, ( values::QQ_GENERIC_NAMINGS generic_namings1, generic_namings1left, _)) ! rest671)) =>
{ my result = values::QQ_GENERIC_NAMINGS (fn _ = { my generic_namings1 = generic_namings1 ();
my generic_namings2 = generic_namings2 ();
(generic_namings1 @ generic_namings2);
} );
(
lr_table::NONTERM 40, ( result, generic_namings1left, generic_namings2right), rest671);
}
; ( 278, ( ( _, ( values::QQ_A_PACKAGE a_package1, _, (a_packageright as a_package1right))) ! _ ! ( _, ( values::QQ_OPTIONAL_API_CAST optional_api_cast1, _, _)) ! ( _, (
values::QQ_GENERIC_PARAMETERS generic_parameters1, _, _)) ! ( _, ( values::QQ_VALUE_ID value_id1, value_idleft, _)) ! _ ! _ ! ( _, ( _, my_t1left, _)) ! rest671)) => { my result =
values::QQ_GENERIC_NAMINGS (fn _ = { my (value_id as value_id1) = value_id1 ();
my (generic_parameters as generic_parameters1) = generic_parameters1 ();
my (optional_api_cast as
optional_api_cast1) = optional_api_cast1 ();
my (a_package as a_package1) = a_package1 ();
(
[ SOURCE_CODE_REGION_FOR_NAMED_GENERIC (
NAMED_GENERIC {
name_symbol => make_generic_symbol value_id,
definition => GENERIC_DEFINITION {
parameters => generic_parameters,
body => a_package,
constraint => optional_api_cast
}
},
(value_idleft, a_packageright)
)
]
);
} );
( lr_table::NONTERM 40, ( result, my_t1left, a_package1right), rest671);
}
; ( 279, ( ( _, ( values::QQ_GENERIC_EXPRESSION generic_expression1, _, (generic_expressionright as generic_expression1right))) ! _ ! ( _, ( values::QQ_OPTIONAL_GENERIC_API_CAST
optional_generic_api_cast1, _, _)) ! ( _, ( values::QQ_VALUE_ID value_id1, value_idleft, _)) ! _ ! _ ! ( _, ( _, my_t1left, _)) ! rest671)) => { my result = values::QQ_GENERIC_NAMINGS
(fn _ = { my (value_id as value_id1) = value_id1 ();
my (optional_generic_api_cast as optional_generic_api_cast1) = optional_generic_api_cast1 ();
my (generic_expression as
generic_expression1) = generic_expression1 ();
(
[ SOURCE_CODE_REGION_FOR_NAMED_GENERIC (
NAMED_GENERIC {
name_symbol => make_generic_symbol value_id,
definition => generic_expression (optional_generic_api_cast)
},
(value_idleft, generic_expressionright)
)
]
);
} );
( lr_table::NONTERM 40, ( result, my_t1left, generic_expression1right), rest671);
}
; ( 280, ( ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1, qualified_value_id1left, qualified_value_id1right)) ! rest671)) => { my result = values::QQ_GENERIC_EXPRESSION (fn _ = {
my (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
(fn constraint = GENERIC_BY_NAME (qualified_value_id make_generic_symbol, constraint));
} );
( lr_table::NONTERM 41, (
result, qualified_value_id1left, qualified_value_id1right), rest671);
}
; ( 281, ( ( _, ( values::QQ_GENERIC_ARGS generic_args1, _, (generic_argsright as generic_args1right))) ! ( _, ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1, (qualified_value_idleft as
qualified_value_id1left), _)) ! rest671)) => { my result = values::QQ_GENERIC_EXPRESSION (fn _ = { my (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
my (generic_args
as generic_args1) = generic_args1 ();
(
fn constraint = SOURCE_CODE_REGION_FOR_GENERIC (
CONSTRAINED_CALL_OF_GENERIC (
qualified_value_id make_generic_symbol,
generic_args,
constraint
),
(qualified_value_idleft, generic_argsright)
)
);
} );
( lr_table::NONTERM 41, ( result, qualified_value_id1left, generic_args1right), rest671);
}
; ( 282, ( ( _, ( _, _, (end_tright as end_t1right))) ! ( _, ( values::QQ_GENERIC_EXPRESSION generic_expression1, _, _)) ! _ ! ( _, (
values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE optional_declarations_and_expressions_in_package1, _, _)) ! ( _, ( _, (let_tleft as let_t1left), _)) ! rest671)) => { my result =
values::QQ_GENERIC_EXPRESSION (fn _ = { my (optional_declarations_and_expressions_in_package as optional_declarations_and_expressions_in_package1) =
optional_declarations_and_expressions_in_package1 ();
my (generic_expression as generic_expression1) = generic_expression1 ();
(
fn constraint = SOURCE_CODE_REGION_FOR_GENERIC (
LET_IN_GENERIC (optional_declarations_and_expressions_in_package, generic_expression constraint),
(let_tleft, end_tright)
)
);
} );
( lr_table::NONTERM 41, ( result, let_t1left, end_t1right), rest671);
}
; ( 283, ( ( _, ( _, _, rparen1right)) ! ( _, ( values::QQ_A_PACKAGE a_package1, _, _)) ! ( _, ( _, lparen1left, _)) ! rest671)) => { my result = values::QQ_GENERIC_ARGS (fn _ = {
my (a_package as a_package1) = a_package1 ();
([(a_package, TRUE)]);
} );
( lr_table::NONTERM 83, ( result, lparen1left, rparen1right), rest671);
}
; ( 284, ( ( _, ( values::QQ_GENERIC_ARGS generic_args1, _, generic_args1right)) ! _ ! ( _, ( values::QQ_A_PACKAGE a_package1, _, _)) ! ( _, ( _, lparen1left, _)) ! rest671)) => { my
result = values::QQ_GENERIC_ARGS (fn _ = { my (a_package as a_package1) = a_package1 ();
my (generic_args as generic_args1) = generic_args1 ();
((a_package, TRUE) ! generic_args);
} );
(
lr_table::NONTERM 83, ( result, lparen1left, generic_args1right), rest671);
}
; ( 285, ( ( _, ( values::QQ_GENERIC_ARGS generic_args1, _, generic_args1right)) ! _ ! ( _, ( values::QQ_OPTIONAL_DECLARATIONS_IN_GENERIC_ARGS optional_declarations_in_generic_args1,
optional_declarations_in_generic_argsleft, optional_declarations_in_generic_argsright)) ! ( _, ( _, lparen1left, _)) ! rest671)) => { my result = values::QQ_GENERIC_ARGS (fn _ = { my (
optional_declarations_in_generic_args as optional_declarations_in_generic_args1) = optional_declarations_in_generic_args1 ();
my (generic_args as generic_args1) = generic_args1 ();
(
( SOURCE_CODE_REGION_FOR_PACKAGE (
PACKAGE_DEFINITION
optional_declarations_in_generic_args,
( optional_declarations_in_generic_argsleft,
optional_declarations_in_generic_argsright
)
),
FALSE
)
!
generic_args
);
} );
( lr_table::NONTERM 83, ( result, lparen1left, generic_args1right), rest671);
}
; ( 286, ( ( _, ( _, _, rparen1right)) ! ( _, ( values::QQ_OPTIONAL_DECLARATIONS_IN_GENERIC_ARGS optional_declarations_in_generic_args1, optional_declarations_in_generic_argsleft,
optional_declarations_in_generic_argsright)) ! ( _, ( _, lparen1left, _)) ! rest671)) => { my result = values::QQ_GENERIC_ARGS (fn _ = { my (optional_declarations_in_generic_args as
optional_declarations_in_generic_args1) = optional_declarations_in_generic_args1 ();
(
[ ( SOURCE_CODE_REGION_FOR_PACKAGE (
PACKAGE_DEFINITION
optional_declarations_in_generic_args,
( optional_declarations_in_generic_argsleft,
optional_declarations_in_generic_argsright
)
),
FALSE
)
]
);
} );
( lr_table::NONTERM 83, ( result, lparen1left, rparen1right), rest671);
}
; ( 287, ( ( _, ( _, _, rparen1right)) ! ( _, ( values::QQ_GENERIC_PARAMETER generic_parameter1, _, _)) ! ( _, ( _, lparen1left, _)) ! rest671)) => { my result =
values::QQ_GENERIC_PARAMETERS (fn _ = { my (generic_parameter as generic_parameter1) = generic_parameter1 ();
( [ generic_parameter ] );
} );
( lr_table::NONTERM 34, ( result, lparen1left,
rparen1right), rest671);
}
; ( 288, ( ( _, ( values::QQ_GENERIC_PARAMETERS generic_parameters1, _, generic_parameters1right)) ! _ ! ( _, ( values::QQ_GENERIC_PARAMETER generic_parameter1, _, _)) ! ( _, ( _,
lparen1left, _)) ! rest671)) => { my result = values::QQ_GENERIC_PARAMETERS (fn _ = { my (generic_parameter as generic_parameter1) = generic_parameter1 ();
my (generic_parameters as
generic_parameters1) = generic_parameters1 ();
( generic_parameter ! generic_parameters);
} );
( lr_table::NONTERM 34, ( result, lparen1left, generic_parameters1right), rest671);
}
; ( 289, ( ( _, ( values::QQ_AN_API an_api1, _, an_api1right)) ! _ ! ( _, ( values::VALUE_ID value_id1, value_id1left, _)) ! rest671)) => { my result = values::QQ_GENERIC_PARAMETER (fn _
= { my (value_id as value_id1) = value_id1 ();
my (an_api as an_api1) = an_api1 ();
( ( THE (make_package_symbol value_id), an_api) );
} );
( lr_table::NONTERM 33, ( result,
value_id1left, an_api1right), rest671);
}
; ( 290, ( ( _, ( values::QQ_OPTIONAL_API_ELEMENTS optional_api_elements1, (optional_api_elementsleft as optional_api_elements1left), (optional_api_elementsright as optional_api_elements1right)))
! rest671)) => { my result = values::QQ_GENERIC_PARAMETER (fn _ = { my (optional_api_elements as optional_api_elements1) = optional_api_elements1 ();
(
( NULL,
SOURCE_CODE_REGION_FOR_API (
API_DEFINITION (optional_api_elements),
(optional_api_elementsleft, optional_api_elementsright)
) ) );
} );
(
lr_table::NONTERM 33, ( result, optional_api_elements1left, optional_api_elements1right), rest671);
}
; ( 291, ( rest671)) => { my result = values::QQ_OPTIONAL_GENERIC_API_CAST (fn _ = ( NO_PACKAGE_CAST));
( lr_table::NONTERM 36, ( result, default_position, default_position), rest671)
;
}
; ( 292, ( ( _, ( values::TYPE_ID type_id1, _, type_id1right)) ! _ ! ( _, ( _, suffix_colon1left, _)) ! rest671)) => { my result = values::QQ_OPTIONAL_GENERIC_API_CAST (fn _ = { my (
type_id as type_id1) = type_id1 ();
( WEAK_PACKAGE_CAST (GENERIC_API_BY_NAME (make_generic_api_symbol type_id)));
} );
( lr_table::NONTERM 36, ( result, suffix_colon1left, type_id1right),
rest671);
}
; ( 293, ( ( _, ( values::TYPE_ID type_id1, _, type_id1right)) ! _ ! ( _, ( _, suffix_colon1left, _)) ! rest671)) => { my result = values::QQ_OPTIONAL_GENERIC_API_CAST (fn _ = { my (
type_id as type_id1) = type_id1 ();
( STRONG_PACKAGE_CAST (GENERIC_API_BY_NAME (make_generic_api_symbol type_id)));
} );
( lr_table::NONTERM 36, ( result, suffix_colon1left, type_id1right),
rest671);
}
; ( 294, ( ( _, ( values::QQ_GENERIC_API_NAMINGS generic_api_namings2, _, generic_api_namings2right)) ! _ ! ( _, ( values::QQ_GENERIC_API_NAMINGS generic_api_namings1,
generic_api_namings1left, _)) ! rest671)) => { my result = values::QQ_GENERIC_API_NAMINGS (fn _ = { my generic_api_namings1 = generic_api_namings1 ();
my generic_api_namings2 =
generic_api_namings2 ();
(generic_api_namings1 @ generic_api_namings2);
} );
( lr_table::NONTERM 42, ( result, generic_api_namings1left, generic_api_namings2right), rest671);
}
; ( 295, ( ( _, ( values::QQ_AN_API an_api1, _, an_api1right)) ! _ ! ( _, ( values::QQ_GENERIC_PARAMETERS generic_parameters1, _, _)) ! ( _, ( values::TYPE_ID type_id1, _, _)) ! _ ! _
! _ ! ( _, ( _, my_t1left, _)) ! rest671)) => { my result = values::QQ_GENERIC_API_NAMINGS (fn _ = { my (type_id as type_id1) = type_id1 ();
my (generic_parameters as
generic_parameters1) = generic_parameters1 ();
my (an_api as an_api1) = an_api1 ();
(
[ NAMED_GENERIC_API {
name_symbol => make_generic_api_symbol type_id,
definition => GENERIC_API_DEFINITION {
parameter => generic_parameters,
result => an_api
}
}
]
);
} );
( lr_table::NONTERM 42, ( result, my_t1left, an_api1right), rest671);
}
; _ => raise exception (MLY_ACTION i392);
esac;
end;
void = values::TM_VOID;
extract = fn a = (fn values::QQ_TOPLEVEL_STATEMENT x => x;
_ => { exception PARSE_INTERNAL;
raise exception PARSE_INTERNAL; }; end ) a ();
};
};
package tokens : (weak) Nada_Tokens {
Semantic_Value = parser_data::Semantic_Value;
Token (X,Y) = token::Token(X,Y);
fun antiquote_id (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 0, (parser_data::values::ANTIQUOTE_ID (fn () = i), p1, p2));
fun char (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 1, (parser_data::values::CHAR (fn () = i), p1, p2));
fun chunkl (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 2, (parser_data::values::CHUNKL (fn () = i), p1, p2));
fun constructor_id (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 3, (parser_data::values::CONSTRUCTOR_ID (fn () = i), p1, p2));
fun endq (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 4, (parser_data::values::ENDQ (fn () = i), p1, p2));
fun value_id (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 5, (parser_data::values::VALUE_ID (fn () = i), p1, p2));
fun int (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 6, (parser_data::values::INT (fn () = i), p1, p2));
fun int0 (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 7, (parser_data::values::INT0 (fn () = i), p1, p2));
fun real (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 8, (parser_data::values::REAL (fn () = i), p1, p2));
fun shebang (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 9, (parser_data::values::SHEBANG (fn () = i), p1, p2));
fun string (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 10, (parser_data::values::STRING (fn () = i), p1, p2));
fun type_id (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 11, (parser_data::values::TYPE_ID (fn () = i), p1, p2));
fun typevar_id (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 12, (parser_data::values::TYPEVAR_ID (fn () = i), p1, p2));
fun unt (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 13, (parser_data::values::UNT (fn () = i), p1, p2));
fun tight_infix_op (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 14, (parser_data::values::TIGHT_INFIX_OP (fn () = i), p1, p2));
fun loose_infix_op (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 15, (parser_data::values::LOOSE_INFIX_OP (fn () = i), p1, p2));
fun prefix_op (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 16, (parser_data::values::PREFIX_OP (fn () = i), p1, p2));
fun suffix_op (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 17, (parser_data::values::SUFFIX_OP (fn () = i), p1, p2));
fun also_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 18, (parser_data::values::TM_VOID, p1, p2));
fun and_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 19, (parser_data::values::TM_VOID, p1, p2));
fun api_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 20, (parser_data::values::TM_VOID, p1, p2));
fun as_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 21, (parser_data::values::TM_VOID, p1, p2));
fun begin_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 22, (parser_data::values::TM_VOID, p1, p2));
fun beginq (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 23, (parser_data::values::TM_VOID, p1, p2));
fun case_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 24, (parser_data::values::TM_VOID, p1, p2));
fun do_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 25, (parser_data::values::TM_VOID, p1, p2));
fun else_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 26, (parser_data::values::TM_VOID, p1, p2));
fun end_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 27, (parser_data::values::TM_VOID, p1, p2));
fun enum_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 28, (parser_data::values::TM_VOID, p1, p2));
fun eof (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 29, (parser_data::values::TM_VOID, p1, p2));
fun eqtype_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 30, (parser_data::values::TM_VOID, p1, p2));
fun except_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 31, (parser_data::values::TM_VOID, p1, p2));
fun exception_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 32, (parser_data::values::TM_VOID, p1, p2));
fun fi_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 33, (parser_data::values::TM_VOID, p1, p2));
fun fn_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 34, (parser_data::values::TM_VOID, p1, p2));
fun fun_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 35, (parser_data::values::TM_VOID, p1, p2));
fun if_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 36, (parser_data::values::TM_VOID, p1, p2));
fun in_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 37, (parser_data::values::TM_VOID, p1, p2));
fun include_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 38, (parser_data::values::TM_VOID, p1, p2));
fun infix_arrow (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 39, (parser_data::values::TM_VOID, p1, p2));
fun infix_bangbang (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 40, (parser_data::values::TM_VOID, p1, p2));
fun infix_darrow (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 41, (parser_data::values::TM_VOID, p1, p2));
fun infix_dotdotdot (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 42, (parser_data::values::TM_VOID, p1, p2));
fun infix_equal (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 43, (parser_data::values::TM_VOID, p1, p2));
fun infix_qmarkqmark (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 44, (parser_data::values::TM_VOID, p1, p2));
fun lazy_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 45, (parser_data::values::TM_VOID, p1, p2));
fun let_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 46, (parser_data::values::TM_VOID, p1, p2));
fun local_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 47, (parser_data::values::TM_VOID, p1, p2));
fun loose_infix_lvector (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 48, (parser_data::values::TM_VOID, p1, p2));
fun loose_infix_lbracket (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 49, (parser_data::values::TM_VOID, p1, p2));
fun loose_infix_rbracket (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 50, (parser_data::values::TM_VOID, p1, p2));
fun loose_infix_lbrace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 51, (parser_data::values::TM_VOID, p1, p2));
fun loose_infix_rbrace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 52, (parser_data::values::TM_VOID, p1, p2));
fun lparen (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 53, (parser_data::values::TM_VOID, p1, p2));
fun macro (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 54, (parser_data::values::TM_VOID, p1, p2));
fun my_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 55, (parser_data::values::TM_VOID, p1, p2));
fun of_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 56, (parser_data::values::TM_VOID, p1, p2));
fun opaque (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 57, (parser_data::values::TM_VOID, p1, p2));
fun or_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 58, (parser_data::values::TM_VOID, p1, p2));
fun package_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 59, (parser_data::values::TM_VOID, p1, p2));
fun prefix_bar (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 60, (parser_data::values::TM_VOID, p1, p2));
fun prefix_dot (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 61, (parser_data::values::TM_VOID, p1, p2));
fun prefix_langle (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 62, (parser_data::values::TM_VOID, p1, p2));
fun prefix_lbrace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 63, (parser_data::values::TM_VOID, p1, p2));
fun prefix_lbracket (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 64, (parser_data::values::TM_VOID, p1, p2));
fun prefix_slash (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 65, (parser_data::values::TM_VOID, p1, p2));
fun raise_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 66, (parser_data::values::TM_VOID, p1, p2));
fun raw_ampersand (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 67, (parser_data::values::TM_VOID, p1, p2));
fun raw_underbar (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 68, (parser_data::values::TM_VOID, p1, p2));
fun raw_dollar (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 69, (parser_data::values::TM_VOID, p1, p2));
fun raw_sharp (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 70, (parser_data::values::TM_VOID, p1, p2));
fun raw_bang (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 71, (parser_data::values::TM_VOID, p1, p2));
fun raw_tilda (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 72, (parser_data::values::TM_VOID, p1, p2));
fun raw_dash (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 73, (parser_data::values::TM_VOID, p1, p2));
fun raw_plus (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 74, (parser_data::values::TM_VOID, p1, p2));
fun raw_star (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 75, (parser_data::values::TM_VOID, p1, p2));
fun raw_slash (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 76, (parser_data::values::TM_VOID, p1, p2));
fun raw_percent (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 77, (parser_data::values::TM_VOID, p1, p2));
fun raw_colon (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 78, (parser_data::values::TM_VOID, p1, p2));
fun raw_langle (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 79, (parser_data::values::TM_VOID, p1, p2));
fun raw_rangle (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 80, (parser_data::values::TM_VOID, p1, p2));
fun raw_lbrace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 81, (parser_data::values::TM_VOID, p1, p2));
fun raw_rbrace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 82, (parser_data::values::TM_VOID, p1, p2));
fun raw_lbracket (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 83, (parser_data::values::TM_VOID, p1, p2));
fun raw_rbracket (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 84, (parser_data::values::TM_VOID, p1, p2));
fun raw_equal (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 85, (parser_data::values::TM_VOID, p1, p2));
fun raw_question (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 86, (parser_data::values::TM_VOID, p1, p2));
fun raw_atsign (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 87, (parser_data::values::TM_VOID, p1, p2));
fun raw_caret (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 88, (parser_data::values::TM_VOID, p1, p2));
fun raw_bar (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 89, (parser_data::values::TM_VOID, p1, p2));
fun raw_backslash (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 90, (parser_data::values::TM_VOID, p1, p2));
fun raw_semi (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 91, (parser_data::values::TM_VOID, p1, p2));
fun raw_dot (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 92, (parser_data::values::TM_VOID, p1, p2));
fun raw_comma (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 93, (parser_data::values::TM_VOID, p1, p2));
fun raw_whitespace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 94, (parser_data::values::TM_VOID, p1, p2));
fun rec_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 95, (parser_data::values::TM_VOID, p1, p2));
fun rparen (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 96, (parser_data::values::TM_VOID, p1, p2));
fun sharing_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 97, (parser_data::values::TM_VOID, p1, p2));
fun suffix_bar (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 98, (parser_data::values::TM_VOID, p1, p2));
fun suffix_colon (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 99, (parser_data::values::TM_VOID, p1, p2));
fun suffix_comma (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 100, (parser_data::values::TM_VOID, p1, p2));
fun suffix_dot (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 101, (parser_data::values::TM_VOID, p1, p2));
fun suffix_semi (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 102, (parser_data::values::TM_VOID, p1, p2));
fun suffix_rangle (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 103, (parser_data::values::TM_VOID, p1, p2));
fun suffix_rbrace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 104, (parser_data::values::TM_VOID, p1, p2));
fun suffix_rbracket (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 105, (parser_data::values::TM_VOID, p1, p2));
fun suffix_slash (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 106, (parser_data::values::TM_VOID, p1, p2));
fun then_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 107, (parser_data::values::TM_VOID, p1, p2));
fun tight_infix_colon (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 108, (parser_data::values::TM_VOID, p1, p2));
fun tight_infix_dot (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 109, (parser_data::values::TM_VOID, p1, p2));
fun transparent (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 110, (parser_data::values::TM_VOID, p1, p2));
fun type_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 111, (parser_data::values::TM_VOID, p1, p2));
fun underbar (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 112, (parser_data::values::TM_VOID, p1, p2));
fun use (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 113, (parser_data::values::TM_VOID, p1, p2));
fun where_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 114, (parser_data::values::TM_VOID, p1, p2));
fun while_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 115, (parser_data::values::TM_VOID, p1, p2));
fun with_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 116, (parser_data::values::TM_VOID, p1, p2));
fun xxx (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 117, (parser_data::values::TM_VOID, p1, p2));
fun yyy (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 118, (parser_data::values::TM_VOID, p1, p2));
fun zzz (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 119, (parser_data::values::TM_VOID, p1, p2));
};
};


