File ‹trac_parser/trac_fp.grm.sml›

 (***** GENERATED FILE -- DO NOT EDIT ****)
functor TracLrValsFun(structure Token : TOKEN)
 : sig structure ParserData : PARSER_DATA
       structure Tokens : Trac_TOKENS
   end
 = 
struct
structure ParserData=
struct
structure Header = 
struct
(* SPDX-License-Identifier: BSD-3-Clause *)
open Trac_Term

exception NotYetSupported of string 



end
structure LrTable = Token.LrTable
structure Token = Token
local open LrTable in 
val table=let val actionRows =
"\
\\001\000\001\000\000\000\000\000\
\\001\000\003\000\013\000\009\000\012\000\010\000\011\000\012\000\010\000\
\\013\000\009\000\000\000\
\\001\000\005\000\038\000\000\000\
\\001\000\005\000\047\000\000\000\
\\001\000\007\000\036\000\000\000\
\\001\000\008\000\028\000\012\000\010\000\013\000\009\000\014\000\027\000\
\\015\000\026\000\016\000\025\000\000\000\
\\001\000\008\000\032\000\012\000\010\000\000\000\
\\001\000\009\000\012\000\010\000\011\000\012\000\010\000\013\000\009\000\000\000\
\\001\000\010\000\019\000\000\000\
\\001\000\012\000\010\000\013\000\009\000\000\000\
\\001\000\012\000\010\000\013\000\009\000\017\000\018\000\000\000\
\\001\000\014\000\027\000\015\000\026\000\016\000\025\000\000\000\
\\051\000\000\000\
\\052\000\000\000\
\\053\000\000\000\
\\054\000\009\000\012\000\010\000\011\000\012\000\010\000\013\000\009\000\000\000\
\\055\000\000\000\
\\056\000\000\000\
\\057\000\000\000\
\\058\000\000\000\
\\059\000\000\000\
\\060\000\004\000\015\000\000\000\
\\061\000\004\000\033\000\000\000\
\\062\000\004\000\042\000\000\000\
\\063\000\000\000\
\\064\000\006\000\014\000\000\000\
\\065\000\000\000\
\\066\000\002\000\035\000\000\000\
\\067\000\000\000\
\\068\000\000\000\
\\069\000\000\000\
\\070\000\000\000\
\\071\000\008\000\032\000\012\000\010\000\000\000\
\\072\000\000\000\
\\073\000\000\000\
\\074\000\000\000\
\\075\000\000\000\
\\076\000\000\000\
\\077\000\000\000\
\\078\000\000\000\
\\079\000\000\000\
\\080\000\000\000\
\\081\000\000\000\
\"
val actionRowNumbers =
"\001\000\025\000\024\000\021\000\
\\015\000\014\000\012\000\037\000\
\\036\000\010\000\008\000\007\000\
\\005\000\006\000\016\000\022\000\
\\017\000\009\000\013\000\031\000\
\\027\000\004\000\029\000\041\000\
\\042\000\040\000\011\000\002\000\
\\032\000\018\000\011\000\006\000\
\\023\000\005\000\026\000\030\000\
\\009\000\033\000\003\000\019\000\
\\006\000\028\000\039\000\038\000\
\\035\000\009\000\020\000\034\000\
\\000\000"
val gotoT =
"\
\\001\000\048\000\002\000\006\000\003\000\005\000\004\000\004\000\
\\005\000\003\000\011\000\002\000\012\000\001\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\003\000\014\000\004\000\004\000\005\000\003\000\011\000\002\000\
\\012\000\001\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\005\000\015\000\011\000\002\000\012\000\001\000\000\000\
\\000\000\
\\003\000\018\000\004\000\004\000\005\000\003\000\011\000\002\000\
\\012\000\001\000\000\000\
\\005\000\022\000\006\000\021\000\007\000\020\000\011\000\002\000\
\\012\000\001\000\013\000\019\000\000\000\
\\008\000\029\000\009\000\028\000\011\000\027\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\005\000\032\000\011\000\002\000\012\000\001\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\013\000\035\000\000\000\
\\000\000\
\\008\000\037\000\009\000\028\000\011\000\027\000\000\000\
\\000\000\
\\013\000\038\000\000\000\
\\008\000\039\000\009\000\028\000\011\000\027\000\000\000\
\\000\000\
\\005\000\022\000\006\000\041\000\007\000\020\000\011\000\002\000\
\\012\000\001\000\013\000\019\000\000\000\
\\000\000\
\\000\000\
\\010\000\044\000\011\000\043\000\012\000\042\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\008\000\046\000\009\000\028\000\011\000\027\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\010\000\047\000\011\000\043\000\012\000\042\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\"
val numstates = 49
val numrules = 31
val s = Unsynchronized.ref "" and index = Unsynchronized.ref 0
val string_to_int = fn () => 
let val i = !index
in index := i+2; Char.ord(String.sub(!s,i)) + Char.ord(String.sub(!s,i+1)) * 256
end
val string_to_list = fn s' =>
    let val len = String.size s'
        fun f () =
           if !index < len then string_to_int() :: f()
           else nil
   in index := 0; s := s'; f ()
   end
