1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-22 04:17:44 +00:00
freebsd-ports/lang/mlton/files/mlb.lex.sml
Stefan Walter 776ae1fb28 This patch adds three features to the lang/mlton port:
* Support for FreeBSD 6.x
* Support for compilation with SML/NJ
* Cross-compilation with mingw32

PR:		124061
Submitted by:	Timothy Bourke <timbob@bigpond.com>
Approved by:	maintainer
2008-12-10 08:44:24 +00:00

1855 lines
84 KiB
Standard ML

type int = Int.int
functor MLBLexFun (structure Tokens : MLB_TOKENS)=
struct
structure UserDeclarations =
struct
(* Copyright (C) 2004-2006 Henry Cejtin, Matthew Fluet, Suresh
* Jagannathan, and Stephen Weeks.
*
* MLton is released under a BSD-style license.
* See the file MLton-LICENSE for details.
*)
type int = Int.t
type svalue = Tokens.svalue
type pos = SourcePos.t
type lexresult = (svalue, pos) Tokens.token
type lexarg = {source: Source.t}
type arg = lexarg
type ('a,'b) token = ('a,'b) Tokens.token
val charlist: string list ref = ref []
val colNum: int ref = ref 0
val commentLevel: int ref = ref 0
val commentStart = ref SourcePos.bogus
val lineFile: File.t ref = ref ""
val lineNum: int ref = ref 0
val stringStart = ref SourcePos.bogus
fun lineDirective (source, file, yypos) =
Source.lineDirective (source, file,
{lineNum = !lineNum,
lineStart = yypos - !colNum})
fun addString (s: string) = charlist := s :: (!charlist)
fun addChar (c: char) = addString (String.fromChar c)
fun inc (ri as ref (i: int)) = (ri := i + 1)
fun dec (ri as ref (i: int)) = (ri := i-1)
fun error (source, left, right, msg) =
Control.errorStr (Region.make {left = Source.getPos (source, left),
right = Source.getPos (source, right)},
msg)
fun stringError (source, right, msg) =
Control.errorStr (Region.make {left = !stringStart,
right = Source.getPos (source, right)},
msg)
val eof: lexarg -> lexresult =
fn {source, ...} =>
let
val pos = Source.lineStart source
val _ =
if !commentLevel > 0
then Control.errorStr (Region.make {left = !commentStart,
right = pos},
"unclosed comment")
else ()
in
Tokens.EOF (pos, pos)
end
val size = String.size
fun tok (t, s, l, r) =
let
val l = Source.getPos (s, l)
val r = Source.getPos (s, r)
val _ =
if true
then ()
else
print (concat ["tok (",
SourcePos.toString l,
", " ,
SourcePos.toString r,
")\n"])
in
t (l, r)
end
fun tok' (t, x, s, l) = tok (fn (l, r) => t (x, l, r), s, l, l + size x)
end (* end of user routines *)
exception LexError (* raised if illegal leaf action tried *)
structure Internal =
struct
datatype yyfinstate = N of int
type statedata = {fin : yyfinstate list, trans: string}
(* transition & final state table *)
val tab = let
val s = [
(0,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(1,
"\017\017\017\017\017\017\017\017\017\127\130\017\127\129\017\017\
\\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\
\\127\017\126\017\125\017\017\017\117\017\017\017\116\095\115\096\
\\095\095\095\095\095\095\095\095\095\095\017\094\017\093\017\017\
\\017\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\017\017\017\017\088\
\\017\084\079\018\018\076\069\018\018\067\018\018\060\018\018\056\
\\018\018\018\039\018\018\018\018\018\018\018\017\017\017\017\017\
\\017"
),
(3,
"\131\131\131\131\131\131\131\131\131\131\136\131\131\131\131\131\
\\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\
\\131\131\131\131\131\131\131\131\134\131\132\131\131\131\131\131\
\\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\
\\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\
\\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\
\\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\
\\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\
\\131"
),
(5,
"\137\137\137\137\137\137\137\137\137\137\165\137\137\164\137\137\
\\137\137\137\137\137\137\137\137\137\137\137\137\137\137\137\137\
\\138\138\163\138\138\138\138\138\138\138\138\138\138\138\138\138\
\\138\138\138\138\138\138\138\138\138\138\138\138\138\138\138\138\
\\138\138\138\138\138\138\138\138\138\138\138\138\138\138\138\138\
\\138\138\138\138\138\138\138\138\138\138\138\138\139\138\138\138\
\\138\138\138\138\138\138\138\138\138\138\138\138\138\138\138\138\
\\138\138\138\138\138\138\138\138\138\138\138\138\138\138\138\137\
\\137"
),
(7,
"\166\166\166\166\166\166\166\166\166\168\171\166\168\170\166\166\
\\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\
\\168\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\
\\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\
\\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\
\\166\166\166\166\166\166\166\166\166\166\166\166\167\166\166\166\
\\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\
\\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\
\\166"
),
(9,
"\172\172\172\172\172\172\172\172\172\172\000\172\172\172\172\172\
\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\
\\172\172\172\172\172\172\172\172\172\172\175\172\172\172\172\172\
\\173\173\173\173\173\173\173\173\173\173\172\172\172\172\172\172\
\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\
\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\
\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\
\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\
\\172"
),
(11,
"\177\177\177\177\177\177\177\177\177\177\000\177\177\177\177\177\
\\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\
\\177\177\177\177\177\177\177\177\177\177\177\177\177\177\180\177\
\\178\178\178\178\178\178\178\178\178\178\177\177\177\177\177\177\
\\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\
\\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\
\\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\
\\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\
\\177"
),
(13,
"\172\172\172\172\172\172\172\172\172\184\000\172\184\172\172\172\
\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\
\\184\172\183\172\172\172\172\172\172\172\181\172\172\172\172\172\
\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\
\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\
\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\
\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\
\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\
\\172"
),
(15,
"\187\187\187\187\187\187\187\187\187\187\188\187\187\187\187\187\
\\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\
\\187\187\191\187\187\187\187\187\187\187\189\187\187\187\187\187\
\\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\
\\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\
\\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\
\\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\
\\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\
\\187"
),
(18,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(20,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\035\000\000\000\000\000\000\000\000\021\033\000\
\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\
\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\
\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\
\\000"
),
(21,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\000\000\000\000\000\000\021\022\020\
\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\
\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\
\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\
\\000"
),
(22,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\027\000\000\000\000\000\000\000\000\023\000\000\
\\023\023\023\023\023\023\023\023\023\023\000\000\000\000\000\000\
\\000\023\023\023\023\023\023\023\023\023\023\023\023\023\023\023\
\\023\023\023\023\023\023\023\023\023\023\023\000\000\000\000\023\
\\000\023\023\023\023\023\023\023\023\023\023\023\023\023\023\023\
\\023\023\023\023\023\023\023\023\023\023\023\000\000\000\000\000\
\\000"
),
(23,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\024\000\000\000\000\000\000\000\000\023\022\020\
\\023\023\023\023\023\023\023\023\023\023\000\000\000\000\000\000\
\\000\023\023\023\023\023\023\023\023\023\023\023\023\023\023\023\
\\023\023\023\023\023\023\023\023\023\023\023\000\000\000\000\023\
\\000\023\023\023\023\023\023\023\023\023\023\023\023\023\023\023\
\\023\023\023\023\023\023\023\023\023\023\023\000\000\000\000\000\
\\000"
),
(24,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\025\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(25,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\026\026\026\026\026\026\026\026\026\026\026\026\026\026\026\
\\026\026\026\026\026\026\026\026\026\026\026\000\000\000\000\026\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(26,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\023\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\026\026\026\026\026\026\026\026\026\026\026\026\026\026\026\
\\026\026\026\026\026\026\026\026\026\026\026\000\000\000\000\026\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(27,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\028\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(28,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\029\029\029\029\029\029\029\029\029\029\029\029\029\029\029\
\\029\029\029\029\029\029\029\029\029\029\029\000\000\000\000\029\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(29,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\023\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\029\029\029\029\029\029\029\029\029\029\029\029\029\029\029\
\\029\029\029\029\029\029\029\029\029\029\029\000\000\000\000\029\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(30,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\031\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(31,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\
\\032\032\032\032\032\032\032\032\032\032\032\000\000\000\000\032\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(32,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\
\\032\032\032\032\032\032\032\032\032\032\032\000\000\000\000\032\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(33,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\034\020\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(34,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(35,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\036\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(36,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\037\037\037\037\037\037\037\037\037\037\037\037\037\037\037\
\\037\037\037\037\037\037\037\037\037\037\037\000\000\000\000\037\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(37,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\037\037\037\037\037\037\037\037\037\037\037\037\037\037\037\
\\037\037\037\037\037\037\037\037\037\037\037\000\000\000\000\037\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(38,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\038\000\000\000\000\000\000\000\000\
\\038\038\038\038\038\038\038\038\038\038\000\000\000\000\000\000\
\\000\038\038\038\038\038\038\038\038\038\038\038\038\038\038\038\
\\038\038\038\038\038\038\038\038\038\038\038\000\000\000\000\038\
\\000\038\038\038\038\038\038\038\038\038\038\038\038\038\038\038\
\\038\038\038\038\038\038\038\038\038\038\038\000\000\000\000\000\
\\000"
),
(39,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\048\019\019\019\019\019\019\
\\019\019\019\019\040\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(40,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\041\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(41,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\042\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(42,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\043\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(43,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\044\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(44,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\045\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(45,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\046\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(46,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\047\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(48,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\049\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(49,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\050\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(50,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\051\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(51,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\052\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(52,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\053\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(53,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\054\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(54,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\055\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(56,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\057\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(57,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\058\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(58,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\059\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(60,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\065\019\019\019\019\019\019\019\019\019\061\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(61,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\062\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(62,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\063\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(63,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\064\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(65,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\066\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(67,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\068\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(69,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\070\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(70,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\071\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(71,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\072\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(72,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\073\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(73,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\074\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(74,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\075\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(76,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\077\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(77,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\078\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(79,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\080\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(80,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\081\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(81,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\082\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(82,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\083\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(84,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\085\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(85,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\
\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
\\000\019\019\019\087\019\019\019\019\019\019\019\019\019\086\019\
\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
\\000"
),
(88,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\000\000\000\000\000\000\021\022\020\
\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\
\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\
\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
\\089\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\
\\000"
),
(89,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\000\000\000\000\000\000\021\022\020\
\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\
\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\
\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
\\021\021\090\021\021\021\021\021\021\021\021\000\000\000\000\000\
\\000"
),
(90,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\000\000\000\000\000\000\021\022\020\
\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\
\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\
\\000\021\021\021\021\021\021\021\021\091\021\021\021\021\021\021\
\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\
\\000"
),
(91,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\030\000\000\000\000\000\000\000\000\021\022\020\
\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\
\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\
\\000\021\021\021\021\021\021\021\021\021\021\021\021\092\021\021\
\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\
\\000"
),
(96,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\101\000\000\000\000\000\000\000\000\097\099\000\
\\097\097\097\097\097\097\097\097\097\097\000\000\000\000\000\000\
\\000\097\097\097\097\097\097\097\097\097\097\097\097\097\097\097\
\\097\097\097\097\097\097\097\097\097\097\097\000\000\000\000\097\
\\000\097\097\097\097\097\097\097\097\097\097\097\097\097\097\097\
\\097\097\097\097\097\097\097\097\097\097\097\000\000\000\000\000\
\\000"
),
(97,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\112\000\000\000\000\000\000\000\000\097\104\098\
\\097\097\097\097\097\097\097\097\097\097\000\000\000\000\000\000\
\\000\097\097\097\097\097\097\097\097\097\097\097\097\097\097\097\
\\097\097\097\097\097\097\097\097\097\097\097\000\000\000\000\097\
\\000\097\097\097\097\097\097\097\097\097\097\097\097\097\097\097\
\\097\097\097\097\097\097\097\097\097\097\097\000\000\000\000\000\
\\000"
),
(99,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\100\098\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(100,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\098\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(101,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\102\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(102,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(103,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\097\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(104,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\109\000\000\000\000\000\000\000\000\105\000\000\
\\105\105\105\105\105\105\105\105\105\105\000\000\000\000\000\000\
\\000\105\105\105\105\105\105\105\105\105\105\105\105\105\105\105\
\\105\105\105\105\105\105\105\105\105\105\105\000\000\000\000\105\
\\000\105\105\105\105\105\105\105\105\105\105\105\105\105\105\105\
\\105\105\105\105\105\105\105\105\105\105\105\000\000\000\000\000\
\\000"
),
(105,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\106\000\000\000\000\000\000\000\000\105\104\098\
\\105\105\105\105\105\105\105\105\105\105\000\000\000\000\000\000\
\\000\105\105\105\105\105\105\105\105\105\105\105\105\105\105\105\
\\105\105\105\105\105\105\105\105\105\105\105\000\000\000\000\105\
\\000\105\105\105\105\105\105\105\105\105\105\105\105\105\105\105\
\\105\105\105\105\105\105\105\105\105\105\105\000\000\000\000\000\
\\000"
),
(106,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\107\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(107,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\108\108\108\108\108\108\108\108\108\108\108\108\108\108\108\
\\108\108\108\108\108\108\108\108\108\108\108\000\000\000\000\108\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(108,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\105\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\108\108\108\108\108\108\108\108\108\108\108\108\108\108\108\
\\108\108\108\108\108\108\108\108\108\108\108\000\000\000\000\108\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(109,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\110\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(110,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\111\111\111\111\111\111\111\111\111\111\111\111\111\111\111\
\\111\111\111\111\111\111\111\111\111\111\111\000\000\000\000\111\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(111,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\105\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\111\111\111\111\111\111\111\111\111\111\111\111\111\111\111\
\\111\111\111\111\111\111\111\111\111\111\111\000\000\000\000\111\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(112,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\113\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(113,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\114\114\114\114\114\114\114\114\114\114\114\114\114\114\114\
\\114\114\114\114\114\114\114\114\114\114\114\000\000\000\000\114\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(114,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\097\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\114\114\114\114\114\114\114\114\114\114\114\114\114\114\114\
\\114\114\114\114\114\114\114\114\114\114\114\000\000\000\000\114\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(117,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\118\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(118,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\119\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(119,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\120\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(120,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\121\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(121,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\122\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(122,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\123\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(123,
"\000\000\000\000\000\000\000\000\000\124\000\000\124\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\124\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(127,
"\000\000\000\000\000\000\000\000\000\128\000\000\128\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(129,
"\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(132,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\133\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(134,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\135\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(139,
"\000\000\000\000\000\000\000\000\000\160\162\000\160\161\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\160\000\159\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\156\156\156\156\156\156\156\156\156\156\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\155\000\152\000\
\\000\151\150\000\000\000\149\000\000\000\000\000\000\000\148\000\
\\000\000\147\000\146\141\140\000\000\000\000\000\000\000\000\000\
\\000"
),
(141,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\142\142\142\142\142\142\142\142\142\142\000\000\000\000\000\000\
\\000\142\142\142\142\142\142\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\142\142\142\142\142\142\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(142,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\143\143\143\143\143\143\143\143\143\143\000\000\000\000\000\000\
\\000\143\143\143\143\143\143\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\143\143\143\143\143\143\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(143,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\144\144\144\144\144\144\144\144\144\144\000\000\000\000\000\000\
\\000\144\144\144\144\144\144\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\144\144\144\144\144\144\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(144,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\145\145\145\145\145\145\145\145\145\145\000\000\000\000\000\000\
\\000\145\145\145\145\145\145\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\145\145\145\145\145\145\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(152,
"\153\153\153\153\153\153\153\153\153\153\000\153\153\153\153\153\
\\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\
\\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\
\\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\
\\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\
\\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\
\\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\
\\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\
\\153"
),
(156,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\157\157\157\157\157\157\157\157\157\157\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(157,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\158\158\158\158\158\158\158\158\158\158\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(160,
"\000\000\000\000\000\000\000\000\000\160\000\000\160\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(161,
"\000\000\000\000\000\000\000\000\000\000\162\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(164,
"\000\000\000\000\000\000\000\000\000\000\165\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(168,
"\000\000\000\000\000\000\000\000\000\169\000\000\169\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(170,
"\000\000\000\000\000\000\000\000\000\000\171\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(173,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\174\174\174\174\174\174\174\174\174\174\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(175,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\176\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(178,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\179\179\179\179\179\179\179\179\179\179\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(181,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\182\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(184,
"\000\000\000\000\000\000\000\000\000\186\000\000\186\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\186\000\185\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(187,
"\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\
\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\
\\188\188\000\188\188\188\188\188\188\188\188\188\188\188\188\188\
\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\
\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\
\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\
\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\
\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\
\\188"
),
(189,
"\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\
\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\
\\188\188\000\188\188\188\188\188\188\190\188\188\188\188\188\188\
\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\
\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\
\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\
\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\
\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\
\\188"
),
(191,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\192\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(192,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(0, "")]
fun f x = x
val s = map f (rev (tl (rev s)))
exception LexHackingError
fun look ((j,x)::r, i) = if i = j then x else look(r, i)
| look ([], i) = raise LexHackingError
fun g {fin=x, trans=i} = {fin=x, trans=look(s,i)}
in Vector.fromList(map g
[{fin = [], trans = 0},
{fin = [(N 2)], trans = 1},
{fin = [(N 2)], trans = 1},
{fin = [], trans = 3},
{fin = [], trans = 3},
{fin = [], trans = 5},
{fin = [], trans = 5},
{fin = [(N 323)], trans = 7},
{fin = [(N 323)], trans = 7},
{fin = [], trans = 9},
{fin = [], trans = 9},
{fin = [], trans = 11},
{fin = [], trans = 11},
{fin = [], trans = 13},
{fin = [], trans = 13},
{fin = [(N 223)], trans = 15},
{fin = [(N 223)], trans = 15},
{fin = [(N 204)], trans = 0},
{fin = [(N 90),(N 185),(N 204)], trans = 18},
{fin = [(N 90),(N 185)], trans = 18},
{fin = [], trans = 20},
{fin = [(N 185)], trans = 21},
{fin = [], trans = 22},
{fin = [(N 185)], trans = 23},
{fin = [], trans = 24},
{fin = [], trans = 25},
{fin = [], trans = 26},
{fin = [], trans = 27},
{fin = [], trans = 28},
{fin = [], trans = 29},
{fin = [], trans = 30},
{fin = [], trans = 31},
{fin = [], trans = 32},
{fin = [], trans = 33},
{fin = [], trans = 34},
{fin = [], trans = 35},
{fin = [], trans = 36},
{fin = [], trans = 37},
{fin = [(N 90)], trans = 38},
{fin = [(N 90),(N 185),(N 204)], trans = 39},
{fin = [(N 90),(N 185)], trans = 40},
{fin = [(N 90),(N 185)], trans = 41},
{fin = [(N 90),(N 185)], trans = 42},
{fin = [(N 90),(N 185)], trans = 43},
{fin = [(N 90),(N 185)], trans = 44},
{fin = [(N 90),(N 185)], trans = 45},
{fin = [(N 90),(N 185)], trans = 46},
{fin = [(N 87),(N 90),(N 185)], trans = 18},
{fin = [(N 90),(N 185)], trans = 48},
{fin = [(N 90),(N 185)], trans = 49},
{fin = [(N 90),(N 185)], trans = 50},
{fin = [(N 90),(N 185)], trans = 51},
{fin = [(N 90),(N 185)], trans = 52},
{fin = [(N 90),(N 185)], trans = 53},
{fin = [(N 90),(N 185)], trans = 54},
{fin = [(N 77),(N 90),(N 185)], trans = 18},
{fin = [(N 90),(N 185),(N 204)], trans = 56},
{fin = [(N 90),(N 185)], trans = 57},
{fin = [(N 90),(N 185)], trans = 58},
{fin = [(N 67),(N 90),(N 185)], trans = 18},
{fin = [(N 90),(N 185),(N 204)], trans = 60},
{fin = [(N 90),(N 185)], trans = 61},
{fin = [(N 90),(N 185)], trans = 62},
{fin = [(N 90),(N 185)], trans = 63},
{fin = [(N 62),(N 90),(N 185)], trans = 18},
{fin = [(N 90),(N 185)], trans = 65},
{fin = [(N 56),(N 90),(N 185)], trans = 18},
{fin = [(N 90),(N 185),(N 204)], trans = 67},
{fin = [(N 52),(N 90),(N 185)], trans = 18},
{fin = [(N 90),(N 185),(N 204)], trans = 69},
{fin = [(N 90),(N 185)], trans = 70},
{fin = [(N 90),(N 185)], trans = 71},
{fin = [(N 90),(N 185)], trans = 72},
{fin = [(N 90),(N 185)], trans = 73},
{fin = [(N 90),(N 185)], trans = 74},
{fin = [(N 49),(N 90),(N 185)], trans = 18},
{fin = [(N 90),(N 185),(N 204)], trans = 76},
{fin = [(N 90),(N 185)], trans = 77},
{fin = [(N 41),(N 90),(N 185)], trans = 18},
{fin = [(N 90),(N 185),(N 204)], trans = 79},
{fin = [(N 90),(N 185)], trans = 80},
{fin = [(N 31),(N 90),(N 185)], trans = 81},
{fin = [(N 90),(N 185)], trans = 82},
{fin = [(N 37),(N 90),(N 185)], trans = 18},
{fin = [(N 90),(N 185),(N 204)], trans = 84},
{fin = [(N 90),(N 185)], trans = 85},
{fin = [(N 23),(N 90),(N 185)], trans = 18},
{fin = [(N 27),(N 90),(N 185)], trans = 18},
{fin = [(N 185),(N 204)], trans = 88},
{fin = [(N 185)], trans = 89},
{fin = [(N 185)], trans = 90},
{fin = [(N 185)], trans = 91},
{fin = [(N 13),(N 185)], trans = 21},
{fin = [(N 19),(N 204)], trans = 0},
{fin = [(N 17),(N 204)], trans = 0},
{fin = [(N 185),(N 204)], trans = 21},
{fin = [(N 204)], trans = 96},
{fin = [(N 185)], trans = 97},
{fin = [], trans = 96},
{fin = [], trans = 99},
{fin = [], trans = 100},
{fin = [], trans = 101},
{fin = [], trans = 102},
{fin = [], trans = 103},
{fin = [], trans = 104},
{fin = [(N 185)], trans = 105},
{fin = [], trans = 106},
{fin = [], trans = 107},
{fin = [], trans = 108},
{fin = [], trans = 109},
{fin = [], trans = 110},
{fin = [], trans = 111},
{fin = [], trans = 112},
{fin = [], trans = 113},
{fin = [], trans = 114},
{fin = [(N 204)], trans = 33},
{fin = [(N 15),(N 204)], trans = 0},
{fin = [(N 204)], trans = 117},
{fin = [(N 202)], trans = 118},
{fin = [], trans = 119},
{fin = [], trans = 120},
{fin = [], trans = 121},
{fin = [], trans = 122},
{fin = [], trans = 123},
{fin = [(N 199)], trans = 123},
{fin = [(N 204)], trans = 35},
{fin = [(N 187),(N 204)], trans = 0},
{fin = [(N 2),(N 204)], trans = 127},
{fin = [(N 2)], trans = 127},
{fin = [(N 7),(N 204)], trans = 129},
{fin = [(N 7)], trans = 0},
{fin = [(N 242)], trans = 0},
{fin = [(N 242)], trans = 132},
{fin = [(N 240)], trans = 0},
{fin = [(N 242)], trans = 134},
{fin = [(N 235)], trans = 0},
{fin = [(N 237)], trans = 0},
{fin = [(N 315)], trans = 0},
{fin = [(N 313),(N 315)], trans = 0},
{fin = [(N 305),(N 313),(N 315)], trans = 139},
{fin = [(N 265)], trans = 0},
{fin = [], trans = 141},
{fin = [], trans = 142},
{fin = [], trans = 143},
{fin = [], trans = 144},
{fin = [(N 285)], trans = 0},
{fin = [(N 262)], trans = 0},
{fin = [(N 259)], trans = 0},
{fin = [(N 256)], trans = 0},
{fin = [(N 253)], trans = 0},
{fin = [(N 250)], trans = 0},
{fin = [(N 247)], trans = 0},
{fin = [], trans = 152},
{fin = [(N 273)], trans = 0},
{fin = [(N 269),(N 273)], trans = 0},
{fin = [(N 291)], trans = 0},
{fin = [], trans = 156},
{fin = [], trans = 157},
{fin = [(N 278)], trans = 0},
{fin = [(N 288)], trans = 0},
{fin = [(N 297)], trans = 160},
{fin = [(N 303)], trans = 161},
{fin = [(N 303)], trans = 0},
{fin = [(N 244),(N 313),(N 315)], trans = 0},
{fin = [(N 310),(N 315)], trans = 164},
{fin = [(N 310)], trans = 0},
{fin = [(N 327)], trans = 0},
{fin = [(N 325),(N 327)], trans = 0},
{fin = [(N 323),(N 327)], trans = 168},
{fin = [(N 323)], trans = 168},
{fin = [(N 320),(N 327)], trans = 170},
{fin = [(N 320)], trans = 0},
{fin = [(N 232)], trans = 0},
{fin = [(N 207),(N 232)], trans = 173},
{fin = [(N 207)], trans = 173},
{fin = [(N 232)], trans = 175},
{fin = [(N 230)], trans = 0},
{fin = [(N 214)], trans = 0},
{fin = [(N 212),(N 214)], trans = 178},
{fin = [(N 212)], trans = 178},
{fin = [(N 209),(N 214)], trans = 0},
{fin = [(N 232)], trans = 181},
{fin = [(N 217),(N 230)], trans = 0},
{fin = [(N 221),(N 232)], trans = 0},
{fin = [(N 232)], trans = 184},
{fin = [(N 221)], trans = 0},
{fin = [], trans = 184},
{fin = [(N 223),(N 232)], trans = 187},
{fin = [(N 223)], trans = 187},
{fin = [(N 223),(N 232)], trans = 189},
{fin = [(N 223),(N 230)], trans = 187},
{fin = [(N 232)], trans = 191},
{fin = [], trans = 192},
{fin = [(N 227)], trans = 0}])
end
structure StartStates =
struct
datatype yystartstate = STARTSTATE of int
(* start state definitions *)
val A = STARTSTATE 3;
val F = STARTSTATE 7;
val INITIAL = STARTSTATE 1;
val L = STARTSTATE 9;
val LL = STARTSTATE 11;
val LLC = STARTSTATE 13;
val LLCQ = STARTSTATE 15;
val S = STARTSTATE 5;
end
type result = UserDeclarations.lexresult
exception LexerError (* raised if illegal leaf action tried *)
end
type int = Int.int
fun makeLexer (yyinput: int -> string) =
let val yygone0:int= ~1
val yyb = ref "\n" (* buffer *)
val yybl: int ref = ref 1 (*buffer length *)
val yybufpos: int ref = ref 1 (* location of next character to use *)
val yygone: int ref = ref yygone0 (* position in file of beginning of buffer *)
val yydone = ref false (* eof found yet? *)
val yybegin: int ref = ref 1 (*Current 'start state' for lexer *)
val YYBEGIN = fn (Internal.StartStates.STARTSTATE x) =>
yybegin := x
fun lex (yyarg as ({source})) =
let fun continue() : Internal.result =
let fun scan (s,AcceptingLeaves : Internal.yyfinstate list list,l,i0: int) =
let fun action (i: int,nil) = raise LexError
| action (i,nil::l) = action (i-1,l)
| action (i,(node::acts)::l) =
case node of
Internal.N yyk =>
(let fun yymktext() = String.substring(!yyb,i0,i-i0)
val yypos: int = i0+ !yygone
fun REJECT() = action(i,acts::l)
open UserDeclarations Internal.StartStates
in (yybufpos := i; case yyk of
(* Application actions *)
13 => (tok (Tokens.PRIM, source, yypos, yypos + 4))
| 15 => (tok (Tokens.COMMA, source, yypos, yypos + 1))
| 17 => (tok (Tokens.SEMICOLON, source, yypos, yypos + 1))
| 185 => let val yytext=yymktext() in tok' (Tokens.FILE, yytext, source, yypos) end
| 187 => (charlist := [""]
; stringStart := Source.getPos (source, yypos)
; YYBEGIN S
; continue ())
| 19 => (tok (Tokens.EQUALOP, source, yypos, yypos + 1))
| 199 => (YYBEGIN L
; commentStart := Source.getPos (source, yypos)
; commentLevel := 1
; continue ())
| 2 => (continue ())
| 202 => (YYBEGIN A
; commentLevel := 1
; commentStart := Source.getPos (source, yypos)
; continue ())
| 204 => (error (source, yypos, yypos + 1, "illegal token") ;
continue ())
| 207 => let val yytext=yymktext() in YYBEGIN LL
; (lineNum := valOf (Int.fromString yytext)
; colNum := 1)
handle Overflow => YYBEGIN A
; continue () end
| 209 => ((* cheat: take n > 0 dots *) continue ())
| 212 => let val yytext=yymktext() in YYBEGIN LLC
; (colNum := valOf (Int.fromString yytext))
handle Overflow => YYBEGIN A
; continue () end
| 214 => (YYBEGIN LLC; continue ()
(* note hack, since ml-lex chokes on the empty string for 0* *))
| 217 => (YYBEGIN INITIAL
; lineDirective (source, NONE, yypos + 2)
; commentLevel := 0; charlist := []; continue ())
| 221 => (YYBEGIN LLCQ; continue ())
| 223 => let val yytext=yymktext() in lineFile := yytext; continue () end
| 227 => (YYBEGIN INITIAL
; lineDirective (source, SOME (!lineFile), yypos + 3)
; commentLevel := 0; charlist := []; continue ())
| 23 => (tok (Tokens.ANN, source, yypos, yypos + 3))
| 230 => (YYBEGIN INITIAL; commentLevel := 0; charlist := []; continue ())
| 232 => (YYBEGIN A; continue ())
| 235 => (inc commentLevel; continue ())
| 237 => (Source.newline (source, yypos) ; continue ())
| 240 => (dec commentLevel
; if 0 = !commentLevel then YYBEGIN INITIAL else ()
; continue ())
| 242 => (continue ())
| 244 => (let
val s = concat (rev (!charlist))
val _ = charlist := nil
fun make (t, v) =
t (v, !stringStart, Source.getPos (source, yypos + 1))
in YYBEGIN INITIAL
; make (Tokens.STRING, s)
end)
| 247 => (addChar #"\a"; continue ())
| 250 => (addChar #"\b"; continue ())
| 253 => (addChar #"\f"; continue ())
| 256 => (addChar #"\n"; continue ())
| 259 => (addChar #"\r"; continue ())
| 262 => (addChar #"\t"; continue ())
| 265 => (addChar #"\v"; continue ())
| 269 => let val yytext=yymktext() in addChar (Char.chr(Char.ord(String.sub(yytext, 2))
-Char.ord #"@"))
; continue () end
| 27 => (tok (Tokens.AND, source, yypos, yypos + 3))
| 273 => (error (source, yypos, yypos + 2,
"illegal control escape; must be one of @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_")
; continue ())
| 278 => let val yytext=yymktext() in let
val x =
Char.ord(String.sub(yytext, 1)) * 100
+ Char.ord(String.sub(yytext, 2)) * 10
+ Char.ord(String.sub(yytext, 3))
- (Char.ord #"0") * 111
in (if x > 255
then stringError (source, yypos,
"illegal ascii escape")
else addChar(Char.chr x);
continue ())
end end
| 285 => let val yytext=yymktext() in let
val x =
StringCvt.scanString
(Pervasive.Int.scan StringCvt.HEX)
(String.substring (yytext, 2, 4))
fun err () =
stringError (source, yypos,
"illegal unicode escape")
in (case x of
SOME x => if x > 255
then err()
else addChar(Char.chr x)
| _ => err())
; continue ()
end end
| 288 => (addString "\""; continue ())
| 291 => (addString "\\"; continue ())
| 297 => (YYBEGIN F; continue ())
| 303 => (Source.newline (source, yypos) ; YYBEGIN F ; continue ())
| 305 => (stringError (source, yypos, "illegal string escape")
; continue ())
| 31 => (tok (Tokens.BAS, source, yypos, yypos + 3))
| 310 => (Source.newline (source, yypos)
; stringError (source, yypos, "unclosed string")
; continue ())
| 313 => let val yytext=yymktext() in addString yytext; continue () end
| 315 => (stringError (source, yypos + 1, "illegal character in string")
; continue ())
| 320 => (Source.newline (source, yypos) ; continue ())
| 323 => (continue ())
| 325 => (YYBEGIN S
; stringStart := Source.getPos (source, yypos)
; continue ())
| 327 => (stringError (source, yypos, "unclosed string")
; continue ())
| 37 => (tok (Tokens.BASIS, source, yypos, yypos + 5))
| 41 => (tok (Tokens.END, source, yypos, yypos + 3))
| 49 => (tok (Tokens.FUNCTOR, source, yypos, yypos + 7))
| 52 => (tok (Tokens.IN, source, yypos, yypos + 2))
| 56 => (tok (Tokens.LET, source, yypos, yypos + 3))
| 62 => (tok (Tokens.LOCAL, source, yypos, yypos + 5))
| 67 => (tok (Tokens.OPEN, source, yypos, yypos + 4))
| 7 => (Source.newline (source, yypos); continue ())
| 77 => (tok (Tokens.SIGNATURE, source, yypos, yypos + 9))
| 87 => (tok (Tokens.STRUCTURE, source, yypos, yypos + 9))
| 90 => let val yytext=yymktext() in tok' (Tokens.ID, yytext, source, yypos) end
| _ => raise Internal.LexerError
) end )
val {fin,trans} = Vector.sub (Internal.tab, s)
val NewAcceptingLeaves = fin::AcceptingLeaves
in if l = !yybl then
if trans = #trans(Vector.sub(Internal.tab,0))
then action(l,NewAcceptingLeaves
) else let val newchars= if !yydone then "" else yyinput 1024
in if (String.size newchars)=0
then (yydone := true;
if (l=i0) then UserDeclarations.eof yyarg
else action(l,NewAcceptingLeaves))
else (if i0=l then yyb := newchars
else yyb := String.substring(!yyb,i0,l-i0)^newchars;
yygone := !yygone+i0;
yybl := String.size (!yyb);
scan (s,AcceptingLeaves,l-i0,0))
end
else let val NewChar = Char.ord (CharVector.sub (!yyb,l))
val NewChar = if NewChar<128 then NewChar else 128
val NewState = Char.ord (CharVector.sub (trans,NewChar))
in if NewState=0 then action(l,NewAcceptingLeaves)
else scan(NewState,NewAcceptingLeaves,l+1,i0)
end
end
(*
val start= if String.substring(!yyb,!yybufpos-1,1)="\n"
then !yybegin+1 else !yybegin
*)
in scan(!yybegin (* start *),nil,!yybufpos,!yybufpos)
end
in continue end
in lex
end
end