(***** 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 (* (C) Copyright Andreas Viktor Hess, DTU, 2020 (C) Copyright Sebastian A. Mödersheim, DTU, 2020 (C) Copyright Achim D. Brucker, University of Exeter, 2020 (C) Copyright Anders Schlichtkrull, DTU, 2020 All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *) 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