val string_to_pairlist = fn (conv_key,conv_entry) =>
     let fun f () =
         case string_to_int()
         of 0 => EMPTY
          | n => PAIR(conv_key (n-1),conv_entry (string_to_int()),f())
     in f
     end
val string_to_pairlist_default = fn (conv_key,conv_entry) =>
    let val conv_row = string_to_pairlist(conv_key,conv_entry)
    in fn () =>
       let val default = conv_entry(string_to_int())
           val row = conv_row()
       in (row,default)
       end
   end
val string_to_table = fn (convert_row,s') =>
    let val len = String.size s'
        fun f ()=
           if !index < len then convert_row() :: f()
           else nil
     in (s := s'; index := 0; f ())
     end
local
  val memo = Array.array(numstates+numrules,ERROR)
  val _ =let fun g i=(Array.update(memo,i,REDUCE(i-numstates)); g(i+1))
       fun f i =
            if i=numstates then g i
            else (Array.update(memo,i,SHIFT (STATE i)); f (i+1))
          in f 0 handle General.Subscript => ()
          end
in
val entry_to_action = fn 0 => ACCEPT | 1 => ERROR | j => Array.sub(memo,(j-2))
end
val gotoT=Array.fromList(string_to_table(string_to_pairlist(NT,STATE),gotoT))
val actionRows=string_to_table(string_to_pairlist_default(T,entry_to_action),actionRows)
val actionRowNumbers = string_to_list actionRowNumbers
val actionT = let val actionRowLookUp=
let val a=Array.fromList(actionRows) in fn i=>Array.sub(a,i) end
in Array.fromList(List.map actionRowLookUp actionRowNumbers)
end
in LrTable.mkLrTable {actions=actionT,gotos=gotoT,numRules=numrules,
numStates=numstates,initialState=STATE 0}
end
end
local open Header in
type pos =  ( int * int * int ) 
type arg = unit
structure MlyValue = 
struct
datatype svalue = VOID | ntVOID of unit ->  unit
 | ATTACK of unit ->  (string) | ZERO of unit ->  (string)
 | ONE of unit ->  (string) | INTEGER_LITERAL of unit ->  (string)
 | LOWER_STRING_LITERAL of unit ->  (string)
 | UPPER_STRING_LITERAL of unit ->  (string)
 | STRING_LITERAL of unit ->  (string)
 | DOUBLE_RARROW of unit ->  (string)
 | DOUBLE_ASTERISK of unit ->  (string)
 | ASTERISK of unit ->  (string) | PAREN_CLOSE of unit ->  (string)
 | PAREN_OPEN of unit ->  (string) | COLON of unit ->  (string)
 | WHERE of unit ->  (string) | FIXEDPOINT of unit ->  (string)
 | COMMA of unit ->  (string) | int_literal of unit ->  (string)
 | lower_literal of unit ->  (string)
 | upper_literal of unit ->  (string)
 | string_literal of unit ->  (string)
 | type_exp of unit ->  (TypeDecl)
 | type_list_exp of unit ->  (TypeDecl list)
 | arg_exp of unit ->  (Msg) | arg_list_exp of unit ->  (Msg list)
 | rule_exp of unit ->  (Msg)
 | symfact_exp of unit ->  (Msg*TypeDecl list)
 | symfact_list_exp of unit ->  ( ( Msg * TypeDecl list )  list)
 | trac_file of unit ->  ( ( Msg * TypeDecl list )  list)
 | START of unit ->  ( ( Msg * TypeDecl list )  list)
end
type svalue = MlyValue.svalue
type result =  ( Msg * TypeDecl list )  list
end
structure EC=
struct
open LrTable
infix 5 $$
fun x $$ y = y::x
val is_keyword =
fn _ => false
val preferred_change : (term list * term list) list = 
nil
val noShift = 
fn (T 0) => true | _ => false
val showTerminal =
fn (T 0) => "EOF"
  | (T 1) => "COMMA"
  | (T 2) => "FIXEDPOINT"
  | (T 3) => "WHERE"
  | (T 4) => "COLON"
  | (T 5) => "PAREN_OPEN"
  | (T 6) => "PAREN_CLOSE"
  | (T 7) => "ASTERISK"
  | (T 8) => "DOUBLE_ASTERISK"
  | (T 9) => "DOUBLE_RARROW"
  | (T 10) => "STRING_LITERAL"
  | (T 11) => "UPPER_STRING_LITERAL"
  | (T 12) => "LOWER_STRING_LITERAL"
  | (T 13) => "INTEGER_LITERAL"
  | (T 14) => "ONE"
  | (T 15) => "ZERO"
  | (T 16) => "ATTACK"
  | _ => "bogus-term"
local open Header in
val errtermvalue=
fn _ => MlyValue.VOID
end
val terms : term list = nil
 $$ (T 0)end
structure Actions =
struct 
exception mlyAction of int
local open Header in
val actions = 
fn (i392,defaultPos,stack,
    (()):arg) =>
case (i392,stack)
of  ( 0, ( ( _, ( MlyValue.trac_file trac_file1, trac_file1left, 
trac_file1right)) :: rest671)) => let val  result = MlyValue.START (fn
 _ => let val  (trac_file as trac_file1) = trac_file1 ()
 in (trac_file)
end)
 in ( LrTable.NT 0, ( result, trac_file1left, trac_file1right), 
rest671)
end
|  ( 1, ( ( _, ( MlyValue.symfact_list_exp symfact_list_exp1, _, 
symfact_list_exp1right)) :: ( _, ( MlyValue.FIXEDPOINT FIXEDPOINT1, 
FIXEDPOINT1left, _)) :: rest671)) => let val  result = 
MlyValue.trac_file (fn _ => let val  FIXEDPOINT1 = FIXEDPOINT1 ()
 val  (symfact_list_exp as symfact_list_exp1) = symfact_list_exp1 ()
 in (symfact_list_exp)
end)
 in ( LrTable.NT 1, ( result, FIXEDPOINT1left, symfact_list_exp1right)
, rest671)
end
|  ( 2, ( ( _, ( MlyValue.symfact_list_exp symfact_list_exp1, 
symfact_list_exp1left, symfact_list_exp1right)) :: rest671)) => let
 val  result = MlyValue.trac_file (fn _ => let val  (symfact_list_exp
 as symfact_list_exp1) = symfact_list_exp1 ()
 in (symfact_list_exp)
end)
 in ( LrTable.NT 1, ( result, symfact_list_exp1left, 
symfact_list_exp1right), rest671)
end
|  ( 3, ( ( _, ( MlyValue.symfact_exp symfact_exp1, symfact_exp1left, 
symfact_exp1right)) :: rest671)) => let val  result = 
MlyValue.symfact_list_exp (fn _ => let val  (symfact_exp as 
symfact_exp1) = symfact_exp1 ()
 in ([symfact_exp])
end)
 in ( LrTable.NT 2, ( result, symfact_exp1left, symfact_exp1right), 
rest671)
end
|  ( 4, ( ( _, ( MlyValue.symfact_list_exp symfact_list_exp1, _, 
symfact_list_exp1right)) :: ( _, ( MlyValue.symfact_exp symfact_exp1, 
symfact_exp1left, _)) :: rest671)) => let val  result = 
MlyValue.symfact_list_exp (fn _ => let val  (symfact_exp as 
symfact_exp1) = symfact_exp1 ()
 val  (symfact_list_exp as symfact_list_exp1) = symfact_list_exp1 ()
 in ([symfact_exp]@symfact_list_exp)
end)
 in ( LrTable.NT 2, ( result, symfact_exp1left, symfact_list_exp1right
), rest671)
end
|  ( 5, ( ( _, ( MlyValue.ATTACK ATTACK1, _, ATTACK1right)) :: ( _, ( 
MlyValue.DOUBLE_RARROW DOUBLE_RARROW1, DOUBLE_RARROW1left, _)) :: 
rest671)) => let val  result = MlyValue.symfact_exp (fn _ => let val  
DOUBLE_RARROW1 = DOUBLE_RARROW1 ()
 val  ATTACK1 = ATTACK1 ()
 in ((Attack,[]))
end)
 in ( LrTable.NT 3, ( result, DOUBLE_RARROW1left, ATTACK1right), 
rest671)
end
|  ( 6, ( ( _, ( MlyValue.type_list_exp type_list_exp1, _, 
type_list_exp1right)) :: ( _, ( MlyValue.WHERE WHERE1, _, _)) :: ( _, 
( MlyValue.rule_exp rule_exp1, rule_exp1left, _)) :: rest671)) => let
 val  result = MlyValue.symfact_exp (fn _ => let val  (rule_exp as 
rule_exp1) = rule_exp1 ()
 val  WHERE1 = WHERE1 ()
 val  (type_list_exp as type_list_exp1) = type_list_exp1 ()
 in ((rule_exp,type_list_exp))
end)
 in ( LrTable.NT 3, ( result, rule_exp1left, type_list_exp1right), 
rest671)
end
|  ( 7, ( ( _, ( MlyValue.type_list_exp type_list_exp1, _, 
type_list_exp1right)) :: ( _, ( MlyValue.WHERE WHERE1, _, _)) :: ( _, 
( MlyValue.rule_exp rule_exp1, _, _)) :: ( _, ( MlyValue.DOUBLE_RARROW
 DOUBLE_RARROW1, DOUBLE_RARROW1left, _)) :: rest671)) => let val  
result = MlyValue.symfact_exp (fn _ => let val  DOUBLE_RARROW1 = 
DOUBLE_RARROW1 ()
 val  (rule_exp as rule_exp1) = rule_exp1 ()
 val  WHERE1 = WHERE1 ()
 val  (type_list_exp as type_list_exp1) = type_list_exp1 ()
 in ((rule_exp,type_list_exp))
end)
 in ( LrTable.NT 3, ( result, DOUBLE_RARROW1left, type_list_exp1right)
, rest671)
end
|  ( 8, ( ( _, ( MlyValue.type_list_exp type_list_exp1, _, 
type_list_exp1right)) :: ( _, ( MlyValue.WHERE WHERE1, _, _)) :: ( _, 
( MlyValue.rule_exp rule_exp1, _, _)) :: ( _, ( MlyValue.DOUBLE_RARROW
 DOUBLE_RARROW1, _, _)) :: ( _, ( MlyValue.DOUBLE_ASTERISK 
DOUBLE_ASTERISK1, DOUBLE_ASTERISK1left, _)) :: rest671)) => let val  
result = MlyValue.symfact_exp (fn _ => let val  DOUBLE_ASTERISK1 = 
DOUBLE_ASTERISK1 ()
 val  DOUBLE_RARROW1 = DOUBLE_RARROW1 ()
 val  (rule_exp as rule_exp1) = rule_exp1 ()
 val  WHERE1 = WHERE1 ()
 val  (type_list_exp as type_list_exp1) = type_list_exp1 ()
 in ((rule_exp,type_list_exp))
end)
 in ( LrTable.NT 3, ( result, DOUBLE_ASTERISK1left, 
type_list_exp1right), rest671)
end
|  ( 9, ( ( _, ( MlyValue.rule_exp rule_exp1, rule_exp1left, 
rule_exp1right)) :: rest671)) => let val  result = 
MlyValue.symfact_exp (fn _ => let val  (rule_exp as rule_exp1) = 
rule_exp1 ()
 in ((rule_exp,[]))
end)
 in ( LrTable.NT 3, ( result, rule_exp1left, rule_exp1right), rest671)

end
|  ( 10, ( ( _, ( MlyValue.rule_exp rule_exp1, _, rule_exp1right)) :: 
( _, ( MlyValue.DOUBLE_RARROW DOUBLE_RARROW1, DOUBLE_RARROW1left, _))
 :: rest671)) => let val  result = MlyValue.symfact_exp (fn _ => let
 val  DOUBLE_RARROW1 = DOUBLE_RARROW1 ()
 val  (rule_exp as rule_exp1) = rule_exp1 ()
 in ((rule_exp,[]))
end)
 in ( LrTable.NT 3, ( result, DOUBLE_RARROW1left, rule_exp1right), 
rest671)
end
|  ( 11, ( ( _, ( MlyValue.rule_exp rule_exp1, _, rule_exp1right)) :: 
( _, ( MlyValue.DOUBLE_RARROW DOUBLE_RARROW1, _, _)) :: ( _, ( 
MlyValue.DOUBLE_ASTERISK DOUBLE_ASTERISK1, DOUBLE_ASTERISK1left, _))
 :: rest671)) => let val  result = MlyValue.symfact_exp (fn _ => let
 val  DOUBLE_ASTERISK1 = DOUBLE_ASTERISK1 ()
 val  DOUBLE_RARROW1 = DOUBLE_RARROW1 ()
 val  (rule_exp as rule_exp1) = rule_exp1 ()
 in ((rule_exp,[]))
end)
 in ( LrTable.NT 3, ( result, DOUBLE_ASTERISK1left, rule_exp1right), 
rest671)
end
|  ( 12, ( ( _, ( MlyValue.upper_literal upper_literal1, 
upper_literal1left, upper_literal1right)) :: rest671)) => let val  
result = MlyValue.rule_exp (fn _ => let val  (upper_literal as 
upper_literal1) = upper_literal1 ()
 in (Var (upper_literal))
end)
 in ( LrTable.NT 4, ( result, upper_literal1left, upper_literal1right)
, rest671)
end
|  ( 13, ( ( _, ( MlyValue.lower_literal lower_literal1, 
lower_literal1left, lower_literal1right)) :: rest671)) => let val  
result = MlyValue.rule_exp (fn _ => let val  (lower_literal as 
lower_literal1) = lower_literal1 ()
 in (Fun (lower_literal,[]))
end)
 in ( LrTable.NT 4, ( result, lower_literal1left, lower_literal1right)
, rest671)
end
|  ( 14, ( ( _, ( MlyValue.PAREN_CLOSE PAREN_CLOSE1, _, 
PAREN_CLOSE1right)) :: ( _, ( MlyValue.arg_list_exp arg_list_exp1, _,
 _)) :: ( _, ( MlyValue.PAREN_OPEN PAREN_OPEN1, _, _)) :: ( _, ( 
MlyValue.lower_literal lower_literal1, lower_literal1left, _)) :: 
rest671)) => let val  result = MlyValue.rule_exp (fn _ => let val  (
lower_literal as lower_literal1) = lower_literal1 ()
 val  PAREN_OPEN1 = PAREN_OPEN1 ()
 val  (arg_list_exp as arg_list_exp1) = arg_list_exp1 ()
 val  PAREN_CLOSE1 = PAREN_CLOSE1 ()
 in (Fun (lower_literal,arg_list_exp))
end)
 in ( LrTable.NT 4, ( result, lower_literal1left, PAREN_CLOSE1right), 
rest671)
end
|  ( 15, ( ( _, ( MlyValue.arg_exp arg_exp1, arg_exp1left, 
arg_exp1right)) :: rest671)) => let val  result = 
MlyValue.arg_list_exp (fn _ => let val  (arg_exp as arg_exp1) = 
arg_exp1 ()
 in ([arg_exp])
end)
 in ( LrTable.NT 5, ( result, arg_exp1left, arg_exp1right), rest671)

end
|  ( 16, ( ( _, ( MlyValue.arg_list_exp arg_list_exp1, _, 
arg_list_exp1right)) :: ( _, ( MlyValue.COMMA COMMA1, _, _)) :: ( _, (
 MlyValue.arg_exp arg_exp1, arg_exp1left, _)) :: rest671)) => let val 
 result = MlyValue.arg_list_exp (fn _ => let val  (arg_exp as arg_exp1
) = arg_exp1 ()
 val  COMMA1 = COMMA1 ()
 val  (arg_list_exp as arg_list_exp1) = arg_list_exp1 ()
 in ([arg_exp]@arg_list_exp)
end)
 in ( LrTable.NT 5, ( result, arg_exp1left, arg_list_exp1right), 
rest671)
end
|  ( 17, ( ( _, ( MlyValue.rule_exp rule_exp1, rule_exp1left, 
rule_exp1right)) :: rest671)) => let val  result = MlyValue.arg_exp
 (fn _ => let val  (rule_exp as rule_exp1) = rule_exp1 ()
 in (rule_exp)
end)
 in ( LrTable.NT 6, ( result, rule_exp1left, rule_exp1right), rest671)

end
|  ( 18, ( ( _, ( MlyValue.int_literal int_literal1, _, 
int_literal1right)) :: ( _, ( MlyValue.ASTERISK ASTERISK1, 
ASTERISK1left, _)) :: rest671)) => let val  result = MlyValue.arg_exp
 (fn _ => let val  ASTERISK1 = ASTERISK1 ()
 val  (int_literal as int_literal1) = int_literal1 ()
 in (Var (int_literal))
end)
 in ( LrTable.NT 6, ( result, ASTERISK1left, int_literal1right), 
rest671)
end
|  ( 19, ( ( _, ( MlyValue.int_literal int_literal1, int_literal1left,
 int_literal1right)) :: rest671)) => let val  result = 
MlyValue.arg_exp (fn _ => let val  (int_literal as int_literal1) = 
int_literal1 ()
 in (Const (int_literal))
end)
 in ( LrTable.NT 6, ( result, int_literal1left, int_literal1right), 
rest671)
end
|  ( 20, ( ( _, ( MlyValue.type_exp type_exp1, type_exp1left, 
type_exp1right)) :: rest671)) => let val  result = 
MlyValue.type_list_exp (fn _ => let val  (type_exp as type_exp1) = 
type_exp1 ()
 in ([type_exp])
end)
 in ( LrTable.NT 7, ( result, type_exp1left, type_exp1right), rest671)

end
|  ( 21, ( ( _, ( MlyValue.type_list_exp type_list_exp1, _, 
type_list_exp1right)) :: ( _, ( MlyValue.type_exp type_exp1, 
type_exp1left, _)) :: rest671)) => let val  result = 
MlyValue.type_list_exp (fn _ => let val  (type_exp as type_exp1) = 
type_exp1 ()
 val  (type_list_exp as type_list_exp1) = type_list_exp1 ()
 in ([type_exp]@type_list_exp)
end)
 in ( LrTable.NT 7, ( result, type_exp1left, type_list_exp1right), 
rest671)
end
|  ( 22, ( ( _, ( MlyValue.string_literal string_literal1, _, 
string_literal1right)) :: ( _, ( MlyValue.COLON COLON1, _, _)) :: ( _,
 ( MlyValue.int_literal int_literal1, _, _)) :: ( _, ( 
MlyValue.ASTERISK ASTERISK1, ASTERISK1left, _)) :: rest671)) => let
 val  result = MlyValue.type_exp (fn _ => let val  ASTERISK1 = 
ASTERISK1 ()
 val  (int_literal as int_literal1) = int_literal1 ()
 val  COLON1 = COLON1 ()
 val  (string_literal as string_literal1) = string_literal1 ()
 in ((int_literal,string_literal))
end)
 in ( LrTable.NT 8, ( result, ASTERISK1left, string_literal1right), 
rest671)
end
|  ( 23, ( ( _, ( MlyValue.string_literal string_literal1, _, 
string_literal1right)) :: ( _, ( MlyValue.COLON COLON1, _, _)) :: ( _,
 ( MlyValue.upper_literal upper_literal1, upper_literal1left, _)) :: 
rest671)) => let val  result = MlyValue.type_exp (fn _ => let val  (
upper_literal as upper_literal1) = upper_literal1 ()
 val  COLON1 = COLON1 ()
 val  (string_literal as string_literal1) = string_literal1 ()
 in ((upper_literal,string_literal))
end)
 in ( LrTable.NT 8, ( result, upper_literal1left, string_literal1right
), rest671)
end
|  ( 24, ( ( _, ( MlyValue.UPPER_STRING_LITERAL UPPER_STRING_LITERAL1,
 UPPER_STRING_LITERAL1left, UPPER_STRING_LITERAL1right)) :: rest671))
 => let val  result = MlyValue.upper_literal (fn _ => let val  (
UPPER_STRING_LITERAL as UPPER_STRING_LITERAL1) = UPPER_STRING_LITERAL1
 ()
 in (UPPER_STRING_LITERAL)
end)
 in ( LrTable.NT 10, ( result, UPPER_STRING_LITERAL1left, 
UPPER_STRING_LITERAL1right), rest671)
end
|  ( 25, ( ( _, ( MlyValue.LOWER_STRING_LITERAL LOWER_STRING_LITERAL1,
 LOWER_STRING_LITERAL1left, LOWER_STRING_LITERAL1right)) :: rest671))
 => let val  result = MlyValue.lower_literal (fn _ => let val  (
LOWER_STRING_LITERAL as LOWER_STRING_LITERAL1) = LOWER_STRING_LITERAL1
 ()
 in (LOWER_STRING_LITERAL)
end)
 in ( LrTable.NT 11, ( result, LOWER_STRING_LITERAL1left, 
LOWER_STRING_LITERAL1right), rest671)
end
|  ( 26, ( ( _, ( MlyValue.upper_literal upper_literal1, 
upper_literal1left, upper_literal1right)) :: rest671)) => let val  
result = MlyValue.string_literal (fn _ => let val  (upper_literal as 
upper_literal1) = upper_literal1 ()
 in (upper_literal)
end)
 in ( LrTable.NT 9, ( result, upper_literal1left, upper_literal1right)
, rest671)
end
|  ( 27, ( ( _, ( MlyValue.lower_literal lower_literal1, 
lower_literal1left, lower_literal1right)) :: rest671)) => let val  
result = MlyValue.string_literal (fn _ => let val  (lower_literal as 
lower_literal1) = lower_literal1 ()
 in (lower_literal)
end)
 in ( LrTable.NT 9, ( result, lower_literal1left, lower_literal1right)
, rest671)
end
|  ( 28, ( ( _, ( MlyValue.INTEGER_LITERAL INTEGER_LITERAL1, 
INTEGER_LITERAL1left, INTEGER_LITERAL1right)) :: rest671)) => let val 
 result = MlyValue.int_literal (fn _ => let val  (INTEGER_LITERAL as 
INTEGER_LITERAL1) = INTEGER_LITERAL1 ()
 in (INTEGER_LITERAL)
end)
 in ( LrTable.NT 12, ( result, INTEGER_LITERAL1left, 
INTEGER_LITERAL1right), rest671)
end
|  ( 29, ( ( _, ( MlyValue.ZERO ZERO1, ZERO1left, ZERO1right)) :: 
rest671)) => let val  result = MlyValue.int_literal (fn _ => let val  
ZERO1 = ZERO1 ()
 in ("0")
end)
 in ( LrTable.NT 12, ( result, ZERO1left, ZERO1right), rest671)
end
|  ( 30, ( ( _, ( MlyValue.ONE ONE1, ONE1left, ONE1right)) :: rest671)
) => let val  result = MlyValue.int_literal (fn _ => let val  ONE1 = 
ONE1 ()
 in ("1")
end)
 in ( LrTable.NT 12, ( result, ONE1left, ONE1right), rest671)
end
| _ => raise (mlyAction i392)
end
val void = MlyValue.VOID
val extract = fn a => (fn MlyValue.START x => x
| _ => let exception ParseInternal
	in raise ParseInternal end) a ()
end
end
structure Tokens : Trac_TOKENS =
struct
type svalue = ParserData.svalue
type ('a,'b) token = ('a,'b) Token.token
fun EOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 0,(
ParserData.MlyValue.VOID,p1,p2))
fun COMMA (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 1,(
ParserData.MlyValue.COMMA (fn () => i),p1,p2))
fun FIXEDPOINT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 2,(
ParserData.MlyValue.FIXEDPOINT (fn () => i),p1,p2))
fun WHERE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 3,(
ParserData.MlyValue.WHERE (fn () => i),p1,p2))
fun COLON (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 4,(
ParserData.MlyValue.COLON (fn () => i),p1,p2))
fun PAREN_OPEN (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 5,(
ParserData.MlyValue.PAREN_OPEN (fn () => i),p1,p2))
fun PAREN_CLOSE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 6,(
ParserData.MlyValue.PAREN_CLOSE (fn () => i),p1,p2))
fun ASTERISK (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 7,(
ParserData.MlyValue.ASTERISK (fn () => i),p1,p2))
fun DOUBLE_ASTERISK (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 8,(
ParserData.MlyValue.DOUBLE_ASTERISK (fn () => i),p1,p2))
fun DOUBLE_RARROW (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 9,(
ParserData.MlyValue.DOUBLE_RARROW (fn () => i),p1,p2))
fun STRING_LITERAL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 10,(
ParserData.MlyValue.STRING_LITERAL (fn () => i),p1,p2))
fun UPPER_STRING_LITERAL (i,p1,p2) = Token.TOKEN (
ParserData.LrTable.T 11,(ParserData.MlyValue.UPPER_STRING_LITERAL
 (fn () => i),p1,p2))
fun LOWER_STRING_LITERAL (i,p1,p2) = Token.TOKEN (
ParserData.LrTable.T 12,(ParserData.MlyValue.LOWER_STRING_LITERAL
 (fn () => i),p1,p2))
fun INTEGER_LITERAL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 13,(
ParserData.MlyValue.INTEGER_LITERAL (fn () => i),p1,p2))
fun ONE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 14,(
ParserData.MlyValue.ONE (fn () => i),p1,p2))
fun ZERO (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 15,(
ParserData.MlyValue.ZERO (fn () => i),p1,p2))
fun ATTACK (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 16,(
ParserData.MlyValue.ATTACK (fn () => i),p1,p2))
end
end