seathu
This commit is contained in:
1 parent
8e3427a843
commit
f0fda0bcd7
11 files changed
+7155
-920
No files matched your search
@@ -0,0 +1,3 @@
|
||||
.vscode
|
||||
Fasto/bin/*
|
||||
Fasto/obj/*
|
||||
+267
@@ -0,0 +1,267 @@
|
||||
# 18 "Lexer.fsl"
|
||||
|
||||
module Lexer
|
||||
|
||||
open System;;
|
||||
open FSharp.Text.Lexing;;
|
||||
open System.Text;;
|
||||
|
||||
(* A lexer definition for Fasto, for use with fslex. *)
|
||||
|
||||
(* boilerplate code for all lexer files... *)
|
||||
let mutable currentLine = 1
|
||||
let mutable lineStartPos = [0]
|
||||
|
||||
let rec getLineCol pos line = function
|
||||
| (p1::ps) ->
|
||||
if pos>=p1
|
||||
then (line, pos-p1)
|
||||
else getLineCol pos (line-1) ps
|
||||
| [] -> (0,0) (* should not happen *)
|
||||
|
||||
let getPos (lexbuf : LexBuffer<'char>) =
|
||||
getLineCol lexbuf.StartPos.pos_cnum
|
||||
(currentLine)
|
||||
(lineStartPos)
|
||||
|
||||
exception LexicalError of string * (int * int) (* (message, (line, column)) *)
|
||||
|
||||
let lexerError lexbuf s =
|
||||
raise (LexicalError (s, getPos lexbuf))
|
||||
|
||||
(* This one is language specific, yet very common. Alternative would
|
||||
be to encode every keyword as a regexp. This one is much easier.
|
||||
Note that here we recognize specific keywords, and if none matches
|
||||
then we assume we have found a user-defined identifier (last case).
|
||||
*)
|
||||
let keyword (s, pos) =
|
||||
match s with
|
||||
| "if" -> Parser.IF pos
|
||||
| "then" -> Parser.THEN pos
|
||||
| "else" -> Parser.ELSE pos
|
||||
| "let" -> Parser.LET pos
|
||||
| "in" -> Parser.IN pos
|
||||
| "int" -> Parser.INT pos
|
||||
| "bool" -> Parser.BOOL pos
|
||||
| "char" -> Parser.CHAR pos
|
||||
| "fun" -> Parser.FUN pos
|
||||
| "fn" -> Parser.FN pos
|
||||
| "op" -> Parser.OP pos
|
||||
|
||||
(* specials: *)
|
||||
| "iota" -> Parser.IOTA pos
|
||||
| "map" -> Parser.MAP pos
|
||||
| "reduce" -> Parser.REDUCE pos
|
||||
| "read" -> Parser.READ pos
|
||||
| "write" -> Parser.WRITE pos
|
||||
| _ -> Parser.ID (s, pos)
|
||||
|
||||
|
||||
# 60 "Lexer.fs"
|
||||
let trans : uint16[] array =
|
||||
[|
|
||||
(* State 0 *)
|
||||
[|21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 1us; 2us; 21us; 2us; 1us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 1us; 21us; 8us; 21us; 21us; 21us; 21us; 7us; 13us; 14us; 21us; 9us; 19us; 10us; 21us; 3us; 4us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 21us; 21us; 12us; 11us; 21us; 21us; 21us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 15us; 21us; 16us; 21us; 21us; 21us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 17us; 21us; 18us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 20us; |];
|
||||
(* State 1 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 34us; 65535us; 65535us; 65535us; 34us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 34us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 2 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 3 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 32us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 4 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 5 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 6 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 65535us; 65535us; 65535us; 65535us; 30us; 65535us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 7 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 27us; 27us; 65535us; 27us; 27us; 27us; 27us; 65535us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 28us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 8 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 25us; 25us; 24us; 25us; 25us; 25us; 25us; 65535us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 26us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 9 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 10 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 11 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 23us; 22us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 12 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 13 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 14 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 15 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 16 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 17 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 18 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 19 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 20 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 21 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 22 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 23 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 24 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 25 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 25us; 25us; 24us; 25us; 25us; 25us; 25us; 65535us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 26us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 26 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 25us; 65535us; 65535us; 65535us; 65535us; 25us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 25us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 25us; 65535us; 65535us; 65535us; 65535us; 65535us; 25us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 27 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 29us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 28 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 27us; 65535us; 65535us; 65535us; 65535us; 27us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 27us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 27us; 65535us; 65535us; 65535us; 65535us; 65535us; 27us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 29 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 30 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 65535us; 65535us; 65535us; 65535us; 30us; 65535us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 31 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 32 *)
|
||||
[|33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 65535us; 33us; 65535us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 65535us; |];
|
||||
(* State 33 *)
|
||||
[|33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 65535us; 33us; 65535us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 65535us; |];
|
||||
(* State 34 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 34us; 65535us; 65535us; 65535us; 34us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 34us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
|]
|
||||
let actions : uint16[] = [|65535us; 0us; 1us; 21us; 3us; 3us; 4us; 21us; 21us; 7us; 8us; 11us; 12us; 13us; 14us; 15us; 16us; 17us; 18us; 19us; 20us; 21us; 9us; 10us; 6us; 65535us; 65535us; 65535us; 65535us; 5us; 4us; 3us; 2us; 2us; 0us; |]
|
||||
let _fslex_tables = FSharp.Text.Lexing.AsciiTables.Create(trans,actions)
|
||||
let rec _fslex_dummy () = _fslex_dummy()
|
||||
// Rule Token
|
||||
and Token lexbuf =
|
||||
match _fslex_tables.Interpret(0,lexbuf) with
|
||||
| 0 -> (
|
||||
# 78 "Lexer.fsl"
|
||||
Token lexbuf
|
||||
# 143 "Lexer.fs"
|
||||
)
|
||||
| 1 -> (
|
||||
# 79 "Lexer.fsl"
|
||||
currentLine <- currentLine + 1;
|
||||
lineStartPos <- lexbuf.StartPos.pos_cnum
|
||||
:: lineStartPos;
|
||||
Token lexbuf
|
||||
# 151 "Lexer.fs"
|
||||
)
|
||||
| 2 -> (
|
||||
# 83 "Lexer.fsl"
|
||||
Token lexbuf
|
||||
# 156 "Lexer.fs"
|
||||
)
|
||||
| 3 -> (
|
||||
# 85 "Lexer.fsl"
|
||||
Parser.NUM
|
||||
( int (Encoding.UTF8.GetString(lexbuf.Lexeme))
|
||||
, getPos lexbuf )
|
||||
|
||||
# 164 "Lexer.fs"
|
||||
)
|
||||
| 4 -> (
|
||||
# 90 "Lexer.fsl"
|
||||
keyword ( Encoding.UTF8.GetString(lexbuf.Lexeme)
|
||||
, getPos lexbuf )
|
||||
# 170 "Lexer.fs"
|
||||
)
|
||||
| 5 -> (
|
||||
# 93 "Lexer.fsl"
|
||||
let str0 = Encoding.UTF8.GetString(lexbuf.Lexeme)
|
||||
let str1 = str0.Substring (1, (String.length str0) - 2)
|
||||
let str2 = AbSyn.fromCString str1
|
||||
Parser.CHARLIT (str2.Chars(0), getPos lexbuf)
|
||||
|
||||
# 179 "Lexer.fs"
|
||||
)
|
||||
| 6 -> (
|
||||
# 99 "Lexer.fsl"
|
||||
|
||||
let str0 = Encoding.UTF8.GetString(lexbuf.Lexeme)
|
||||
let str1 = str0.Substring (1, (String.length str0) - 2)
|
||||
Parser.STRINGLIT (AbSyn.fromCString str1, getPos lexbuf)
|
||||
|
||||
# 188 "Lexer.fs"
|
||||
)
|
||||
| 7 -> (
|
||||
# 104 "Lexer.fsl"
|
||||
Parser.PLUS (getPos lexbuf)
|
||||
# 193 "Lexer.fs"
|
||||
)
|
||||
| 8 -> (
|
||||
# 105 "Lexer.fsl"
|
||||
Parser.MINUS (getPos lexbuf)
|
||||
# 198 "Lexer.fs"
|
||||
)
|
||||
| 9 -> (
|
||||
# 106 "Lexer.fsl"
|
||||
Parser.ARROW (getPos lexbuf)
|
||||
# 203 "Lexer.fs"
|
||||
)
|
||||
| 10 -> (
|
||||
# 107 "Lexer.fsl"
|
||||
Parser.DEQ (getPos lexbuf)
|
||||
# 208 "Lexer.fs"
|
||||
)
|
||||
| 11 -> (
|
||||
# 108 "Lexer.fsl"
|
||||
Parser.EQ (getPos lexbuf)
|
||||
# 213 "Lexer.fs"
|
||||
)
|
||||
| 12 -> (
|
||||
# 109 "Lexer.fsl"
|
||||
Parser.LTH (getPos lexbuf)
|
||||
# 218 "Lexer.fs"
|
||||
)
|
||||
| 13 -> (
|
||||
# 110 "Lexer.fsl"
|
||||
Parser.LPAR (getPos lexbuf)
|
||||
# 223 "Lexer.fs"
|
||||
)
|
||||
| 14 -> (
|
||||
# 111 "Lexer.fsl"
|
||||
Parser.RPAR (getPos lexbuf)
|
||||
# 228 "Lexer.fs"
|
||||
)
|
||||
| 15 -> (
|
||||
# 112 "Lexer.fsl"
|
||||
Parser.LBRACKET (getPos lexbuf)
|
||||
# 233 "Lexer.fs"
|
||||
)
|
||||
| 16 -> (
|
||||
# 113 "Lexer.fsl"
|
||||
Parser.RBRACKET (getPos lexbuf)
|
||||
# 238 "Lexer.fs"
|
||||
)
|
||||
| 17 -> (
|
||||
# 114 "Lexer.fsl"
|
||||
Parser.LCURLY (getPos lexbuf)
|
||||
# 243 "Lexer.fs"
|
||||
)
|
||||
| 18 -> (
|
||||
# 115 "Lexer.fsl"
|
||||
Parser.RCURLY (getPos lexbuf)
|
||||
# 248 "Lexer.fs"
|
||||
)
|
||||
| 19 -> (
|
||||
# 116 "Lexer.fsl"
|
||||
Parser.COMMA (getPos lexbuf)
|
||||
# 253 "Lexer.fs"
|
||||
)
|
||||
| 20 -> (
|
||||
# 117 "Lexer.fsl"
|
||||
Parser.EOF (getPos lexbuf)
|
||||
# 258 "Lexer.fs"
|
||||
)
|
||||
| 21 -> (
|
||||
# 118 "Lexer.fsl"
|
||||
lexerError lexbuf "Illegal symbol in input"
|
||||
# 263 "Lexer.fs"
|
||||
)
|
||||
| _ -> failwith "Token"
|
||||
|
||||
# 3000000 "Lexer.fs"
|
||||
+887
@@ -0,0 +1,887 @@
|
||||
// Implementation file for parser generated by fsyacc
|
||||
module Parser
|
||||
#nowarn "64";; // turn off warnings that type variables used in production annotations are instantiated to concrete type
|
||||
open FSharp.Text.Lexing
|
||||
open FSharp.Text.Parsing.ParseHelpers
|
||||
# 2 "Parser.fsp"
|
||||
|
||||
|
||||
let p0 = (0,0)
|
||||
|
||||
open FSharp.Text.Parsing
|
||||
open AbSyn
|
||||
|
||||
(* parse-error function *)
|
||||
let mutable ErrorContextDescriptor : string = ""
|
||||
|
||||
let parse_error_rich =
|
||||
Some (fun (ctxt: ParseErrorContext<_>) ->
|
||||
ErrorContextDescriptor <-
|
||||
match ctxt.CurrentToken with
|
||||
| None -> "At beginning of input\n"
|
||||
| Some token -> sprintf "at token %A\n" token
|
||||
)
|
||||
|
||||
|
||||
# 26 "Parser.fs"
|
||||
// This type is the type of tokens accepted by the parser
|
||||
type token =
|
||||
| LPAR of (Position)
|
||||
| RPAR of (Position)
|
||||
| LBRACKET of (Position)
|
||||
| RBRACKET of (Position)
|
||||
| LCURLY of (Position)
|
||||
| RCURLY of (Position)
|
||||
| FUN of (Position)
|
||||
| FN of (Position)
|
||||
| COMMA of (Position)
|
||||
| SEMICOLON of (Position)
|
||||
| READ of (Position)
|
||||
| WRITE of (Position)
|
||||
| DEQ of (Position)
|
||||
| LTH of (Position)
|
||||
| EQ of (Position)
|
||||
| OP of (Position)
|
||||
| MAP of (Position)
|
||||
| REDUCE of (Position)
|
||||
| IOTA of (Position)
|
||||
| ARROW of (Position)
|
||||
| PLUS of (Position)
|
||||
| MINUS of (Position)
|
||||
| LESS of (Position)
|
||||
| INT of (Position)
|
||||
| CHAR of (Position)
|
||||
| BOOL of (Position)
|
||||
| IF of (Position)
|
||||
| THEN of (Position)
|
||||
| ELSE of (Position)
|
||||
| LET of (Position)
|
||||
| IN of (Position)
|
||||
| EOF of (Position)
|
||||
| ID of (string * Position)
|
||||
| STRINGLIT of (string * Position)
|
||||
| CHARLIT of (char * Position)
|
||||
| NUM of (int * Position)
|
||||
// This type is used to give symbolic names to token indexes, useful for error messages
|
||||
type tokenId =
|
||||
| TOKEN_LPAR
|
||||
| TOKEN_RPAR
|
||||
| TOKEN_LBRACKET
|
||||
| TOKEN_RBRACKET
|
||||
| TOKEN_LCURLY
|
||||
| TOKEN_RCURLY
|
||||
| TOKEN_FUN
|
||||
| TOKEN_FN
|
||||
| TOKEN_COMMA
|
||||
| TOKEN_SEMICOLON
|
||||
| TOKEN_READ
|
||||
| TOKEN_WRITE
|
||||
| TOKEN_DEQ
|
||||
| TOKEN_LTH
|
||||
| TOKEN_EQ
|
||||
| TOKEN_OP
|
||||
| TOKEN_MAP
|
||||
| TOKEN_REDUCE
|
||||
| TOKEN_IOTA
|
||||
| TOKEN_ARROW
|
||||
| TOKEN_PLUS
|
||||
| TOKEN_MINUS
|
||||
| TOKEN_LESS
|
||||
| TOKEN_INT
|
||||
| TOKEN_CHAR
|
||||
| TOKEN_BOOL
|
||||
| TOKEN_IF
|
||||
| TOKEN_THEN
|
||||
| TOKEN_ELSE
|
||||
| TOKEN_LET
|
||||
| TOKEN_IN
|
||||
| TOKEN_EOF
|
||||
| TOKEN_ID
|
||||
| TOKEN_STRINGLIT
|
||||
| TOKEN_CHARLIT
|
||||
| TOKEN_NUM
|
||||
| TOKEN_end_of_input
|
||||
| TOKEN_error
|
||||
// This type is used to give symbolic names to token indexes, useful for error messages
|
||||
type nonTerminalId =
|
||||
| NONTERM__startProg
|
||||
| NONTERM_Prog
|
||||
| NONTERM_FunDecs
|
||||
| NONTERM_Fun
|
||||
| NONTERM_Type
|
||||
| NONTERM_Params
|
||||
| NONTERM_BinOp
|
||||
| NONTERM_Exp
|
||||
| NONTERM_Exps
|
||||
| NONTERM_FunArg
|
||||
|
||||
// This function maps tokens to integer indexes
|
||||
let tagOfToken (t:token) =
|
||||
match t with
|
||||
| LPAR _ -> 0
|
||||
| RPAR _ -> 1
|
||||
| LBRACKET _ -> 2
|
||||
| RBRACKET _ -> 3
|
||||
| LCURLY _ -> 4
|
||||
| RCURLY _ -> 5
|
||||
| FUN _ -> 6
|
||||
| FN _ -> 7
|
||||
| COMMA _ -> 8
|
||||
| SEMICOLON _ -> 9
|
||||
| READ _ -> 10
|
||||
| WRITE _ -> 11
|
||||
| DEQ _ -> 12
|
||||
| LTH _ -> 13
|
||||
| EQ _ -> 14
|
||||
| OP _ -> 15
|
||||
| MAP _ -> 16
|
||||
| REDUCE _ -> 17
|
||||
| IOTA _ -> 18
|
||||
| ARROW _ -> 19
|
||||
| PLUS _ -> 20
|
||||
| MINUS _ -> 21
|
||||
| LESS _ -> 22
|
||||
| INT _ -> 23
|
||||
| CHAR _ -> 24
|
||||
| BOOL _ -> 25
|
||||
| IF _ -> 26
|
||||
| THEN _ -> 27
|
||||
| ELSE _ -> 28
|
||||
| LET _ -> 29
|
||||
| IN _ -> 30
|
||||
| EOF _ -> 31
|
||||
| ID _ -> 32
|
||||
| STRINGLIT _ -> 33
|
||||
| CHARLIT _ -> 34
|
||||
| NUM _ -> 35
|
||||
|
||||
// This function maps integer indexes to symbolic token ids
|
||||
let tokenTagToTokenId (tokenIdx:int) =
|
||||
match tokenIdx with
|
||||
| 0 -> TOKEN_LPAR
|
||||
| 1 -> TOKEN_RPAR
|
||||
| 2 -> TOKEN_LBRACKET
|
||||
| 3 -> TOKEN_RBRACKET
|
||||
| 4 -> TOKEN_LCURLY
|
||||
| 5 -> TOKEN_RCURLY
|
||||
| 6 -> TOKEN_FUN
|
||||
| 7 -> TOKEN_FN
|
||||
| 8 -> TOKEN_COMMA
|
||||
| 9 -> TOKEN_SEMICOLON
|
||||
| 10 -> TOKEN_READ
|
||||
| 11 -> TOKEN_WRITE
|
||||
| 12 -> TOKEN_DEQ
|
||||
| 13 -> TOKEN_LTH
|
||||
| 14 -> TOKEN_EQ
|
||||
| 15 -> TOKEN_OP
|
||||
| 16 -> TOKEN_MAP
|
||||
| 17 -> TOKEN_REDUCE
|
||||
| 18 -> TOKEN_IOTA
|
||||
| 19 -> TOKEN_ARROW
|
||||
| 20 -> TOKEN_PLUS
|
||||
| 21 -> TOKEN_MINUS
|
||||
| 22 -> TOKEN_LESS
|
||||
| 23 -> TOKEN_INT
|
||||
| 24 -> TOKEN_CHAR
|
||||
| 25 -> TOKEN_BOOL
|
||||
| 26 -> TOKEN_IF
|
||||
| 27 -> TOKEN_THEN
|
||||
| 28 -> TOKEN_ELSE
|
||||
| 29 -> TOKEN_LET
|
||||
| 30 -> TOKEN_IN
|
||||
| 31 -> TOKEN_EOF
|
||||
| 32 -> TOKEN_ID
|
||||
| 33 -> TOKEN_STRINGLIT
|
||||
| 34 -> TOKEN_CHARLIT
|
||||
| 35 -> TOKEN_NUM
|
||||
| 38 -> TOKEN_end_of_input
|
||||
| 36 -> TOKEN_error
|
||||
| _ -> failwith "tokenTagToTokenId: bad token"
|
||||
|
||||
/// This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production
|
||||
let prodIdxToNonTerminal (prodIdx:int) =
|
||||
match prodIdx with
|
||||
| 0 -> NONTERM__startProg
|
||||
| 1 -> NONTERM_Prog
|
||||
| 2 -> NONTERM_FunDecs
|
||||
| 3 -> NONTERM_FunDecs
|
||||
| 4 -> NONTERM_Fun
|
||||
| 5 -> NONTERM_Fun
|
||||
| 6 -> NONTERM_Type
|
||||
| 7 -> NONTERM_Type
|
||||
| 8 -> NONTERM_Type
|
||||
| 9 -> NONTERM_Type
|
||||
| 10 -> NONTERM_Params
|
||||
| 11 -> NONTERM_Params
|
||||
| 12 -> NONTERM_BinOp
|
||||
| 13 -> NONTERM_Exp
|
||||
| 14 -> NONTERM_Exp
|
||||
| 15 -> NONTERM_Exp
|
||||
| 16 -> NONTERM_Exp
|
||||
| 17 -> NONTERM_Exp
|
||||
| 18 -> NONTERM_Exp
|
||||
| 19 -> NONTERM_Exp
|
||||
| 20 -> NONTERM_Exp
|
||||
| 21 -> NONTERM_Exp
|
||||
| 22 -> NONTERM_Exp
|
||||
| 23 -> NONTERM_Exp
|
||||
| 24 -> NONTERM_Exp
|
||||
| 25 -> NONTERM_Exp
|
||||
| 26 -> NONTERM_Exp
|
||||
| 27 -> NONTERM_Exp
|
||||
| 28 -> NONTERM_Exp
|
||||
| 29 -> NONTERM_Exp
|
||||
| 30 -> NONTERM_Exp
|
||||
| 31 -> NONTERM_Exp
|
||||
| 32 -> NONTERM_Exp
|
||||
| 33 -> NONTERM_Exp
|
||||
| 34 -> NONTERM_Exps
|
||||
| 35 -> NONTERM_Exps
|
||||
| 36 -> NONTERM_FunArg
|
||||
| 37 -> NONTERM_FunArg
|
||||
| 38 -> NONTERM_FunArg
|
||||
| _ -> failwith "prodIdxToNonTerminal: bad production index"
|
||||
|
||||
let _fsyacc_endOfInputTag = 38
|
||||
let _fsyacc_tagOfErrorTerminal = 36
|
||||
|
||||
// This function gets the name of a token as a string
|
||||
let token_to_string (t:token) =
|
||||
match t with
|
||||
| LPAR _ -> "LPAR"
|
||||
| RPAR _ -> "RPAR"
|
||||
| LBRACKET _ -> "LBRACKET"
|
||||
| RBRACKET _ -> "RBRACKET"
|
||||
| LCURLY _ -> "LCURLY"
|
||||
| RCURLY _ -> "RCURLY"
|
||||
| FUN _ -> "FUN"
|
||||
| FN _ -> "FN"
|
||||
| COMMA _ -> "COMMA"
|
||||
| SEMICOLON _ -> "SEMICOLON"
|
||||
| READ _ -> "READ"
|
||||
| WRITE _ -> "WRITE"
|
||||
| DEQ _ -> "DEQ"
|
||||
| LTH _ -> "LTH"
|
||||
| EQ _ -> "EQ"
|
||||
| OP _ -> "OP"
|
||||
| MAP _ -> "MAP"
|
||||
| REDUCE _ -> "REDUCE"
|
||||
| IOTA _ -> "IOTA"
|
||||
| ARROW _ -> "ARROW"
|
||||
| PLUS _ -> "PLUS"
|
||||
| MINUS _ -> "MINUS"
|
||||
| LESS _ -> "LESS"
|
||||
| INT _ -> "INT"
|
||||
| CHAR _ -> "CHAR"
|
||||
| BOOL _ -> "BOOL"
|
||||
| IF _ -> "IF"
|
||||
| THEN _ -> "THEN"
|
||||
| ELSE _ -> "ELSE"
|
||||
| LET _ -> "LET"
|
||||
| IN _ -> "IN"
|
||||
| EOF _ -> "EOF"
|
||||
| ID _ -> "ID"
|
||||
| STRINGLIT _ -> "STRINGLIT"
|
||||
| CHARLIT _ -> "CHARLIT"
|
||||
| NUM _ -> "NUM"
|
||||
|
||||
// This function gets the data carried by a token as an object
|
||||
let _fsyacc_dataOfToken (t:token) =
|
||||
match t with
|
||||
| LPAR _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| RPAR _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| LBRACKET _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| RBRACKET _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| LCURLY _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| RCURLY _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| FUN _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| FN _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| COMMA _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| SEMICOLON _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| READ _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| WRITE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| DEQ _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| LTH _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| EQ _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| MAP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| REDUCE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| IOTA _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| ARROW _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| PLUS _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| MINUS _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| LESS _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| INT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| CHAR _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| BOOL _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| IF _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| THEN _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| ELSE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| LET _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| IN _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| EOF _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| ID _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| STRINGLIT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| CHARLIT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| NUM _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
let _fsyacc_gotos = [| 0us; 65535us; 1us; 65535us; 0us; 1us; 2us; 65535us; 0us; 2us; 5us; 6us; 1us; 65535us; 4us; 5us; 7us; 65535us; 4us; 7us; 9us; 23us; 20us; 21us; 25us; 23us; 68us; 69us; 104us; 105us; 106us; 23us; 3us; 65535us; 9us; 10us; 25us; 26us; 106us; 109us; 1us; 65535us; 88us; 89us; 25us; 65535us; 12us; 13us; 15us; 16us; 32us; 53us; 56us; 35us; 57us; 36us; 58us; 37us; 59us; 38us; 60us; 39us; 61us; 40us; 62us; 41us; 63us; 53us; 72us; 42us; 75us; 43us; 80us; 44us; 85us; 45us; 86us; 46us; 90us; 47us; 91us; 48us; 93us; 49us; 97us; 50us; 98us; 51us; 99us; 52us; 101us; 53us; 108us; 54us; 111us; 55us; 3us; 65535us; 32us; 33us; 63us; 64us; 101us; 102us; 2us; 65535us; 78us; 79us; 83us; 84us; |]
|
||||
let _fsyacc_sparseGotoTableRowOffsets = [|0us; 1us; 3us; 6us; 8us; 16us; 20us; 22us; 48us; 52us; |]
|
||||
let _fsyacc_stateToProdIdxsTableElements = [| 1us; 0us; 1us; 0us; 1us; 1us; 1us; 1us; 2us; 2us; 3us; 2us; 2us; 3us; 1us; 2us; 2us; 4us; 5us; 2us; 4us; 5us; 2us; 4us; 5us; 1us; 4us; 1us; 4us; 1us; 4us; 5us; 4us; 18us; 19us; 20us; 21us; 1us; 5us; 1us; 5us; 5us; 5us; 18us; 19us; 20us; 21us; 1us; 6us; 1us; 7us; 1us; 8us; 1us; 9us; 1us; 9us; 1us; 9us; 2us; 10us; 11us; 2us; 10us; 11us; 1us; 10us; 1us; 10us; 1us; 12us; 1us; 13us; 1us; 14us; 4us; 15us; 23us; 24us; 33us; 1us; 16us; 1us; 17us; 1us; 17us; 1us; 17us; 5us; 18us; 18us; 19us; 20us; 21us; 5us; 18us; 19us; 19us; 20us; 21us; 5us; 18us; 19us; 20us; 20us; 21us; 5us; 18us; 19us; 20us; 21us; 21us; 5us; 18us; 19us; 20us; 21us; 22us; 5us; 18us; 19us; 20us; 21us; 22us; 5us; 18us; 19us; 20us; 21us; 22us; 5us; 18us; 19us; 20us; 21us; 26us; 5us; 18us; 19us; 20us; 21us; 27us; 5us; 18us; 19us; 20us; 21us; 28us; 5us; 18us; 19us; 20us; 21us; 29us; 5us; 18us; 19us; 20us; 21us; 29us; 5us; 18us; 19us; 20us; 21us; 30us; 5us; 18us; 19us; 20us; 21us; 30us; 5us; 18us; 19us; 20us; 21us; 31us; 5us; 18us; 19us; 20us; 21us; 32us; 5us; 18us; 19us; 20us; 21us; 32us; 5us; 18us; 19us; 20us; 21us; 33us; 6us; 18us; 19us; 20us; 21us; 34us; 35us; 5us; 18us; 19us; 20us; 21us; 37us; 5us; 18us; 19us; 20us; 21us; 38us; 1us; 18us; 1us; 19us; 1us; 20us; 1us; 21us; 1us; 22us; 1us; 22us; 1us; 22us; 2us; 23us; 24us; 1us; 23us; 1us; 23us; 1us; 24us; 1us; 25us; 1us; 25us; 1us; 25us; 1us; 25us; 1us; 26us; 1us; 26us; 1us; 26us; 1us; 27us; 1us; 27us; 1us; 27us; 1us; 28us; 1us; 28us; 1us; 28us; 1us; 28us; 1us; 28us; 2us; 29us; 30us; 2us; 29us; 30us; 1us; 29us; 1us; 29us; 1us; 29us; 1us; 29us; 1us; 30us; 1us; 30us; 1us; 30us; 1us; 30us; 1us; 30us; 1us; 31us; 1us; 31us; 1us; 32us; 1us; 32us; 1us; 32us; 1us; 32us; 1us; 33us; 1us; 33us; 1us; 34us; 1us; 34us; 1us; 36us; 2us; 37us; 38us; 2us; 37us; 38us; 2us; 37us; 38us; 1us; 37us; 1us; 37us; 1us; 38us; 1us; 38us; 1us; 38us; |]
|
||||
let _fsyacc_stateToProdIdxsTableRowOffsets = [|0us; 2us; 4us; 6us; 8us; 11us; 14us; 16us; 19us; 22us; 25us; 27us; 29us; 31us; 37us; 39us; 41us; 47us; 49us; 51us; 53us; 55us; 57us; 59us; 62us; 65us; 67us; 69us; 71us; 73us; 75us; 80us; 82us; 84us; 86us; 88us; 94us; 100us; 106us; 112us; 118us; 124us; 130us; 136us; 142us; 148us; 154us; 160us; 166us; 172us; 178us; 184us; 190us; 196us; 203us; 209us; 215us; 217us; 219us; 221us; 223us; 225us; 227us; 229us; 232us; 234us; 236us; 238us; 240us; 242us; 244us; 246us; 248us; 250us; 252us; 254us; 256us; 258us; 260us; 262us; 264us; 266us; 268us; 271us; 274us; 276us; 278us; 280us; 282us; 284us; 286us; 288us; 290us; 292us; 294us; 296us; 298us; 300us; 302us; 304us; 306us; 308us; 310us; 312us; 314us; 317us; 320us; 323us; 325us; 327us; 329us; 331us; |]
|
||||
let _fsyacc_action_rows = 112
|
||||
let _fsyacc_actionTableElements = [|1us; 32768us; 6us; 4us; 0us; 49152us; 1us; 32768us; 31us; 3us; 0us; 16385us; 4us; 32768us; 2us; 20us; 23us; 17us; 24us; 18us; 25us; 19us; 1us; 16387us; 6us; 4us; 0us; 16386us; 1us; 32768us; 32us; 8us; 1us; 32768us; 0us; 9us; 5us; 32768us; 1us; 14us; 2us; 20us; 23us; 17us; 24us; 18us; 25us; 19us; 1us; 32768us; 1us; 11us; 1us; 32768us; 14us; 12us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 4us; 16388us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 1us; 32768us; 14us; 15us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 4us; 16389us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 0us; 16390us; 0us; 16391us; 0us; 16392us; 4us; 32768us; 2us; 20us; 23us; 17us; 24us; 18us; 25us; 19us; 1us; 32768us; 3us; 22us; 0us; 16393us; 1us; 32768us; 32us; 24us; 1us; 16395us; 8us; 25us; 4us; 32768us; 2us; 20us; 23us; 17us; 24us; 18us; 25us; 19us; 0us; 16394us; 0us; 16396us; 0us; 16397us; 0us; 16398us; 2us; 16399us; 0us; 63us; 2us; 99us; 0us; 16400us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 1us; 32768us; 5us; 34us; 0us; 16401us; 0us; 16402us; 0us; 16403us; 2us; 16404us; 20us; 56us; 21us; 57us; 2us; 16405us; 20us; 56us; 21us; 57us; 5us; 32768us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 27us; 61us; 5us; 32768us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 28us; 62us; 4us; 16406us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 1us; 73us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 1us; 76us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 1us; 81us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 8us; 86us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 1us; 87us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 8us; 91us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 1us; 92us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 1us; 94us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 30us; 98us; 4us; 16416us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 32768us; 3us; 100us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 5us; 16419us; 8us; 101us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 4us; 16421us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 4us; 16422us; 12us; 58us; 13us; 59us; 20us; 56us; 21us; 57us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 14us; 32768us; 0us; 93us; 1us; 66us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 1us; 32768us; 1us; 65us; 0us; 16407us; 0us; 16408us; 1us; 32768us; 0us; 68us; 4us; 32768us; 2us; 20us; 23us; 17us; 24us; 18us; 25us; 19us; 1us; 32768us; 1us; 70us; 0us; 16409us; 1us; 32768us; 0us; 72us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 0us; 16410us; 1us; 32768us; 0us; 75us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 0us; 16411us; 1us; 32768us; 0us; 78us; 2us; 32768us; 7us; 104us; 32us; 103us; 1us; 32768us; 8us; 80us; 13us; 32768us; 0us; 93us; 4us; 32us; 10us; 67us; 11us; 71us; 16us; 77us; 17us; 82us; 18us; 74us; 26us; 60us; 29us; 95us; 32us; 30us; 33us; 31us; 34us; 29us; 35us; 28us; 0us; 16412us; 1us; 32768us; 0us; 83us;Line truncated
|
||||
let _fsyacc_actionTableRowOffsets = [|0us; 2us; 3us; 5us; 6us; 11us; 13us; 14us; 16us; 18us; 24us; 26us; 28us; 42us; 47us; 49us; 63us; 68us; 69us; 70us; 71us; 76us; 78us; 79us; 81us; 83us; 88us; 89us; 90us; 91us; 92us; 95us; 96us; 110us; 112us; 113us; 114us; 115us; 118us; 121us; 127us; 133us; 138us; 144us; 150us; 156us; 162us; 168us; 174us; 180us; 186us; 192us; 197us; 203us; 209us; 214us; 219us; 233us; 247us; 261us; 275us; 289us; 303us; 317us; 332us; 334us; 335us; 336us; 338us; 343us; 345us; 346us; 348us; 362us; 363us; 365us; 379us; 380us; 382us; 385us; 387us; 401us; 402us; 404us; 408us; 410us; 424us; 438us; 439us; 441us; 443us; 457us; 471us; 472us; 486us; 487us; 489us; 491us; 505us; 519us; 533us; 534us; 548us; 549us; 550us; 555us; 557us; 563us; 565us; 579us; 581us; 583us; |]
|
||||
let _fsyacc_reductionSymbolCounts = [|1us; 2us; 3us; 2us; 7us; 6us; 1us; 1us; 1us; 3us; 4us; 2us; 1us; 1us; 1us; 1us; 1us; 3us; 3us; 3us; 3us; 3us; 6us; 4us; 3us; 4us; 4us; 4us; 6us; 8us; 9us; 3us; 6us; 4us; 3us; 1us; 1us; 6us; 7us; |]
|
||||
let _fsyacc_productionToNonTerminalTable = [|0us; 1us; 2us; 2us; 3us; 3us; 4us; 4us; 4us; 4us; 5us; 5us; 6us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 8us; 8us; 9us; 9us; 9us; |]
|
||||
let _fsyacc_immediateActions = [|65535us; 49152us; 65535us; 16385us; 65535us; 65535us; 16386us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16390us; 16391us; 16392us; 65535us; 65535us; 16393us; 65535us; 65535us; 65535us; 16394us; 16396us; 16397us; 16398us; 65535us; 16400us; 65535us; 65535us; 16401us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16407us; 16408us; 65535us; 65535us; 65535us; 16409us; 65535us; 65535us; 16410us; 65535us; 65535us; 16411us; 65535us; 65535us; 65535us; 65535us; 16412us; 65535us; 65535us; 65535us; 65535us; 65535us; 16413us; 65535us; 65535us; 65535us; 65535us; 16414us; 65535us; 16415us; 65535us; 65535us; 65535us; 65535us; 65535us; 16417us; 65535us; 16418us; 16420us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]
|
||||
let _fsyacc_reductions () = [|
|
||||
# 338 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedProg in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
raise (FSharp.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1))
|
||||
)
|
||||
: 'gentype__startProg));
|
||||
# 347 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedFunDec list in
|
||||
let _2 = parseState.GetInput(2) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 65 "Parser.fsp"
|
||||
_1
|
||||
)
|
||||
# 65 "Parser.fsp"
|
||||
: AbSyn.UntypedProg));
|
||||
# 359 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
let _2 = parseState.GetInput(2) :?> AbSyn.UntypedFunDec in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedFunDec list in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 68 "Parser.fsp"
|
||||
_2 :: _3
|
||||
)
|
||||
# 68 "Parser.fsp"
|
||||
: AbSyn.UntypedFunDec list));
|
||||
# 372 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
let _2 = parseState.GetInput(2) :?> AbSyn.UntypedFunDec in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 69 "Parser.fsp"
|
||||
_2 :: []
|
||||
)
|
||||
# 69 "Parser.fsp"
|
||||
: AbSyn.UntypedFunDec list));
|
||||
# 384 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.Type in
|
||||
let _2 = parseState.GetInput(2) :?> string * Position in
|
||||
let _3 = parseState.GetInput(3) :?> Position in
|
||||
let _4 = parseState.GetInput(4) :?> 'gentype_Params in
|
||||
let _5 = parseState.GetInput(5) :?> Position in
|
||||
let _6 = parseState.GetInput(6) :?> Position in
|
||||
let _7 = parseState.GetInput(7) :?> AbSyn.UntypedExp in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 73 "Parser.fsp"
|
||||
FunDec (fst _2, _1, _4, _7, snd _2)
|
||||
)
|
||||
# 73 "Parser.fsp"
|
||||
: AbSyn.UntypedFunDec));
|
||||
# 401 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.Type in
|
||||
let _2 = parseState.GetInput(2) :?> string * Position in
|
||||
let _3 = parseState.GetInput(3) :?> Position in
|
||||
let _4 = parseState.GetInput(4) :?> Position in
|
||||
let _5 = parseState.GetInput(5) :?> Position in
|
||||
let _6 = parseState.GetInput(6) :?> AbSyn.UntypedExp in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 75 "Parser.fsp"
|
||||
FunDec (fst _2, _1, [], _6, snd _2)
|
||||
)
|
||||
# 75 "Parser.fsp"
|
||||
: AbSyn.UntypedFunDec));
|
||||
# 417 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 78 "Parser.fsp"
|
||||
AbSyn.Int
|
||||
)
|
||||
# 78 "Parser.fsp"
|
||||
: AbSyn.Type));
|
||||
# 428 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 79 "Parser.fsp"
|
||||
AbSyn.Char
|
||||
)
|
||||
# 79 "Parser.fsp"
|
||||
: AbSyn.Type));
|
||||
# 439 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 80 "Parser.fsp"
|
||||
AbSyn.Bool
|
||||
)
|
||||
# 80 "Parser.fsp"
|
||||
: AbSyn.Type));
|
||||
# 450 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
let _2 = parseState.GetInput(2) :?> AbSyn.Type in
|
||||
let _3 = parseState.GetInput(3) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 81 "Parser.fsp"
|
||||
AbSyn.Array _2
|
||||
)
|
||||
# 81 "Parser.fsp"
|
||||
: AbSyn.Type));
|
||||
# 463 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.Type in
|
||||
let _2 = parseState.GetInput(2) :?> string * Position in
|
||||
let _3 = parseState.GetInput(3) :?> Position in
|
||||
let _4 = parseState.GetInput(4) :?> 'gentype_Params in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 85 "Parser.fsp"
|
||||
Param (fst _2, _1) :: _4
|
||||
)
|
||||
# 85 "Parser.fsp"
|
||||
: 'gentype_Params));
|
||||
# 477 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.Type in
|
||||
let _2 = parseState.GetInput(2) :?> string * Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 86 "Parser.fsp"
|
||||
Param (fst _2, _1) :: []
|
||||
)
|
||||
# 86 "Parser.fsp"
|
||||
: 'gentype_Params));
|
||||
# 489 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 90 "Parser.fsp"
|
||||
(Lambda
|
||||
(Int, [Param ("x", Int);
|
||||
Param ("y", Int)],
|
||||
Plus (Var ("x", _1),
|
||||
Var ("y", _1),
|
||||
_1) ,_1))
|
||||
)
|
||||
# 90 "Parser.fsp"
|
||||
: 'gentype_BinOp));
|
||||
# 505 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> int * Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 103 "Parser.fsp"
|
||||
Constant (IntVal (fst _1), snd _1)
|
||||
)
|
||||
# 103 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 516 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> char * Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 104 "Parser.fsp"
|
||||
Constant (CharVal (fst _1), snd _1)
|
||||
)
|
||||
# 104 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 527 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> string * Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 105 "Parser.fsp"
|
||||
Var _1
|
||||
)
|
||||
# 105 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 538 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> string * Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 106 "Parser.fsp"
|
||||
StringLit _1
|
||||
)
|
||||
# 106 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 549 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
let _2 = parseState.GetInput(2) :?> AbSyn.UntypedExp list in
|
||||
let _3 = parseState.GetInput(3) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 108 "Parser.fsp"
|
||||
ArrayLit (_2, (), _1)
|
||||
)
|
||||
# 108 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 562 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedExp in
|
||||
let _2 = parseState.GetInput(2) :?> Position in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 109 "Parser.fsp"
|
||||
Plus (_1, _3, _2)
|
||||
)
|
||||
# 109 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 575 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedExp in
|
||||
let _2 = parseState.GetInput(2) :?> Position in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 110 "Parser.fsp"
|
||||
Minus(_1, _3, _2)
|
||||
)
|
||||
# 110 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 588 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedExp in
|
||||
let _2 = parseState.GetInput(2) :?> Position in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 111 "Parser.fsp"
|
||||
Equal(_1, _3, _2)
|
||||
)
|
||||
# 111 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 601 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedExp in
|
||||
let _2 = parseState.GetInput(2) :?> Position in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 112 "Parser.fsp"
|
||||
Less (_1, _3, _2)
|
||||
)
|
||||
# 112 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 614 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
let _2 = parseState.GetInput(2) :?> AbSyn.UntypedExp in
|
||||
let _3 = parseState.GetInput(3) :?> Position in
|
||||
let _4 = parseState.GetInput(4) :?> AbSyn.UntypedExp in
|
||||
let _5 = parseState.GetInput(5) :?> Position in
|
||||
let _6 = parseState.GetInput(6) :?> AbSyn.UntypedExp in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 114 "Parser.fsp"
|
||||
If (_2, _4, _6, _1)
|
||||
)
|
||||
# 114 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 630 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> string * Position in
|
||||
let _2 = parseState.GetInput(2) :?> Position in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp list in
|
||||
let _4 = parseState.GetInput(4) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 116 "Parser.fsp"
|
||||
Apply (fst _1, _3, snd _1)
|
||||
)
|
||||
# 116 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 644 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> string * Position in
|
||||
let _2 = parseState.GetInput(2) :?> Position in
|
||||
let _3 = parseState.GetInput(3) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 117 "Parser.fsp"
|
||||
Apply (fst _1, [], snd _1)
|
||||
)
|
||||
# 117 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 657 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
let _2 = parseState.GetInput(2) :?> Position in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.Type in
|
||||
let _4 = parseState.GetInput(4) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 119 "Parser.fsp"
|
||||
Read (_3, _1)
|
||||
)
|
||||
# 119 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 671 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
let _2 = parseState.GetInput(2) :?> Position in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp in
|
||||
let _4 = parseState.GetInput(4) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 121 "Parser.fsp"
|
||||
Write (_3, (), _1)
|
||||
)
|
||||
# 121 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 685 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
let _2 = parseState.GetInput(2) :?> Position in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp in
|
||||
let _4 = parseState.GetInput(4) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 123 "Parser.fsp"
|
||||
Iota (_3, _1)
|
||||
)
|
||||
# 123 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 699 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
let _2 = parseState.GetInput(2) :?> Position in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedFunArg in
|
||||
let _4 = parseState.GetInput(4) :?> Position in
|
||||
let _5 = parseState.GetInput(5) :?> AbSyn.UntypedExp in
|
||||
let _6 = parseState.GetInput(6) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 125 "Parser.fsp"
|
||||
Map (_3, _5, (), (), _1)
|
||||
)
|
||||
# 125 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 715 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
let _2 = parseState.GetInput(2) :?> Position in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedFunArg in
|
||||
let _4 = parseState.GetInput(4) :?> Position in
|
||||
let _5 = parseState.GetInput(5) :?> AbSyn.UntypedExp in
|
||||
let _6 = parseState.GetInput(6) :?> Position in
|
||||
let _7 = parseState.GetInput(7) :?> AbSyn.UntypedExp in
|
||||
let _8 = parseState.GetInput(8) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 127 "Parser.fsp"
|
||||
Reduce (_3, _5, _7, (), _1)
|
||||
)
|
||||
# 127 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 733 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
let _2 = parseState.GetInput(2) :?> Position in
|
||||
let _3 = parseState.GetInput(3) :?> Position in
|
||||
let _4 = parseState.GetInput(4) :?> 'gentype_BinOp in
|
||||
let _5 = parseState.GetInput(5) :?> Position in
|
||||
let _6 = parseState.GetInput(6) :?> AbSyn.UntypedExp in
|
||||
let _7 = parseState.GetInput(7) :?> Position in
|
||||
let _8 = parseState.GetInput(8) :?> AbSyn.UntypedExp in
|
||||
let _9 = parseState.GetInput(9) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 129 "Parser.fsp"
|
||||
Reduce (_4, _6, _8, (), _1)
|
||||
)
|
||||
# 129 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 752 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
let _2 = parseState.GetInput(2) :?> AbSyn.UntypedExp in
|
||||
let _3 = parseState.GetInput(3) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 130 "Parser.fsp"
|
||||
_2
|
||||
)
|
||||
# 130 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 765 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
let _2 = parseState.GetInput(2) :?> string * Position in
|
||||
let _3 = parseState.GetInput(3) :?> Position in
|
||||
let _4 = parseState.GetInput(4) :?> AbSyn.UntypedExp in
|
||||
let _5 = parseState.GetInput(5) :?> Position in
|
||||
let _6 = parseState.GetInput(6) :?> AbSyn.UntypedExp in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 133 "Parser.fsp"
|
||||
Let (Dec (fst _2, _4, _3), _6, _1)
|
||||
)
|
||||
# 133 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 781 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> string * Position in
|
||||
let _2 = parseState.GetInput(2) :?> Position in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp in
|
||||
let _4 = parseState.GetInput(4) :?> Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 135 "Parser.fsp"
|
||||
Index (fst _1, _3, (), _2)
|
||||
)
|
||||
# 135 "Parser.fsp"
|
||||
: AbSyn.UntypedExp));
|
||||
# 795 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedExp in
|
||||
let _2 = parseState.GetInput(2) :?> Position in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.UntypedExp list in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 138 "Parser.fsp"
|
||||
_1 :: _3
|
||||
)
|
||||
# 138 "Parser.fsp"
|
||||
: AbSyn.UntypedExp list));
|
||||
# 808 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.UntypedExp in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 139 "Parser.fsp"
|
||||
_1 :: []
|
||||
)
|
||||
# 139 "Parser.fsp"
|
||||
: AbSyn.UntypedExp list));
|
||||
# 819 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> string * Position in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 142 "Parser.fsp"
|
||||
FunName (fst _1 )
|
||||
)
|
||||
# 142 "Parser.fsp"
|
||||
: AbSyn.UntypedFunArg));
|
||||
# 830 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
let _2 = parseState.GetInput(2) :?> AbSyn.Type in
|
||||
let _3 = parseState.GetInput(3) :?> Position in
|
||||
let _4 = parseState.GetInput(4) :?> Position in
|
||||
let _5 = parseState.GetInput(5) :?> Position in
|
||||
let _6 = parseState.GetInput(6) :?> AbSyn.UntypedExp in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 144 "Parser.fsp"
|
||||
Lambda (_2, [], _6, _1)
|
||||
)
|
||||
# 144 "Parser.fsp"
|
||||
: AbSyn.UntypedFunArg));
|
||||
# 846 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> Position in
|
||||
let _2 = parseState.GetInput(2) :?> AbSyn.Type in
|
||||
let _3 = parseState.GetInput(3) :?> Position in
|
||||
let _4 = parseState.GetInput(4) :?> 'gentype_Params in
|
||||
let _5 = parseState.GetInput(5) :?> Position in
|
||||
let _6 = parseState.GetInput(6) :?> Position in
|
||||
let _7 = parseState.GetInput(7) :?> AbSyn.UntypedExp in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 146 "Parser.fsp"
|
||||
Lambda (_2, _4, _7, _1)
|
||||
)
|
||||
# 146 "Parser.fsp"
|
||||
: AbSyn.UntypedFunArg));
|
||||
|]
|
||||
# 864 "Parser.fs"
|
||||
let tables : FSharp.Text.Parsing.Tables<_> =
|
||||
{ reductions= _fsyacc_reductions ();
|
||||
endOfInputTag = _fsyacc_endOfInputTag;
|
||||
tagOfToken = tagOfToken;
|
||||
dataOfToken = _fsyacc_dataOfToken;
|
||||
actionTableElements = _fsyacc_actionTableElements;
|
||||
actionTableRowOffsets = _fsyacc_actionTableRowOffsets;
|
||||
stateToProdIdxsTableElements = _fsyacc_stateToProdIdxsTableElements;
|
||||
stateToProdIdxsTableRowOffsets = _fsyacc_stateToProdIdxsTableRowOffsets;
|
||||
reductionSymbolCounts = _fsyacc_reductionSymbolCounts;
|
||||
immediateActions = _fsyacc_immediateActions;
|
||||
gotos = _fsyacc_gotos;
|
||||
sparseGotoTableRowOffsets = _fsyacc_sparseGotoTableRowOffsets;
|
||||
tagOfErrorTerminal = _fsyacc_tagOfErrorTerminal;
|
||||
parseError = (fun (ctxt:FSharp.Text.Parsing.ParseErrorContext<_>) ->
|
||||
match parse_error_rich with
|
||||
| Some f -> f ctxt
|
||||
| None -> parse_error ctxt.Message);
|
||||
numTerminals = 39;
|
||||
productionToNonTerminalTable = _fsyacc_productionToNonTerminalTable }
|
||||
let engine lexer lexbuf startState = tables.Interpret(lexer, lexbuf, startState)
|
||||
let Prog lexer lexbuf : AbSyn.UntypedProg =
|
||||
engine lexer lexbuf 0 :?> _
|
||||
@@ -0,0 +1,101 @@
|
||||
// Signature file for parser generated by fsyacc
|
||||
module Parser
|
||||
type token =
|
||||
| LPAR of (Position)
|
||||
| RPAR of (Position)
|
||||
| LBRACKET of (Position)
|
||||
| RBRACKET of (Position)
|
||||
| LCURLY of (Position)
|
||||
| RCURLY of (Position)
|
||||
| FUN of (Position)
|
||||
| FN of (Position)
|
||||
| COMMA of (Position)
|
||||
| SEMICOLON of (Position)
|
||||
| READ of (Position)
|
||||
| WRITE of (Position)
|
||||
| DEQ of (Position)
|
||||
| LTH of (Position)
|
||||
| EQ of (Position)
|
||||
| OP of (Position)
|
||||
| MAP of (Position)
|
||||
| REDUCE of (Position)
|
||||
| IOTA of (Position)
|
||||
| ARROW of (Position)
|
||||
| PLUS of (Position)
|
||||
| MINUS of (Position)
|
||||
| LESS of (Position)
|
||||
| INT of (Position)
|
||||
| CHAR of (Position)
|
||||
| BOOL of (Position)
|
||||
| IF of (Position)
|
||||
| THEN of (Position)
|
||||
| ELSE of (Position)
|
||||
| LET of (Position)
|
||||
| IN of (Position)
|
||||
| EOF of (Position)
|
||||
| ID of (string * Position)
|
||||
| STRINGLIT of (string * Position)
|
||||
| CHARLIT of (char * Position)
|
||||
| NUM of (int * Position)
|
||||
type tokenId =
|
||||
| TOKEN_LPAR
|
||||
| TOKEN_RPAR
|
||||
| TOKEN_LBRACKET
|
||||
| TOKEN_RBRACKET
|
||||
| TOKEN_LCURLY
|
||||
| TOKEN_RCURLY
|
||||
| TOKEN_FUN
|
||||
| TOKEN_FN
|
||||
| TOKEN_COMMA
|
||||
| TOKEN_SEMICOLON
|
||||
| TOKEN_READ
|
||||
| TOKEN_WRITE
|
||||
| TOKEN_DEQ
|
||||
| TOKEN_LTH
|
||||
| TOKEN_EQ
|
||||
| TOKEN_OP
|
||||
| TOKEN_MAP
|
||||
| TOKEN_REDUCE
|
||||
| TOKEN_IOTA
|
||||
| TOKEN_ARROW
|
||||
| TOKEN_PLUS
|
||||
| TOKEN_MINUS
|
||||
| TOKEN_LESS
|
||||
| TOKEN_INT
|
||||
| TOKEN_CHAR
|
||||
| TOKEN_BOOL
|
||||
| TOKEN_IF
|
||||
| TOKEN_THEN
|
||||
| TOKEN_ELSE
|
||||
| TOKEN_LET
|
||||
| TOKEN_IN
|
||||
| TOKEN_EOF
|
||||
| TOKEN_ID
|
||||
| TOKEN_STRINGLIT
|
||||
| TOKEN_CHARLIT
|
||||
| TOKEN_NUM
|
||||
| TOKEN_end_of_input
|
||||
| TOKEN_error
|
||||
type nonTerminalId =
|
||||
| NONTERM__startProg
|
||||
| NONTERM_Prog
|
||||
| NONTERM_FunDecs
|
||||
| NONTERM_Fun
|
||||
| NONTERM_Type
|
||||
| NONTERM_Params
|
||||
| NONTERM_BinOp
|
||||
| NONTERM_Exp
|
||||
| NONTERM_Exps
|
||||
| NONTERM_FunArg
|
||||
/// This function maps tokens to integer indexes
|
||||
val tagOfToken: token -> int
|
||||
|
||||
/// This function maps integer indexes to symbolic token ids
|
||||
val tokenTagToTokenId: int -> tokenId
|
||||
|
||||
/// This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production
|
||||
val prodIdxToNonTerminal: int -> nonTerminalId
|
||||
|
||||
/// This function gets the name of a token as a string
|
||||
val token_to_string: token -> string
|
||||
val Prog : (FSharp.Text.Lexing.LexBuffer<'cty> -> token) -> FSharp.Text.Lexing.LexBuffer<'cty> -> (AbSyn.UntypedProg)
|
||||
File diff suppressed because it is too large.
Load diff
+284
-157
@@ -17,189 +17,316 @@
|
||||
_stop_:
|
||||
ori $2, $0, 10
|
||||
syscall
|
||||
# Function main
|
||||
main:
|
||||
# Function plus5
|
||||
plus5:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_1_,$2,0
|
||||
# ori _plus_L_3_,_param_x_1_,0
|
||||
ori $3, $0, 5
|
||||
# was: ori _plus_R_4_, $0, 5
|
||||
add $2, $2, $3
|
||||
# was: add _plus5res_2_, _plus_L_3_, _plus_R_4_
|
||||
# ori $2,_plus5res_2_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function mul2
|
||||
mul2:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_5_,$2,0
|
||||
ori $3, $2, 0
|
||||
# was: ori _plus_L_7_, _param_x_5_, 0
|
||||
# ori _plus_R_8_,_param_x_5_,0
|
||||
add $2, $3, $2
|
||||
# was: add _mul2res_6_, _plus_L_7_, _plus_R_8_
|
||||
# ori $2,_mul2res_6_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function testcomp
|
||||
testcomp:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_9_,$2,0
|
||||
# ori _arg_12_,_param_x_9_,0
|
||||
# ori $2,_arg_12_,0
|
||||
jal write_int_arr
|
||||
# was: jal write_int_arr, $2
|
||||
# ori _arg_11_,$2,0
|
||||
# ori $2,_arg_11_,0
|
||||
jal write_int_arr
|
||||
# was: jal write_int_arr, $2
|
||||
# ori _testcompres_10_,$2,0
|
||||
# ori $2,_testcompres_10_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function write_int
|
||||
write_int:
|
||||
sw $31, -4($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -12
|
||||
# ori _param_x_13_,$2,0
|
||||
ori $16, $2, 0
|
||||
# was: ori _tmp_15_, _param_x_13_, 0
|
||||
# ori _write_intres_14_,_tmp_15_,0
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _write_intres_14_, 0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _write_intres_14_, 0
|
||||
addi $29, $29, 12
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function write_int_arr
|
||||
write_int_arr:
|
||||
sw $31, -4($29)
|
||||
sw $21, -28($29)
|
||||
sw $20, -24($29)
|
||||
sw $19, -20($29)
|
||||
sw $18, -16($29)
|
||||
sw $17, -12($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -32
|
||||
addi $29, $29, -28
|
||||
# ori _param_x_16_,$2,0
|
||||
# ori _arr_reg_19_,_param_x_16_,0
|
||||
lw $16, 0($2)
|
||||
# was: lw _size_reg_18_, 0(_arr_reg_19_)
|
||||
ori $17, $28, 0
|
||||
# was: ori _write_int_arrres_17_, $28, 0
|
||||
sll $3, $16, 2
|
||||
# was: sll _tmp_28_, _size_reg_18_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_28_, _tmp_28_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_28_
|
||||
sw $16, 0($17)
|
||||
# was: sw _size_reg_18_, 0(_write_int_arrres_17_)
|
||||
addi $18, $17, 4
|
||||
# was: addi _addr_reg_22_, _write_int_arrres_17_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_23_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_20_, _arr_reg_19_, 4
|
||||
_loop_beg_24_:
|
||||
sub $2, $19, $16
|
||||
# was: sub _tmp_reg_26_, _i_reg_23_, _size_reg_18_
|
||||
bgez $2, _loop_end_25_
|
||||
# was: bgez _tmp_reg_26_, _loop_end_25_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_21_, 0(_elem_reg_20_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_20_, _elem_reg_20_, 4
|
||||
# ori $2,_res_reg_21_,0
|
||||
jal write_int
|
||||
# was: jal write_int, $2
|
||||
# ori _tmp_reg_27_,$2,0
|
||||
# ori _res_reg_21_,_tmp_reg_27_,0
|
||||
sw $2, 0($18)
|
||||
# was: sw _res_reg_21_, 0(_addr_reg_22_)
|
||||
addi $18, $18, 4
|
||||
# was: addi _addr_reg_22_, _addr_reg_22_, 4
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_23_, _i_reg_23_, 1
|
||||
j _loop_beg_24_
|
||||
_loop_end_25_:
|
||||
ori $2, $17, 0
|
||||
# was: ori $2, _write_int_arrres_17_, 0
|
||||
addi $29, $29, 28
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
lw $18, -16($29)
|
||||
lw $17, -12($29)
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function boo
|
||||
boo:
|
||||
sw $31, -4($29)
|
||||
sw $20, -24($29)
|
||||
sw $19, -20($29)
|
||||
sw $18, -16($29)
|
||||
sw $17, -12($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -28
|
||||
# ori _param_a_29_,$2,0
|
||||
ori $4, $0, 5
|
||||
# was: ori _plus_L_33_, $0, 5
|
||||
ori $3, $0, 3
|
||||
# was: ori _plus_R_34_, $0, 3
|
||||
add $0, $4, $3
|
||||
# was: add _letBind_32_, _plus_L_33_, _plus_R_34_
|
||||
# ori _arr_reg_36_,_param_a_29_,0
|
||||
lw $17, 0($2)
|
||||
# was: lw _size_reg_35_, 0(_arr_reg_36_)
|
||||
ori $16, $28, 0
|
||||
# was: ori _letBind_31_, $28, 0
|
||||
sll $3, $17, 2
|
||||
# was: sll _tmp_45_, _size_reg_35_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_45_, _tmp_45_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_45_
|
||||
sw $17, 0($16)
|
||||
# was: sw _size_reg_35_, 0(_letBind_31_)
|
||||
addi $18, $16, 4
|
||||
# was: addi _addr_reg_39_, _letBind_31_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_40_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_37_, _arr_reg_36_, 4
|
||||
_loop_beg_41_:
|
||||
sub $2, $19, $17
|
||||
# was: sub _tmp_reg_43_, _i_reg_40_, _size_reg_35_
|
||||
bgez $2, _loop_end_42_
|
||||
# was: bgez _tmp_reg_43_, _loop_end_42_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_38_, 0(_elem_reg_37_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_37_, _elem_reg_37_, 4
|
||||
# ori $2,_res_reg_38_,0
|
||||
jal plus5
|
||||
# was: jal plus5, $2
|
||||
# ori _tmp_reg_44_,$2,0
|
||||
# ori _res_reg_38_,_tmp_reg_44_,0
|
||||
sw $2, 0($18)
|
||||
# was: sw _res_reg_38_, 0(_addr_reg_39_)
|
||||
addi $18, $18, 4
|
||||
# was: addi _addr_reg_39_, _addr_reg_39_, 4
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_40_, _i_reg_40_, 1
|
||||
j _loop_beg_41_
|
||||
_loop_end_42_:
|
||||
ori $2, $16, 0
|
||||
# was: ori _boores_30_, _letBind_31_, 0
|
||||
# ori $2,_boores_30_,0
|
||||
addi $29, $29, 28
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
lw $18, -16($29)
|
||||
lw $17, -12($29)
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function main
|
||||
main:
|
||||
sw $31, -4($29)
|
||||
sw $20, -24($29)
|
||||
sw $19, -20($29)
|
||||
sw $18, -16($29)
|
||||
sw $17, -12($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -28
|
||||
jal getint
|
||||
# was: jal getint, $2
|
||||
# ori _letBind_2_,$2,0
|
||||
# ori _size_reg_4_,_letBind_2_,0
|
||||
bgez $2, _safe_lab_5_
|
||||
# was: bgez _size_reg_4_, _safe_lab_5_
|
||||
ori $3, $2, 0
|
||||
# was: ori _letBind_47_, $2, 0
|
||||
# ori _size_reg_49_,_letBind_47_,0
|
||||
bgez $3, _safe_lab_50_
|
||||
# was: bgez _size_reg_49_, _safe_lab_50_
|
||||
ori $5, $0, 15
|
||||
# was: ori $5, $0, 15
|
||||
la $6, _Msg_IllegalArraySize_
|
||||
# was: la $6, _Msg_IllegalArraySize_
|
||||
j _RuntimeError_
|
||||
_safe_lab_5_:
|
||||
ori $3, $28, 0
|
||||
# was: ori _letBind_3_, $28, 0
|
||||
sll $4, $2, 2
|
||||
# was: sll _tmp_11_, _size_reg_4_, 2
|
||||
_safe_lab_50_:
|
||||
ori $2, $28, 0
|
||||
# was: ori _letBind_48_, $28, 0
|
||||
sll $4, $3, 2
|
||||
# was: sll _tmp_56_, _size_reg_49_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_11_, _tmp_11_, 4
|
||||
# was: addi _tmp_56_, _tmp_56_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_11_
|
||||
sw $2, 0($3)
|
||||
# was: sw _size_reg_4_, 0(_letBind_3_)
|
||||
addi $6, $3, 4
|
||||
# was: addi _addr_reg_6_, _letBind_3_, 4
|
||||
ori $5, $0, 0
|
||||
# was: ori _i_reg_7_, $0, 0
|
||||
_loop_beg_8_:
|
||||
sub $4, $5, $2
|
||||
# was: sub _tmp_reg_10_, _i_reg_7_, _size_reg_4_
|
||||
bgez $4, _loop_end_9_
|
||||
# was: bgez _tmp_reg_10_, _loop_end_9_
|
||||
sw $5, 0($6)
|
||||
# was: sw _i_reg_7_, 0(_addr_reg_6_)
|
||||
addi $6, $6, 4
|
||||
# was: addi _addr_reg_6_, _addr_reg_6_, 4
|
||||
addi $5, $5, 1
|
||||
# was: addi _i_reg_7_, _i_reg_7_, 1
|
||||
j _loop_beg_8_
|
||||
_loop_end_9_:
|
||||
ori $2, $3, 0
|
||||
# was: ori _arr_reg_14_, _letBind_3_, 0
|
||||
lw $4, 0($2)
|
||||
# was: lw _size_reg_13_, 0(_arr_reg_14_)
|
||||
ori $6, $28, 0
|
||||
# was: ori _letBind_12_, $28, 0
|
||||
sll $3, $4, 2
|
||||
# was: sll _tmp_25_, _size_reg_13_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_25_, _tmp_25_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_25_
|
||||
sw $4, 0($6)
|
||||
# was: sw _size_reg_13_, 0(_letBind_12_)
|
||||
addi $3, $6, 4
|
||||
# was: addi _addr_reg_17_, _letBind_12_, 4
|
||||
ori $5, $0, 0
|
||||
# was: ori _i_reg_18_, $0, 0
|
||||
addi $7, $2, 4
|
||||
# was: addi _elem_reg_15_, _arr_reg_14_, 4
|
||||
_loop_beg_19_:
|
||||
sub $2, $5, $4
|
||||
# was: sub _tmp_reg_21_, _i_reg_18_, _size_reg_13_
|
||||
bgez $2, _loop_end_20_
|
||||
# was: bgez _tmp_reg_21_, _loop_end_20_
|
||||
lw $2, 0($7)
|
||||
# was: lw _res_reg_16_, 0(_elem_reg_15_)
|
||||
addi $7, $7, 4
|
||||
# was: addi _elem_reg_15_, _elem_reg_15_, 4
|
||||
ori $8, $2, 0
|
||||
# was: ori _plus_L_23_, _res_reg_16_, 0
|
||||
ori $2, $0, 5
|
||||
# was: ori _plus_R_24_, $0, 5
|
||||
add $2, $8, $2
|
||||
# was: add _fun_arg_res_22_, _plus_L_23_, _plus_R_24_
|
||||
# ori _res_reg_16_,_fun_arg_res_22_,0
|
||||
sw $2, 0($3)
|
||||
# was: sw _res_reg_16_, 0(_addr_reg_17_)
|
||||
addi $3, $3, 4
|
||||
# was: addi _addr_reg_17_, _addr_reg_17_, 4
|
||||
addi $5, $5, 1
|
||||
# was: addi _i_reg_18_, _i_reg_18_, 1
|
||||
j _loop_beg_19_
|
||||
_loop_end_20_:
|
||||
ori $2, $6, 0
|
||||
# was: ori _arr_reg_28_, _letBind_12_, 0
|
||||
lw $4, 0($2)
|
||||
# was: lw _size_reg_27_, 0(_arr_reg_28_)
|
||||
ori $5, $28, 0
|
||||
# was: ori _letBind_26_, $28, 0
|
||||
sll $3, $4, 2
|
||||
# was: sll _tmp_39_, _size_reg_27_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_39_, _tmp_39_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_39_
|
||||
sw $4, 0($5)
|
||||
# was: sw _size_reg_27_, 0(_letBind_26_)
|
||||
addi $3, $5, 4
|
||||
# was: addi _addr_reg_31_, _letBind_26_, 4
|
||||
# was: add $28, $28, _tmp_56_
|
||||
sw $3, 0($2)
|
||||
# was: sw _size_reg_49_, 0(_letBind_48_)
|
||||
addi $5, $2, 4
|
||||
# was: addi _addr_reg_51_, _letBind_48_, 4
|
||||
ori $6, $0, 0
|
||||
# was: ori _i_reg_32_, $0, 0
|
||||
addi $7, $2, 4
|
||||
# was: addi _elem_reg_29_, _arr_reg_28_, 4
|
||||
_loop_beg_33_:
|
||||
sub $2, $6, $4
|
||||
# was: sub _tmp_reg_35_, _i_reg_32_, _size_reg_27_
|
||||
bgez $2, _loop_end_34_
|
||||
# was: bgez _tmp_reg_35_, _loop_end_34_
|
||||
lw $2, 0($7)
|
||||
# was: lw _res_reg_30_, 0(_elem_reg_29_)
|
||||
addi $7, $7, 4
|
||||
# was: addi _elem_reg_29_, _elem_reg_29_, 4
|
||||
ori $8, $2, 0
|
||||
# was: ori _plus_L_37_, _res_reg_30_, 0
|
||||
# ori _plus_R_38_,_res_reg_30_,0
|
||||
add $2, $8, $2
|
||||
# was: add _fun_arg_res_36_, _plus_L_37_, _plus_R_38_
|
||||
# ori _res_reg_30_,_fun_arg_res_36_,0
|
||||
sw $2, 0($3)
|
||||
# was: sw _res_reg_30_, 0(_addr_reg_31_)
|
||||
addi $3, $3, 4
|
||||
# was: addi _addr_reg_31_, _addr_reg_31_, 4
|
||||
# was: ori _i_reg_52_, $0, 0
|
||||
_loop_beg_53_:
|
||||
sub $4, $6, $3
|
||||
# was: sub _tmp_reg_55_, _i_reg_52_, _size_reg_49_
|
||||
bgez $4, _loop_end_54_
|
||||
# was: bgez _tmp_reg_55_, _loop_end_54_
|
||||
sw $6, 0($5)
|
||||
# was: sw _i_reg_52_, 0(_addr_reg_51_)
|
||||
addi $5, $5, 4
|
||||
# was: addi _addr_reg_51_, _addr_reg_51_, 4
|
||||
addi $6, $6, 1
|
||||
# was: addi _i_reg_32_, _i_reg_32_, 1
|
||||
j _loop_beg_33_
|
||||
_loop_end_34_:
|
||||
# ori _arr_reg_41_,_letBind_26_,0
|
||||
lw $16, 0($5)
|
||||
# was: lw _size_reg_40_, 0(_arr_reg_41_)
|
||||
# was: addi _i_reg_52_, _i_reg_52_, 1
|
||||
j _loop_beg_53_
|
||||
_loop_end_54_:
|
||||
# ori _plus_L_59_,_letBind_47_,0
|
||||
ori $4, $3, 0
|
||||
# was: ori _plus_R_60_, _letBind_47_, 0
|
||||
add $0, $3, $4
|
||||
# was: add _letBind_58_, _plus_L_59_, _plus_R_60_
|
||||
ori $4, $3, 0
|
||||
# was: ori _plus_L_63_, _letBind_47_, 0
|
||||
# ori _plus_R_64_,_letBind_47_,0
|
||||
add $4, $4, $3
|
||||
# was: add _plus_L_61_, _plus_L_63_, _plus_R_64_
|
||||
# ori _plus_R_62_,_letBind_47_,0
|
||||
add $0, $4, $3
|
||||
# was: add _letBind_57_, _plus_L_61_, _plus_R_62_
|
||||
# ori _arg_66_,_letBind_48_,0
|
||||
# ori $2,_arg_66_,0
|
||||
jal boo
|
||||
# was: jal boo, $2
|
||||
# ori _letBind_65_,$2,0
|
||||
# ori _arr_reg_69_,_letBind_65_,0
|
||||
lw $16, 0($2)
|
||||
# was: lw _size_reg_68_, 0(_arr_reg_69_)
|
||||
ori $17, $28, 0
|
||||
# was: ori _mainres_1_, $28, 0
|
||||
sll $2, $16, 2
|
||||
# was: sll _tmp_51_, _size_reg_40_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_51_, _tmp_51_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_51_
|
||||
# was: ori _letBind_67_, $28, 0
|
||||
sll $3, $16, 2
|
||||
# was: sll _tmp_78_, _size_reg_68_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_78_, _tmp_78_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_78_
|
||||
sw $16, 0($17)
|
||||
# was: sw _size_reg_40_, 0(_mainres_1_)
|
||||
# was: sw _size_reg_68_, 0(_letBind_67_)
|
||||
addi $18, $17, 4
|
||||
# was: addi _addr_reg_44_, _mainres_1_, 4
|
||||
# was: addi _addr_reg_72_, _letBind_67_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_45_, $0, 0
|
||||
addi $20, $5, 4
|
||||
# was: addi _elem_reg_42_, _arr_reg_41_, 4
|
||||
_loop_beg_46_:
|
||||
# was: ori _i_reg_73_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_70_, _arr_reg_69_, 4
|
||||
_loop_beg_74_:
|
||||
sub $2, $19, $16
|
||||
# was: sub _tmp_reg_48_, _i_reg_45_, _size_reg_40_
|
||||
bgez $2, _loop_end_47_
|
||||
# was: bgez _tmp_reg_48_, _loop_end_47_
|
||||
lw $21, 0($20)
|
||||
# was: lw _res_reg_43_, 0(_elem_reg_42_)
|
||||
# was: sub _tmp_reg_76_, _i_reg_73_, _size_reg_68_
|
||||
bgez $2, _loop_end_75_
|
||||
# was: bgez _tmp_reg_76_, _loop_end_75_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_71_, 0(_elem_reg_70_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_42_, _elem_reg_42_, 4
|
||||
# ori _tmp_50_,_res_reg_43_,0
|
||||
# ori _fun_arg_res_49_,_tmp_50_,0
|
||||
ori $2, $21, 0
|
||||
# was: ori $2, _fun_arg_res_49_, 0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
# ori _res_reg_43_,_fun_arg_res_49_,0
|
||||
sw $21, 0($18)
|
||||
# was: sw _res_reg_43_, 0(_addr_reg_44_)
|
||||
# was: addi _elem_reg_70_, _elem_reg_70_, 4
|
||||
# ori $2,_res_reg_71_,0
|
||||
jal mul2
|
||||
# was: jal mul2, $2
|
||||
# ori _tmp_reg_77_,$2,0
|
||||
# ori _res_reg_71_,_tmp_reg_77_,0
|
||||
sw $2, 0($18)
|
||||
# was: sw _res_reg_71_, 0(_addr_reg_72_)
|
||||
addi $18, $18, 4
|
||||
# was: addi _addr_reg_44_, _addr_reg_44_, 4
|
||||
# was: addi _addr_reg_72_, _addr_reg_72_, 4
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_45_, _i_reg_45_, 1
|
||||
j _loop_beg_46_
|
||||
_loop_end_47_:
|
||||
# was: addi _i_reg_73_, _i_reg_73_, 1
|
||||
j _loop_beg_74_
|
||||
_loop_end_75_:
|
||||
ori $2, $17, 0
|
||||
# was: ori $2, _mainres_1_, 0
|
||||
addi $29, $29, 32
|
||||
lw $21, -28($29)
|
||||
# was: ori _arg_79_, _letBind_67_, 0
|
||||
# ori $2,_arg_79_,0
|
||||
jal write_int_arr
|
||||
# was: jal write_int_arr, $2
|
||||
# ori _mainres_46_,$2,0
|
||||
# ori $2,_mainres_46_,0
|
||||
addi $29, $29, 28
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
lw $18, -16($29)
|
||||
|
||||
+181
-152
@@ -1,12 +1,12 @@
|
||||
.text 0x00400000
|
||||
.globl main
|
||||
la $28, _heap_
|
||||
la $4, _a__str__41_
|
||||
# was: la _a__str__41__addr, _a__str__41_
|
||||
la $4, _a__str__45_
|
||||
# was: la _a__str__45__addr, _a__str__45_
|
||||
ori $3, $0, 1
|
||||
# was: ori _a__str__41__init, $0, 1
|
||||
# was: ori _a__str__45__init, $0, 1
|
||||
sw $3, 0($4)
|
||||
# was: sw _a__str__41__init, 0(_a__str__41__addr)
|
||||
# was: sw _a__str__45__init, 0(_a__str__45__addr)
|
||||
la $4, _true
|
||||
# was: la _true_addr, _true
|
||||
ori $3, $0, 4
|
||||
@@ -23,191 +23,220 @@
|
||||
_stop_:
|
||||
ori $2, $0, 10
|
||||
syscall
|
||||
# Function main
|
||||
main:
|
||||
# Function write_int
|
||||
write_int:
|
||||
sw $31, -4($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -12
|
||||
# ori _param_x_1_,$2,0
|
||||
ori $16, $2, 0
|
||||
# was: ori _tmp_3_, _param_x_1_, 0
|
||||
# ori _write_intres_2_,_tmp_3_,0
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _write_intres_2_, 0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _write_intres_2_, 0
|
||||
addi $29, $29, 12
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function write_int_arr
|
||||
write_int_arr:
|
||||
sw $31, -4($29)
|
||||
sw $21, -28($29)
|
||||
sw $20, -24($29)
|
||||
sw $19, -20($29)
|
||||
sw $18, -16($29)
|
||||
sw $17, -12($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -32
|
||||
addi $29, $29, -28
|
||||
# ori _param_x_4_,$2,0
|
||||
# ori _arr_reg_7_,_param_x_4_,0
|
||||
lw $16, 0($2)
|
||||
# was: lw _size_reg_6_, 0(_arr_reg_7_)
|
||||
ori $17, $28, 0
|
||||
# was: ori _write_int_arrres_5_, $28, 0
|
||||
sll $3, $16, 2
|
||||
# was: sll _tmp_16_, _size_reg_6_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_16_, _tmp_16_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_16_
|
||||
sw $16, 0($17)
|
||||
# was: sw _size_reg_6_, 0(_write_int_arrres_5_)
|
||||
addi $18, $17, 4
|
||||
# was: addi _addr_reg_10_, _write_int_arrres_5_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_11_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_8_, _arr_reg_7_, 4
|
||||
_loop_beg_12_:
|
||||
sub $2, $19, $16
|
||||
# was: sub _tmp_reg_14_, _i_reg_11_, _size_reg_6_
|
||||
bgez $2, _loop_end_13_
|
||||
# was: bgez _tmp_reg_14_, _loop_end_13_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_9_, 0(_elem_reg_8_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_8_, _elem_reg_8_, 4
|
||||
# ori $2,_res_reg_9_,0
|
||||
jal write_int
|
||||
# was: jal write_int, $2
|
||||
# ori _tmp_reg_15_,$2,0
|
||||
# ori _res_reg_9_,_tmp_reg_15_,0
|
||||
sw $2, 0($18)
|
||||
# was: sw _res_reg_9_, 0(_addr_reg_10_)
|
||||
addi $18, $18, 4
|
||||
# was: addi _addr_reg_10_, _addr_reg_10_, 4
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_11_, _i_reg_11_, 1
|
||||
j _loop_beg_12_
|
||||
_loop_end_13_:
|
||||
ori $2, $17, 0
|
||||
# was: ori $2, _write_int_arrres_5_, 0
|
||||
addi $29, $29, 28
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
lw $18, -16($29)
|
||||
lw $17, -12($29)
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function main
|
||||
main:
|
||||
sw $31, -4($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -12
|
||||
jal getint
|
||||
# was: jal getint, $2
|
||||
# ori _letBind_2_,$2,0
|
||||
ori $4, $2, 0
|
||||
# was: ori _size_reg_4_, _letBind_2_, 0
|
||||
bgez $4, _safe_lab_5_
|
||||
# was: bgez _size_reg_4_, _safe_lab_5_
|
||||
# ori _letBind_18_,$2,0
|
||||
ori $5, $2, 0
|
||||
# was: ori _size_reg_20_, _letBind_18_, 0
|
||||
bgez $5, _safe_lab_21_
|
||||
# was: bgez _size_reg_20_, _safe_lab_21_
|
||||
ori $5, $0, 7
|
||||
# was: ori $5, $0, 7
|
||||
la $6, _Msg_IllegalArraySize_
|
||||
# was: la $6, _Msg_IllegalArraySize_
|
||||
j _RuntimeError_
|
||||
_safe_lab_5_:
|
||||
_safe_lab_21_:
|
||||
ori $6, $28, 0
|
||||
# was: ori _letBind_3_, $28, 0
|
||||
sll $2, $4, 2
|
||||
# was: sll _tmp_11_, _size_reg_4_, 2
|
||||
# was: ori _letBind_19_, $28, 0
|
||||
sll $2, $5, 2
|
||||
# was: sll _tmp_27_, _size_reg_20_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_11_, _tmp_11_, 4
|
||||
# was: addi _tmp_27_, _tmp_27_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_11_
|
||||
sw $4, 0($6)
|
||||
# was: sw _size_reg_4_, 0(_letBind_3_)
|
||||
addi $5, $6, 4
|
||||
# was: addi _addr_reg_6_, _letBind_3_, 4
|
||||
ori $2, $0, 0
|
||||
# was: ori _i_reg_7_, $0, 0
|
||||
_loop_beg_8_:
|
||||
sub $3, $2, $4
|
||||
# was: sub _tmp_reg_10_, _i_reg_7_, _size_reg_4_
|
||||
bgez $3, _loop_end_9_
|
||||
# was: bgez _tmp_reg_10_, _loop_end_9_
|
||||
sw $2, 0($5)
|
||||
# was: sw _i_reg_7_, 0(_addr_reg_6_)
|
||||
addi $5, $5, 4
|
||||
# was: addi _addr_reg_6_, _addr_reg_6_, 4
|
||||
addi $2, $2, 1
|
||||
# was: addi _i_reg_7_, _i_reg_7_, 1
|
||||
j _loop_beg_8_
|
||||
_loop_end_9_:
|
||||
# ori _arr_reg_14_,_letBind_3_,0
|
||||
# was: add $28, $28, _tmp_27_
|
||||
sw $5, 0($6)
|
||||
# was: sw _size_reg_20_, 0(_letBind_19_)
|
||||
addi $2, $6, 4
|
||||
# was: addi _addr_reg_22_, _letBind_19_, 4
|
||||
ori $4, $0, 0
|
||||
# was: ori _i_reg_23_, $0, 0
|
||||
_loop_beg_24_:
|
||||
sub $3, $4, $5
|
||||
# was: sub _tmp_reg_26_, _i_reg_23_, _size_reg_20_
|
||||
bgez $3, _loop_end_25_
|
||||
# was: bgez _tmp_reg_26_, _loop_end_25_
|
||||
sw $4, 0($2)
|
||||
# was: sw _i_reg_23_, 0(_addr_reg_22_)
|
||||
addi $2, $2, 4
|
||||
# was: addi _addr_reg_22_, _addr_reg_22_, 4
|
||||
addi $4, $4, 1
|
||||
# was: addi _i_reg_23_, _i_reg_23_, 1
|
||||
j _loop_beg_24_
|
||||
_loop_end_25_:
|
||||
# ori _arr_reg_31_,_letBind_19_,0
|
||||
lw $2, 0($6)
|
||||
# was: lw _size_reg_13_, 0(_arr_reg_14_)
|
||||
# was: lw _size_reg_30_, 0(_arr_reg_31_)
|
||||
ori $3, $28, 0
|
||||
# was: ori _letBind_12_, $28, 0
|
||||
# was: ori _arg_29_, $28, 0
|
||||
sll $4, $2, 2
|
||||
# was: sll _tmp_25_, _size_reg_13_, 2
|
||||
# was: sll _tmp_42_, _size_reg_30_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_25_, _tmp_25_, 4
|
||||
# was: addi _tmp_42_, _tmp_42_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_25_
|
||||
# was: add $28, $28, _tmp_42_
|
||||
sw $2, 0($3)
|
||||
# was: sw _size_reg_13_, 0(_letBind_12_)
|
||||
# was: sw _size_reg_30_, 0(_arg_29_)
|
||||
addi $4, $3, 4
|
||||
# was: addi _addr_reg_17_, _letBind_12_, 4
|
||||
# was: addi _addr_reg_34_, _arg_29_, 4
|
||||
ori $5, $0, 0
|
||||
# was: ori _i_reg_18_, $0, 0
|
||||
# was: ori _i_reg_35_, $0, 0
|
||||
addi $6, $6, 4
|
||||
# was: addi _elem_reg_15_, _arr_reg_14_, 4
|
||||
_loop_beg_19_:
|
||||
# was: addi _elem_reg_32_, _arr_reg_31_, 4
|
||||
_loop_beg_36_:
|
||||
sub $7, $5, $2
|
||||
# was: sub _tmp_reg_21_, _i_reg_18_, _size_reg_13_
|
||||
bgez $7, _loop_end_20_
|
||||
# was: bgez _tmp_reg_21_, _loop_end_20_
|
||||
# was: sub _tmp_reg_38_, _i_reg_35_, _size_reg_30_
|
||||
bgez $7, _loop_end_37_
|
||||
# was: bgez _tmp_reg_38_, _loop_end_37_
|
||||
lw $7, 0($6)
|
||||
# was: lw _res_reg_16_, 0(_elem_reg_15_)
|
||||
# was: lw _res_reg_33_, 0(_elem_reg_32_)
|
||||
addi $6, $6, 4
|
||||
# was: addi _elem_reg_15_, _elem_reg_15_, 4
|
||||
ori $8, $7, 0
|
||||
# was: ori _plus_L_23_, _res_reg_16_, 0
|
||||
ori $7, $0, 2
|
||||
# was: ori _plus_R_24_, $0, 2
|
||||
add $7, $8, $7
|
||||
# was: add _fun_arg_res_22_, _plus_L_23_, _plus_R_24_
|
||||
# ori _res_reg_16_,_fun_arg_res_22_,0
|
||||
# was: addi _elem_reg_32_, _elem_reg_32_, 4
|
||||
# ori _plus_L_40_,_res_reg_33_,0
|
||||
ori $8, $0, 2
|
||||
# was: ori _plus_R_41_, $0, 2
|
||||
add $7, $7, $8
|
||||
# was: add _fun_arg_res_39_, _plus_L_40_, _plus_R_41_
|
||||
# ori _res_reg_33_,_fun_arg_res_39_,0
|
||||
sw $7, 0($4)
|
||||
# was: sw _res_reg_16_, 0(_addr_reg_17_)
|
||||
# was: sw _res_reg_33_, 0(_addr_reg_34_)
|
||||
addi $4, $4, 4
|
||||
# was: addi _addr_reg_17_, _addr_reg_17_, 4
|
||||
# was: addi _addr_reg_34_, _addr_reg_34_, 4
|
||||
addi $5, $5, 1
|
||||
# was: addi _i_reg_18_, _i_reg_18_, 1
|
||||
j _loop_beg_19_
|
||||
_loop_end_20_:
|
||||
# ori _arr_reg_28_,_letBind_12_,0
|
||||
lw $17, 0($3)
|
||||
# was: lw _size_reg_27_, 0(_arr_reg_28_)
|
||||
ori $16, $28, 0
|
||||
# was: ori _letBind_26_, $28, 0
|
||||
sll $2, $17, 2
|
||||
# was: sll _tmp_38_, _size_reg_27_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_38_, _tmp_38_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_38_
|
||||
sw $17, 0($16)
|
||||
# was: sw _size_reg_27_, 0(_letBind_26_)
|
||||
addi $18, $16, 4
|
||||
# was: addi _addr_reg_31_, _letBind_26_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_32_, $0, 0
|
||||
addi $20, $3, 4
|
||||
# was: addi _elem_reg_29_, _arr_reg_28_, 4
|
||||
_loop_beg_33_:
|
||||
sub $2, $19, $17
|
||||
# was: sub _tmp_reg_35_, _i_reg_32_, _size_reg_27_
|
||||
bgez $2, _loop_end_34_
|
||||
# was: bgez _tmp_reg_35_, _loop_end_34_
|
||||
lw $21, 0($20)
|
||||
# was: lw _res_reg_30_, 0(_elem_reg_29_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_29_, _elem_reg_29_, 4
|
||||
# ori _tmp_37_,_res_reg_30_,0
|
||||
# ori _fun_arg_res_36_,_tmp_37_,0
|
||||
ori $2, $21, 0
|
||||
# was: ori $2, _fun_arg_res_36_, 0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
# ori _res_reg_30_,_fun_arg_res_36_,0
|
||||
sw $21, 0($18)
|
||||
# was: sw _res_reg_30_, 0(_addr_reg_31_)
|
||||
addi $18, $18, 4
|
||||
# was: addi _addr_reg_31_, _addr_reg_31_, 4
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_32_, _i_reg_32_, 1
|
||||
j _loop_beg_33_
|
||||
_loop_end_34_:
|
||||
la $2, _a__str__41_
|
||||
# was: la _tmp_40_, _a__str__41_
|
||||
# _a__str__41_: string "\n"
|
||||
# ori _letBind_39_,_tmp_40_,0
|
||||
# ori $2,_tmp_40_,0
|
||||
# was: addi _i_reg_35_, _i_reg_35_, 1
|
||||
j _loop_beg_36_
|
||||
_loop_end_37_:
|
||||
ori $2, $3, 0
|
||||
# was: ori $2, _arg_29_, 0
|
||||
jal write_int_arr
|
||||
# was: jal write_int_arr, $2
|
||||
ori $16, $2, 0
|
||||
# was: ori _letBind_28_, $2, 0
|
||||
la $2, _a__str__45_
|
||||
# was: la _tmp_44_, _a__str__45_
|
||||
# _a__str__45_: string "\n"
|
||||
# ori _letBind_43_,_tmp_44_,0
|
||||
# ori $2,_tmp_44_,0
|
||||
jal putstring
|
||||
# was: jal putstring, $2
|
||||
# ori _arr_reg_43_,_letBind_26_,0
|
||||
# ori _arr_reg_47_,_letBind_28_,0
|
||||
lw $2, 0($16)
|
||||
# was: lw _size_reg_44_, 0(_arr_reg_43_)
|
||||
ori $5, $0, 0
|
||||
# was: ori _letBind_42_, $0, 0
|
||||
# was: lw _size_reg_48_, 0(_arr_reg_47_)
|
||||
ori $4, $0, 0
|
||||
# was: ori _arg_46_, $0, 0
|
||||
addi $16, $16, 4
|
||||
# was: addi _arr_reg_43_, _arr_reg_43_, 4
|
||||
# was: addi _arr_reg_47_, _arr_reg_47_, 4
|
||||
ori $3, $0, 0
|
||||
# was: ori _ind_var_45_, $0, 0
|
||||
_loop_beg_47_:
|
||||
sub $4, $3, $2
|
||||
# was: sub _tmp_reg_46_, _ind_var_45_, _size_reg_44_
|
||||
bgez $4, _loop_end_48_
|
||||
# was: bgez _tmp_reg_46_, _loop_end_48_
|
||||
lw $4, 0($16)
|
||||
# was: lw _tmp_reg_46_, 0(_arr_reg_43_)
|
||||
# was: ori _ind_var_49_, $0, 0
|
||||
_loop_beg_51_:
|
||||
sub $5, $3, $2
|
||||
# was: sub _tmp_reg_50_, _ind_var_49_, _size_reg_48_
|
||||
bgez $5, _loop_end_52_
|
||||
# was: bgez _tmp_reg_50_, _loop_end_52_
|
||||
lw $5, 0($16)
|
||||
# was: lw _tmp_reg_50_, 0(_arr_reg_47_)
|
||||
addi $16, $16, 4
|
||||
# was: addi _arr_reg_43_, _arr_reg_43_, 4
|
||||
# ori _plus_L_50_,_letBind_42_,0
|
||||
# ori _plus_R_51_,_tmp_reg_46_,0
|
||||
add $5, $5, $4
|
||||
# was: add _fun_arg_res_49_, _plus_L_50_, _plus_R_51_
|
||||
# ori _letBind_42_,_fun_arg_res_49_,0
|
||||
# was: addi _arr_reg_47_, _arr_reg_47_, 4
|
||||
# ori _plus_L_54_,_arg_46_,0
|
||||
# ori _plus_R_55_,_tmp_reg_50_,0
|
||||
add $4, $4, $5
|
||||
# was: add _fun_arg_res_53_, _plus_L_54_, _plus_R_55_
|
||||
# ori _arg_46_,_fun_arg_res_53_,0
|
||||
addi $3, $3, 1
|
||||
# was: addi _ind_var_45_, _ind_var_45_, 1
|
||||
j _loop_beg_47_
|
||||
_loop_end_48_:
|
||||
# ori _tmp_52_,_letBind_42_,0
|
||||
ori $16, $5, 0
|
||||
# was: ori _mainres_1_, _tmp_52_, 0
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _mainres_1_, 0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _mainres_1_, 0
|
||||
addi $29, $29, 32
|
||||
lw $21, -28($29)
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
lw $18, -16($29)
|
||||
lw $17, -12($29)
|
||||
# was: addi _ind_var_49_, _ind_var_49_, 1
|
||||
j _loop_beg_51_
|
||||
_loop_end_52_:
|
||||
ori $2, $4, 0
|
||||
# was: ori $2, _arg_46_, 0
|
||||
jal write_int
|
||||
# was: jal write_int, $2
|
||||
# ori _mainres_17_,$2,0
|
||||
# ori $2,_mainres_17_,0
|
||||
addi $29, $29, 12
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
@@ -323,7 +352,7 @@ _Msg_DivZero_:
|
||||
.asciiz "division by zero"
|
||||
# String Literals
|
||||
.align 2
|
||||
_a__str__41_:
|
||||
_a__str__45_:
|
||||
.space 4
|
||||
.asciiz "\n"
|
||||
.align 2
|
||||
|
||||
+279
-222
@@ -1,24 +1,24 @@
|
||||
.text 0x00400000
|
||||
.globl main
|
||||
la $28, _heap_
|
||||
la $4, _Maxacha_72_
|
||||
# was: la _Maxacha_72__addr, _Maxacha_72_
|
||||
la $4, _Maxacha_82_
|
||||
# was: la _Maxacha_82__addr, _Maxacha_82_
|
||||
ori $3, $0, 10
|
||||
# was: ori _Maxacha_72__init, $0, 10
|
||||
# was: ori _Maxacha_82__init, $0, 10
|
||||
sw $3, 0($4)
|
||||
# was: sw _Maxacha_72__init, 0(_Maxacha_72__addr)
|
||||
la $4, _a__str__69_
|
||||
# was: la _a__str__69__addr, _a__str__69_
|
||||
# was: sw _Maxacha_82__init, 0(_Maxacha_82__addr)
|
||||
la $4, _a__str__79_
|
||||
# was: la _a__str__79__addr, _a__str__79_
|
||||
ori $3, $0, 1
|
||||
# was: ori _a__str__69__init, $0, 1
|
||||
# was: ori _a__str__79__init, $0, 1
|
||||
sw $3, 0($4)
|
||||
# was: sw _a__str__69__init, 0(_a__str__69__addr)
|
||||
la $4, _Sumaa___64_
|
||||
# was: la _Sumaa___64__addr, _Sumaa___64_
|
||||
# was: sw _a__str__79__init, 0(_a__str__79__addr)
|
||||
la $4, _Sumaa___74_
|
||||
# was: la _Sumaa___74__addr, _Sumaa___74_
|
||||
ori $3, $0, 5
|
||||
# was: ori _Sumaa___64__init, $0, 5
|
||||
# was: ori _Sumaa___74__init, $0, 5
|
||||
sw $3, 0($4)
|
||||
# was: sw _Sumaa___64__init, 0(_Sumaa___64__addr)
|
||||
# was: sw _Sumaa___74__init, 0(_Sumaa___74__addr)
|
||||
la $4, _true
|
||||
# was: la _true_addr, _true
|
||||
ori $3, $0, 4
|
||||
@@ -35,6 +35,70 @@
|
||||
_stop_:
|
||||
ori $2, $0, 10
|
||||
syscall
|
||||
# Function plus100
|
||||
plus100:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_1_,$2,0
|
||||
# ori _plus_L_3_,_param_x_1_,0
|
||||
ori $3, $0, 100
|
||||
# was: ori _plus_R_4_, $0, 100
|
||||
add $2, $2, $3
|
||||
# was: add _plus100res_2_, _plus_L_3_, _plus_R_4_
|
||||
# ori $2,_plus100res_2_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function read_chr
|
||||
read_chr:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_i_5_,$2,0
|
||||
jal getchar
|
||||
# was: jal getchar, $2
|
||||
# ori _read_chrres_6_,$2,0
|
||||
# ori $2,_read_chrres_6_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function plus
|
||||
plus:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_7_,$2,0
|
||||
# ori _param_y_8_,$3,0
|
||||
# ori _plus_L_10_,_param_x_7_,0
|
||||
# ori _plus_R_11_,_param_y_8_,0
|
||||
add $2, $2, $3
|
||||
# was: add _plusres_9_, _plus_L_10_, _plus_R_11_
|
||||
# ori $2,_plusres_9_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function max_chr
|
||||
max_chr:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_a_12_,$2,0
|
||||
# ori _param_b_13_,$3,0
|
||||
# ori _lt_L_19_,_param_a_12_,0
|
||||
# ori _lt_R_20_,_param_b_13_,0
|
||||
slt $4, $2, $3
|
||||
# was: slt _cond_18_, _lt_L_19_, _lt_R_20_
|
||||
bne $4, $0, _then_15_
|
||||
# was: bne _cond_18_, $0, _then_15_
|
||||
j _else_16_
|
||||
_then_15_:
|
||||
ori $2, $3, 0
|
||||
# was: ori _max_chrres_14_, _param_b_13_, 0
|
||||
j _endif_17_
|
||||
_else_16_:
|
||||
# ori _max_chrres_14_,_param_a_12_,0
|
||||
_endif_17_:
|
||||
# ori $2,_max_chrres_14_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function main
|
||||
main:
|
||||
sw $31, -4($29)
|
||||
@@ -47,234 +111,227 @@ main:
|
||||
addi $29, $29, -32
|
||||
jal getint
|
||||
# was: jal getint, $2
|
||||
# ori _letBind_2_,$2,0
|
||||
ori $5, $2, 0
|
||||
# was: ori _size_reg_4_, _letBind_2_, 0
|
||||
bgez $5, _safe_lab_5_
|
||||
# was: bgez _size_reg_4_, _safe_lab_5_
|
||||
# ori _letBind_22_,$2,0
|
||||
# ori _size_reg_24_,_letBind_22_,0
|
||||
bgez $2, _safe_lab_25_
|
||||
# was: bgez _size_reg_24_, _safe_lab_25_
|
||||
ori $5, $0, 10
|
||||
# was: ori $5, $0, 10
|
||||
la $6, _Msg_IllegalArraySize_
|
||||
# was: la $6, _Msg_IllegalArraySize_
|
||||
j _RuntimeError_
|
||||
_safe_lab_5_:
|
||||
ori $3, $28, 0
|
||||
# was: ori _letBind_3_, $28, 0
|
||||
sll $4, $5, 2
|
||||
# was: sll _tmp_11_, _size_reg_4_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_11_, _tmp_11_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_11_
|
||||
sw $5, 0($3)
|
||||
# was: sw _size_reg_4_, 0(_letBind_3_)
|
||||
addi $7, $3, 4
|
||||
# was: addi _addr_reg_6_, _letBind_3_, 4
|
||||
ori $4, $0, 0
|
||||
# was: ori _i_reg_7_, $0, 0
|
||||
_loop_beg_8_:
|
||||
sub $6, $4, $5
|
||||
# was: sub _tmp_reg_10_, _i_reg_7_, _size_reg_4_
|
||||
bgez $6, _loop_end_9_
|
||||
# was: bgez _tmp_reg_10_, _loop_end_9_
|
||||
sw $4, 0($7)
|
||||
# was: sw _i_reg_7_, 0(_addr_reg_6_)
|
||||
addi $7, $7, 4
|
||||
# was: addi _addr_reg_6_, _addr_reg_6_, 4
|
||||
addi $4, $4, 1
|
||||
# was: addi _i_reg_7_, _i_reg_7_, 1
|
||||
j _loop_beg_8_
|
||||
_loop_end_9_:
|
||||
# ori _arr_reg_14_,_letBind_3_,0
|
||||
lw $5, 0($3)
|
||||
# was: lw _size_reg_13_, 0(_arr_reg_14_)
|
||||
ori $4, $28, 0
|
||||
# was: ori _letBind_12_, $28, 0
|
||||
sll $6, $5, 2
|
||||
# was: sll _tmp_25_, _size_reg_13_, 2
|
||||
addi $6, $6, 4
|
||||
# was: addi _tmp_25_, _tmp_25_, 4
|
||||
add $28, $28, $6
|
||||
# was: add $28, $28, _tmp_25_
|
||||
sw $5, 0($4)
|
||||
# was: sw _size_reg_13_, 0(_letBind_12_)
|
||||
addi $7, $4, 4
|
||||
# was: addi _addr_reg_17_, _letBind_12_, 4
|
||||
ori $6, $0, 0
|
||||
# was: ori _i_reg_18_, $0, 0
|
||||
addi $8, $3, 4
|
||||
# was: addi _elem_reg_15_, _arr_reg_14_, 4
|
||||
_loop_beg_19_:
|
||||
sub $9, $6, $5
|
||||
# was: sub _tmp_reg_21_, _i_reg_18_, _size_reg_13_
|
||||
bgez $9, _loop_end_20_
|
||||
# was: bgez _tmp_reg_21_, _loop_end_20_
|
||||
lw $9, 0($8)
|
||||
# was: lw _res_reg_16_, 0(_elem_reg_15_)
|
||||
addi $8, $8, 4
|
||||
# was: addi _elem_reg_15_, _elem_reg_15_, 4
|
||||
# ori _plus_L_23_,_res_reg_16_,0
|
||||
ori $10, $0, 100
|
||||
# was: ori _plus_R_24_, $0, 100
|
||||
add $9, $9, $10
|
||||
# was: add _fun_arg_res_22_, _plus_L_23_, _plus_R_24_
|
||||
# ori _res_reg_16_,_fun_arg_res_22_,0
|
||||
sw $9, 0($7)
|
||||
# was: sw _res_reg_16_, 0(_addr_reg_17_)
|
||||
addi $7, $7, 4
|
||||
# was: addi _addr_reg_17_, _addr_reg_17_, 4
|
||||
addi $6, $6, 1
|
||||
# was: addi _i_reg_18_, _i_reg_18_, 1
|
||||
j _loop_beg_19_
|
||||
_loop_end_20_:
|
||||
ori $7, $4, 0
|
||||
# was: ori _arr_reg_27_, _letBind_12_, 0
|
||||
lw $5, 0($7)
|
||||
# was: lw _size_reg_28_, 0(_arr_reg_27_)
|
||||
ori $17, $0, 0
|
||||
# was: ori _letBind_26_, $0, 0
|
||||
addi $7, $7, 4
|
||||
# was: addi _arr_reg_27_, _arr_reg_27_, 4
|
||||
ori $6, $0, 0
|
||||
# was: ori _ind_var_29_, $0, 0
|
||||
_loop_beg_31_:
|
||||
sub $4, $6, $5
|
||||
# was: sub _tmp_reg_30_, _ind_var_29_, _size_reg_28_
|
||||
bgez $4, _loop_end_32_
|
||||
# was: bgez _tmp_reg_30_, _loop_end_32_
|
||||
lw $4, 0($7)
|
||||
# was: lw _tmp_reg_30_, 0(_arr_reg_27_)
|
||||
addi $7, $7, 4
|
||||
# was: addi _arr_reg_27_, _arr_reg_27_, 4
|
||||
# ori _plus_L_34_,_letBind_26_,0
|
||||
# ori _plus_R_35_,_tmp_reg_30_,0
|
||||
add $17, $17, $4
|
||||
# was: add _fun_arg_res_33_, _plus_L_34_, _plus_R_35_
|
||||
# ori _letBind_26_,_fun_arg_res_33_,0
|
||||
addi $6, $6, 1
|
||||
# was: addi _ind_var_29_, _ind_var_29_, 1
|
||||
j _loop_beg_31_
|
||||
_loop_end_32_:
|
||||
# ori _arr_reg_38_,_letBind_3_,0
|
||||
lw $18, 0($3)
|
||||
# was: lw _size_reg_37_, 0(_arr_reg_38_)
|
||||
_safe_lab_25_:
|
||||
ori $16, $28, 0
|
||||
# was: ori _letBind_36_, $28, 0
|
||||
addi $4, $18, 3
|
||||
# was: addi _tmp_47_, _size_reg_37_, 3
|
||||
sra $4, $4, 2
|
||||
# was: sra _tmp_47_, _tmp_47_, 2
|
||||
sll $4, $4, 2
|
||||
# was: sll _tmp_47_, _tmp_47_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_47_, _tmp_47_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_47_
|
||||
sw $18, 0($16)
|
||||
# was: sw _size_reg_37_, 0(_letBind_36_)
|
||||
addi $20, $16, 4
|
||||
# was: addi _addr_reg_41_, _letBind_36_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_42_, $0, 0
|
||||
addi $21, $3, 4
|
||||
# was: addi _elem_reg_39_, _arr_reg_38_, 4
|
||||
_loop_beg_43_:
|
||||
sub $3, $19, $18
|
||||
# was: sub _tmp_reg_45_, _i_reg_42_, _size_reg_37_
|
||||
bgez $3, _loop_end_44_
|
||||
# was: bgez _tmp_reg_45_, _loop_end_44_
|
||||
lw $3, 0($21)
|
||||
# was: lw _res_reg_40_, 0(_elem_reg_39_)
|
||||
addi $21, $21, 4
|
||||
# was: addi _elem_reg_39_, _elem_reg_39_, 4
|
||||
jal getchar
|
||||
# was: jal getchar, $2
|
||||
# ori _fun_arg_res_46_,$2,0
|
||||
ori $3, $2, 0
|
||||
# was: ori _res_reg_40_, _fun_arg_res_46_, 0
|
||||
sb $3, 0($20)
|
||||
# was: sb _res_reg_40_, 0(_addr_reg_41_)
|
||||
addi $20, $20, 1
|
||||
# was: addi _addr_reg_41_, _addr_reg_41_, 1
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_42_, _i_reg_42_, 1
|
||||
j _loop_beg_43_
|
||||
_loop_end_44_:
|
||||
ori $2, $16, 0
|
||||
# was: ori _arr_reg_49_, _letBind_36_, 0
|
||||
lw $3, 0($2)
|
||||
# was: lw _size_reg_50_, 0(_arr_reg_49_)
|
||||
ori $18, $0, 97
|
||||
# was: ori _letBind_48_, $0, 97
|
||||
addi $2, $2, 4
|
||||
# was: addi _arr_reg_49_, _arr_reg_49_, 4
|
||||
# was: ori _letBind_23_, $28, 0
|
||||
sll $3, $2, 2
|
||||
# was: sll _tmp_31_, _size_reg_24_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_31_, _tmp_31_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_31_
|
||||
sw $2, 0($16)
|
||||
# was: sw _size_reg_24_, 0(_letBind_23_)
|
||||
addi $3, $16, 4
|
||||
# was: addi _addr_reg_26_, _letBind_23_, 4
|
||||
ori $4, $0, 0
|
||||
# was: ori _ind_var_51_, $0, 0
|
||||
_loop_beg_53_:
|
||||
sub $5, $4, $3
|
||||
# was: sub _tmp_reg_52_, _ind_var_51_, _size_reg_50_
|
||||
bgez $5, _loop_end_54_
|
||||
# was: bgez _tmp_reg_52_, _loop_end_54_
|
||||
lb $5, 0($2)
|
||||
# was: lb _tmp_reg_52_, 0(_arr_reg_49_)
|
||||
addi $2, $2, 1
|
||||
# was: addi _arr_reg_49_, _arr_reg_49_, 1
|
||||
# ori _lt_L_60_,_letBind_48_,0
|
||||
# ori _lt_R_61_,_tmp_reg_52_,0
|
||||
slt $6, $18, $5
|
||||
# was: slt _cond_59_, _lt_L_60_, _lt_R_61_
|
||||
bne $6, $0, _then_56_
|
||||
# was: bne _cond_59_, $0, _then_56_
|
||||
j _else_57_
|
||||
_then_56_:
|
||||
# ori _fun_arg_res_55_,_tmp_reg_52_,0
|
||||
j _endif_58_
|
||||
_else_57_:
|
||||
ori $5, $18, 0
|
||||
# was: ori _fun_arg_res_55_, _letBind_48_, 0
|
||||
_endif_58_:
|
||||
ori $18, $5, 0
|
||||
# was: ori _letBind_48_, _fun_arg_res_55_, 0
|
||||
# was: ori _i_reg_27_, $0, 0
|
||||
_loop_beg_28_:
|
||||
sub $5, $4, $2
|
||||
# was: sub _tmp_reg_30_, _i_reg_27_, _size_reg_24_
|
||||
bgez $5, _loop_end_29_
|
||||
# was: bgez _tmp_reg_30_, _loop_end_29_
|
||||
sw $4, 0($3)
|
||||
# was: sw _i_reg_27_, 0(_addr_reg_26_)
|
||||
addi $3, $3, 4
|
||||
# was: addi _addr_reg_26_, _addr_reg_26_, 4
|
||||
addi $4, $4, 1
|
||||
# was: addi _ind_var_51_, _ind_var_51_, 1
|
||||
j _loop_beg_53_
|
||||
_loop_end_54_:
|
||||
la $2, _Sumaa___64_
|
||||
# was: la _tmp_63_, _Sumaa___64_
|
||||
# _Sumaa___64_: string "Sum: "
|
||||
# ori _letBind_62_,_tmp_63_,0
|
||||
# ori $2,_tmp_63_,0
|
||||
# was: addi _i_reg_27_, _i_reg_27_, 1
|
||||
j _loop_beg_28_
|
||||
_loop_end_29_:
|
||||
# ori _arr_reg_34_,_letBind_23_,0
|
||||
lw $17, 0($16)
|
||||
# was: lw _size_reg_33_, 0(_arr_reg_34_)
|
||||
ori $20, $28, 0
|
||||
# was: ori _letBind_32_, $28, 0
|
||||
sll $2, $17, 2
|
||||
# was: sll _tmp_43_, _size_reg_33_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_43_, _tmp_43_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_43_
|
||||
sw $17, 0($20)
|
||||
# was: sw _size_reg_33_, 0(_letBind_32_)
|
||||
addi $18, $20, 4
|
||||
# was: addi _addr_reg_37_, _letBind_32_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_38_, $0, 0
|
||||
addi $21, $16, 4
|
||||
# was: addi _elem_reg_35_, _arr_reg_34_, 4
|
||||
_loop_beg_39_:
|
||||
sub $2, $19, $17
|
||||
# was: sub _tmp_reg_41_, _i_reg_38_, _size_reg_33_
|
||||
bgez $2, _loop_end_40_
|
||||
# was: bgez _tmp_reg_41_, _loop_end_40_
|
||||
lw $2, 0($21)
|
||||
# was: lw _res_reg_36_, 0(_elem_reg_35_)
|
||||
addi $21, $21, 4
|
||||
# was: addi _elem_reg_35_, _elem_reg_35_, 4
|
||||
# ori $2,_res_reg_36_,0
|
||||
jal plus100
|
||||
# was: jal plus100, $2
|
||||
# ori _tmp_reg_42_,$2,0
|
||||
# ori _res_reg_36_,_tmp_reg_42_,0
|
||||
sw $2, 0($18)
|
||||
# was: sw _res_reg_36_, 0(_addr_reg_37_)
|
||||
addi $18, $18, 4
|
||||
# was: addi _addr_reg_37_, _addr_reg_37_, 4
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_38_, _i_reg_38_, 1
|
||||
j _loop_beg_39_
|
||||
_loop_end_40_:
|
||||
# ori _arr_reg_45_,_letBind_32_,0
|
||||
lw $18, 0($20)
|
||||
# was: lw _size_reg_46_, 0(_arr_reg_45_)
|
||||
ori $17, $0, 0
|
||||
# was: ori _letBind_44_, $0, 0
|
||||
addi $20, $20, 4
|
||||
# was: addi _arr_reg_45_, _arr_reg_45_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _ind_var_47_, $0, 0
|
||||
_loop_beg_49_:
|
||||
sub $3, $19, $18
|
||||
# was: sub _tmp_reg_48_, _ind_var_47_, _size_reg_46_
|
||||
bgez $3, _loop_end_50_
|
||||
# was: bgez _tmp_reg_48_, _loop_end_50_
|
||||
lw $3, 0($20)
|
||||
# was: lw _tmp_reg_48_, 0(_arr_reg_45_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _arr_reg_45_, _arr_reg_45_, 4
|
||||
ori $2, $17, 0
|
||||
# was: ori $2, _letBind_44_, 0
|
||||
# ori $3,_tmp_reg_48_,0
|
||||
jal plus
|
||||
# was: jal plus, $2 $3
|
||||
# ori _tmp_reg_51_,$2,0
|
||||
ori $17, $2, 0
|
||||
# was: ori _letBind_44_, _tmp_reg_51_, 0
|
||||
addi $19, $19, 1
|
||||
# was: addi _ind_var_47_, _ind_var_47_, 1
|
||||
j _loop_beg_49_
|
||||
_loop_end_50_:
|
||||
ori $2, $16, 0
|
||||
# was: ori _arr_reg_54_, _letBind_23_, 0
|
||||
lw $18, 0($2)
|
||||
# was: lw _size_reg_53_, 0(_arr_reg_54_)
|
||||
ori $16, $28, 0
|
||||
# was: ori _letBind_52_, $28, 0
|
||||
addi $3, $18, 3
|
||||
# was: addi _tmp_63_, _size_reg_53_, 3
|
||||
sra $3, $3, 2
|
||||
# was: sra _tmp_63_, _tmp_63_, 2
|
||||
sll $3, $3, 2
|
||||
# was: sll _tmp_63_, _tmp_63_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_63_, _tmp_63_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_63_
|
||||
sw $18, 0($16)
|
||||
# was: sw _size_reg_53_, 0(_letBind_52_)
|
||||
addi $20, $16, 4
|
||||
# was: addi _addr_reg_57_, _letBind_52_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_58_, $0, 0
|
||||
addi $21, $2, 4
|
||||
# was: addi _elem_reg_55_, _arr_reg_54_, 4
|
||||
_loop_beg_59_:
|
||||
sub $2, $19, $18
|
||||
# was: sub _tmp_reg_61_, _i_reg_58_, _size_reg_53_
|
||||
bgez $2, _loop_end_60_
|
||||
# was: bgez _tmp_reg_61_, _loop_end_60_
|
||||
lw $2, 0($21)
|
||||
# was: lw _res_reg_56_, 0(_elem_reg_55_)
|
||||
addi $21, $21, 4
|
||||
# was: addi _elem_reg_55_, _elem_reg_55_, 4
|
||||
# ori $2,_res_reg_56_,0
|
||||
jal read_chr
|
||||
# was: jal read_chr, $2
|
||||
# ori _tmp_reg_62_,$2,0
|
||||
# ori _res_reg_56_,_tmp_reg_62_,0
|
||||
sb $2, 0($20)
|
||||
# was: sb _res_reg_56_, 0(_addr_reg_57_)
|
||||
addi $20, $20, 1
|
||||
# was: addi _addr_reg_57_, _addr_reg_57_, 1
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_58_, _i_reg_58_, 1
|
||||
j _loop_beg_59_
|
||||
_loop_end_60_:
|
||||
ori $20, $16, 0
|
||||
# was: ori _arr_reg_65_, _letBind_52_, 0
|
||||
lw $19, 0($20)
|
||||
# was: lw _size_reg_66_, 0(_arr_reg_65_)
|
||||
ori $18, $0, 97
|
||||
# was: ori _letBind_64_, $0, 97
|
||||
addi $20, $20, 4
|
||||
# was: addi _arr_reg_65_, _arr_reg_65_, 4
|
||||
ori $21, $0, 0
|
||||
# was: ori _ind_var_67_, $0, 0
|
||||
_loop_beg_69_:
|
||||
sub $3, $21, $19
|
||||
# was: sub _tmp_reg_68_, _ind_var_67_, _size_reg_66_
|
||||
bgez $3, _loop_end_70_
|
||||
# was: bgez _tmp_reg_68_, _loop_end_70_
|
||||
lb $3, 0($20)
|
||||
# was: lb _tmp_reg_68_, 0(_arr_reg_65_)
|
||||
addi $20, $20, 1
|
||||
# was: addi _arr_reg_65_, _arr_reg_65_, 1
|
||||
ori $2, $18, 0
|
||||
# was: ori $2, _letBind_64_, 0
|
||||
# ori $3,_tmp_reg_68_,0
|
||||
jal max_chr
|
||||
# was: jal max_chr, $2 $3
|
||||
# ori _tmp_reg_71_,$2,0
|
||||
ori $18, $2, 0
|
||||
# was: ori _letBind_64_, _tmp_reg_71_, 0
|
||||
addi $21, $21, 1
|
||||
# was: addi _ind_var_67_, _ind_var_67_, 1
|
||||
j _loop_beg_69_
|
||||
_loop_end_70_:
|
||||
la $2, _Sumaa___74_
|
||||
# was: la _tmp_73_, _Sumaa___74_
|
||||
# _Sumaa___74_: string "Sum: "
|
||||
# ori _letBind_72_,_tmp_73_,0
|
||||
# ori $2,_tmp_73_,0
|
||||
jal putstring
|
||||
# was: jal putstring, $2
|
||||
# ori _tmp_66_,_letBind_26_,0
|
||||
ori $2, $17, 0
|
||||
# was: ori _letBind_65_, _tmp_66_, 0
|
||||
# ori $2,_letBind_65_,0
|
||||
# was: ori _tmp_76_, _letBind_44_, 0
|
||||
# ori _letBind_75_,_tmp_76_,0
|
||||
# ori $2,_letBind_75_,0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
la $2, _a__str__69_
|
||||
# was: la _tmp_68_, _a__str__69_
|
||||
# _a__str__69_: string "\n"
|
||||
# ori _letBind_67_,_tmp_68_,0
|
||||
# ori $2,_tmp_68_,0
|
||||
la $2, _a__str__79_
|
||||
# was: la _tmp_78_, _a__str__79_
|
||||
# _a__str__79_: string "\n"
|
||||
# ori _letBind_77_,_tmp_78_,0
|
||||
# ori $2,_tmp_78_,0
|
||||
jal putstring
|
||||
# was: jal putstring, $2
|
||||
la $2, _Maxacha_72_
|
||||
# was: la _tmp_71_, _Maxacha_72_
|
||||
# _Maxacha_72_: string "Max char: "
|
||||
# ori _letBind_70_,_tmp_71_,0
|
||||
# ori $2,_tmp_71_,0
|
||||
la $2, _Maxacha_82_
|
||||
# was: la _tmp_81_, _Maxacha_82_
|
||||
# _Maxacha_82_: string "Max char: "
|
||||
# ori _letBind_80_,_tmp_81_,0
|
||||
# ori $2,_tmp_81_,0
|
||||
jal putstring
|
||||
# was: jal putstring, $2
|
||||
ori $2, $18, 0
|
||||
# was: ori _tmp_74_, _letBind_48_, 0
|
||||
# ori _letBind_73_,_tmp_74_,0
|
||||
# ori $2,_letBind_73_,0
|
||||
# was: ori _tmp_84_, _letBind_64_, 0
|
||||
# ori _letBind_83_,_tmp_84_,0
|
||||
# ori $2,_letBind_83_,0
|
||||
jal putchar
|
||||
# was: jal putchar, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori _mainres_1_, _letBind_36_, 0
|
||||
# ori $2,_mainres_1_,0
|
||||
# was: ori _mainres_21_, _letBind_52_, 0
|
||||
# ori $2,_mainres_21_,0
|
||||
addi $29, $29, 32
|
||||
lw $21, -28($29)
|
||||
lw $20, -24($29)
|
||||
@@ -396,15 +453,15 @@ _Msg_DivZero_:
|
||||
.asciiz "division by zero"
|
||||
# String Literals
|
||||
.align 2
|
||||
_Maxacha_72_:
|
||||
_Maxacha_82_:
|
||||
.space 4
|
||||
.asciiz "Max char: "
|
||||
.align 2
|
||||
_a__str__69_:
|
||||
_a__str__79_:
|
||||
.space 4
|
||||
.asciiz "\n"
|
||||
.align 2
|
||||
_Sumaa___64_:
|
||||
_Sumaa___74_:
|
||||
.space 4
|
||||
.asciiz "Sum: "
|
||||
.align 2
|
||||
|
||||
+243
-194
@@ -17,6 +17,133 @@
|
||||
_stop_:
|
||||
ori $2, $0, 10
|
||||
syscall
|
||||
# Function read_char
|
||||
read_char:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_i_1_,$2,0
|
||||
jal getchar
|
||||
# was: jal getchar, $2
|
||||
# ori _read_charres_2_,$2,0
|
||||
# ori $2,_read_charres_2_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function read_string
|
||||
read_string:
|
||||
sw $31, -4($29)
|
||||
sw $20, -24($29)
|
||||
sw $19, -20($29)
|
||||
sw $18, -16($29)
|
||||
sw $17, -12($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -28
|
||||
# ori _param_n_3_,$2,0
|
||||
ori $3, $2, 0
|
||||
# was: ori _size_reg_9_, _param_n_3_, 0
|
||||
bgez $3, _safe_lab_10_
|
||||
# was: bgez _size_reg_9_, _safe_lab_10_
|
||||
ori $5, $0, 3
|
||||
# was: ori $5, $0, 3
|
||||
la $6, _Msg_IllegalArraySize_
|
||||
# was: la $6, _Msg_IllegalArraySize_
|
||||
j _RuntimeError_
|
||||
_safe_lab_10_:
|
||||
ori $2, $28, 0
|
||||
# was: ori _arr_reg_6_, $28, 0
|
||||
sll $4, $3, 2
|
||||
# was: sll _tmp_16_, _size_reg_9_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_16_, _tmp_16_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_16_
|
||||
sw $3, 0($2)
|
||||
# was: sw _size_reg_9_, 0(_arr_reg_6_)
|
||||
addi $6, $2, 4
|
||||
# was: addi _addr_reg_11_, _arr_reg_6_, 4
|
||||
ori $5, $0, 0
|
||||
# was: ori _i_reg_12_, $0, 0
|
||||
_loop_beg_13_:
|
||||
sub $4, $5, $3
|
||||
# was: sub _tmp_reg_15_, _i_reg_12_, _size_reg_9_
|
||||
bgez $4, _loop_end_14_
|
||||
# was: bgez _tmp_reg_15_, _loop_end_14_
|
||||
sw $5, 0($6)
|
||||
# was: sw _i_reg_12_, 0(_addr_reg_11_)
|
||||
addi $6, $6, 4
|
||||
# was: addi _addr_reg_11_, _addr_reg_11_, 4
|
||||
addi $5, $5, 1
|
||||
# was: addi _i_reg_12_, _i_reg_12_, 1
|
||||
j _loop_beg_13_
|
||||
_loop_end_14_:
|
||||
lw $16, 0($2)
|
||||
# was: lw _size_reg_5_, 0(_arr_reg_6_)
|
||||
ori $17, $28, 0
|
||||
# was: ori _read_stringres_4_, $28, 0
|
||||
addi $3, $16, 3
|
||||
# was: addi _tmp_23_, _size_reg_5_, 3
|
||||
sra $3, $3, 2
|
||||
# was: sra _tmp_23_, _tmp_23_, 2
|
||||
sll $3, $3, 2
|
||||
# was: sll _tmp_23_, _tmp_23_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_23_, _tmp_23_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_23_
|
||||
sw $16, 0($17)
|
||||
# was: sw _size_reg_5_, 0(_read_stringres_4_)
|
||||
addi $18, $17, 4
|
||||
# was: addi _addr_reg_17_, _read_stringres_4_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_18_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_7_, _arr_reg_6_, 4
|
||||
_loop_beg_19_:
|
||||
sub $2, $19, $16
|
||||
# was: sub _tmp_reg_21_, _i_reg_18_, _size_reg_5_
|
||||
bgez $2, _loop_end_20_
|
||||
# was: bgez _tmp_reg_21_, _loop_end_20_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_8_, 0(_elem_reg_7_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_7_, _elem_reg_7_, 4
|
||||
# ori $2,_res_reg_8_,0
|
||||
jal read_char
|
||||
# was: jal read_char, $2
|
||||
# ori _tmp_reg_22_,$2,0
|
||||
# ori _res_reg_8_,_tmp_reg_22_,0
|
||||
sb $2, 0($18)
|
||||
# was: sb _res_reg_8_, 0(_addr_reg_17_)
|
||||
addi $18, $18, 1
|
||||
# was: addi _addr_reg_17_, _addr_reg_17_, 1
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_18_, _i_reg_18_, 1
|
||||
j _loop_beg_19_
|
||||
_loop_end_20_:
|
||||
ori $2, $17, 0
|
||||
# was: ori $2, _read_stringres_4_, 0
|
||||
addi $29, $29, 28
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
lw $18, -16($29)
|
||||
lw $17, -12($29)
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function add_one
|
||||
add_one:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_24_,$2,0
|
||||
# ori _plus_L_26_,_param_x_24_,0
|
||||
ori $3, $0, 1
|
||||
# was: ori _plus_R_27_, $0, 1
|
||||
add $2, $2, $3
|
||||
# was: add _add_oneres_25_, _plus_L_26_, _plus_R_27_
|
||||
# ori $2,_add_oneres_25_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function main
|
||||
main:
|
||||
sw $31, -4($29)
|
||||
@@ -28,224 +155,146 @@ main:
|
||||
addi $29, $29, -28
|
||||
jal getint
|
||||
# was: jal getint, $2
|
||||
# ori _letBind_2_,$2,0
|
||||
ori $4, $2, 0
|
||||
# was: ori _size_reg_8_, _letBind_2_, 0
|
||||
bgez $4, _safe_lab_9_
|
||||
# was: bgez _size_reg_8_, _safe_lab_9_
|
||||
ori $5, $0, 3
|
||||
# was: ori $5, $0, 3
|
||||
la $6, _Msg_IllegalArraySize_
|
||||
# was: la $6, _Msg_IllegalArraySize_
|
||||
j _RuntimeError_
|
||||
_safe_lab_9_:
|
||||
ori $3, $28, 0
|
||||
# was: ori _arr_reg_5_, $28, 0
|
||||
sll $5, $4, 2
|
||||
# was: sll _tmp_15_, _size_reg_8_, 2
|
||||
addi $5, $5, 4
|
||||
# was: addi _tmp_15_, _tmp_15_, 4
|
||||
add $28, $28, $5
|
||||
# was: add $28, $28, _tmp_15_
|
||||
sw $4, 0($3)
|
||||
# was: sw _size_reg_8_, 0(_arr_reg_5_)
|
||||
addi $5, $3, 4
|
||||
# was: addi _addr_reg_10_, _arr_reg_5_, 4
|
||||
ori $7, $0, 0
|
||||
# was: ori _i_reg_11_, $0, 0
|
||||
_loop_beg_12_:
|
||||
sub $6, $7, $4
|
||||
# was: sub _tmp_reg_14_, _i_reg_11_, _size_reg_8_
|
||||
bgez $6, _loop_end_13_
|
||||
# was: bgez _tmp_reg_14_, _loop_end_13_
|
||||
sw $7, 0($5)
|
||||
# was: sw _i_reg_11_, 0(_addr_reg_10_)
|
||||
addi $5, $5, 4
|
||||
# was: addi _addr_reg_10_, _addr_reg_10_, 4
|
||||
addi $7, $7, 1
|
||||
# was: addi _i_reg_11_, _i_reg_11_, 1
|
||||
j _loop_beg_12_
|
||||
_loop_end_13_:
|
||||
lw $17, 0($3)
|
||||
# was: lw _size_reg_4_, 0(_arr_reg_5_)
|
||||
ori $18, $28, 0
|
||||
# was: ori _letBind_3_, $28, 0
|
||||
addi $4, $17, 3
|
||||
# was: addi _tmp_22_, _size_reg_4_, 3
|
||||
sra $4, $4, 2
|
||||
# was: sra _tmp_22_, _tmp_22_, 2
|
||||
sll $4, $4, 2
|
||||
# was: sll _tmp_22_, _tmp_22_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_22_, _tmp_22_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_22_
|
||||
sw $17, 0($18)
|
||||
# was: sw _size_reg_4_, 0(_letBind_3_)
|
||||
addi $16, $18, 4
|
||||
# was: addi _addr_reg_16_, _letBind_3_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_17_, $0, 0
|
||||
addi $20, $3, 4
|
||||
# was: addi _elem_reg_6_, _arr_reg_5_, 4
|
||||
_loop_beg_18_:
|
||||
sub $3, $19, $17
|
||||
# was: sub _tmp_reg_20_, _i_reg_17_, _size_reg_4_
|
||||
bgez $3, _loop_end_19_
|
||||
# was: bgez _tmp_reg_20_, _loop_end_19_
|
||||
lw $3, 0($20)
|
||||
# was: lw _res_reg_7_, 0(_elem_reg_6_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_6_, _elem_reg_6_, 4
|
||||
jal getchar
|
||||
# was: jal getchar, $2
|
||||
# ori _fun_arg_res_21_,$2,0
|
||||
ori $3, $2, 0
|
||||
# was: ori _res_reg_7_, _fun_arg_res_21_, 0
|
||||
sb $3, 0($16)
|
||||
# was: sb _res_reg_7_, 0(_addr_reg_16_)
|
||||
addi $16, $16, 1
|
||||
# was: addi _addr_reg_16_, _addr_reg_16_, 1
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_17_, _i_reg_17_, 1
|
||||
j _loop_beg_18_
|
||||
_loop_end_19_:
|
||||
ori $2, $18, 0
|
||||
# was: ori _arr_reg_33_, _letBind_3_, 0
|
||||
# ori _letBind_29_,$2,0
|
||||
# ori _arg_31_,_letBind_29_,0
|
||||
# ori $2,_arg_31_,0
|
||||
jal read_string
|
||||
# was: jal read_string, $2
|
||||
# ori _letBind_30_,$2,0
|
||||
# ori _arr_reg_42_,_letBind_30_,0
|
||||
lw $18, 0($2)
|
||||
# was: lw _size_reg_32_, 0(_arr_reg_33_)
|
||||
ori $16, $28, 0
|
||||
# was: ori _arr_reg_29_, $28, 0
|
||||
# was: lw _size_reg_41_, 0(_arr_reg_42_)
|
||||
ori $20, $28, 0
|
||||
# was: ori _arr_reg_38_, $28, 0
|
||||
sll $3, $18, 2
|
||||
# was: sll _tmp_42_, _size_reg_32_, 2
|
||||
# was: sll _tmp_51_, _size_reg_41_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_42_, _tmp_42_, 4
|
||||
# was: addi _tmp_51_, _tmp_51_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_42_
|
||||
sw $18, 0($16)
|
||||
# was: sw _size_reg_32_, 0(_arr_reg_29_)
|
||||
addi $19, $16, 4
|
||||
# was: addi _addr_reg_36_, _arr_reg_29_, 4
|
||||
ori $17, $0, 0
|
||||
# was: ori _i_reg_37_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_34_, _arr_reg_33_, 4
|
||||
_loop_beg_38_:
|
||||
sub $2, $17, $18
|
||||
# was: sub _tmp_reg_40_, _i_reg_37_, _size_reg_32_
|
||||
bgez $2, _loop_end_39_
|
||||
# was: bgez _tmp_reg_40_, _loop_end_39_
|
||||
lb $2, 0($20)
|
||||
# was: lb _res_reg_35_, 0(_elem_reg_34_)
|
||||
addi $20, $20, 1
|
||||
# was: addi _elem_reg_34_, _elem_reg_34_, 1
|
||||
# ori $2,_res_reg_35_,0
|
||||
# was: add $28, $28, _tmp_51_
|
||||
sw $18, 0($20)
|
||||
# was: sw _size_reg_41_, 0(_arr_reg_38_)
|
||||
addi $17, $20, 4
|
||||
# was: addi _addr_reg_45_, _arr_reg_38_, 4
|
||||
ori $16, $0, 0
|
||||
# was: ori _i_reg_46_, $0, 0
|
||||
addi $19, $2, 4
|
||||
# was: addi _elem_reg_43_, _arr_reg_42_, 4
|
||||
_loop_beg_47_:
|
||||
sub $2, $16, $18
|
||||
# was: sub _tmp_reg_49_, _i_reg_46_, _size_reg_41_
|
||||
bgez $2, _loop_end_48_
|
||||
# was: bgez _tmp_reg_49_, _loop_end_48_
|
||||
lb $2, 0($19)
|
||||
# was: lb _res_reg_44_, 0(_elem_reg_43_)
|
||||
addi $19, $19, 1
|
||||
# was: addi _elem_reg_43_, _elem_reg_43_, 1
|
||||
# ori $2,_res_reg_44_,0
|
||||
jal ord
|
||||
# was: jal ord, $2
|
||||
# ori _tmp_reg_41_,$2,0
|
||||
# ori _res_reg_35_,_tmp_reg_41_,0
|
||||
sw $2, 0($19)
|
||||
# was: sw _res_reg_35_, 0(_addr_reg_36_)
|
||||
addi $19, $19, 4
|
||||
# was: addi _addr_reg_36_, _addr_reg_36_, 4
|
||||
addi $17, $17, 1
|
||||
# was: addi _i_reg_37_, _i_reg_37_, 1
|
||||
j _loop_beg_38_
|
||||
_loop_end_39_:
|
||||
lw $3, 0($16)
|
||||
# was: lw _size_reg_28_, 0(_arr_reg_29_)
|
||||
ori $2, $28, 0
|
||||
# was: ori _arr_reg_25_, $28, 0
|
||||
sll $4, $3, 2
|
||||
# was: sll _tmp_51_, _size_reg_28_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_51_, _tmp_51_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_51_
|
||||
sw $3, 0($2)
|
||||
# was: sw _size_reg_28_, 0(_arr_reg_25_)
|
||||
addi $5, $2, 4
|
||||
# was: addi _addr_reg_43_, _arr_reg_25_, 4
|
||||
ori $4, $0, 0
|
||||
# was: ori _i_reg_44_, $0, 0
|
||||
addi $6, $16, 4
|
||||
# was: addi _elem_reg_30_, _arr_reg_29_, 4
|
||||
_loop_beg_45_:
|
||||
sub $7, $4, $3
|
||||
# was: sub _tmp_reg_47_, _i_reg_44_, _size_reg_28_
|
||||
bgez $7, _loop_end_46_
|
||||
# was: bgez _tmp_reg_47_, _loop_end_46_
|
||||
lw $8, 0($6)
|
||||
# was: lw _res_reg_31_, 0(_elem_reg_30_)
|
||||
addi $6, $6, 4
|
||||
# was: addi _elem_reg_30_, _elem_reg_30_, 4
|
||||
# ori _plus_L_49_,_res_reg_31_,0
|
||||
ori $7, $0, 1
|
||||
# was: ori _plus_R_50_, $0, 1
|
||||
add $8, $8, $7
|
||||
# was: add _fun_arg_res_48_, _plus_L_49_, _plus_R_50_
|
||||
# ori _res_reg_31_,_fun_arg_res_48_,0
|
||||
sw $8, 0($5)
|
||||
# was: sw _res_reg_31_, 0(_addr_reg_43_)
|
||||
addi $5, $5, 4
|
||||
# was: addi _addr_reg_43_, _addr_reg_43_, 4
|
||||
addi $4, $4, 1
|
||||
# was: addi _i_reg_44_, _i_reg_44_, 1
|
||||
j _loop_beg_45_
|
||||
_loop_end_46_:
|
||||
lw $17, 0($2)
|
||||
# was: lw _size_reg_24_, 0(_arr_reg_25_)
|
||||
# ori _tmp_reg_50_,$2,0
|
||||
# ori _res_reg_44_,_tmp_reg_50_,0
|
||||
sw $2, 0($17)
|
||||
# was: sw _res_reg_44_, 0(_addr_reg_45_)
|
||||
addi $17, $17, 4
|
||||
# was: addi _addr_reg_45_, _addr_reg_45_, 4
|
||||
addi $16, $16, 1
|
||||
# was: addi _i_reg_46_, _i_reg_46_, 1
|
||||
j _loop_beg_47_
|
||||
_loop_end_48_:
|
||||
lw $19, 0($20)
|
||||
# was: lw _size_reg_37_, 0(_arr_reg_38_)
|
||||
ori $16, $28, 0
|
||||
# was: ori _letBind_23_, $28, 0
|
||||
addi $3, $17, 3
|
||||
# was: addi _tmp_58_, _size_reg_24_, 3
|
||||
sra $3, $3, 2
|
||||
# was: sra _tmp_58_, _tmp_58_, 2
|
||||
sll $3, $3, 2
|
||||
# was: sll _tmp_58_, _tmp_58_, 2
|
||||
addi $3, $3, 4
|
||||
# was: ori _arr_reg_34_, $28, 0
|
||||
sll $2, $19, 2
|
||||
# was: sll _tmp_58_, _size_reg_37_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_58_, _tmp_58_, 4
|
||||
add $28, $28, $3
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_58_
|
||||
sw $17, 0($16)
|
||||
# was: sw _size_reg_24_, 0(_letBind_23_)
|
||||
sw $19, 0($16)
|
||||
# was: sw _size_reg_37_, 0(_arr_reg_34_)
|
||||
addi $18, $16, 4
|
||||
# was: addi _addr_reg_52_, _letBind_23_, 4
|
||||
ori $19, $0, 0
|
||||
# was: addi _addr_reg_52_, _arr_reg_34_, 4
|
||||
ori $17, $0, 0
|
||||
# was: ori _i_reg_53_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_26_, _arr_reg_25_, 4
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_39_, _arr_reg_38_, 4
|
||||
_loop_beg_54_:
|
||||
sub $2, $19, $17
|
||||
# was: sub _tmp_reg_56_, _i_reg_53_, _size_reg_24_
|
||||
sub $2, $17, $19
|
||||
# was: sub _tmp_reg_56_, _i_reg_53_, _size_reg_37_
|
||||
bgez $2, _loop_end_55_
|
||||
# was: bgez _tmp_reg_56_, _loop_end_55_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_27_, 0(_elem_reg_26_)
|
||||
# was: lw _res_reg_40_, 0(_elem_reg_39_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_26_, _elem_reg_26_, 4
|
||||
# ori $2,_res_reg_27_,0
|
||||
jal chr
|
||||
# was: jal chr, $2
|
||||
# was: addi _elem_reg_39_, _elem_reg_39_, 4
|
||||
# ori $2,_res_reg_40_,0
|
||||
jal add_one
|
||||
# was: jal add_one, $2
|
||||
# ori _tmp_reg_57_,$2,0
|
||||
# ori _res_reg_27_,_tmp_reg_57_,0
|
||||
sb $2, 0($18)
|
||||
# was: sb _res_reg_27_, 0(_addr_reg_52_)
|
||||
addi $18, $18, 1
|
||||
# was: addi _addr_reg_52_, _addr_reg_52_, 1
|
||||
addi $19, $19, 1
|
||||
# ori _res_reg_40_,_tmp_reg_57_,0
|
||||
sw $2, 0($18)
|
||||
# was: sw _res_reg_40_, 0(_addr_reg_52_)
|
||||
addi $18, $18, 4
|
||||
# was: addi _addr_reg_52_, _addr_reg_52_, 4
|
||||
addi $17, $17, 1
|
||||
# was: addi _i_reg_53_, _i_reg_53_, 1
|
||||
j _loop_beg_54_
|
||||
_loop_end_55_:
|
||||
ori $2, $16, 0
|
||||
# was: ori _tmp_59_, _letBind_23_, 0
|
||||
lw $18, 0($16)
|
||||
# was: lw _size_reg_33_, 0(_arr_reg_34_)
|
||||
ori $17, $28, 0
|
||||
# was: ori _letBind_32_, $28, 0
|
||||
addi $2, $18, 3
|
||||
# was: addi _tmp_65_, _size_reg_33_, 3
|
||||
sra $2, $2, 2
|
||||
# was: sra _tmp_65_, _tmp_65_, 2
|
||||
sll $2, $2, 2
|
||||
# was: sll _tmp_65_, _tmp_65_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_65_, _tmp_65_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_65_
|
||||
sw $18, 0($17)
|
||||
# was: sw _size_reg_33_, 0(_letBind_32_)
|
||||
addi $19, $17, 4
|
||||
# was: addi _addr_reg_59_, _letBind_32_, 4
|
||||
ori $20, $0, 0
|
||||
# was: ori _i_reg_60_, $0, 0
|
||||
addi $16, $16, 4
|
||||
# was: addi _elem_reg_35_, _arr_reg_34_, 4
|
||||
_loop_beg_61_:
|
||||
sub $2, $20, $18
|
||||
# was: sub _tmp_reg_63_, _i_reg_60_, _size_reg_33_
|
||||
bgez $2, _loop_end_62_
|
||||
# was: bgez _tmp_reg_63_, _loop_end_62_
|
||||
lw $2, 0($16)
|
||||
# was: lw _res_reg_36_, 0(_elem_reg_35_)
|
||||
addi $16, $16, 4
|
||||
# was: addi _elem_reg_35_, _elem_reg_35_, 4
|
||||
# ori $2,_res_reg_36_,0
|
||||
jal chr
|
||||
# was: jal chr, $2
|
||||
# ori _tmp_reg_64_,$2,0
|
||||
# ori _res_reg_36_,_tmp_reg_64_,0
|
||||
sb $2, 0($19)
|
||||
# was: sb _res_reg_36_, 0(_addr_reg_59_)
|
||||
addi $19, $19, 1
|
||||
# was: addi _addr_reg_59_, _addr_reg_59_, 1
|
||||
addi $20, $20, 1
|
||||
# was: addi _i_reg_60_, _i_reg_60_, 1
|
||||
j _loop_beg_61_
|
||||
_loop_end_62_:
|
||||
ori $2, $17, 0
|
||||
# was: ori _tmp_66_, _letBind_32_, 0
|
||||
ori $16, $2, 0
|
||||
# was: ori _mainres_1_, _tmp_59_, 0
|
||||
# ori $2,_tmp_59_,0
|
||||
# was: ori _mainres_28_, _tmp_66_, 0
|
||||
# ori $2,_tmp_66_,0
|
||||
jal putstring
|
||||
# was: jal putstring, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _mainres_1_, 0
|
||||
# was: ori $2, _mainres_28_, 0
|
||||
addi $29, $29, 28
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
|
||||
+188
-132
@@ -17,184 +17,240 @@
|
||||
_stop_:
|
||||
ori $2, $0, 10
|
||||
syscall
|
||||
# Function plus100
|
||||
plus100:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_1_,$2,0
|
||||
# ori _plus_L_3_,_param_x_1_,0
|
||||
ori $3, $0, 100
|
||||
# was: ori _plus_R_4_, $0, 100
|
||||
add $2, $2, $3
|
||||
# was: add _plus100res_2_, _plus_L_3_, _plus_R_4_
|
||||
# ori $2,_plus100res_2_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function plus
|
||||
plus:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_5_,$2,0
|
||||
# ori _param_y_6_,$3,0
|
||||
# ori _plus_L_8_,_param_x_5_,0
|
||||
# ori _plus_R_9_,_param_y_6_,0
|
||||
add $2, $2, $3
|
||||
# was: add _plusres_7_, _plus_L_8_, _plus_R_9_
|
||||
# ori $2,_plusres_7_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function main
|
||||
main:
|
||||
sw $31, -4($29)
|
||||
sw $21, -28($29)
|
||||
sw $20, -24($29)
|
||||
sw $19, -20($29)
|
||||
sw $18, -16($29)
|
||||
sw $17, -12($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -28
|
||||
addi $29, $29, -32
|
||||
jal getint
|
||||
# was: jal getint, $2
|
||||
# ori _letBind_2_,$2,0
|
||||
ori $3, $2, 0
|
||||
# was: ori _size_reg_4_, _letBind_2_, 0
|
||||
bgez $3, _safe_lab_5_
|
||||
# was: bgez _size_reg_4_, _safe_lab_5_
|
||||
# ori _letBind_11_,$2,0
|
||||
# ori _size_reg_13_,_letBind_11_,0
|
||||
bgez $2, _safe_lab_14_
|
||||
# was: bgez _size_reg_13_, _safe_lab_14_
|
||||
ori $5, $0, 6
|
||||
# was: ori $5, $0, 6
|
||||
la $6, _Msg_IllegalArraySize_
|
||||
# was: la $6, _Msg_IllegalArraySize_
|
||||
j _RuntimeError_
|
||||
_safe_lab_5_:
|
||||
ori $6, $28, 0
|
||||
# was: ori _letBind_3_, $28, 0
|
||||
sll $2, $3, 2
|
||||
# was: sll _tmp_11_, _size_reg_4_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_11_, _tmp_11_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_11_
|
||||
sw $3, 0($6)
|
||||
# was: sw _size_reg_4_, 0(_letBind_3_)
|
||||
addi $5, $6, 4
|
||||
# was: addi _addr_reg_6_, _letBind_3_, 4
|
||||
ori $4, $0, 0
|
||||
# was: ori _i_reg_7_, $0, 0
|
||||
_loop_beg_8_:
|
||||
sub $2, $4, $3
|
||||
# was: sub _tmp_reg_10_, _i_reg_7_, _size_reg_4_
|
||||
bgez $2, _loop_end_9_
|
||||
# was: bgez _tmp_reg_10_, _loop_end_9_
|
||||
sw $4, 0($5)
|
||||
# was: sw _i_reg_7_, 0(_addr_reg_6_)
|
||||
addi $5, $5, 4
|
||||
# was: addi _addr_reg_6_, _addr_reg_6_, 4
|
||||
addi $4, $4, 1
|
||||
# was: addi _i_reg_7_, _i_reg_7_, 1
|
||||
j _loop_beg_8_
|
||||
_loop_end_9_:
|
||||
# ori _arr_reg_14_,_letBind_3_,0
|
||||
lw $2, 0($6)
|
||||
# was: lw _size_reg_13_, 0(_arr_reg_14_)
|
||||
ori $3, $28, 0
|
||||
_safe_lab_14_:
|
||||
ori $20, $28, 0
|
||||
# was: ori _letBind_12_, $28, 0
|
||||
sll $4, $2, 2
|
||||
# was: sll _tmp_25_, _size_reg_13_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_25_, _tmp_25_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_25_
|
||||
sw $2, 0($3)
|
||||
sll $3, $2, 2
|
||||
# was: sll _tmp_20_, _size_reg_13_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_20_, _tmp_20_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_20_
|
||||
sw $2, 0($20)
|
||||
# was: sw _size_reg_13_, 0(_letBind_12_)
|
||||
addi $5, $3, 4
|
||||
# was: addi _addr_reg_17_, _letBind_12_, 4
|
||||
ori $4, $0, 0
|
||||
# was: ori _i_reg_18_, $0, 0
|
||||
addi $6, $6, 4
|
||||
# was: addi _elem_reg_15_, _arr_reg_14_, 4
|
||||
_loop_beg_19_:
|
||||
sub $7, $4, $2
|
||||
# was: sub _tmp_reg_21_, _i_reg_18_, _size_reg_13_
|
||||
bgez $7, _loop_end_20_
|
||||
# was: bgez _tmp_reg_21_, _loop_end_20_
|
||||
lw $7, 0($6)
|
||||
# was: lw _res_reg_16_, 0(_elem_reg_15_)
|
||||
addi $6, $6, 4
|
||||
# was: addi _elem_reg_15_, _elem_reg_15_, 4
|
||||
ori $8, $7, 0
|
||||
# was: ori _plus_L_23_, _res_reg_16_, 0
|
||||
ori $7, $0, 100
|
||||
# was: ori _plus_R_24_, $0, 100
|
||||
add $7, $8, $7
|
||||
# was: add _fun_arg_res_22_, _plus_L_23_, _plus_R_24_
|
||||
# ori _res_reg_16_,_fun_arg_res_22_,0
|
||||
sw $7, 0($5)
|
||||
# was: sw _res_reg_16_, 0(_addr_reg_17_)
|
||||
addi $5, $20, 4
|
||||
# was: addi _addr_reg_15_, _letBind_12_, 4
|
||||
ori $3, $0, 0
|
||||
# was: ori _i_reg_16_, $0, 0
|
||||
_loop_beg_17_:
|
||||
sub $4, $3, $2
|
||||
# was: sub _tmp_reg_19_, _i_reg_16_, _size_reg_13_
|
||||
bgez $4, _loop_end_18_
|
||||
# was: bgez _tmp_reg_19_, _loop_end_18_
|
||||
sw $3, 0($5)
|
||||
# was: sw _i_reg_16_, 0(_addr_reg_15_)
|
||||
addi $5, $5, 4
|
||||
# was: addi _addr_reg_17_, _addr_reg_17_, 4
|
||||
addi $4, $4, 1
|
||||
# was: addi _i_reg_18_, _i_reg_18_, 1
|
||||
j _loop_beg_19_
|
||||
_loop_end_20_:
|
||||
# ori _arr_reg_28_,_letBind_12_,0
|
||||
lw $17, 0($3)
|
||||
# was: lw _size_reg_27_, 0(_arr_reg_28_)
|
||||
# was: addi _addr_reg_15_, _addr_reg_15_, 4
|
||||
addi $3, $3, 1
|
||||
# was: addi _i_reg_16_, _i_reg_16_, 1
|
||||
j _loop_beg_17_
|
||||
_loop_end_18_:
|
||||
# ori _arr_reg_23_,_letBind_12_,0
|
||||
lw $17, 0($20)
|
||||
# was: lw _size_reg_22_, 0(_arr_reg_23_)
|
||||
ori $16, $28, 0
|
||||
# was: ori _letBind_26_, $28, 0
|
||||
addi $2, $17, 3
|
||||
# was: addi _tmp_37_, _size_reg_27_, 3
|
||||
sra $2, $2, 2
|
||||
# was: sra _tmp_37_, _tmp_37_, 2
|
||||
sll $2, $2, 2
|
||||
# was: sll _tmp_37_, _tmp_37_, 2
|
||||
# was: ori _letBind_21_, $28, 0
|
||||
sll $2, $17, 2
|
||||
# was: sll _tmp_32_, _size_reg_22_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_37_, _tmp_37_, 4
|
||||
# was: addi _tmp_32_, _tmp_32_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_37_
|
||||
# was: add $28, $28, _tmp_32_
|
||||
sw $17, 0($16)
|
||||
# was: sw _size_reg_27_, 0(_letBind_26_)
|
||||
# was: sw _size_reg_22_, 0(_letBind_21_)
|
||||
addi $19, $16, 4
|
||||
# was: addi _addr_reg_31_, _letBind_26_, 4
|
||||
# was: addi _addr_reg_26_, _letBind_21_, 4
|
||||
ori $18, $0, 0
|
||||
# was: ori _i_reg_32_, $0, 0
|
||||
addi $20, $3, 4
|
||||
# was: addi _elem_reg_29_, _arr_reg_28_, 4
|
||||
_loop_beg_33_:
|
||||
# was: ori _i_reg_27_, $0, 0
|
||||
addi $21, $20, 4
|
||||
# was: addi _elem_reg_24_, _arr_reg_23_, 4
|
||||
_loop_beg_28_:
|
||||
sub $2, $18, $17
|
||||
# was: sub _tmp_reg_35_, _i_reg_32_, _size_reg_27_
|
||||
bgez $2, _loop_end_34_
|
||||
# was: bgez _tmp_reg_35_, _loop_end_34_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_30_, 0(_elem_reg_29_)
|
||||
# was: sub _tmp_reg_30_, _i_reg_27_, _size_reg_22_
|
||||
bgez $2, _loop_end_29_
|
||||
# was: bgez _tmp_reg_30_, _loop_end_29_
|
||||
lw $2, 0($21)
|
||||
# was: lw _res_reg_25_, 0(_elem_reg_24_)
|
||||
addi $21, $21, 4
|
||||
# was: addi _elem_reg_24_, _elem_reg_24_, 4
|
||||
# ori $2,_res_reg_25_,0
|
||||
jal plus100
|
||||
# was: jal plus100, $2
|
||||
# ori _tmp_reg_31_,$2,0
|
||||
# ori _res_reg_25_,_tmp_reg_31_,0
|
||||
sw $2, 0($19)
|
||||
# was: sw _res_reg_25_, 0(_addr_reg_26_)
|
||||
addi $19, $19, 4
|
||||
# was: addi _addr_reg_26_, _addr_reg_26_, 4
|
||||
addi $18, $18, 1
|
||||
# was: addi _i_reg_27_, _i_reg_27_, 1
|
||||
j _loop_beg_28_
|
||||
_loop_end_29_:
|
||||
# ori _arr_reg_34_,_letBind_12_,0
|
||||
lw $17, 0($20)
|
||||
# was: lw _size_reg_35_, 0(_arr_reg_34_)
|
||||
ori $2, $0, 0
|
||||
# was: ori _letBind_33_, $0, 0
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_29_, _elem_reg_29_, 4
|
||||
# ori $2,_res_reg_30_,0
|
||||
# was: addi _arr_reg_34_, _arr_reg_34_, 4
|
||||
ori $18, $0, 0
|
||||
# was: ori _ind_var_36_, $0, 0
|
||||
_loop_beg_38_:
|
||||
sub $3, $18, $17
|
||||
# was: sub _tmp_reg_37_, _ind_var_36_, _size_reg_35_
|
||||
bgez $3, _loop_end_39_
|
||||
# was: bgez _tmp_reg_37_, _loop_end_39_
|
||||
lw $3, 0($20)
|
||||
# was: lw _tmp_reg_37_, 0(_arr_reg_34_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _arr_reg_34_, _arr_reg_34_, 4
|
||||
# ori $2,_letBind_33_,0
|
||||
# ori $3,_tmp_reg_37_,0
|
||||
jal plus
|
||||
# was: jal plus, $2 $3
|
||||
# ori _tmp_reg_40_,$2,0
|
||||
# ori _letBind_33_,_tmp_reg_40_,0
|
||||
addi $18, $18, 1
|
||||
# was: addi _ind_var_36_, _ind_var_36_, 1
|
||||
j _loop_beg_38_
|
||||
_loop_end_39_:
|
||||
ori $2, $16, 0
|
||||
# was: ori _arr_reg_43_, _letBind_21_, 0
|
||||
lw $16, 0($2)
|
||||
# was: lw _size_reg_42_, 0(_arr_reg_43_)
|
||||
ori $17, $28, 0
|
||||
# was: ori _letBind_41_, $28, 0
|
||||
addi $3, $16, 3
|
||||
# was: addi _tmp_52_, _size_reg_42_, 3
|
||||
sra $3, $3, 2
|
||||
# was: sra _tmp_52_, _tmp_52_, 2
|
||||
sll $3, $3, 2
|
||||
# was: sll _tmp_52_, _tmp_52_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_52_, _tmp_52_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_52_
|
||||
sw $16, 0($17)
|
||||
# was: sw _size_reg_42_, 0(_letBind_41_)
|
||||
addi $18, $17, 4
|
||||
# was: addi _addr_reg_46_, _letBind_41_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_47_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_44_, _arr_reg_43_, 4
|
||||
_loop_beg_48_:
|
||||
sub $2, $19, $16
|
||||
# was: sub _tmp_reg_50_, _i_reg_47_, _size_reg_42_
|
||||
bgez $2, _loop_end_49_
|
||||
# was: bgez _tmp_reg_50_, _loop_end_49_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_45_, 0(_elem_reg_44_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_44_, _elem_reg_44_, 4
|
||||
# ori $2,_res_reg_45_,0
|
||||
jal chr
|
||||
# was: jal chr, $2
|
||||
# ori _tmp_reg_36_,$2,0
|
||||
# ori _res_reg_30_,_tmp_reg_36_,0
|
||||
sb $2, 0($19)
|
||||
# was: sb _res_reg_30_, 0(_addr_reg_31_)
|
||||
addi $19, $19, 1
|
||||
# was: addi _addr_reg_31_, _addr_reg_31_, 1
|
||||
# ori _tmp_reg_51_,$2,0
|
||||
# ori _res_reg_45_,_tmp_reg_51_,0
|
||||
sb $2, 0($18)
|
||||
# was: sb _res_reg_45_, 0(_addr_reg_46_)
|
||||
addi $18, $18, 1
|
||||
# was: addi _i_reg_32_, _i_reg_32_, 1
|
||||
j _loop_beg_33_
|
||||
_loop_end_34_:
|
||||
# was: addi _addr_reg_46_, _addr_reg_46_, 1
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_47_, _i_reg_47_, 1
|
||||
j _loop_beg_48_
|
||||
_loop_end_49_:
|
||||
ori $2, $0, 1
|
||||
# was: ori _arr_ind_41_, $0, 1
|
||||
addi $3, $16, 4
|
||||
# was: addi _arr_reg_42_, _letBind_26_, 4
|
||||
lw $4, 0($16)
|
||||
# was: lw _size_reg_43_, 0(_letBind_26_)
|
||||
bgez $2, _safe_lab_46_
|
||||
# was: bgez _arr_ind_41_, _safe_lab_46_
|
||||
_error_lab_45_:
|
||||
# was: ori _arr_ind_56_, $0, 1
|
||||
addi $3, $17, 4
|
||||
# was: addi _arr_reg_57_, _letBind_41_, 4
|
||||
lw $4, 0($17)
|
||||
# was: lw _size_reg_58_, 0(_letBind_41_)
|
||||
bgez $2, _safe_lab_61_
|
||||
# was: bgez _arr_ind_56_, _safe_lab_61_
|
||||
_error_lab_60_:
|
||||
ori $5, $0, 10
|
||||
# was: ori $5, $0, 10
|
||||
la $6, _Msg_IllegalIndex_
|
||||
# was: la $6, _Msg_IllegalIndex_
|
||||
j _RuntimeError_
|
||||
_safe_lab_46_:
|
||||
_safe_lab_61_:
|
||||
sub $4, $2, $4
|
||||
# was: sub _tmp_reg_44_, _arr_ind_41_, _size_reg_43_
|
||||
bgez $4, _error_lab_45_
|
||||
# was: bgez _tmp_reg_44_, _error_lab_45_
|
||||
# was: sub _tmp_reg_59_, _arr_ind_56_, _size_reg_58_
|
||||
bgez $4, _error_lab_60_
|
||||
# was: bgez _tmp_reg_59_, _error_lab_60_
|
||||
add $3, $3, $2
|
||||
# was: add _arr_reg_42_, _arr_reg_42_, _arr_ind_41_
|
||||
# was: add _arr_reg_57_, _arr_reg_57_, _arr_ind_56_
|
||||
lb $2, 0($3)
|
||||
# was: lb _arg_40_, 0(_arr_reg_42_)
|
||||
# ori $2,_arg_40_,0
|
||||
# was: lb _arg_55_, 0(_arr_reg_57_)
|
||||
# ori $2,_arg_55_,0
|
||||
jal ord
|
||||
# was: jal ord, $2
|
||||
# ori _tmp_39_,$2,0
|
||||
# ori _letBind_38_,_tmp_39_,0
|
||||
# ori $2,_letBind_38_,0
|
||||
# ori _tmp_54_,$2,0
|
||||
# ori _letBind_53_,_tmp_54_,0
|
||||
# ori $2,_letBind_53_,0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori _tmp_47_, _letBind_26_, 0
|
||||
ori $2, $17, 0
|
||||
# was: ori _tmp_62_, _letBind_41_, 0
|
||||
ori $16, $2, 0
|
||||
# was: ori _mainres_1_, _tmp_47_, 0
|
||||
# ori $2,_tmp_47_,0
|
||||
# was: ori _mainres_10_, _tmp_62_, 0
|
||||
# ori $2,_tmp_62_,0
|
||||
jal putstring
|
||||
# was: jal putstring, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _mainres_1_, 0
|
||||
addi $29, $29, 28
|
||||
# was: ori $2, _mainres_10_, 0
|
||||
addi $29, $29, 32
|
||||
lw $21, -28($29)
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
lw $18, -16($29)
|
||||
|
||||
+82
-63
@@ -17,79 +17,98 @@
|
||||
_stop_:
|
||||
ori $2, $0, 10
|
||||
syscall
|
||||
# Function incr
|
||||
incr:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_a_1_,$2,0
|
||||
# ori _param_b_2_,$3,0
|
||||
# ori _plus_L_4_,_param_a_1_,0
|
||||
# ori _plus_R_5_,_param_b_2_,0
|
||||
add $2, $2, $3
|
||||
# was: add _incrres_3_, _plus_L_4_, _plus_R_5_
|
||||
# ori $2,_incrres_3_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function main
|
||||
main:
|
||||
sw $31, -4($29)
|
||||
sw $18, -16($29)
|
||||
sw $17, -12($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -12
|
||||
ori $4, $0, 3
|
||||
# was: ori _size_reg_9_, $0, 3
|
||||
ori $2, $28, 0
|
||||
# was: ori _arr_reg_3_, $28, 0
|
||||
sll $3, $4, 2
|
||||
# was: sll _tmp_12_, _size_reg_9_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_12_, _tmp_12_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_12_
|
||||
sw $4, 0($2)
|
||||
# was: sw _size_reg_9_, 0(_arr_reg_3_)
|
||||
addi $4, $2, 4
|
||||
# was: addi _addr_reg_10_, _arr_reg_3_, 4
|
||||
ori $3, $0, 1
|
||||
# was: ori _tmp_reg_11_, $0, 1
|
||||
sw $3, 0($4)
|
||||
# was: sw _tmp_reg_11_, 0(_addr_reg_10_)
|
||||
addi $4, $4, 4
|
||||
# was: addi _addr_reg_10_, _addr_reg_10_, 4
|
||||
ori $3, $0, 2
|
||||
# was: ori _tmp_reg_11_, $0, 2
|
||||
sw $3, 0($4)
|
||||
# was: sw _tmp_reg_11_, 0(_addr_reg_10_)
|
||||
addi $4, $4, 4
|
||||
# was: addi _addr_reg_10_, _addr_reg_10_, 4
|
||||
addi $29, $29, -20
|
||||
ori $3, $0, 3
|
||||
# was: ori _tmp_reg_11_, $0, 3
|
||||
sw $3, 0($4)
|
||||
# was: sw _tmp_reg_11_, 0(_addr_reg_10_)
|
||||
addi $4, $4, 4
|
||||
# was: addi _addr_reg_10_, _addr_reg_10_, 4
|
||||
lw $3, 0($2)
|
||||
# was: lw _size_reg_4_, 0(_arr_reg_3_)
|
||||
ori $6, $0, 0
|
||||
# was: ori _letBind_2_, $0, 0
|
||||
# was: ori _size_reg_14_, $0, 3
|
||||
ori $16, $28, 0
|
||||
# was: ori _arr_reg_8_, $28, 0
|
||||
sll $2, $3, 2
|
||||
# was: sll _tmp_17_, _size_reg_14_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _arr_reg_3_, _arr_reg_3_, 4
|
||||
ori $4, $0, 0
|
||||
# was: ori _ind_var_5_, $0, 0
|
||||
_loop_beg_7_:
|
||||
sub $5, $4, $3
|
||||
# was: sub _tmp_reg_6_, _ind_var_5_, _size_reg_4_
|
||||
bgez $5, _loop_end_8_
|
||||
# was: bgez _tmp_reg_6_, _loop_end_8_
|
||||
lw $5, 0($2)
|
||||
# was: lw _tmp_reg_6_, 0(_arr_reg_3_)
|
||||
addi $2, $2, 4
|
||||
# was: addi _arr_reg_3_, _arr_reg_3_, 4
|
||||
# ori _plus_L_14_,_letBind_2_,0
|
||||
# ori _plus_R_15_,_tmp_reg_6_,0
|
||||
add $6, $6, $5
|
||||
# was: add _fun_arg_res_13_, _plus_L_14_, _plus_R_15_
|
||||
# ori _letBind_2_,_fun_arg_res_13_,0
|
||||
addi $4, $4, 1
|
||||
# was: addi _ind_var_5_, _ind_var_5_, 1
|
||||
j _loop_beg_7_
|
||||
_loop_end_8_:
|
||||
# ori _tmp_16_,_letBind_2_,0
|
||||
ori $16, $6, 0
|
||||
# was: ori _mainres_1_, _tmp_16_, 0
|
||||
# was: addi _tmp_17_, _tmp_17_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_17_
|
||||
sw $3, 0($16)
|
||||
# was: sw _size_reg_14_, 0(_arr_reg_8_)
|
||||
addi $3, $16, 4
|
||||
# was: addi _addr_reg_15_, _arr_reg_8_, 4
|
||||
ori $2, $0, 1
|
||||
# was: ori _tmp_reg_16_, $0, 1
|
||||
sw $2, 0($3)
|
||||
# was: sw _tmp_reg_16_, 0(_addr_reg_15_)
|
||||
addi $3, $3, 4
|
||||
# was: addi _addr_reg_15_, _addr_reg_15_, 4
|
||||
ori $2, $0, 2
|
||||
# was: ori _tmp_reg_16_, $0, 2
|
||||
sw $2, 0($3)
|
||||
# was: sw _tmp_reg_16_, 0(_addr_reg_15_)
|
||||
addi $3, $3, 4
|
||||
# was: addi _addr_reg_15_, _addr_reg_15_, 4
|
||||
ori $2, $0, 3
|
||||
# was: ori _tmp_reg_16_, $0, 3
|
||||
sw $2, 0($3)
|
||||
# was: sw _tmp_reg_16_, 0(_addr_reg_15_)
|
||||
addi $3, $3, 4
|
||||
# was: addi _addr_reg_15_, _addr_reg_15_, 4
|
||||
lw $17, 0($16)
|
||||
# was: lw _size_reg_9_, 0(_arr_reg_8_)
|
||||
ori $2, $0, 0
|
||||
# was: ori _letBind_7_, $0, 0
|
||||
addi $16, $16, 4
|
||||
# was: addi _arr_reg_8_, _arr_reg_8_, 4
|
||||
ori $18, $0, 0
|
||||
# was: ori _ind_var_10_, $0, 0
|
||||
_loop_beg_12_:
|
||||
sub $3, $18, $17
|
||||
# was: sub _tmp_reg_11_, _ind_var_10_, _size_reg_9_
|
||||
bgez $3, _loop_end_13_
|
||||
# was: bgez _tmp_reg_11_, _loop_end_13_
|
||||
lw $3, 0($16)
|
||||
# was: lw _tmp_reg_11_, 0(_arr_reg_8_)
|
||||
addi $16, $16, 4
|
||||
# was: addi _arr_reg_8_, _arr_reg_8_, 4
|
||||
# ori $2,_letBind_7_,0
|
||||
# ori $3,_tmp_reg_11_,0
|
||||
jal incr
|
||||
# was: jal incr, $2 $3
|
||||
# ori _tmp_reg_18_,$2,0
|
||||
# ori _letBind_7_,_tmp_reg_18_,0
|
||||
addi $18, $18, 1
|
||||
# was: addi _ind_var_10_, _ind_var_10_, 1
|
||||
j _loop_beg_12_
|
||||
_loop_end_13_:
|
||||
# ori _tmp_19_,_letBind_7_,0
|
||||
ori $16, $2, 0
|
||||
# was: ori _mainres_6_, _tmp_19_, 0
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _mainres_1_, 0
|
||||
# was: ori $2, _mainres_6_, 0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _mainres_1_, 0
|
||||
addi $29, $29, 12
|
||||
# was: ori $2, _mainres_6_, 0
|
||||
addi $29, $29, 20
|
||||
lw $18, -16($29)
|
||||
lw $17, -12($29)
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
|
||||
Reference in new issue
Block a user