hjsmin 0.1.4.7 → 0.2.1
raw patch · 89 files changed
Files
- README.markdown +0/−72
- Readme.md +36/−0
- TODO.txt +0/−91
- Text/Jasmine.hs +0/−54
- Text/Jasmine/Pretty.hs +0/−393
- buildall.sh +0/−5
- hjsmin.cabal +46/−43
- hjsmin.hs +0/−36
- main/hjsmin.hs +79/−0
- runtests.hs +0/−370
- src/Text/Jasmine.hs +52/−0
- test/cli/core/runner +74/−0
- test/cli/empty-input/run +27/−0
- test/cli/minimal-input/run +27/−0
- test/parsingonly/00_f.js +0/−4
- test/parsingonly/01_semi1.js +0/−6
- test/parsingonly/02_semicolon.js +0/−13
- test/parsingonly/02_sm.js +0/−8
- test/parsingonly/03_sm.js +0/−11
- test/parsingonly/04_if.js +0/−3
- test/parsingonly/05_comments_simple.js +0/−10
- test/parsingonly/05_regex.js +0/−24
- test/parsingonly/06_block.js +0/−7
- test/parsingonly/06_callexpr.js +0/−8
- test/parsingonly/06_newexpr.js +0/−4
- test/parsingonly/06_var.js +0/−7
- test/parsingonly/07_expr.js +0/−14
- test/parsingonly/07_expr2.js +0/−2
- test/parsingonly/101_inheritance.js +0/−122
- test/parsingonly/10_switch.js +0/−38
- test/parsingonly/110_perfect.js +0/−39
- test/parsingonly/120_js.js +0/−73
- test/parsingonly/121_jsdefs.js +0/−171
- test/parsingonly/122_jsexec.js +0/−946
- test/parsingonly/122_jsexec2.js +0/−946
- test/parsingonly/123_jsparse.js +0/−997
- test/parsingonly/130_htojs.js +0/−2725
- test/parsingonly/130_htojs2.js +0/−85
- test/parsingonly/130s.js +0/−4
- test/parsingonly/14_labelled_stmts.js +0/−33
- test/parsingonly/15_literals.js +0/−16
- test/parsingonly/16_literals.js +0/−43
- test/parsingonly/1_simple.js +0/−1
- test/parsingonly/20_statements.js +0/−116
- test/parsingonly/25_trycatch.js +0/−52
- test/parsingonly/40_functions.js +0/−31
- test/parsingonly/41_functions.js +0/−1
- test/parsingonly/5_comments.js +0/−21
- test/parsingonly/67_bob.js +0/−68
- test/parsingonly/errorline13.js +0/−13
- test/parsingonly/fn.js +0/−8
- test/pminified/00_f.js +0/−1
- test/pminified/01_semi1.js +0/−1
- test/pminified/02_semicolon.js +0/−2
- test/pminified/02_sm.js +0/−1
- test/pminified/03_sm.js +0/−1
- test/pminified/04_if.js +0/−1
- test/pminified/05_comments_simple.js +0/−1
- test/pminified/05_regex.js +0/−1
- test/pminified/06_block.js +0/−1
- test/pminified/06_callexpr.js +0/−1
- test/pminified/06_newexpr.js +0/−1
- test/pminified/06_var.js +0/−1
- test/pminified/07_expr.js +0/−1
- test/pminified/101_inheritance.js +0/−5
- test/pminified/10_switch.js +0/−2
- test/pminified/110_perfect.js +0/−2
- test/pminified/120_js.js +0/−1
- test/pminified/121_jsdefs.js +0/−1
- test/pminified/122_jsexec.js +0/−15
- test/pminified/122_jsexec2.js +0/−1
- test/pminified/122_jsexec3.js +0/−2
- test/pminified/123_jsparse.js +0/−16
- test/pminified/130_htojs.js +0/−10
- test/pminified/130_htojs2.js +0/−14
- test/pminified/130s.js +0/−2
- test/pminified/14_labelled_stmts.js +0/−1
- test/pminified/15_literals.js +0/−1
- test/pminified/16_literals.js +0/−3
- test/pminified/1_simple.js +0/−1
- test/pminified/20_statements.js +0/−2
- test/pminified/25_trycatch.js +0/−1
- test/pminified/40_functions.js +0/−6
- test/pminified/41_functions.js +0/−2
- test/pminified/5_comments.js +0/−3
- test/pminified/67_bob.js +0/−1
- test/pminified/errorline13.js +0/−2
- test/pminified/fn.js +0/−1
- test/test-cli.hs +57/−0
− README.markdown
@@ -1,72 +0,0 @@-hjsmin-======--[](http://travis-ci.org/alanz/hjsmin)--Haskell implementation of a javascript minifier--It is intended to be used in conjunction with Hamlet, part of Yesod.--As such, much of the structure of the package is shamelessly copied from Hamlet.--See http://github.com/snoyberg/hamlet---How to build---------------Library:--cabal clean && cabal configure && cabal build--Tests:--cabal clean && cabal configure -fbuildtests && cabal build--Running the tests--./dist/build/runtests/runtests--Changes----------0.1.4.7 - remove upper bounds in cabal file--0.1.4.6 - relax upper bound in optparse-applicative--0.1.4.5 - relax upper bound in text to support 1.1- - introduce CLI wrapper for minifying files from the- commandline, courtesy of @CodeBlock--0.1.4.4 - relax upper bound in text to support 1.0--0.1.4.3 - make sure all missing cases are covered--0.1.4.2 - minify octal literals too--0.1.4.1 - Bump upper bound for containers to < 0.6 for the tests as well as the library--0.1.4 - Include test assets in cabal to allow cabal test to pass. Courtesy of @snoyberg--0.1.3 - Update version ranges for GHC 7.6.1, courtesy of @mietek--0.1.2 - More general fix to the space after 'new' keyword, for issue #8 & #9--0.1.1 - Fixed problem with missing space after 'new' keyword, in issue #8.--0.1.0 - Major update to work with language-javascript 0.5.1. All changes should be internal.- Update of build process to make use of Cabal testing support, and Travis CI.--0.0.15 - Fix GHC 7.4.1 compile compatibility. Patch accepted from github.com/luite--0.0.14 - Allow unicode characters in comments--0.0.13 - Error in parsing numbers with zeros before decimal point--0.0.12 - Worked in Michael Snoyman's fix for unicode output--0.0.11 - Worked in language-javascript 0.4.*, with source locations in the AST- Worked in processing of property get/set in object literals-0.0.10 - Removed attoparsec dependency and historical Parse/Token--
+ Readme.md view
@@ -0,0 +1,36 @@+hjsmin+======++[](http://travis-ci.org/erikd/hjsmin)++Haskell implementation of a command line javascript minifier.++The executable generated from this package simply does command line parsing+before handing the off the minification process to the [language-javascript]+package which also does the rendering.+++How to build+------------++ cabal clean && cabal configure && cabal build++Tests+-----++There are currently no tests, because all the heavy lifting is done by+[language-javascript].+++Reporting Bugs+--------------++Bugs like failing to parse certain chunks of Javascript or errors in the+minification process should be reported on the [language-javascript] issue+tracker.++Bugs about failure to handle command line paramters should be reported on the+[hjsmin] issue tracker.++[hjsmin]: https://github.com/erikd/hjsmin+[language-javascript]: https://github.com/erikd/language-javascript
− TODO.txt
@@ -1,91 +0,0 @@-Testing:--The following Lint has a strict parser- http://www.javascriptlint.com/online_lint.php--This one does not- http://www.jslint.com/-------Language reference https://developer.mozilla.org/en/JavaScript/Reference-http://msdn.microsoft.com/en-us/library/ttyab5c8.aspx----- --Look at -- http://dean.edwards.name/download/#packer-- http://code.google.com/p/minify/--Examples of parsers-- JSon parser in Parsec- http://snippets.dzone.com/posts/show/3660--GOLD Parser, using the Javascript.grm from-http://www.devincook.com/GOLDParser/grammars/index.htm--http://oss.org.cn/ossdocs/web/js/js20/formal/parser-grammar.html------------------------------ Generate output using standard pretty print library, so it can be- used with various backends---- Sort out semicolon insertion, as per http://oss.org.cn/ossdocs/web/js/js20/rationale/syntax.html- Also: http://inimino.org/~inimino/blog/javascript_semicolons-- Grammatical Semicolon Insertion-- Semicolons before a closing } and the end of the program are- optional in both JavaScript 1.5 and 2.0. In addition, the- JavaScript 2.0 parser allows semicolons to be omitted before the- else of an if-else statement and before the while of a do-while- statement.-- Line-Break Semicolon Insertion-- If the first through the nth tokens of a JavaScript program form- are grammatically valid but the first through the n+1st tokens are- not and there is a line break between the nth tokens and the n+1st- tokens, then the parser tries to parse the program again after- inserting a VirtualSemicolon token between the nth and the n+1st- tokens.--- remove un-needed semicolons in pretty printer--- put in tests for all cases of elementList---- Look at "in" keyword, as used : if (x in list) {}----------------Integrating language-haskell.--------------------------------Baseline before starting, on my laptop (intel Core2 Duo SU7300)--$ time ./dist/build/runtests/runtests--real 0m1.625s-user 0m1.616s-sys 0m0.016s--Baseline 2010-12-20, after getting all tests to pass at last--real 0m0.209s-user 0m0.196s-sys 0m0.004s--After working in unicode, in language-javascript-0.0.3 [2010-12-28]--real 0m0.236s-user 0m0.224s-sys 0m0.012s----EOF
− Text/Jasmine.hs
@@ -1,54 +0,0 @@-module Text.Jasmine- (- minify- , minifym- , minifyBb- , minifyFile- ) where----import Text.Jasmine.Parse-import Language.JavaScript.Parser (readJs, parse, JSNode(..))-import Text.Jasmine.Pretty-import qualified Blaze.ByteString.Builder as BB-import qualified Data.ByteString.Lazy as LB-import qualified Data.ByteString.Lazy.Char8 as S8-import Data.Text.Lazy (unpack)-import Data.Text.Lazy.Encoding (decodeUtf8With)-import Data.Text.Encoding.Error (lenientDecode)--minifym :: LB.ByteString -> Either String LB.ByteString-minifym s = case parse' s of- Left msg -> Left (show msg)- Right p -> Right $ BB.toLazyByteString $ renderJS p--minifyBb :: LB.ByteString -> Either String BB.Builder-minifyBb s = case parse' s of- Left msg -> Left (show msg)- Right p -> Right (renderJS p)--minify :: LB.ByteString -> LB.ByteString---minify s = BB.toLazyByteString $ renderJS $ readJs s-minify s = BB.toLazyByteString $ renderJS $ readJs (lbToStr s)--_minify' :: LB.ByteString -> BB.Builder-_minify' s = renderJS $ readJs (lbToStr s)--minifyFile :: FilePath -> IO LB.ByteString-minifyFile filename =- do- x <- LB.readFile (filename)- return $ minify x----parse' :: S8.ByteString -> Either ParseError JSNode-parse'- :: S8.ByteString -> Either String JSNode-parse' input = parse (lbToStr input) "src"--lbToStr :: S8.ByteString -> [Char]-lbToStr = unpack . decodeUtf8With lenientDecode--_strToLb :: String -> S8.ByteString-_strToLb str = S8.pack str----- EOF
− Text/Jasmine/Pretty.hs
@@ -1,393 +0,0 @@-module Text.Jasmine.Pretty- (- renderJS- ) where--import Data.Char--- import Data.List-import Data.Monoid (Monoid, mappend, mempty, mconcat)-import Language.JavaScript.Parser (JSNode(..),Node(..),tokenPosnEmpty)-import qualified Blaze.ByteString.Builder as BB-import qualified Blaze.ByteString.Builder.Char.Utf8 as BS-import qualified Data.ByteString.Lazy as LB---- ------------------------------------------------------------------------ Pretty printer stuff via blaze-builder--(<>) :: BB.Builder -> BB.Builder -> BB.Builder-(<>) a b = mappend a b--(<+>) :: BB.Builder -> BB.Builder -> BB.Builder-(<+>) a b = mconcat [a, (text " "), b]--hcat :: (Monoid a) => [a] -> a-hcat xs = mconcat xs--empty :: BB.Builder-empty = mempty--text :: String -> BB.Builder-text s = BS.fromString s--char :: Char -> BB.Builder-char c = BS.fromChar c---- comma :: BB.Builder--- comma = BS.fromChar ','---- punctuate :: a -> [a] -> [a]--- punctuate p xs = intersperse p xs---- -----------------------------------------------------------------------renderJS :: JSNode -> BB.Builder-renderJS (NN node ) = rn node-renderJS (NT node _ _) = rn node--rn :: Node -> BB.Builder---rn (JSEmpty l) = (renderJS l)---- Terminals-rn (JSIdentifier s) = text s-rn (JSDecimal i) = text i-rn (JSOctal o) = text o--rn (JSLiteral "new") = (text "new ")-rn (JSLiteral l) = (text l)--rn (JSHexInteger i) = (text $ show i) -- TODO: need to tweak this-rn (JSStringLiteral s l) = empty <> (char s) <> (text l) <> (char s)-rn (JSRegEx s) = (text s)---- Non Terminals-rn (JSOperator x) = renderJS x-rn (JSExpression xs) = rJS xs-----rn (JSSourceElements xs) = rJS (fixSourceElements $ map fixBlock xs)----rn (JSSourceElementsTop xs)= rJS (fixTop $ map fixBlock $ fixSourceElements xs)-rn (JSSourceElementsTop xs)= rJS (fixTop $ fixSourceElements $ map fixBlock xs)-----rn (JSFunction s p xs) = (text "function") <+> (renderJS s) <> (text "(") <> (rJS p) <> (text ")") <> (renderJS xs)-rn (JSFunction _f s _lb p _rb x) = (text "function") <+> (renderJS s) <> (text "(") <> (rJS p) <> (text ")") <> (renderJS $ fixFnBlock x)---- rn (JSFunctionBody xs) = (text "{") <> (rJS xs) <> (text "}")----rn (JSFunctionExpression [] p xs) = (text "function") <> (text "(") <> (rJS p) <> (text ")") <> (renderJS xs)---rn (JSFunctionExpression s p xs) = (text "function") <+> (rJS s) <> (text "(") <> (rJS p) <> (text ")") <> (renderJS xs)-rn (JSFunctionExpression _f [] _lb p _rb x) = (text "function") <> (text "(") <> (rJS p) <> (text ")") <> (renderJS $ fixFnBlock x)-rn (JSFunctionExpression _f s _lb p _rb x) = (text "function") <+> (rJS s) <> (text "(") <> (rJS p) <> (text ")") <> (renderJS $ fixFnBlock x)----rn (JSArguments xs ) = (text "(") <> (rJSList $ map fixLiterals xs) <> (text ")")-rn (JSArguments _lb xs _rb) = (text "(") <> (rJS $ fixLiterals xs) <> (text ")")--rn (JSBlock lb xs rb) = (rJS lb) <> (rJS xs) <> (rJS rb)----rn (JSIf _i _lb c _rb [(NT (JSLiteral ";") _ _)] []) = (text "if") <> (text "(") <> (renderJS c) <> (text ")")--rn (JSIf _i _lb c _rb t []) = (text "if") <> (text "(") <> (renderJS c) <> (text ")")- <> (rJS $ fixSourceElements $ map fixBlock t)--rn (JSIf _i _lb c _rb t [_e,(NT (JSLiteral ";") _ _)]) = (text "if") <> (text "(") <> (renderJS c) <> (text ")")- <> (rJS $ fixIfBlock t) <> (text "else")-rn (JSIf _i _lb c _rb t [_e,e]) = (text "if") <> (text "(") <> (renderJS c) <> (text ")")- <> (rJS $ fixIfElse $ fixSourceElements t)- <> (text "else") <> (spaceOrBlock $ fixBlock e)-rn (JSIf _i _lb _c _rb _t _xs) = error $ "malformed JSIf, else clause should be either [] or [else,expr]"-----rn (JSMemberDot xs _d y) = (rJS $ fixLiterals xs) <> (text ".") <> (renderJS y)-rn (JSMemberSquare xs _lb x _rb) = (rJS $ fixLiterals xs) <> (text "[") <> (renderJS x) <> (text "]")-rn (JSUnary l _s ) = text l-rn (JSArrayLiteral _lb xs _rb) = (text "[") <> (rJS xs) <> (text "]")--rn (JSBreak _b [] _as) = (text "break") -- <> (renderJS as)-rn (JSBreak _b is _as) = (text "break") <+> (rJS $ fixSourceElements $ map fixFnBlock is) -- <> (renderJS as)--rn (JSCallExpression "()" _os xs _cs) = (rJS xs)-rn (JSCallExpression t _os xs _cs) = (char $ head t) <> (rJS xs) <> (if ((length t) > 1) then (char $ last t) else empty)----- No space between 'case' and string literal. TODO: what about expression in parentheses?---rn (JSCase (JSExpression [JSStringLiteral sepa s]) xs) = (text "case") <> (renderJS (JSStringLiteral sepa s))-rn (JSCase _ca (NN (JSExpression [(NT (JSStringLiteral sepa s) s1 c1)])) _c xs) =- (text "case") <> (renderJS (NT (JSStringLiteral sepa s) s1 c1)) <> (char ':') <> (rJS $ fixSourceElements $ map fixFnBlock xs)--rn (JSCase _ca e _c xs) = (text "case") <+> (renderJS e) <> (char ':') <> (rJS $ fixSourceElements $ map fixFnBlock xs) -- <> (text ";");---rn (JSCatch _c _lb i [] _rb s) = (text "catch") <> (char '(') <> (renderJS i) <> (char ')') <> (renderJS $ fixFnBlock s)-rn (JSCatch _c _lb i c _rb s) = (text "catch") <> (char '(') <> (renderJS i) <>- (text " if ") <> (rJS $ tail c) <> (char ')') <> (renderJS $ fixFnBlock s)--rn (JSContinue _c is _as) = (text "continue") <> (rJS is) -- <> (char ';')-rn (JSDefault _d _c xs) = (text "default") <> (char ':') <> (rJS $ fixSourceElements xs)--rn (JSDoWhile _d s _w _lb e _rb _as) = (text "do") <> (renderJS $ fixFnBlock s) <> (text "while") <> (char '(') <> (renderJS e) <> (char ')') -- <> (renderJS as)-----rn (JSElementList xs) = rJS xs---rn (JSElision xs) = (char ',') <> (rJS xs)-rn (JSElision x) = renderJS x--rn (JSExpressionBinary o e1 _op e2) = (rJS e1) <> (text o) <> (rJS e2)-rn (JSExpressionParen _lp e _rp) = (char '(') <> (renderJS e) <> (char ')')-rn (JSExpressionPostfix o e _op) = (rJS e) <> (text o)-rn (JSExpressionTernary c _q v1 _c v2) = (rJS c) <> (char '?') <> (rJS v1) <> (char ':') <> (rJS v2)-rn (JSFinally _f b) = (text "finally") <> (renderJS $ fixFnBlock b)--rn (JSFor _f _lb e1 _s1 e2 _s2 e3 _rb s) = (text "for") <> (char '(') <> (rJS e1) <> (char ';')- <> (rJS e2) <> (char ';') <> (rJS e3) <> (char ')') <> (renderJS $ fixBlock s)--rn (JSForIn _f _lb e1 _i e2 _rb s) = (text "for") <> (char '(') <> (rJS e1) <+> (text "in")- <+> (renderJS e2) <> (char ')') <> (renderJS $ fixBlock s)-rn (JSForVar _f _lb _v e1 _s1 e2 _s3 e3 _rb s) = (text "for") <> (char '(') <> (text "var") <+> (rJS e1) <> (char ';')- <> (rJS e2) <> (char ';') <> (rJS e3) <> (char ')') <> (renderJS $ fixBlock s)-rn (JSForVarIn _f _lb _v e1 _i e2 _rb s) = (text "for") <> (char '(') <> (text "var") <+> (renderJS e1) <+> (text "in")- <+> (renderJS e2) <> (char ')') <> (renderJS $ fixBlock s)--rn (JSLabelled l _c v) = (renderJS l) <> (text ":") <> (rJS $ fixSourceElements [fixBlock v])--rn (JSObjectLiteral _lb xs _rb) = (text "{") <> (rJS xs) <> (text "}")-rn (JSPropertyAccessor s n _lb1 ps _rb1 b) = (renderJS s) <+> (renderJS n) <> (char '(') <> (rJS ps) <> (text ")") <> (renderJS $ fixFnBlock b)-rn (JSPropertyNameandValue n _c vs) = (renderJS n) <> (text ":") <> (rJS vs)--rn (JSReturn _r [] _as) = (text "return")-rn (JSReturn _r [(NT (JSLiteral ";") _ _)] _as) = (text "return;++foobar+will_never_happen++") -- ++AZ++ get rid of this-rn (JSReturn _r xs _as) = (text "return") <> (if (spaceNeeded xs) then (text " ") else (empty)) <> (rJS $ fixSourceElements xs) -- <> (renderJS as)--rn (JSThrow _t e) = (text "throw") <+> (renderJS $ fixBlock e)--rn (JSSwitch _s _lb e _rb x) = (text "switch") <> (char '(') <> (renderJS e) <> (char ')') <> (renderJS $ fixFnBlock x)--rn (JSTry _t e xs) = (text "try") <> (renderJS $ fixFnBlock e) <> (rJS xs)--rn (JSVarDecl i []) = (renderJS i)-rn (JSVarDecl i xs) = (renderJS i) <> (rJS xs)--rn (JSVariables kw xs _as) = (renderJS kw) <+> (rJS xs)--rn (JSWhile _w _lb e _rb (NT (JSLiteral ";") _ _)) = (text "while") <> (char '(') <> (renderJS e) <> (char ')') -- <> (renderJS s)-rn (JSWhile _w _lb e _rb s) = (text "while") <> (char '(') <> (renderJS e) <> (char ')') <> (renderJS $ fixFnBlock s)--rn (JSWith _w _lb e _rb s) = (text "with") <> (char '(') <> (renderJS e) <> (char ')') <> (rJS s)---- Helper functions-rJS :: [JSNode] -> BB.Builder-rJS xs = hcat $ map renderJS xs---- commaList :: [JSNode] -> BB.Builder--- commaList [] = empty--- commaList xs = rJS xs--extractNode :: JSNode -> Node-extractNode (NT x _ _) = x-extractNode (NN x ) = x----commaListList :: [[JSNode]] -> BB.Builder---commaListList xs = (hcat $ punctuate comma $ map rJS xs)---- toDoc :: [JSNode] -> [BB.Builder]--- toDoc xs = map renderJS xs--spaceOrBlock :: JSNode -> BB.Builder-spaceOrBlock (NN (JSBlock lb xs rb)) = rn (JSBlock lb xs rb)---spaceOrBlock (NN (JSStatementBlock lb xs rb)) = rn (JSStatementBlock lb xs rb)-spaceOrBlock x = (text " ") <> (renderJS x)---{---TODO: Collapse this into JSLiteral ";"--JSStatementBlock (JSStatementList [JSStatementBlock (JSStatementList [])])--}--- ------------------------------------------------------------------ Utility stuff---fixTop :: [JSNode] -> [JSNode]-fixTop [] = []-fixTop xs = if (n == (JSLiteral ";")) then (init xs) else (xs)- where- n = extractNode $ last xs--{---- The "new" literal always need a space after it-fixNew :: [JSNode] -> [JSNode]-fixNew [] = []-fixNew ((NT (JSLiteral "new") p cs):xs) = (NT (JSLiteral "new ") p cs) : fixNew xs-fixNew (x :xs) = x : fixNew xs--}---- Fix semicolons in output of sourceelements and statementlist--fixSourceElements :: [JSNode] -> [JSNode]-fixSourceElements xs = fixSemis $ myFix xs--myFix :: [JSNode] -> [JSNode]-myFix [] = []----- Sort out empty IF statements---myFix ((NN (JSIf i lb c rb (NN (JSStatementBlock _lb (NN (JSStatementList []) ) _rb) ) e)):xs) = (NN (JSIf i lb c rb (NT (JSLiteral "") tokenPosnEmpty []) e) ) : myFix (xs)--myFix [x] = [x]--myFix (x:(NN (JSFunction v1 v2 v3 v4 v5 v6) ):xs) = x : (NT (JSLiteral "\n") tokenPosnEmpty []) : myFix ((NN (JSFunction v1 v2 v3 v4 v5 v6) ) : xs)---- Messy way, but it works, until the 3rd element arrives ..--- TODO: JSStatementBlock. Damn.-myFix ((NN (JSExpression x) ):(NN (JSExpression y) ):xs) = (NN (JSExpression x) ):(NT (JSLiteral ";") tokenPosnEmpty []):myFix ((NN (JSExpression y) ):xs)-myFix ((NN (JSExpression x) ):(NN (JSBlock l y r) ):xs) = (NN (JSExpression x) ):(NT (JSLiteral ";") tokenPosnEmpty []):myFix ((NN (JSBlock l y r) ):xs)-myFix ((NN (JSBlock x1 x2 x3) ) :(NN (JSBlock y1 y2 y3) ):xs) = (NN (JSBlock x1 x2 x3) ) :(NT (JSLiteral ";") tokenPosnEmpty []):myFix ((NN (JSBlock y1 y2 y3) ):xs)-myFix ((NN (JSBlock x1 x2 x3) ) :(NN (JSExpression y) ):xs) = (NN (JSBlock x1 x2 x3) ) :(NT (JSLiteral ";") tokenPosnEmpty []):myFix ((NN (JSExpression y) ):xs)---- myFix ((NN (JSExpression x) ):(NN (JSStatementBlock y1 y2 y3) ):xs) =--- (NN (JSExpression x) ):(NT (JSLiteral ";") tokenPosnEmpty []):myFix ((NN (JSStatementBlock y1 y2 y3) ):xs)--- myFix ((NN (JSStatementBlock x1 x2 x3) ) :(NN (JSStatementBlock y1 y2 y3) ):xs) =--- (NN (JSStatementBlock x1 x2 x3) ) :(NT (JSLiteral ";") tokenPosnEmpty []):myFix ((NN (JSStatementBlock y1 y2 y3) ):xs)--- myFix ((NN (JSStatementBlock x1 x2 x3) ) :(NN (JSExpression y) ):xs) =--- (NN (JSStatementBlock x1 x2 x3) ) :(NT (JSLiteral ";") tokenPosnEmpty []):myFix ((NN (JSExpression y) ):xs)---- Merge adjacent variable declarations, but only of the same type-myFix ((NN (JSVariables t1 x1s a1) ):(NT (JSLiteral l) s2 c2):(NN (JSVariables t2 x2s a2) ):xs)- | extractNode t1 == extractNode t2 = myFix ((NN (JSVariables t1 (x1s++[(NT (JSLiteral ",") tokenPosnEmpty [])]++x2s) a2) ):xs)- | otherwise = (NN (JSVariables t1 x1s a1) ):myFix ((NT (JSLiteral l) s2 c2):(NN (JSVariables t2 x2s a2) ):xs)--myFix ((NN (JSVariables t1 x1s a1) ):(NN (JSVariables t2 x2s a2) ):xs)- | extractNode t1 == extractNode t2 = myFix ((NN (JSVariables t1 (x1s++[(NT (JSLiteral ",") tokenPosnEmpty [])]++x2s) a2) ):xs)- | otherwise = (NN (JSVariables t1 x1s a1) ):myFix ((NN (JSVariables t2 x2s a2) ):xs)---- Merge adjacent semi colons-myFix ((NT (JSLiteral ";") s1 c1):(NT (JSLiteral ";") _s2 _c2):xs) = myFix ((NT (JSLiteral ";") s1 c1):xs)-myFix ((NT (JSLiteral ";") s1 c1):(NT (JSLiteral "" ) _s2 _c2):xs) = myFix ((NT (JSLiteral "" ) s1 c1):xs)---myFix (x:xs) = x : myFix xs---- Merge strings split over lines and using "+"-fixLiterals :: [JSNode] -> [JSNode]-fixLiterals [] = []--- Old version-fixLiterals ((NT (JSStringLiteral d1 s1) ss1 c1):(NN (JSExpressionBinary "+" [(NT (JSStringLiteral d2 s2) ss2 c2)] op r) ):xs)- | d1 == d2 = fixLiterals ((NT (JSStringLiteral d1 (s1++s2)) ss1 c1):(r++xs))- | otherwise = (NT (JSStringLiteral d1 s1) ss1 c1):fixLiterals ((NN (JSExpressionBinary "+" [(NT (JSStringLiteral d2 s2) ss2 c2)] op r) ):xs)--fixLiterals ((NN (JSExpressionBinary "+" [(NT (JSStringLiteral d1 s1) ss2 c2)] o1 [(NT (JSStringLiteral d2 s2) ss3 c3)]) ):xs)- | d1 == d2 = fixLiterals ((NT (JSStringLiteral d1 (s1++s2)) ss2 c2):xs)- | otherwise = (NN (JSExpressionBinary "+" [(NT (JSStringLiteral d1 s1) ss2 c2)] o1 [(NT (JSStringLiteral d2 s2) ss3 c3)]) ):fixLiterals xs--fixLiterals (x:xs) = x:fixLiterals xs---- Sort out Semicolons-fixSemis :: [JSNode] -> [JSNode]---fixSemis xs = fixSemis' $ filter (\x -> x /= JSLiteral ";" && x /= JSLiteral "") xs-fixSemis xs = fixSemis' $ stripSemis xs--stripSemis :: [JSNode] -> [JSNode]-stripSemis xs = filter (\x -> (extractNode x) /= JSLiteral ";" && (extractNode x) /= JSLiteral "") xs--fixSemis' :: [JSNode] -> [JSNode]-fixSemis' [] = []-fixSemis' [(NN (JSContinue c [(NT (JSLiteral ";") _ _)] as) )] = [(NN (JSContinue c [] as) )]-fixSemis' [x] = [x]--fixSemis' ((NN (JSIf i lb c rb [NN (JSBlock [NT (JSLiteral "{") p1 cs1] [] [NT (JSLiteral "}") p2 cs2])] []) ):xs) =- (NN (JSIf i lb c rb [NN (JSBlock [NT (JSLiteral "{") p1 cs1] [] [NT (JSLiteral "}") p2 cs2])] []) ):(fixSemis' xs)--fixSemis' ((NN (JSIf i lb c rb [(NT (JSLiteral ";") s1 c1)] []) ):xs) =- (NN (JSIf i lb c rb [(NT (JSLiteral ";") s1 c1)] []) ):(fixSemis' xs)--fixSemis' ((NN (JSIf i lb c rb [(NN (JSReturn r [(NT (JSLiteral ";") s1 c1)] as) )] e) ):xs) =- (NN (JSIf i lb c rb [(NN (JSReturn r [(NT (JSLiteral ";") s1 c1)] as) )] e) ):(fixSemis' xs)--fixSemis' ((NN (JSIf i lb c rb [(NN (JSContinue co [(NT (JSLiteral ";") s1 c1)] as) )] e) ):xs) =- (NN (JSIf i lb c rb [(NN (JSContinue co [(NT (JSLiteral ";") s1 c1)] as) )] e) ):(fixSemis' xs)--fixSemis' (x:(NT (JSLiteral "\n") s1 c1):xs) = x:(NT (JSLiteral "\n") s1 c1):(fixSemis' xs) -- TODO: is this needed?--fixSemis' ((NN (JSCase ca1 e1 c1 [] ) ):(NN (JSCase ca2 e2 c2 x) ):xs) =- (NN (JSCase ca1 e1 c1 [] ) ):fixSemis' ((NN (JSCase ca2 e2 c2 x) ):xs)--fixSemis' (x:xs) = x:(NT (JSLiteral ";") tokenPosnEmpty []):fixSemis' xs--fixIfElse :: [JSNode] -> [JSNode]-fixIfElse [(NN (JSBlock lb xs rb))] = [(NN (JSBlock lb (fixSourceElements xs) rb))]-fixIfElse [x] = [(NN (JSBlock [(NT (JSLiteral "{") tokenPosnEmpty [])] (fixSourceElements [x]) [(NT (JSLiteral "}") tokenPosnEmpty [])]))]-fixIfElse xs = xs--fixFnBlock :: JSNode -> JSNode--- fixFnBlock (NN (JSBlock lb [] rb)) = (NT (JSLiteral ";") tokenPosnEmpty [])-fixFnBlock (NN (JSBlock lb xs rb)) = (NN (JSBlock lb (fixSourceElements xs) rb))-fixFnBlock x = fixBlock x--fixIfBlock :: [JSNode] -> [JSNode]-fixIfBlock xs =- case xs' of- [(NT (JSLiteral ";") _p _cs)] -> [] -- rely on fixSemis to add this again [(NT (JSLiteral ";") p cs)]- [(NN (JSBlock _lb [] _rb))] -> [] -- rely on fixSemis to add this again [(NT (JSLiteral ";") tokenPosnEmpty [])]- -- [(NN (JSBlock lb [y] rb))] -> [fixBlock y]- [(NN (JSBlock lb x2s rb))] -> [(NN (JSBlock lb ((fixSourceElements $ map fixBlock x2s)) rb))]- [x] -> fixSourceElements [x]- [] -> []- xs'' -> fixSourceElements xs''- where xs' = stripSemis xs---- Remove extraneous braces around blocks-fixBlock :: JSNode -> JSNode--fixBlock (NN (JSBlock lb xs rb)) =- case xs' of- [] -> (NT (JSLiteral ";") tokenPosnEmpty [])- -- [(NN (JSExpression [y]))] -> fixBlock (NN (JSExpression [y]))- -- [(NN (JSExpression xs))] -> (NN (JSBlock lb (fixSourceElements $ map fixBlock xs') rb))- [x] -> fixBlock x- _ -> (NN (JSBlock lb (fixSourceElements $ map fixBlock xs') rb))- where xs' = stripSemis xs--fixBlock x = x---- A space is needed if this expression starts with an identifier etc, but not if with a '('-spaceNeeded :: [JSNode] -> Bool-spaceNeeded xs =- let- -- str = show $ rJS xs- str = LB.unpack $ BB.toLazyByteString $ rJS xs- in- head str /= (fromIntegral $ ord '(')---- ------------------------------------------------------------------------ Test stuff--_r :: JSNode -> [Char]-_r js = map (\x -> chr (fromIntegral x)) $ LB.unpack $ BB.toLazyByteString $ renderJS js----readJs "{{{}}}"-_case0 :: JSNode-_case0 = undefined ------ readJs "if(x){}{a=2}"-_case1 :: JSNode-_case1 = undefined ----_case11 :: [JSNode]-_case11 = undefined -- [NN (JSIf (NN (JSExpression [NS (JSIdentifier "x") (SpanPoint {span_filename = "", span_row = 1, span_column = 4})]) (SpanPoint {span_filename = "", span_row = 1, span_column = 4})) (NN (JSStatementBlock (NN (JSStatementList []) (SpanPoint {span_filename = "", span_row = 1, span_column = 6}))) (SpanPoint {span_filename = "", span_row = 1, span_column = 6}))) (SpanPoint {span_filename = "", span_row = 1, span_column = 1}),NN (JSStatementBlock (NN (JSStatementList [NS (JSExpression [NS (JSIdentifier "a") (SpanPoint {span_filename = "", span_row = 1, span_column = 9}),NS (JSOperator "=") (SpanPoint {span_filename = "", span_row = 1, span_column = 10}),NS (JSDecimal "2") (SpanPoint {span_filename = "", span_row = 1, span_column = 11})]) (SpanPoint {span_filename = "", span_row = 1, span_column = 9})]) (SpanPoint {span_filename = "", span_row = 1, span_column = 9}))) (SpanPoint {span_filename = "", span_row = 1, span_column = 8})]--_case12 :: JSNode-_case12 = undefined -- (NN (JSIf (NN (JSExpression [NS (JSIdentifier "x") (SpanPoint {span_filename = "", span_row = 1, span_column = 4})]) (SpanPoint {span_filename = "", span_row = 1, span_column = 4})) (NT (JSLiteral "") (SpanPoint {span_filename = "", span_row = 1, span_column = 6}))) (SpanPoint {span_filename = "", span_row = 1, span_column = 6}))---- readJs "bob:if(x){}\n{a}"-_case2 :: JSNode-_case2 = undefined -- NS (JSSourceElementsTop [NS (JSLabelled (NS (JSIdentifier "bob") (SpanPoint {span_filename = "", span_row = 1, span_column = 1})) (NN (JSIf (NN (JSExpression [NS (JSIdentifier "x") (SpanPoint {span_filename = "", span_row = 1, span_column = 8})]) (SpanPoint {span_filename = "", span_row = 1, span_column = 8})) (NN (JSStatementBlock (NN (JSStatementList []) (SpanPoint {span_filename = "", span_row = 1, span_column = 10}))) (SpanPoint {span_filename = "", span_row = 1, span_column = 10}))) (SpanPoint {span_filename = "", span_row = 1, span_column = 5}))) (SpanPoint {span_filename = "", span_row = 1, span_column = 1}),NN (JSStatementBlock (NN (JSStatementList [NS (JSExpression [NS (JSIdentifier "a") (SpanPoint {span_filename = "", span_row = 2, span_column = 2})]) (SpanPoint {span_filename = "", span_row = 2, span_column = 2})]) (SpanPoint {span_filename = "", span_row = 2, span_column = 2}))) (SpanPoint {span_filename = "", span_row = 2, span_column = 1})]) (SpanPoint {span_filename = "", span_row = 1, span_column = 1})---- readJs "switch(i){case 1:1;case 2:2}"---- EOF-
− buildall.sh
@@ -1,5 +0,0 @@-#!/bin/sh--# do a clean build of all, including the tests-#cabal clean && cabal configure -fbuildtests && cabal build && cabal haddock-cabal clean && cabal configure --enable-tests && cabal build && cabal test && cabal haddock
hjsmin.cabal view
@@ -1,66 +1,69 @@ name: hjsmin-version: 0.1.4.7+version: 0.2.1 license: BSD3 license-file: LICENSE author: Alan Zimmerman <alan.zimm@gmail.com>-maintainer: Alan Zimmerman <alan.zimm@gmail.com>+maintainer: Erik de Castro Lopo <erikd@mega-nerd.com> synopsis: Haskell implementation of a javascript minifier description: Reduces size of javascript files by stripping out extraneous whitespace and other syntactic elements, without changing the semantics. category: Web stability: unstable-cabal-version: >= 1.9.2+cabal-version: >= 1.10 build-type: Simple-homepage: http://github.com/alanz/hjsmin-bug-reports: http://github.com/alanz/hjsmin/issues+homepage: http://github.com/erikd/hjsmin+bug-reports: http://github.com/erikd/hjsmin/issues Extra-source-files:- TODO.txt- , README.markdown- , buildall.sh- , test/pminified/*.js- , test/parsingonly/*.js+ Readme.md+ test/cli/core/runner+ test/cli/empty-input/run+ test/cli/minimal-input/run library- build-depends: base >= 4- , bytestring >= 0.9- , blaze-builder >= 0.2- , text >= 0.8- , containers >= 0.2- , language-javascript >= 0.5.1- exposed-modules: Text.Jasmine- other-modules: Text.Jasmine.Pretty- ghc-options: -Wall+ default-language: Haskell2010+ ghc-options: -Wall+ hs-source-dirs: src -executable hjsmin- main-is: hjsmin.hs+ exposed-modules: Text.Jasmine + build-depends: base >= 4.9 && < 5+ , bytestring >= 0.11+ , language-javascript >= 0.6 && < 0.8+ , text >= 2+++executable hjsmin+ default-language: Haskell2010 ghc-options: -Wall -threaded- build-depends: base >= 4 && < 5- , bytestring >= 0.9- , blaze-builder >= 0.2- , text >= 0.8- , containers >= 0.2- , language-javascript >= 0.5.1- , optparse-applicative >= 0.7+ hs-source-dirs: src main+ main-is: hjsmin.hs -Test-Suite test-hjsmin- Type: exitcode-stdio-1.0- Main-is: runtests.hs- build-depends: Cabal >= 1.9.2- , QuickCheck >= 2- , HUnit- , test-framework- , test-framework-hunit- , base >= 4 && < 5- , bytestring >= 0.9- , blaze-builder >= 0.2- , text >= 0.8- , containers >= 0.2- , language-javascript >= 0.5.4+ -- Need this here because the library and the executable have the same name.+ other-modules: Text.Jasmine + build-depends: base+ , bytestring+ , language-javascript+ , optparse-applicative >= 0.7+ , text++test-suite test-cli+ type: exitcode-stdio-1.0+ ghc-options: -Wall -fwarn-tabs+ default-language: Haskell2010+ hs-source-dirs: test+ main-is: test-cli.hs++ build-depends: base+ , directory+ , extra+ , filepath+ , process+ , unix+ source-repository head type: git- location: git://github.com/alanz/hjsmin.git+ location: https://github.com/erikd/hjsmin.git
− hjsmin.hs
@@ -1,36 +0,0 @@-module Main where--import qualified Data.ByteString.Lazy as B-import qualified Data.ByteString.Lazy.Char8 as C8-import Options.Applicative-import Text.Jasmine--data Options = Options {- inputFile :: String- , outputFile :: Maybe String- }--options :: Parser Options-options = Options - <$> argument str (metavar "INPUT_FILE"- <> help "The unminified, original JavaScript file")- <*> optional (- strOption (long "output-file"- <> short 'o'- <> metavar "OUTPUT_FILE"- <> help "The minified output file. Default: stdout"))--main :: IO ()-main = execParser opts >>= minify'- where- opts = info (helper <*> options)- ( fullDesc- <> progDesc "Minify JavaScript files."- <> header "hjsmin - a simple command-line interface to the 'hjsmin' library" )--minify' :: Options -> IO ()-minify' o = do- minified <- minifyFile (inputFile o)- case outputFile o of- Nothing -> C8.putStrLn $ minified- Just f -> B.writeFile f minified
+ main/hjsmin.hs view
@@ -0,0 +1,79 @@+{-# LANGUAGE CPP #-}++#include "cabal_macros.h"++import qualified Data.ByteString.Lazy.Char8 as LBS+import Options.Applicative (Parser, ParserInfo, ParserPrefs)+import qualified Options.Applicative as Opt+import Text.Jasmine (minify)++import System.IO (hPutStrLn, stderr)+import System.Exit (exitFailure)++data Command+ = Process FilePath (Maybe FilePath)++main :: IO ()+main =+ Opt.customExecParser p opts >>= processFile+ where+ opts :: ParserInfo Command+ opts = Opt.info (Opt.helper <*> pVersion <*> pProcess)+ ( Opt.fullDesc+ <> Opt.header "hjsmin - Haskell implementation of a Javascript and JSON minifier"+ )++ p :: ParserPrefs+ p = Opt.prefs Opt.showHelpOnEmpty++pVersion :: Parser (a -> a)+pVersion =+ Opt.infoOption versionString+ ( Opt.long "version"+ <> Opt.short 'v'+ <> Opt.help "Print the version and exit"+ )++pProcess :: Parser Command+pProcess =+ Process <$> pInputFile <*> pMaybeOutputFile+ where+ pInputFile =+ Opt.strOption+ ( Opt.long "input"+ <> Opt.short 'i'+ <> Opt.metavar "INPUT_FILE"+ <> Opt.help "The original JavaScript file"+ )++ pMaybeOutputFile =+ Opt.optional $ Opt.strOption+ ( Opt.long "output"+ <> Opt.short 'o'+ <> Opt.metavar "OUTPUT_FILE"+ <> Opt.help "The minified output file. Default: stdout"+ )+++processFile :: Command -> IO ()+processFile (Process inputFile outputFile) = do+ lbs <- LBS.readFile inputFile+ if LBS.null lbs+ then emptyFileError+ else do+ let minified = minify lbs+ case outputFile of+ Nothing -> LBS.putStrLn minified+ Just f -> LBS.writeFile f minified+ where+ emptyFileError = do+ hPutStrLn stderr $ "Error: input file '" ++ inputFile ++ "' is empty."+ exitFailure+++versionString :: String+versionString =+ concat+ [ "hjsmin version ", VERSION_hjsmin+ , " (using language-javascript version ", VERSION_language_javascript, ")"+ ]
− runtests.hs
@@ -1,370 +0,0 @@-module Main where--import Test.Framework (defaultMain, testGroup, Test)-import Test.Framework.Providers.HUnit-import Test.HUnit hiding (Test)--import Data.Char-import Text.Jasmine-import Language.JavaScript.Parser-import Text.Jasmine.Pretty-import qualified Data.ByteString.Lazy as LB-import qualified Data.Text as T-import qualified Data.Text.Encoding as E--main :: IO ()-main = defaultMain [testSuite,testSuiteMin,testSuiteFiles,testSuiteFilesUnminified]--testSuite :: Test-testSuite = testGroup "Text.Jasmine.Parse"- [- testCase "helloWorld" caseHelloWorld- , testCase "helloWorld2" caseHelloWorld2- , testCase "simpleAssignment" caseSimpleAssignment- , testCase "emptyFor" caseEmptyFor- , testCase "fullFor" caseFullFor- , testCase "forVarFull" caseForVarFull- , testCase "ifelse1" caseIfElse1- , testCase "ifelse2" caseIfElse2- , testCase "0_f.js" case0_f- , testCase "01_semi1.js" case01_semi1- , testCase "min_100_animals" case_min_100_animals- , testCase "mergeStrings" caseMergeStrings- , testCase "TrailingCommas" caseTrailingCommas- , testCase "GetSet" caseGetSet- , testCase "Unicode" caseUnicode- , testCase "Issue3" caseIssue3- , testCase "Issue4" caseIssue4- , testCase "Switch1" caseSwitch1- , testCase "If1" caseIf1- , testCase "If2" caseIf2- , testCase "If3" caseIf3- , testCase "BootstrapDropdown" caseBootstrapDropdown- , testCase "Issue8" caseIssue8- , testCase "Issue9" caseIssue9- , testCase "Issue14" caseIssue14- ]--testSuiteMin :: Test-testSuiteMin = testGroup "Text.Jasmine.Pretty Min"- [ testCase "helloWorld" caseMinHelloWorld- , testCase "helloWorld2" caseMinHelloWorld2- , testCase "simpleAssignment" caseMinSimpleAssignment- , testCase "ifelse1" caseMinIfElse1- , testCase "ifelse2" caseMinIfElse2- , testCase "0_f.js" caseMin0_f- , testCase "01_semi1.js" caseMin01_semi1- , testCase "min_100_animals" caseMin_min_100_animals- , testCase "minNestedSquare" caseMinNestedSquare- , testCase "minMergeStrings" caseMinMergeStrings- , testCase "EitherLeft" caseEitherLeft- , testCase "EitherRight" caseEitherRight- , testCase "TrailingCommas" caseMinTrailingCommas- , testCase "GetSet" caseMinGetSet- , testCase "Unicode" caseMinUnicode- , testCase "MinIssue3" caseMinIssue3- , testCase "MinIssue4" caseMinIssue4- , testCase "MinSwitch1" caseMinSwitch1- , testCase "MinIf1" caseMinIf1- , testCase "MinIf2" caseMinIf2- , testCase "MinIf3" caseMinIf3- , testCase "MinBootstrapDropdown" caseMinBootstrapDropdown- , testCase "MinIssue8" caseMinIssue8- , testCase "MinIssue9" caseMinIssue9- , testCase "MinIssue14" caseMinIssue14-- ]--testSuiteFiles :: Test-testSuiteFiles = testGroup "Text.Jasmine.Pretty files"- [ testCase "00_f.js" (testFile "./test/pminified/00_f.js")- , testCase "01_semi1.js" (testFile "./test/pminified/01_semi1.js")- , testCase "02_sm.js" (testFile "./test/pminified/02_sm.js")- , testCase "03_sm.js" (testFile "./test/pminified/03_sm.js")- , testCase "04_if.js" (testFile "./test/pminified/04_if.js")- , testCase "05_comments_simple.js" (testFile "./test/pminified/05_comments_simple.js")- , testCase "05_regex.js" (testFile "./test/pminified/05_regex.js")- , testCase "06_callexpr.js" (testFile "./test/pminified/06_callexpr.js")- , testCase "06_newexpr.js" (testFile "./test/pminified/06_newexpr.js")- , testCase "06_var.js" (testFile "./test/pminified/06_var.js")- , testCase "07_expr.js" (testFile "./test/pminified/07_expr.js")- , testCase "10_switch.js" (testFile "./test/pminified/10_switch.js")- , testCase "14_labelled_stmts.js" (testFile "./test/pminified/14_labelled_stmts.js")- , testCase "15_literals.js" (testFile "./test/pminified/15_literals.js")- , testCase "16_literals.js" (testFile "./test/pminified/16_literals.js")- , testCase "20_statements.js" (testFile "./test/pminified/20_statements.js")- , testCase "25_trycatch.js" (testFile "./test/pminified/25_trycatch.js")- , testCase "40_functions.js" (testFile "./test/pminified/40_functions.js")- , testCase "67_bob.js" (testFile "./test/pminified/67_bob.js")- , testCase "110_perfect.js" (testFile "./test/pminified/110_perfect.js")- , testCase "120_js.js" (testFile "./test/pminified/120_js.js")- , testCase "121_jsdefs.js" (testFile "./test/pminified/121_jsdefs.js")- , testCase "122_jsexec.js" (testFile "./test/pminified/122_jsexec.js")- , testCase "122_jsexec2.js" (testFile "./test/pminified/122_jsexec2.js")- , testCase "122_jsexec3.js" (testFile "./test/pminified/122_jsexec3.js")- -- , testCase "123_jsparse.js" (testFile "./test/pminified/123_jsparse.js")- -- TODO: something strange here, assigning code block to variable?- -- See http://msdn.microsoft.com/en-us/library/77kz8hy0.aspx, get/set keywords for object accessors-- --, testCase "130_htojs2.js" (testFile "./test/parsingonly/130_htojs2.js")- --, testCase "" (testFile "./test/pminified/")- ]--testSuiteFilesUnminified :: Test-testSuiteFilesUnminified = testGroup "Text.Jasmine.Pretty filesUnminified"- [ testCase "00_f.js" (testFileUnminified "00_f.js")- , testCase "01_semi1.js" (testFileUnminified "01_semi1.js")- , testCase "02_sm.js" (testFileUnminified "02_sm.js")- , testCase "03_sm.js" (testFileUnminified "03_sm.js")- , testCase "04_if.js" (testFileUnminified "04_if.js")- , testCase "05_comments_simple.js" (testFileUnminified "05_comments_simple.js")- , testCase "05_regex.js" (testFileUnminified "05_regex.js")- , testCase "06_callexpr.js" (testFileUnminified "06_callexpr.js")- , testCase "06_newexpr.js" (testFileUnminified "06_newexpr.js")- , testCase "06_var.js" (testFileUnminified "06_var.js")- , testCase "07_expr.js" (testFileUnminified "07_expr.js")- , testCase "10_switch.js" (testFileUnminified "10_switch.js")- , testCase "14_labelled_stmts.js" (testFileUnminified "14_labelled_stmts.js")- , testCase "15_literals.js" (testFileUnminified "15_literals.js")- , testCase "16_literals.js" (testFileUnminified "16_literals.js")- , testCase "20_statements.js" (testFileUnminified "20_statements.js")- , testCase "25_trycatch.js" (testFileUnminified "25_trycatch.js")- , testCase "40_functions.js" (testFileUnminified "40_functions.js")- , testCase "67_bob.js" (testFileUnminified "67_bob.js")- , testCase "110_perfect.js" (testFileUnminified "110_perfect.js")- , testCase "120_js.js" (testFileUnminified "120_js.js")- , testCase "121_jsdefs.js" (testFileUnminified "121_jsdefs.js")- , testCase "122_jsexec.js" (testFileUnminified "122_jsexec.js")-- --, testCase "122_jsexec2.js" (testFileUnminified "122_jsexec2.js")- ]--srcHelloWorld = "function Hello(a) {}"-caseHelloWorld =- "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"Hello\") [JSIdentifier \"a\"] (JSBlock ([])),JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcHelloWorld)-caseMinHelloWorld =- -- "function Hello(a){}" @=? (minify (U.fromString srcHelloWorld))- testMinify "function Hello(a){}" srcHelloWorld--srcHelloWorld2 = "function Hello(a) {b=1}"-caseHelloWorld2 =- "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"Hello\") [JSIdentifier \"a\"] (JSBlock ([JSExpression [JSIdentifier \"b\",JSOperator JSLiteral \"=\",JSDecimal \"1\"]])),JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcHelloWorld2)-caseMinHelloWorld2 =- -- "function Hello(a){b=1}" @=? (minify (U.fromString srcHelloWorld2))- testMinify "function Hello(a){b=1}" srcHelloWorld2--srcSimpleAssignment = "a=1;"-caseSimpleAssignment =- "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"a\",JSOperator JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \";\",JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcSimpleAssignment)-caseMinSimpleAssignment =- testMinify "a=1" srcSimpleAssignment--srcEmptyFor = "for (i = 0;;){}"-caseEmptyFor =- "Right (JSSourceElementsTop [JSFor [JSExpression [JSIdentifier \"i\",JSOperator JSLiteral \"=\",JSDecimal \"0\"]] [] [] (JSBlock ([])),JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcEmptyFor)-srcFullFor = "for (i = 0;i<10;i++){}"-caseFullFor =- "Right (JSSourceElementsTop [JSFor [JSExpression [JSIdentifier \"i\",JSOperator JSLiteral \"=\",JSDecimal \"0\"]] [JSExpression [JSExpressionBinary \"<\" [JSIdentifier \"i\"] [JSDecimal \"10\"]]] [JSExpression [JSExpressionPostfix \"++\" [JSIdentifier \"i\"]]] (JSBlock ([])),JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcFullFor)--srcForVarFull = "for(var i=0,j=tokens.length;i<j;i++){}"-caseForVarFull =- "Right (JSSourceElementsTop [JSForVar [JSVarDecl (JSIdentifier \"i\") [JSLiteral \"=\",JSDecimal \"0\"],JSLiteral \",\",JSVarDecl (JSIdentifier \"j\") [JSLiteral \"=\",JSMemberDot [JSIdentifier \"tokens\"] (JSIdentifier \"length\")]] [JSExpression [JSExpressionBinary \"<\" [JSIdentifier \"i\"] [JSIdentifier \"j\"]]] [JSExpression [JSExpressionPostfix \"++\" [JSIdentifier \"i\"]]] (JSBlock ([])),JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcForVarFull)--srcIfElse1 = "if(a){b=1}else c=2";-caseIfElse1 =- "Right (JSSourceElementsTop [JSIf (JSExpression [JSIdentifier \"a\"]) ([JSBlock ([JSExpression [JSIdentifier \"b\",JSOperator JSLiteral \"=\",JSDecimal \"1\"]])]) ([JSLiteral \"else\",JSExpression [JSIdentifier \"c\",JSOperator JSLiteral \"=\",JSDecimal \"2\"]]),JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcIfElse1)-caseMinIfElse1 =- testMinify "if(a){b=1}else c=2" srcIfElse1--srcIfElse2 = "if(a){b=1}else {c=2;d=4}";-caseIfElse2 =- "Right (JSSourceElementsTop [JSIf (JSExpression [JSIdentifier \"a\"]) ([JSBlock ([JSExpression [JSIdentifier \"b\",JSOperator JSLiteral \"=\",JSDecimal \"1\"]])]) ([JSLiteral \"else\",JSBlock ([JSExpression [JSIdentifier \"c\",JSOperator JSLiteral \"=\",JSDecimal \"2\"],JSLiteral \";\",JSExpression [JSIdentifier \"d\",JSOperator JSLiteral \"=\",JSDecimal \"4\"]])]),JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcIfElse2)-caseMinIfElse2 =- testMinify "if(a){b=1}else{c=2;d=4}" srcIfElse2--src0_f = "function Hello(a) {ExprArray(1,1);}"-case0_f =- "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"Hello\") [JSIdentifier \"a\"] (JSBlock ([JSExpression [JSIdentifier \"ExprArray\",JSArguments [JSDecimal \"1\",JSLiteral \",\",JSDecimal \"1\"]],JSLiteral \";\"])),JSLiteral \"\"])"- -- @=? (show $ parseString program src0_f)- @=? (showStrippedMaybe $ parseProgram src0_f)-caseMin0_f =- testMinify "function Hello(a){ExprArray(1,1)}" src0_f--src01_semi1 = (- "{zero.one1;zero}\n"++- "one1\n"++- "two;three\n"++- "{{}} four;\n"++- "// five\n"++- "five")-case01_semi1 =- "Right (JSSourceElementsTop [JSBlock ([JSExpression [JSMemberDot [JSIdentifier \"zero\"] (JSIdentifier \"one1\")],JSLiteral \";\",JSExpression [JSIdentifier \"zero\"]]),JSExpression [JSIdentifier \"one1\"],JSExpression [JSIdentifier \"two\"],JSLiteral \";\",JSExpression [JSIdentifier \"three\"],JSBlock ([JSBlock ([])]),JSExpression [JSIdentifier \"four\"],JSLiteral \";\",JSExpression [JSIdentifier \"five\"],JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram src01_semi1)-caseMin01_semi1 =- testMinify "{zero.one1;zero};one1;two;three;four;five" src01_semi1--src_min_100_animals = "function Animal(name){if(!name)throw new Error('Must specify an animal name');this.name=name};Animal.prototype.toString=function(){return this.name};o=new Animal(\"bob\");o.toString()==\"bob\""-case_min_100_animals =- "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"Animal\") [JSIdentifier \"name\"] (JSBlock ([JSIf (JSExpression [JSUnary \"!\",JSIdentifier \"name\"]) ([JSThrow (JSExpression [JSLiteral \"new\",JSIdentifier \"Error\",JSArguments [JSStringLiteral '\\'' \"Must specify an animal name\"]]),JSLiteral \";\"]) ([]),JSExpression [JSMemberDot [JSLiteral \"this\"] (JSIdentifier \"name\"),JSOperator JSLiteral \"=\",JSIdentifier \"name\"]])),JSLiteral \";\",JSExpression [JSMemberDot [JSMemberDot [JSIdentifier \"Animal\"] (JSIdentifier \"prototype\")] (JSIdentifier \"toString\"),JSOperator JSLiteral \"=\",JSFunctionExpression [] [] (JSBlock ([JSReturn [JSExpression [JSMemberDot [JSLiteral \"this\"] (JSIdentifier \"name\")]] JSLiteral \"\"]))],JSLiteral \";\",JSExpression [JSIdentifier \"o\",JSOperator JSLiteral \"=\",JSLiteral \"new\",JSIdentifier \"Animal\",JSArguments [JSStringLiteral '\"' \"bob\"]],JSLiteral \";\",JSExpression [JSExpressionBinary \"==\" [JSMemberDot [JSIdentifier \"o\"] (JSIdentifier \"toString\"),JSArguments []] [JSStringLiteral '\"' \"bob\"]],JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram src_min_100_animals)-caseMin_min_100_animals =- testMinify src_min_100_animals src_min_100_animals--srcMergeStrings = "throw new TypeError(\"Function.prototype.apply called on\"+\" uncallable object\");"-caseMergeStrings =- "Right (JSSourceElementsTop [JSThrow (JSExpression [JSLiteral \"new\",JSIdentifier \"TypeError\",JSArguments [JSExpressionBinary \"+\" [JSStringLiteral '\"' \"Function.prototype.apply called on\"] [JSStringLiteral '\"' \" uncallable object\"]]]),JSLiteral \";\",JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcMergeStrings)-caseMinMergeStrings =- testMinify "throw new TypeError(\"Function.prototype.apply called on uncallable object\")" srcMergeStrings--srcNestedSquare = "this.cursor+=match[0].length;"-caseNestedSquare =- "Right (JSSourceElementsTop [JSExpression [JSMemberDot [JSLiteral \"this\"] (JSIdentifier \"cursor\"),JSOperator \"+=\",JSMemberDot [JSMemberSquare [JSIdentifier \"match\"] (JSExpression [JSDecimal \"0\"])] (JSIdentifier \"length\")],JSLiteral \";\"])"- @=? (showStrippedMaybe $ parseProgram srcNestedSquare)-caseMinNestedSquare =- testMinify "this.cursor+=match[0].length" srcNestedSquare--caseEitherLeft =- -- Left "UnexpectedToken (MulToken {token_span = (AlexPn 2 1 3,'=',\"*SYNTAX*ERROR*\")})"- -- Left "\"MulToken {token_span = TokenPn 2 1 3, token_comment = [NoComment]}\""- Left "\"MulToken {token_span = TokenPn 2 1 3, token_comment = [NoComment]}\""- @=? minifym (LB.fromChunks [(E.encodeUtf8 $ T.pack "a=*SYNTAX*ERROR*")])--caseEitherRight =- Right (LB.fromChunks [(E.encodeUtf8 $ T.pack "a=\"no syntax error\"")]) @=? minifym (LB.fromChunks [(E.encodeUtf8 $ T.pack "a=\"no syntax error\";")])--srcTrailingCommas = "x={a:1,};y=[d,e,];"-caseTrailingCommas =- "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"a\") [JSDecimal \"1\"],JSLiteral \",\"]],JSLiteral \";\",JSExpression [JSIdentifier \"y\",JSOperator JSLiteral \"=\",JSArrayLiteral [JSIdentifier \"d\",JSElision JSLiteral \",\",JSIdentifier \"e\",JSLiteral \",\"]],JSLiteral \";\",JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcTrailingCommas)-caseMinTrailingCommas =- testMinify "x={a:1,};y=[d,e,]" srcTrailingCommas--srcGetSet = "x={get foo() {return 1},set foo(a) {x=a}}"-caseGetSet =- "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSObjectLiteral [JSPropertyAccessor NT (JSLiteral \"get\") (TokenPn 3 1 4) [NoComment] (JSIdentifier \"foo\") [] (JSBlock ([JSReturn [JSExpression [JSDecimal \"1\"]] JSLiteral \"\"])),JSLiteral \",\",JSPropertyAccessor NT (JSLiteral \"set\") (TokenPn 24 1 25) [NoComment] (JSIdentifier \"foo\") [JSIdentifier \"a\"] (JSBlock ([JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSIdentifier \"a\"]]))]],JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcGetSet)-caseMinGetSet =- testMinify "x={get foo(){return 1},set foo(a){x=a}}" srcGetSet--srcUnicode = "var x = \"שלום\";"-caseUnicode =- "Right (JSSourceElementsTop [JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"x\") [JSLiteral \"=\",JSStringLiteral '\"' \"\\1513\\1500\\1493\\1501\"]],JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcUnicode)-caseMinUnicode =- testMinify "var x=\"שלום\"" srcUnicode--srcIssue3 = "var myLatlng = new google.maps.LatLng(56.8379100, 60.5806664);"-caseIssue3 =- "Right (JSSourceElementsTop [JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"myLatlng\") [JSLiteral \"=\",JSLiteral \"new\",JSMemberDot [JSMemberDot [JSIdentifier \"google\"] (JSIdentifier \"maps\")] (JSIdentifier \"LatLng\"),JSArguments [JSDecimal \"56.8379100\",JSLiteral \",\",JSDecimal \"60.5806664\"]]],JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcIssue3)-caseMinIssue3 =- testMinify "var myLatlng=new google.maps.LatLng(56.8379100,60.5806664)" srcIssue3--srcIssue4 = "/* * geolocation. пытаемся определить свое местоположение * если не получается то используем defaultLocation * @Param {object} map экземпляр карты * @Param {object LatLng} defaultLocation Координаты центра по умолчанию * @Param {function} callbackAfterLocation Фу-ия которая вызывается после * геолокации. Т.к запрос геолокации асинхронен */x"-caseIssue4 =- "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\"],JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcIssue4)-caseMinIssue4 =- testMinify "x" srcIssue4--srcSwitch1 = "switch(i){case 1:1;case 2:2}"-caseSwitch1 =- "Right (JSSourceElementsTop [JSSwitch (JSExpression [JSIdentifier \"i\"]) JSBlock ([JSCase (JSExpression [JSDecimal \"1\"]) ([JSExpression [JSDecimal \"1\"],JSLiteral \";\"]),JSCase (JSExpression [JSDecimal \"2\"]) ([JSExpression [JSDecimal \"2\"]])]),JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcSwitch1)-caseMinSwitch1 =- testMinify "switch(i){case 1:1;case 2:2}" srcSwitch1--srcIf1="if(i>0)consts+=\", \";var t=tokens[i];"-caseIf1 =- "Right (JSSourceElementsTop [JSIf (JSExpression [JSExpressionBinary \">\" [JSIdentifier \"i\"] [JSDecimal \"0\"]]) ([JSExpression [JSIdentifier \"consts\",JSOperator JSLiteral \"+=\",JSStringLiteral '\"' \", \"],JSLiteral \";\"]) ([]),JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"t\") [JSLiteral \"=\",JSMemberSquare [JSIdentifier \"tokens\"] (JSExpression [JSIdentifier \"i\"])]],JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcIf1)-caseMinIf1 =- testMinify "if(i>0)consts+=\", \";var t=tokens[i]" srcIf1--srcIf2 = "if (getValue)\n execute;\nelse {\n execute;\n}"-caseIf2 =- "Right (JSSourceElementsTop [JSIf (JSExpression [JSIdentifier \"getValue\"]) ([JSExpression [JSIdentifier \"execute\"],JSLiteral \";\"]) ([JSLiteral \"else\",JSBlock ([JSExpression [JSIdentifier \"execute\"],JSLiteral \";\"])]),JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcIf2)-caseMinIf2 =- testMinify "if(getValue){execute}else execute" srcIf2--srcIf3 = "if(getValue){execute}else execute"-caseIf3 =- "Right (JSSourceElementsTop [JSIf (JSExpression [JSIdentifier \"getValue\"]) ([JSExpression [JSIdentifier \"execute\"],JSLiteral \";\"]) ([JSLiteral \"else\",JSBlock ([JSExpression [JSIdentifier \"execute\"],JSLiteral \";\"])]),JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcIf2)-caseMinIf3 =- testMinify "if(getValue){execute}else execute" srcIf3--srcBootstrapDropdown = "clearMenus()\n!isActive && $parent.toggleClass('open')"-caseBootstrapDropdown =- "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"clearMenus\",JSArguments []],JSExpression [JSExpressionBinary \"&&\" [JSUnary \"!\",JSIdentifier \"isActive\"] [JSMemberDot [JSIdentifier \"$parent\"] (JSIdentifier \"toggleClass\"),JSArguments [JSStringLiteral '\\'' \"open\"]]],JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcBootstrapDropdown)-caseMinBootstrapDropdown =- testMinify "clearMenus();!isActive&&$parent.toggleClass('open')" srcBootstrapDropdown---srcIssue8 = "(function(){new nicEditor({fullPanel:true}).panelInstance('h4')})();"-caseIssue8 =- "Right (JSSourceElementsTop [JSExpression [JSExpressionParen (JSExpression [JSFunctionExpression [] [] (JSBlock ([JSExpression [JSMemberDot [JSLiteral \"new\",JSIdentifier \"nicEditor\",JSArguments [JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"fullPanel\") [JSLiteral \"true\"]]]] (JSIdentifier \"panelInstance\"),JSArguments [JSStringLiteral '\\'' \"h4\"]]]))]),JSArguments []],JSLiteral \";\",JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcIssue8)-caseMinIssue8 =- testMinify "(function(){new nicEditor({fullPanel:true}).panelInstance('h4')})()" srcIssue8--srcIssue9 = "var x = [new friend(5)];"-caseIssue9 =- "Right (JSSourceElementsTop [JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"x\") [JSLiteral \"=\",JSArrayLiteral [JSLiteral \"new\",JSIdentifier \"friend\",JSArguments [JSDecimal \"5\"]]]],JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcIssue9)-caseMinIssue9 =- testMinify "var x=[new friend(5)]" srcIssue9---srcIssue14 = "var settings = {start : new Date(2012, 01, 27)};"-caseIssue14 =- "Right (JSSourceElementsTop [JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"settings\") [JSLiteral \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"start\") [JSLiteral \"new\",JSIdentifier \"Date\",JSArguments [JSDecimal \"2012\",JSLiteral \",\",JSOctal \"01\",JSLiteral \",\",JSDecimal \"27\"]]]]],JSLiteral \"\"])"- @=? (showStrippedMaybe $ parseProgram srcIssue14)-caseMinIssue14 =- testMinify "var settings={start:new Date(2012,01,27)}" srcIssue14----- ------------------------------------------------------------------------ utilities----testMinify expected src = (LB.fromChunks [(U.fromString expected)]) @=? (minify (U.fromString src))-testMinify expected src = (LB.fromChunks [(E.encodeUtf8 $ T.pack expected)]) @=? (minify $ LB.fromChunks [(E.encodeUtf8 $ T.pack src)])--testFile :: FilePath -> IO ()-testFile filename =- do- x <- readFile (filename)- let x' = trim x- -- x' @=? (minify (U.fromString x') )- testMinify x' x'---testFileUnminified :: FilePath -> IO ()-testFileUnminified filename =- do- x <- readFile ("./test/pminified/" ++ filename)- y <- readFile ("./test/parsingonly/" ++ filename)- let x' = trim x- -- x' @=? (minify (U.fromString y))- testMinify x' y---trim :: String -> String-trim = f . f- where f = reverse . dropWhile isSpace---- For language-javascript-parseProgram src = parse src "src"---- EOF
+ src/Text/Jasmine.hs view
@@ -0,0 +1,52 @@+module Text.Jasmine+ ( minify+ , minifym+ , minifyBb+ , minifyFile+ ) where++import Data.ByteString.Builder (Builder)+import qualified Data.ByteString.Builder as Builder+import qualified Data.ByteString.Lazy.Char8 as LBS+import Data.Text.Lazy (unpack)+import Data.Text.Lazy.Encoding (decodeUtf8With)+import Data.Text.Encoding.Error (lenientDecode)++import Language.JavaScript.Parser (readJs, parse, JSAST)+import Language.JavaScript.Pretty.Printer (renderJS)+import Language.JavaScript.Process.Minify (minifyJS)++++minifym :: LBS.ByteString -> Either String LBS.ByteString+minifym s =+ case myParse s of+ Left msg -> Left (show msg)+ Right p -> Right $ Builder.toLazyByteString $ renderJS $ minifyJS p+++minifyBb :: LBS.ByteString -> Either String Builder+minifyBb s =+ case myParse s of+ Left msg -> Left (show msg)+ Right p -> Right (renderJS $ minifyJS p)+++minify :: LBS.ByteString -> LBS.ByteString+minify =+ Builder.toLazyByteString . renderJS . minifyJS . readJs . lbToStr+++minifyFile :: FilePath -> IO LBS.ByteString+minifyFile filename =+ minify <$> LBS.readFile filename+++myParse :: LBS.ByteString -> Either String JSAST+myParse input =+ parse (lbToStr input) "src"+++lbToStr :: LBS.ByteString -> String+lbToStr =+ unpack . decodeUtf8With lenientDecode
+ test/cli/core/runner view
@@ -0,0 +1,74 @@+if test -d dist-newstyle ; then+ HJSMIN=$(find dist-newstyle -type f -name hjsmin)+elif test -d ../dist-newstyle ; then+ HJSMIN=$(find ../dist-newstyle -type f -name hjsmin)+ fi++echo+echo $HJSMIN+echo++DIFF=${USE_DIFF:-diff -u}++colourReset='\e[0m'+colourGreen='\e[0;32m'+colourRed='\e[0;31m'+colourYellow='\e[0;33m'++testname=$(basename $(dirname $0))++# Failure is the default!+RESULT="FAILED"++type "$HJSMIN" > /dev/null 2>&1 || {+ echo "No hjsmin executable specified on command line or on path."+ exit 1+}++ROOT=$(dirname "$0")/../../..+ROOT=$(cd "$ROOT" > /dev/null 2>&1 && pwd)+TMP=${ROOT}/tmp+TEST=${TMP}/test/$$+mkdir -p ${TEST}++cleanup () {+ echo "Cleaning up (${TEST})"+ rm -rf "${TEST}"+ echo ${RESULT}+ echo+}++trap cleanup EXIT++banner () {+ echo "${colourYellow}== $* ==${colourReset}"+ echo "== Running in ${TEST} =="+}++assert_file_exists () {+ if test ! -f "$1" ; then+ echo "Output file '$1' is missing."+ fail_test+ fi+}++pass_test () {+ RESULT="${colourGreen}PASSED [ ${testname} ]${colourReset}"+ exit 0+}+++fail_test () {+ RESULT="${colourRed}FAILED [ ${testname} ]${colourReset}"+ exit 1+}++sort_diff () {+ EXP="$1"+ ACTUAL="$2"+ EXPECTED_SORTED=${OUTPUT_DIR}/sort_diff.expected.$(basename $EXP)+ ACTUAL_SORTED=${OUTPUT_DIR}/sort_diff.actual.$(basename $ACTUAL)+ sort ${EXP} > ${EXPECTED_SORTED}+ sort ${ACTUAL} > ${ACTUAL_SORTED}+ diff ${EXPECTED_SORTED} ${ACTUAL_SORTED}+}
+ test/cli/empty-input/run view
@@ -0,0 +1,27 @@+#!/bin/sh -eu++. $(dirname $0)/../core/runner++testname="empty-input"++banner "${testname}"+#----------++OUTPUT_DIR=${TEST}++mkdir -p ${OUTPUT_DIR}++INPUT_FILE=${OUTPUT_DIR}/empty+OUTPUT_FILE=${OUTPUT_DIR}/output++# Create a zero length file+touch ${INPUT_FILE}++retcode=0+${HJSMIN} --input ${INPUT_FILE} --output ${OUTPUT_FILE} 2>/dev/null || retcode=1++if test ${retcode} -eq 0 ; then+ fail_test+else+ pass_test+fi
+ test/cli/minimal-input/run view
@@ -0,0 +1,27 @@+#!/bin/sh -eu++. $(dirname $0)/../core/runner++testname="minimal-input"++banner "${testname}"+#----------++OUTPUT_DIR=${TEST}++mkdir -p ${OUTPUT_DIR}++INPUT_FILE=${OUTPUT_DIR}/empty+OUTPUT_FILE=${OUTPUT_DIR}/output++# Create a minimal file+echo '{}' > ${INPUT_FILE}++retcode=0+${HJSMIN} --input ${INPUT_FILE} --output ${OUTPUT_FILE} || retcode=1++if test ${retcode} -eq 0 ; then+ pass_test+else+ fail_test+fi
− test/parsingonly/00_f.js
@@ -1,4 +0,0 @@-function Hello(a) -{ - ExprArray(1,1); -}
− test/parsingonly/01_semi1.js
@@ -1,6 +0,0 @@-{zero.one1;zero} -one1 -two;three -{{}} four; -// five -five
− test/parsingonly/02_semicolon.js
@@ -1,13 +0,0 @@-// Automatic semi-colon insertion - -{ 1 -2 } 3 - -return -a + b - -a = b -//--c - Fails - -//a = (b + c) -d + e.print
− test/parsingonly/02_sm.js
@@ -1,8 +0,0 @@-{zero} -one1;two -{three -four;five; -{ -six;{seven;} -} -}
− test/parsingonly/03_sm.js
@@ -1,11 +0,0 @@-// A comment -a=b+z; // t=s; -b; -{ -/* Multi line - -*/ -c; -} - -
− test/parsingonly/04_if.js
@@ -1,3 +0,0 @@-{ - a = f ? e : g; -}
− test/parsingonly/05_comments_simple.js
@@ -1,10 +0,0 @@-// A coment -a+1; - -/* - -b+1; - -*/ - -{}
− test/parsingonly/05_regex.js
@@ -1,24 +0,0 @@-x = 1/y; -var newlines = spaces.match(/\n/g); -var newlines = spaces.match(/\n/g); -opRegExpSrc += i.replace(/[?|^&(){}\[\]+\-*\/\.]/g, "\\$&"); - -for (i = 0;;){ - var t=1; - ; -} - -for (var i = 0, j = tokens.length; i < j; i++) { - if (i > 0) - consts += ", "; - var t = tokens[i]; - - if (/^[a-z]/.test(t)) { - consts += t.toUpperCase(); - keywords[t] = i; - } else { - consts += (/^\W/.test(t) ? opTypeNames[t] : t); - } - consts += " = " + x; - tokens[t] = j; -}
− test/parsingonly/06_block.js
@@ -1,7 +0,0 @@-{ -{}{}{{}} -{ } -} - - -
− test/parsingonly/06_callexpr.js
@@ -1,8 +0,0 @@-// Different sorts of call expressions - -bob() -bob(1)(2,3) -bob().mary -bob()[1] -bob(11)[2][3] -bob(mary())
− test/parsingonly/06_newexpr.js
@@ -1,4 +0,0 @@-new bob; -new bob(1) -new bob()(1,2) -bob[1](1,2)
− test/parsingonly/06_var.js
@@ -1,7 +0,0 @@-// Why does this fail !! -// This fails as well parseProgram "for(i=0;;)\n{\n;\nvar t=1;}" -for (i = 0;;){ - ; -var t=1; - -}
− test/parsingonly/07_expr.js
@@ -1,14 +0,0 @@-w=x*y+1/2 -{z=z + 1} - -1 -+ 2 - -"Prototype does not have an ancestor: " - + currentConstructor + "." - -Error("Prototype does not have an ancestor: " + currentConstructor + ".") - -// Expression inside func call with a newline inside them -Error("Prototype does not have an ancestor: " - + currentConstructor + ".")
− test/parsingonly/07_expr2.js
@@ -1,2 +0,0 @@-1 + 2; -
− test/parsingonly/101_inheritance.js
@@ -1,122 +0,0 @@-/* Copyright (c) 2006 Charlie Savage -License: BSD: -http://www.opensource.org/licenses/bsd-license.php - -As posted on http://cfis.savagexi.com/articles/2006/08/25/new-and-improved-javascript-inheritance -*/ - -Function.prototype.inherits = function(superConstructor) -{ - /* Borrowed from Kevin Lindsey - create a dummy - constructor to create prototypes. This is useful - because it means that we don't have to modify - the real constructors to have if-statements to - guard against initialization if we are creating - a prototype (versus a regular instance).*/ - function CreatePrototype() {} - CreatePrototype.prototype = superConstructor.prototype - - /* Reset the current constructor. This is an ugly hack required - by the JavaScript prototype-chain implementation. */ - this.prototype = new CreatePrototype() - this.prototype.constructor = this - - // Save a reference to the superClass constructor - this.superConstructor = superConstructor - - this.prototype.callSuper = function() - { - /* In IE and Firefox we can get the caller argument via - arguments.callee.caller. However, for some reason this - has been deprecated in JavaScript and is not supported - by Safari or Opera. So we have to pass it in as - a parameter. Yuck.*/ - var caller = arguments.callee.caller - var caller = arguments[0] - var args = new Array() - for (var i=1; i<arguments.length; i++) - args.push(arguments[i]) - - /* Figure out where we are in the inheritance hierarchy and - the name of the method that was invoked. */ - var currentConstructor = this.constructor - var methodName = null - - while (methodName == null && currentConstructor != null) - { - // Shortcut - Is a constructor being called? - if (caller === currentConstructor) - return currentConstructor.superConstructor.apply(this, args) - - methodName = figureMethodName(currentConstructor.prototype, caller) - currentConstructor = currentConstructor.superConstructor - } - - if (!methodName) - throw new Error("Could not find method: " + methodName + ".") - - if (!currentConstructor) - throw new Error("Prototype does not have an ancestor: " - + currentConstructor + ".") - - // Finally - execute the method - return currentConstructor.prototype[methodName].apply(this, args) - } -} - -function figureMethodName(prototype, method) -{ - for (var key in prototype) - { - if (prototype.hasOwnProperty(key) && - prototype[key] === method) - return key - } - return null -} - -// ----- Example --- - -// -- Animal -- -function Animal(name) -{ - if (!name) - throw new Error('Must specify an animal name') - this.name = name -} - -Animal.prototype.toString = function() -{ - return 'My name is ' + this.name -} - -// -- Pet -- -function Pet(owner, name) -{ - this.owner = owner - this.callSuper(arguments.callee, name) -} -Pet.inherits(Animal) - -Pet.prototype.toString = function() -{ - return this.callSuper(arguments.callee) + "\n" + - "My owner is " + this.owner -} - -// -- Cat -- -function Cat(owner, name) -{ - this.callSuper(arguments.callee, owner, name) -} -Cat.inherits(Pet) - -Cat.prototype.toString = function() -{ - return this.callSuper(arguments.callee) + '\n' + - 'I eat mice' -} - -var cat = new Cat('charlie', 'oba') - -print(cat.toString())
− test/parsingonly/10_switch.js
@@ -1,38 +0,0 @@-switch(i){ - case 1: - 1; - case 2: -2; -} - -function x() { - switch (typeof v) { - case "boolean": - return new global.Boolean(v); - case "number": - i=1; - break; - return new global.Number(v); - case "string": - return new global.String(v); - case "function": - return v; - case "object": - if (v !== null) - return v; - } -} - -switch (t) { - case BITWISE_OR: v = u | v; break; - case BITWISE_XOR: v = u ^ v; break; - case BITWISE_AND: v = u & v; break; - case LSH: v = u << v; break; - case RSH: v = u >> v; break; - case URSH: v = u >>> v; break; - case PLUS: v = u + v; break; - case MINUS: v = u - v; break; - case MUL: v = u * v; break; - case DIV: v = u / v; break; - case MOD: v = u % v; break; - }
− test/parsingonly/110_perfect.js
@@ -1,39 +0,0 @@-// Some simple testing of new, eval and some string stuff. - -// constructor -- expression array initialization -function ExprArray(n,v) -{ - // Initializes n values to v coerced to a string. - for (var i = 0; i < n; i++) { - this[i] = "" + v; - } -} - - -// Print the perfect numbers up to n and the sum expression for n's divisors. -function perfect(n) -{ - print("The perfect numbers up to " + n + " are:"); - - // We build sumOfDivisors[i] to hold a string expression for - // the sum of the divisors of i, excluding i itself. - var sumOfDivisors = new ExprArray(n+1,1); - for (var divisor = 2; divisor <= n; divisor++) { - for (var j = divisor + divisor; j <= n; j += divisor) { - sumOfDivisors[j] += " + " + divisor; - } - // At this point everything up to 'divisor' has its sumOfDivisors - // expression calculated, so we can determine whether it's perfect - // already by evaluating. - if (eval(sumOfDivisors[divisor]) == divisor) { - print("" + divisor + " = " + sumOfDivisors[divisor]); - } - } - print("That's all."); -} - - -print("\nA number is 'perfect' if it is equal to the sum of its"); -print("divisors (excluding itself).\n"); -perfect(500); -
− test/parsingonly/120_js.js
@@ -1,73 +0,0 @@-/* ***** BEGIN LICENSE BLOCK *****- * Version: MPL 1.1/GPL 2.0/LGPL 2.1- *- * The contents of this file are subject to the Mozilla Public License Version- * 1.1 (the "License"); you may not use this file except in compliance with- * the License. You may obtain a copy of the License at- * http://www.mozilla.org/MPL/- *- * Software distributed under the License is distributed on an "AS IS" basis,- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License- * for the specific language governing rights and limitations under the- * License.- *- * The Original Code is the Narcissus JavaScript engine.- *- * The Initial Developer of the Original Code is- * Brendan Eich <brendan@mozilla.org>.- * Portions created by the Initial Developer are Copyright (C) 2004- * the Initial Developer. All Rights Reserved.- *- * Contributor(s):- *- * Alternatively, the contents of this file may be used under the terms of- * either the GNU General Public License Version 2 or later (the "GPL"), or- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),- * in which case the provisions of the GPL or the LGPL are applicable instead- * of those above. If you wish to allow use of your version of this file only- * under the terms of either the GPL or the LGPL, and not to allow others to- * use your version of this file under the terms of the MPL, indicate your- * decision by deleting the provisions above and replace them with the notice- * and other provisions required by the GPL or the LGPL. If you do not delete- * the provisions above, a recipient may use your version of this file under- * the terms of any one of the MPL, the GPL or the LGPL.- *- * ***** END LICENSE BLOCK ***** */--/*- * Narcissus - JS implemented in JS.- *- * Native objects and classes implemented metacircularly:- * the global object (singleton)- * eval- * function objects, Function- *- * SpiderMonkey extensions used:- * catch guards- * const declarations- * get and set functions in object initialisers- * Object.prototype.__defineGetter__- * Object.prototype.__defineSetter__- * Object.prototype.__defineProperty__- * Object.prototype.__proto__- * filename and line number arguments to *Error constructors- * callable regular expression objects- *- * SpiderMonkey extensions supported metacircularly:- * catch guards- * const declarations- * get and set functions in object initialisers- */--/*- * Loads a file relative to the calling script's (our) source directory, and not- * the directory that the executing shell is being run out of.- */-function my_load(filename) {- evaluate(snarf(filename), filename, 1);-}--my_load('jsdefs.js');-my_load('jsparse.js');-my_load('jsexec.js');-
− test/parsingonly/121_jsdefs.js
@@ -1,171 +0,0 @@-/* ***** BEGIN LICENSE BLOCK *****- * Version: MPL 1.1/GPL 2.0/LGPL 2.1- *- * The contents of this file are subject to the Mozilla Public License Version- * 1.1 (the "License"); you may not use this file except in compliance with- * the License. You may obtain a copy of the License at- * http://www.mozilla.org/MPL/- *- * Software distributed under the License is distributed on an "AS IS" basis,- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License- * for the specific language governing rights and limitations under the- * License.- *- * The Original Code is the Narcissus JavaScript engine.- *- * The Initial Developer of the Original Code is- * Brendan Eich <brendan@mozilla.org>.- * Portions created by the Initial Developer are Copyright (C) 2004- * the Initial Developer. All Rights Reserved.- *- * Contributor(s):- *- * Alternatively, the contents of this file may be used under the terms of- * either the GNU General Public License Version 2 or later (the "GPL"), or- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),- * in which case the provisions of the GPL or the LGPL are applicable instead- * of those above. If you wish to allow use of your version of this file only- * under the terms of either the GPL or the LGPL, and not to allow others to- * use your version of this file under the terms of the MPL, indicate your- * decision by deleting the provisions above and replace them with the notice- * and other provisions required by the GPL or the LGPL. If you do not delete- * the provisions above, a recipient may use your version of this file under- * the terms of any one of the MPL, the GPL or the LGPL.- *- * ***** END LICENSE BLOCK ***** */--/*- * Narcissus - JS implemented in JS.- *- * Well-known constants and lookup tables. Many consts are generated from the- * tokens table via eval to minimize redundancy, so consumers must be compiled- * separately to take advantage of the simple switch-case constant propagation- * done by SpiderMonkey.- */--const GLOBAL = this;--var tokens = [- // End of source. -- "END",-- // Operators and punctuators. Some pair-wise order matters, e.g. (+, -)- // and (UNARY_PLUS, UNARY_MINUS).- "\n", ";",- ",",- "=",- "?", ":", "CONDITIONAL",- "||",- "&&",- "|",- "^",- "&",- "==", "!=", "===", "!==",- "<", "<=", ">=", ">",- "<<", ">>", ">>>",- "+", "-",- "*", "/", "%",- "!", "~", "UNARY_PLUS", "UNARY_MINUS",- "++", "--",- ".",- "[", "]",- "{", "}",- "(", ")",-- // Nonterminal tree node type codes.- "SCRIPT", "BLOCK", "LABEL", "FOR_IN", "CALL", "NEW_WITH_ARGS", "INDEX",- "ARRAY_INIT", "OBJECT_INIT", "PROPERTY_INIT", "GETTER", "SETTER",- "GROUP", "LIST",-- // Terminals.- "IDENTIFIER", "NUMBER", "STRING", "REGEXP",-- // Keywords.- "break",- "case", "catch", "const", "continue",- "debugger", "default", "delete", "do",- "else", "enum",- "false", "finally", "for", "function",- "if", "in", "instanceof",- "new", "null",- "return",- "switch",- "this", "throw", "true", "try", "typeof",- "var", "void",- "while", "with"-];--// Operator and punctuator mapping from token to tree node type name.-// NB: superstring tokens (e.g., ++) must come before their substring token-// counterparts (+ in the example), so that the opRegExp regular expression-// synthesized from this list makes the longest possible match.-var opTypeNames = {- '\n': "NEWLINE",- ';': "SEMICOLON",- ',': "COMMA",- '?': "HOOK",- ':': "COLON",- '||': "OR",- '&&': "AND",- '|': "BITWISE_OR",- '^': "BITWISE_XOR",- '&': "BITWISE_AND",- '===': "STRICT_EQ",- '==': "EQ",- '=': "ASSIGN",- '!==': "STRICT_NE",- '!=': "NE",- '<<': "LSH",- '<=': "LE",- '<': "LT",- '>>>': "URSH",- '>>': "RSH",- '>=': "GE",- '>': "GT",- '++': "INCREMENT",- '--': "DECREMENT",- '+': "PLUS",- '-': "MINUS",- '*': "MUL",- '/': "DIV",- '%': "MOD",- '!': "NOT",- '~': "BITWISE_NOT",- '.': "DOT",- '[': "LEFT_BRACKET",- ']': "RIGHT_BRACKET",- '{': "LEFT_CURLY",- '}': "RIGHT_CURLY",- '(': "LEFT_PAREN",- ')': "RIGHT_PAREN"-};--// Hash of keyword identifier to tokens index. NB: we must null __proto__ to-// avoid toString, etc. namespace pollution.-var keywords = {__proto__: null};--// Define const END, etc., based on the token names. Also map name to index.-var consts = "const ";-for (var i = 0, j = tokens.length; i < j; i++) {- if (i > 0)- consts += ", ";- var t = tokens[i];- if (/^[a-z]/.test(t)) {- consts += t.toUpperCase();- keywords[t] = i;- } else {- consts += (/^\W/.test(t) ? opTypeNames[t] : t);- }- consts += " = " + i;- tokens[t] = i;-}-eval(consts + ";");--// Map assignment operators to their indexes in the tokens array.-var assignOps = ['|', '^', '&', '<<', '>>', '>>>', '+', '-', '*', '/', '%'];--for (i = 0, j = assignOps.length; i < j; i++) {- t = assignOps[i];- assignOps[t] = tokens[t];-}
− test/parsingonly/122_jsexec.js
@@ -1,946 +0,0 @@-/* ***** BEGIN LICENSE BLOCK *****- * vim: set ts=4 sw=4 et tw=80:- *- * Version: MPL 1.1/GPL 2.0/LGPL 2.1- *- * The contents of this file are subject to the Mozilla Public License Version- * 1.1 (the "License"); you may not use this file except in compliance with- * the License. You may obtain a copy of the License at- * http://www.mozilla.org/MPL/- *- * Software distributed under the License is distributed on an "AS IS" basis,- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License- * for the specific language governing rights and limitations under the- * License.- *- * The Original Code is the Narcissus JavaScript engine.- *- * The Initial Developer of the Original Code is- * Brendan Eich <brendan@mozilla.org>.- * Portions created by the Initial Developer are Copyright (C) 2004- * the Initial Developer. All Rights Reserved.- *- * Contributor(s):- *- * Alternatively, the contents of this file may be used under the terms of- * either the GNU General Public License Version 2 or later (the "GPL"), or- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),- * in which case the provisions of the GPL or the LGPL are applicable instead- * of those above. If you wish to allow use of your version of this file only- * under the terms of either the GPL or the LGPL, and not to allow others to- * use your version of this file under the terms of the MPL, indicate your- * decision by deleting the provisions above and replace them with the notice- * and other provisions required by the GPL or the LGPL. If you do not delete- * the provisions above, a recipient may use your version of this file under- * the terms of any one of the MPL, the GPL or the LGPL.- *- * ***** END LICENSE BLOCK ***** */--/*- * Narcissus - JS implemented in JS.- *- * Execution of parse trees.- *- * Standard classes except for eval, Function, Array, and String are borrowed- * from the host JS environment. Function is metacircular. Array and String- * are reflected via wrapping the corresponding native constructor and adding- * an extra level of prototype-based delegation.- */--const GLOBAL_CODE = 0, EVAL_CODE = 1, FUNCTION_CODE = 2;--function ExecutionContext(type) {- this.type = type;-}--var global = {- // Value properties.- NaN: NaN, Infinity: Infinity, undefined: undefined,-- // Function properties.- eval: function eval(s) {- if (typeof s != "string")- return s;-- var x = ExecutionContext.current;- var x2 = new ExecutionContext(EVAL_CODE);- x2.thisObject = x.thisObject;- x2.caller = x.caller;- x2.callee = x.callee;- x2.scope = x.scope;- ExecutionContext.current = x2;- try {- execute(parse(s), x2);- } catch (e if e == THROW) {- x.result = x2.result;- throw e;- } finally {- ExecutionContext.current = x;- }- return x2.result;- },- parseInt: parseInt, parseFloat: parseFloat,- isNaN: isNaN, isFinite: isFinite,- decodeURI: decodeURI, encodeURI: encodeURI,- decodeURIComponent: decodeURIComponent,- encodeURIComponent: encodeURIComponent,-- // Class constructors. Where ECMA-262 requires C.length == 1, we declare- // a dummy formal parameter.- Object: Object,- Function: function Function(dummy) {- var p = "", b = "", n = arguments.length;- if (n) {- var m = n - 1;- if (m) {- p += arguments[0];- for (var k = 1; k < m; k++)- p += "," + arguments[k];- }- b += arguments[m];- }-- // XXX We want to pass a good file and line to the tokenizer.- // Note the anonymous name to maintain parity with Spidermonkey.- var t = new Tokenizer("anonymous(" + p + ") {" + b + "}");-- // NB: Use the STATEMENT_FORM constant since we don't want to push this- // function onto the null compilation context.- var f = FunctionDefinition(t, null, false, STATEMENT_FORM);- var s = {object: global, parent: null};- return new FunctionObject(f, s);- },- Array: function Array(dummy) {- // Array when called as a function acts as a constructor.- return GLOBAL.Array.apply(this, arguments);- },- String: function String(s) {- // Called as function or constructor: convert argument to string type.- s = arguments.length ? "" + s : "";- if (this instanceof String) {- // Called as constructor: save the argument as the string value- // of this String object and return this object.- this.value = s;- return this;- }- return s;- },- Boolean: Boolean, Number: Number, Date: Date, RegExp: RegExp,- Error: Error, EvalError: EvalError, RangeError: RangeError,- ReferenceError: ReferenceError, SyntaxError: SyntaxError,- TypeError: TypeError, URIError: URIError,-- // Other properties.- Math: Math,-- // Extensions to ECMA.- snarf: snarf, evaluate: evaluate,- load: function load(s) {- if (typeof s != "string")- return s;-- evaluate(snarf(s), s, 1)- },- print: print, version: null-};--// Helper to avoid Object.prototype.hasOwnProperty polluting scope objects.-function hasDirectProperty(o, p) {- return Object.prototype.hasOwnProperty.call(o, p);-}--// Reflect a host class into the target global environment by delegation.-function reflectClass(name, proto) {- var gctor = global[name];- gctor.__defineProperty__('prototype', proto, true, true, true);- proto.__defineProperty__('constructor', gctor, false, false, true);- return proto;-}--// Reflect Array -- note that all Array methods are generic.-reflectClass('Array', new Array);--// Reflect String, overriding non-generic methods.-var gSp = reflectClass('String', new String);-gSp.toSource = function () { return this.value.toSource(); };-gSp.toString = function () { return this.value; };-gSp.valueOf = function () { return this.value; };-global.String.fromCharCode = String.fromCharCode;--var XCp = ExecutionContext.prototype;-ExecutionContext.current = XCp.caller = XCp.callee = null;-XCp.scope = {object: global, parent: null};-XCp.thisObject = global;-XCp.result = undefined;-XCp.target = null;-XCp.ecmaStrictMode = false;--function Reference(base, propertyName, node) {- this.base = base;- this.propertyName = propertyName;- this.node = node;-}--Reference.prototype.toString = function () { return this.node.getSource(); }--function getValue(v) {- if (v instanceof Reference) {- if (!v.base) {- throw new ReferenceError(v.propertyName + " is not defined",- v.node.filename, v.node.lineno);- }- return v.base[v.propertyName];- }- return v;-}--function putValue(v, w, vn) {- if (v instanceof Reference)- return (v.base || global)[v.propertyName] = w;- throw new ReferenceError("Invalid assignment left-hand side",- vn.filename, vn.lineno);-}--function isPrimitive(v) {- var t = typeof v;- return (t == "object") ? v === null : t != "function";-}--function isObject(v) {- var t = typeof v;- return (t == "object") ? v !== null : t == "function";-}--// If r instanceof Reference, v == getValue(r); else v === r. If passed, rn-// is the node whose execute result was r.-function toObject(v, r, rn) {- switch (typeof v) {- case "boolean":- return new global.Boolean(v);- case "number":- return new global.Number(v);- case "string":- return new global.String(v);- case "function":- return v;- case "object":- if (v !== null)- return v;- }- var message = r + " (type " + (typeof v) + ") has no properties";- throw rn ? new TypeError(message, rn.filename, rn.lineno)- : new TypeError(message);-}--//function execute(n, x) {-function execute(n, x) {- var a, f, i, j, r, s, t, u, v;-- switch (n.type) {- case FUNCTION:- if (n.functionForm != DECLARED_FORM) {- if (!n.name || n.functionForm == STATEMENT_FORM) {- v = new FunctionObject(n, x.scope);- if (n.functionForm == STATEMENT_FORM)- x.scope.object.__defineProperty__(n.name, v, true);- } else {- t = new Object;- x.scope = {object: t, parent: x.scope};- try {- v = new FunctionObject(n, x.scope);- t.__defineProperty__(n.name, v, true, true);- } finally {- x.scope = x.scope.parent;- }- }- }- break;-- case SCRIPT:- t = x.scope.object;- a = n.funDecls;- for (i = 0, j = a.length; i < j; i++) {- s = a[i].name;- f = new FunctionObject(a[i], x.scope);- t.__defineProperty__(s, f, x.type != EVAL_CODE);- }- a = n.varDecls;- for (i = 0, j = a.length; i < j; i++) {- u = a[i];- s = u.name;- if (u.readOnly && hasDirectProperty(t, s)) {- throw new TypeError("Redeclaration of const " + s,- u.filename, u.lineno);- }//++??AZ??"c:/Mark/MyDevelopments/haskell/HJS/hjs-0.2/testsuite/parsingonly/122_jsexec.js"- if (u.readOnly || !hasDirectProperty(t, s)) {- t.__defineProperty__(s, undefined, x.type != EVAL_CODE,- u.readOnly);- }- }- // FALL THROUGH-- case BLOCK:- for (i = 0, j = n.length; i < j; i++)- execute(n[i], x);- break;-- case IF:- if (getValue(execute(n.condition, x)))- execute(n.thenPart, x);- else if (n.elsePart)- execute(n.elsePart, x);- break;-- case SWITCH:- s = getValue(execute(n.discriminant, x));- a = n.cases;- var matchDefault = false;- switch_loop:- for (i = 0, j = a.length; ; i++) {- if (i == j) {- if (n.defaultIndex >= 0) {- i = n.defaultIndex - 1; // no case matched, do default- matchDefault = true;- continue;- }- break; // no default, exit switch_loop- }- t = a[i]; // next case (might be default!)- if (t.type == CASE) {- u = getValue(execute(t.caseLabel, x));- } else {- if (!matchDefault) // not defaulting, skip for now- continue;- u = s; // force match to do default- }- if (u === s) {- for (;;) { // this loop exits switch_loop- if (t.statements.length) {- try {- execute(t.statements, x);- } catch (e if e == BREAK && x.target == n) {- break switch_loop;- }- }- if (++i == j)- break switch_loop;- t = a[i];- }- // NOT REACHED- }- }- break;-- case FOR:- n.setup && getValue(execute(n.setup, x));- // FALL THROUGH- case WHILE:- while (!n.condition || getValue(execute(n.condition, x))) {- try {- execute(n.body, x);- } catch (e if e == BREAK && x.target == n) {- break;- } catch (e if e == CONTINUE && x.target == n) {- continue;- }- n.update && getValue(execute(n.update, x));- }- break;-- case FOR_IN:- u = n.varDecl;- if (u)- execute(u, x);- r = n.iterator;- s = execute(n.object, x);- v = getValue(s);-- // ECMA deviation to track extant browser JS implementation behavior.- t = (v == null && !x.ecmaStrictMode) ? v : toObject(v, s, n.object);- a = [];- for (i in t)- a.push(i);- for (i = 0, j = a.length; i < j; i++) {- putValue(execute(r, x), a[i], r);- try {- execute(n.body, x);- } catch (e if e == BREAK && x.target == n) {- break;- } catch (e if e == CONTINUE && x.target == n) {- continue;- }- }- break;-- case DO:- do {- try {- execute(n.body, x);- } catch (e if e == BREAK && x.target == n) {- break;- } catch (e if e == CONTINUE && x.target == n) {- continue;- }- } while (getValue(execute(n.condition, x)));- break;-- case BREAK:- case CONTINUE:- x.target = n.target;- throw n.type;-- case TRY:- try {- execute(n.tryBlock, x);- } catch (e if e == THROW && (j = n.catchClauses.length)) {- e = x.result;- x.result = undefined;- for (i = 0; ; i++) {- if (i == j) {- x.result = e;- throw THROW;- }- t = n.catchClauses[i];- x.scope = {object: {}, parent: x.scope};- x.scope.object.__defineProperty__(t.varName, e, true);- try {- if (t.guard && !getValue(execute(t.guard, x)))- continue;- execute(t.block, x);- break;- } finally {- x.scope = x.scope.parent;- }- }- } finally {- if (n.finallyBlock)- execute(n.finallyBlock, x);- }- break;-- case THROW:- x.result = getValue(execute(n.exception, x));- throw THROW;-- case RETURN:- x.result = getValue(execute(n.value, x));- throw RETURN;-- case WITH:- r = execute(n.object, x);- t = toObject(getValue(r), r, n.object);- x.scope = {object: t, parent: x.scope};- try {- execute(n.body, x);- } finally {- x.scope = x.scope.parent;- }- break;-- case VAR:- case CONST:- for (i = 0, j = n.length; i < j; i++) {- u = n[i].initializer;- if (!u)- continue;- t = n[i].name;- for (s = x.scope; s; s = s.parent) {- if (hasDirectProperty(s.object, t))- break;- }- u = getValue(execute(u, x));- if (n.type == CONST)- s.object.__defineProperty__(t, u, x.type != EVAL_CODE, true);- else- s.object[t] = u;- }- break;-- case DEBUGGER:- throw "NYI: " + tokens[n.type];-- case SEMICOLON:- if (n.expression)- x.result = getValue(execute(n.expression, x));- break;-- case LABEL:- try {- execute(n.statement, x);- } catch (e if e == BREAK && x.target == n) {- }- break;-- case COMMA:- for (i = 0, j = n.length; i < j; i++)- v = getValue(execute(n[i], x));- break;-- case ASSIGN:- r = execute(n[0], x);- t = n[0].assignOp;- if (t)- u = getValue(r);- v = getValue(execute(n[1], x));- if (t) {- switch (t) {- case BITWISE_OR: v = u | v; break;- case BITWISE_XOR: v = u ^ v; break;- case BITWISE_AND: v = u & v; break;- case LSH: v = u << v; break;- case RSH: v = u >> v; break;- case URSH: v = u >>> v; break;- case PLUS: v = u + v; break;- case MINUS: v = u - v; break;- case MUL: v = u * v; break;- case DIV: v = u / v; break;- case MOD: v = u % v; break;- }- }- putValue(r, v, n[0]);- break;-- case CONDITIONAL:- v = getValue(execute(n[0], x)) ? getValue(execute(n[1], x))- : getValue(execute(n[2], x));- break;-- case OR:- v = getValue(execute(n[0], x)) || getValue(execute(n[1], x));- break;-- case AND:- v = getValue(execute(n[0], x)) && getValue(execute(n[1], x));- break;-- case BITWISE_OR:- v = getValue(execute(n[0], x)) | getValue(execute(n[1], x));- break;-- case BITWISE_XOR:- v = getValue(execute(n[0], x)) ^ getValue(execute(n[1], x));- break;-- case BITWISE_AND:- v = getValue(execute(n[0], x)) & getValue(execute(n[1], x));- break;-- case EQ:- v = getValue(execute(n[0], x)) == getValue(execute(n[1], x));- break;-- case NE:- v = getValue(execute(n[0], x)) != getValue(execute(n[1], x));- break;-- case STRICT_EQ:- v = getValue(execute(n[0], x)) === getValue(execute(n[1], x));- break;-- case STRICT_NE:- v = getValue(execute(n[0], x)) !== getValue(execute(n[1], x));- break;-- case LT:- v = getValue(execute(n[0], x)) < getValue(execute(n[1], x));- break;-- case LE:- v = getValue(execute(n[0], x)) <= getValue(execute(n[1], x));- break;-- case GE:- v = getValue(execute(n[0], x)) >= getValue(execute(n[1], x));- break;-- case GT:- v = getValue(execute(n[0], x)) > getValue(execute(n[1], x));- break;-- case IN:- v = getValue(execute(n[0], x)) in getValue(execute(n[1], x));- break;-- case INSTANCEOF:- t = getValue(execute(n[0], x));- u = getValue(execute(n[1], x));- if (isObject(u) && typeof u.__hasInstance__ == "function")- v = u.__hasInstance__(t);- else- v = t instanceof u;- break;-- case LSH:- v = getValue(execute(n[0], x)) << getValue(execute(n[1], x));- break;-- case RSH:- v = getValue(execute(n[0], x)) >> getValue(execute(n[1], x));- break;-- case URSH:- v = getValue(execute(n[0], x)) >>> getValue(execute(n[1], x));- break;-- case PLUS:- v = getValue(execute(n[0], x)) + getValue(execute(n[1], x));- break;-- case MINUS:- v = getValue(execute(n[0], x)) - getValue(execute(n[1], x));- break;-- case MUL:- v = getValue(execute(n[0], x)) * getValue(execute(n[1], x));- break;-- case DIV:- v = getValue(execute(n[0], x)) / getValue(execute(n[1], x));- break;-- case MOD:- v = getValue(execute(n[0], x)) % getValue(execute(n[1], x));- break;-- case DELETE:- t = execute(n[0], x);- v = !(t instanceof Reference) || delete t.base[t.propertyName];- break;-- case VOID:- getValue(execute(n[0], x));- break;-- case TYPEOF:- t = execute(n[0], x);- if (t instanceof Reference)- t = t.base ? t.base[t.propertyName] : undefined;- v = typeof t;- break;-- case NOT:- v = !getValue(execute(n[0], x));- break;-- case BITWISE_NOT:- v = ~getValue(execute(n[0], x));- break;-- case UNARY_PLUS:- v = +getValue(execute(n[0], x));- break;-- case UNARY_MINUS:- v = -getValue(execute(n[0], x));- break;-- case INCREMENT:- case DECREMENT:- t = execute(n[0], x);- u = Number(getValue(t));- if (n.postfix)- v = u;- putValue(t, (n.type == INCREMENT) ? ++u : --u, n[0]);- if (!n.postfix)- v = u;- break;-- case DOT:- r = execute(n[0], x);- t = getValue(r);- u = n[1].value;- v = new Reference(toObject(t, r, n[0]), u, n);- break;-- case INDEX:- r = execute(n[0], x);- t = getValue(r);- u = getValue(execute(n[1], x));- v = new Reference(toObject(t, r, n[0]), String(u), n);- break;-- case LIST:- // Curse ECMA for specifying that arguments is not an Array object!- v = {};- for (i = 0, j = n.length; i < j; i++) {- u = getValue(execute(n[i], x));- v.__defineProperty__(i, u, false, false, true);- }- v.__defineProperty__('length', i, false, false, true);- break;-- case CALL:- r = execute(n[0], x);- a = execute(n[1], x);- f = getValue(r);- if (isPrimitive(f) || typeof f.__call__ != "function") {- throw new TypeError(r + " is not callable",- n[0].filename, n[0].lineno);- }- t = (r instanceof Reference) ? r.base : null;- if (t instanceof Activation)- t = null;- v = f.__call__(t, a, x);- break;-- case NEW:- case NEW_WITH_ARGS:- r = execute(n[0], x);- f = getValue(r);- if (n.type == NEW) {- a = {};- a.__defineProperty__('length', 0, false, false, true);- } else {- a = execute(n[1], x);- }- if (isPrimitive(f) || typeof f.__construct__ != "function") {- throw new TypeError(r + " is not a constructor",- n[0].filename, n[0].lineno);- }- v = f.__construct__(a, x);- break;-- case ARRAY_INIT:- v = [];- for (i = 0, j = n.length; i < j; i++) {- if (n[i])- v[i] = getValue(execute(n[i], x));- }- v.length = j;- break;-- case OBJECT_INIT:- v = {};- for (i = 0, j = n.length; i < j; i++) {- t = n[i];- if (t.type == PROPERTY_INIT) {- v[t[0].value] = getValue(execute(t[1], x));- } else {- f = new FunctionObject(t, x.scope);- u = (t.type == GETTER) ? '__defineGetter__'- : '__defineSetter__';- v[u](t.name, thunk(f, x));- }- }- break;-- case NULL:- v = null;- break;-- case THIS:- v = x.thisObject;- break;-- case TRUE:- v = true;- break;-- case FALSE:- v = false;- break;-- case IDENTIFIER:- for (s = x.scope; s; s = s.parent) {- if (n.value in s.object)- break;- }- v = new Reference(s && s.object, n.value, n);- break;-- case NUMBER:- case STRING:- case REGEXP:- v = n.value;- break;-- case GROUP:- v = execute(n[0], x);- break;-- default:- throw "PANIC: unknown operation " + n.type + ": " + uneval(n);- }-- return v;-//}-}--function Activation(f, a) {- for (var i = 0, j = f.params.length; i < j; i++)- this.__defineProperty__(f.params[i], a[i], true);- this.__defineProperty__('arguments', a, true);-}--// Null Activation.prototype's proto slot so that Object.prototype.* does not-// pollute the scope of heavyweight functions. Also delete its 'constructor'-// property so that it doesn't pollute function scopes. But first, we must-// copy __defineProperty__ down from Object.prototype.--Activation.prototype.__defineProperty__ = Object.prototype.__defineProperty__;-Activation.prototype.__proto__ = null;-delete Activation.prototype.constructor;--function FunctionObject(node, scope) {- this.node = node;- this.scope = scope;- this.__defineProperty__('length', node.params.length, true, true, true);- var proto = {};- this.__defineProperty__('prototype', proto, true);- proto.__defineProperty__('constructor', this, false, false, true);-}--var FOp = FunctionObject.prototype = {- // Internal methods.- __call__: function (t, a, x) {- var x2 = new ExecutionContext(FUNCTION_CODE);- x2.thisObject = t || global;- x2.caller = x;- x2.callee = this;- a.__defineProperty__('callee', this, false, false, true);- var f = this.node;- x2.scope = {object: new Activation(f, a), parent: this.scope};-- ExecutionContext.current = x2;- try {- execute(f.body, x2);- } catch (e if e == RETURN) {- return x2.result;- } catch (e if e == THROW) {- x.result = x2.result;- throw THROW;- } finally {- ExecutionContext.current = x;- }- return undefined;- },-- __construct__: function (a, x) {- var o = new Object;- var p = this.prototype;- if (isObject(p))- o.__proto__ = p;- // else o.__proto__ defaulted to Object.prototype-- var v = this.__call__(o, a, x);- if (isObject(v))- return v;- return o;- },-- __hasInstance__: function (v) {- if (isPrimitive(v))- return false;- var p = this.prototype;- if (isPrimitive(p)) {- throw new TypeError("'prototype' property is not an object",- this.node.filename, this.node.lineno);- }- var o;- while ((o = v.__proto__)) {- if (o == p)- return true;- v = o;- }- return false;- },-- // Standard methods.- toString: function () {- return this.node.getSource();- },-- apply: function (t, a) {- // Curse ECMA again!- if (typeof this.__call__ != "function") {- throw new TypeError("Function.prototype.apply called on" +- " uncallable object");- }-- if (t === undefined || t === null)- t = global;- else if (typeof t != "object")- t = toObject(t, t);-- if (a === undefined || a === null) {- a = {};- a.__defineProperty__('length', 0, false, false, true);- } else if (a instanceof Array) {- var v = {};- for (var i = 0, j = a.length; i < j; i++)- v.__defineProperty__(i, a[i], false, false, true);- v.__defineProperty__('length', i, false, false, true);- a = v;- } else if (!(a instanceof Object)) {- // XXX check for a non-arguments object- throw new TypeError("Second argument to Function.prototype.apply" +- " must be an array or arguments object",- this.node.filename, this.node.lineno);- }-- return this.__call__(t, a, ExecutionContext.current);- },-- call: function (t) {- // Curse ECMA a third time!- var a = Array.prototype.splice.call(arguments, 1);- return this.apply(t, a);- }-};--// Connect Function.prototype and Function.prototype.constructor in global.-reflectClass('Function', FOp);--// Help native and host-scripted functions be like FunctionObjects.-var Fp = Function.prototype;-var REp = RegExp.prototype;--if (!('__call__' in Fp)) {- Fp.__defineProperty__('__call__', function (t, a, x) {- // Curse ECMA yet again!- a = Array.prototype.splice.call(a, 0, a.length);- return this.apply(t, a);- }, true, true, true);-- REp.__defineProperty__('__call__', function (t, a, x) {- a = Array.prototype.splice.call(a, 0, a.length);- return this.exec.apply(this, a);- }, true, true, true);-- Fp.__defineProperty__('__construct__', function (a, x) {- a = Array.prototype.splice.call(a, 0, a.length);- return this.__applyConstructor__(a);- }, true, true, true);-- // Since we use native functions such as Date along with host ones such- // as global.eval, we want both to be considered instances of the native- // Function constructor.- Fp.__defineProperty__('__hasInstance__', function (v) {- return v instanceof Function || v instanceof global.Function;- }, true, true, true);-}--function thunk(f, x) {- return function () { return f.__call__(this, arguments, x); };-}--function evaluate(s, f, l) {- if (typeof s != "string")- return s;-- var x = ExecutionContext.current;- var x2 = new ExecutionContext(GLOBAL_CODE);- ExecutionContext.current = x2;- try {- execute(parse(s, f, l), x2);- } catch (e if e == THROW) {- if (x) {- x.result = x2.result;- throw THROW;- }- throw x2.result;- } finally {- ExecutionContext.current = x;- }- return x2.result;-}
− test/parsingonly/122_jsexec2.js
@@ -1,946 +0,0 @@-/* ***** BEGIN LICENSE BLOCK *****- * vim: set ts=4 sw=4 et tw=80:- *- * Version: MPL 1.1/GPL 2.0/LGPL 2.1- *- * The contents of this file are subject to the Mozilla Public License Version- * 1.1 (the "License"); you may not use this file except in compliance with- * the License. You may obtain a copy of the License at- * http://www.mozilla.org/MPL/- *- * Software distributed under the License is distributed on an "AS IS" basis,- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License- * for the specific language governing rights and limitations under the- * License.- *- * The Original Code is the Narcissus JavaScript engine.- *- * The Initial Developer of the Original Code is- * Brendan Eich <brendan@mozilla.org>.- * Portions created by the Initial Developer are Copyright (C) 2004- * the Initial Developer. All Rights Reserved.- *- * Contributor(s):- *- * Alternatively, the contents of this file may be used under the terms of- * either the GNU General Public License Version 2 or later (the "GPL"), or- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),- * in which case the provisions of the GPL or the LGPL are applicable instead- * of those above. If you wish to allow use of your version of this file only- * under the terms of either the GPL or the LGPL, and not to allow others to- * use your version of this file under the terms of the MPL, indicate your- * decision by deleting the provisions above and replace them with the notice- * and other provisions required by the GPL or the LGPL. If you do not delete- * the provisions above, a recipient may use your version of this file under- * the terms of any one of the MPL, the GPL or the LGPL.- *- * ***** END LICENSE BLOCK ***** */--/*- * Narcissus - JS implemented in JS.- *- * Execution of parse trees.- *- * Standard classes except for eval, Function, Array, and String are borrowed- * from the host JS environment. Function is metacircular. Array and String- * are reflected via wrapping the corresponding native constructor and adding- * an extra level of prototype-based delegation.- */--const GLOBAL_CODE = 0, EVAL_CODE = 1, FUNCTION_CODE = 2;--function ExecutionContext(type) {- this.type = type;-}--var global = {- // Value properties.- NaN: NaN, Infinity: Infinity, undefined: undefined,-- // Function properties.- eval: function eval(s) {- if (typeof s != "string")- return s;-- var x = ExecutionContext.current;- var x2 = new ExecutionContext(EVAL_CODE);- x2.thisObject = x.thisObject;- x2.caller = x.caller;- x2.callee = x.callee;- x2.scope = x.scope;- ExecutionContext.current = x2;- try {- execute(parse(s), x2);- } catch (e if e == THROW) {- x.result = x2.result;- throw e;- } finally {- ExecutionContext.current = x;- }- return x2.result;- },- parseInt: parseInt, parseFloat: parseFloat,- isNaN: isNaN, isFinite: isFinite,- decodeURI: decodeURI, encodeURI: encodeURI,- decodeURIComponent: decodeURIComponent,- encodeURIComponent: encodeURIComponent,-- // Class constructors. Where ECMA-262 requires C.length == 1, we declare- // a dummy formal parameter.- Object: Object,- Function: function Function(dummy) {- var p = "", b = "", n = arguments.length;- if (n) {- var m = n - 1;- if (m) {- p += arguments[0];- for (var k = 1; k < m; k++)- p += "," + arguments[k];- }- b += arguments[m];- }-- // XXX We want to pass a good file and line to the tokenizer.- // Note the anonymous name to maintain parity with Spidermonkey.- var t = new Tokenizer("anonymous(" + p + ") {" + b + "}");-- // NB: Use the STATEMENT_FORM constant since we don't want to push this- // function onto the null compilation context.- var f = FunctionDefinition(t, null, false, STATEMENT_FORM);- var s = {object: global, parent: null};- return new FunctionObject(f, s);- },- Array: function Array(dummy) {- // Array when called as a function acts as a constructor.- return GLOBAL.Array.apply(this, arguments);- },- String: function String(s) {- // Called as function or constructor: convert argument to string type.- s = arguments.length ? "" + s : "";- if (this instanceof String) {- // Called as constructor: save the argument as the string value- // of this String object and return this object.- this.value = s;- return this;- }- return s;- },- Boolean: Boolean, Number: Number, Date: Date, RegExp: RegExp,- Error: Error, EvalError: EvalError, RangeError: RangeError,- ReferenceError: ReferenceError, SyntaxError: SyntaxError,- TypeError: TypeError, URIError: URIError,-- // Other properties.- Math: Math,-- // Extensions to ECMA.- snarf: snarf, evaluate: evaluate,- load: function load(s) {- if (typeof s != "string")- return s;-- evaluate(snarf(s), s, 1)- },- print: print, version: null-};--// Helper to avoid Object.prototype.hasOwnProperty polluting scope objects.-function hasDirectProperty(o, p) {- return Object.prototype.hasOwnProperty.call(o, p);-}--// Reflect a host class into the target global environment by delegation.-function reflectClass(name, proto) {- var gctor = global[name];- gctor.__defineProperty__('prototype', proto, true, true, true);- proto.__defineProperty__('constructor', gctor, false, false, true);- return proto;-}--// Reflect Array -- note that all Array methods are generic.-reflectClass('Array', new Array);--// Reflect String, overriding non-generic methods.-var gSp = reflectClass('String', new String);-gSp.toSource = function () { return this.value.toSource(); };-gSp.toString = function () { return this.value; };-gSp.valueOf = function () { return this.value; };-global.String.fromCharCode = String.fromCharCode;--var XCp = ExecutionContext.prototype;-ExecutionContext.current = XCp.caller = XCp.callee = null;-XCp.scope = {object: global, parent: null};-XCp.thisObject = global;-XCp.result = undefined;-XCp.target = null;-XCp.ecmaStrictMode = false;--function Reference(base, propertyName, node) {- this.base = base;- this.propertyName = propertyName;- this.node = node;-}--Reference.prototype.toString = function () { return this.node.getSource(); }--function getValue(v) {- if (v instanceof Reference) {- if (!v.base) {- throw new ReferenceError(v.propertyName + " is not defined",- v.node.filename, v.node.lineno);- }- return v.base[v.propertyName];- }- return v;-}--function putValue(v, w, vn) {- if (v instanceof Reference)- return (v.base || global)[v.propertyName] = w;- throw new ReferenceError("Invalid assignment left-hand side",- vn.filename, vn.lineno);-}--function isPrimitive(v) {- var t = typeof v;- return (t == "object") ? v === null : t != "function";-}--function isObject(v) {- var t = typeof v;- return (t == "object") ? v !== null : t == "function";-}--// If r instanceof Reference, v == getValue(r); else v === r. If passed, rn-// is the node whose execute result was r.-function toObject(v, r, rn) {- switch (typeof v) {- case "boolean":- return new global.Boolean(v);- case "number":- return new global.Number(v);- case "string":- return new global.String(v);- case "function":- return v;- case "object":- if (v !== null)- return v;- }- var message = r + " (type " + (typeof v) + ") has no properties";- throw rn ? new TypeError(message, rn.filename, rn.lineno)- : new TypeError(message);-}--//function execute(n, x) {-function execute(n, x) {- var a, f, i, j, r, s, t, u, v;-- switch (n.type) {- case FUNCTION:- if (n.functionForm != DECLARED_FORM) {- if (!n.name || n.functionForm == STATEMENT_FORM) {- v = new FunctionObject(n, x.scope);- if (n.functionForm == STATEMENT_FORM)- x.scope.object.__defineProperty__(n.name, v, true);- } else {- t = new Object;- x.scope = {object: t, parent: x.scope};- try {- v = new FunctionObject(n, x.scope);- t.__defineProperty__(n.name, v, true, true);- } finally {- x.scope = x.scope.parent;- }- }- }- break;-- case SCRIPT:- t = x.scope.object;- a = n.funDecls;- for (i = 0, j = a.length; i < j; i++) {- s = a[i].name;- f = new FunctionObject(a[i], x.scope);- t.__defineProperty__(s, f, x.type != EVAL_CODE);- }- a = n.varDecls;- for (i = 0, j = a.length; i < j; i++) {- u = a[i];- s = u.name;- if (u.readOnly && hasDirectProperty(t, s)) {- throw new TypeError("Redeclaration of const " + s,- u.filename, u.lineno);- }//++??AZ??"c:/Mark/MyDevelopments/haskell/HJS/hjs-0.2/testsuite/parsingonly/122_jsexec.js"- if (u.readOnly || !hasDirectProperty(t, s)) {- t.__defineProperty__(s, undefined, x.type != EVAL_CODE,- u.readOnly);- }- }- // FALL THROUGH-- case BLOCK:- for (i = 0, j = n.length; i < j; i++)- execute(n[i], x);- break;-- case IF:- if (getValue(execute(n.condition, x)))- execute(n.thenPart, x);- else if (n.elsePart)- execute(n.elsePart, x);- break;-- case SWITCH:- s = getValue(execute(n.discriminant, x));- a = n.cases;- var matchDefault = false;- switch_loop:- for (i = 0, j = a.length; ; i++) {- if (i == j) {- if (n.defaultIndex >= 0) {- i = n.defaultIndex - 1; // no case matched, do default- matchDefault = true;- continue;- }- break; // no default, exit switch_loop- }- t = a[i]; // next case (might be default!)- if (t.type == CASE) {- u = getValue(execute(t.caseLabel, x));- } else {- if (!matchDefault) // not defaulting, skip for now- continue;- u = s; // force match to do default- }- if (u === s) {- for (;;) { // this loop exits switch_loop- if (t.statements.length) {- try {- execute(t.statements, x);- } catch (e if e == BREAK && x.target == n) {- break switch_loop;- }- }- if (++i == j)- break switch_loop;- t = a[i];- }- // NOT REACHED- }- }- break;-- case FOR:- n.setup && getValue(execute(n.setup, x));- // FALL THROUGH- case WHILE:- while (!n.condition || getValue(execute(n.condition, x))) {- try {- execute(n.body, x);- } catch (e if e == BREAK && x.target == n) {- break;- } catch (e if e == CONTINUE && x.target == n) {- continue;- }- n.update && getValue(execute(n.update, x));- }- break;-- case FOR_IN:- u = n.varDecl;- if (u)- execute(u, x);- r = n.iterator;- s = execute(n.object, x);- v = getValue(s);-- // ECMA deviation to track extant browser JS implementation behavior.- t = (v == null && !x.ecmaStrictMode) ? v : toObject(v, s, n.object);- a = [];- for (i in t)- a.push(i);- for (i = 0, j = a.length; i < j; i++) {- putValue(execute(r, x), a[i], r);- try {- execute(n.body, x);- } catch (e if e == BREAK && x.target == n) {- break;- } catch (e if e == CONTINUE && x.target == n) {- continue;- }- }- break;-- case DO:- do {- try {- execute(n.body, x);- } catch (e if e == BREAK && x.target == n) {- break;- } catch (e if e == CONTINUE && x.target == n) {- continue;- }- } while (getValue(execute(n.condition, x)));- break;-- case BREAK:- case CONTINUE:- x.target = n.target;- throw n.type;-- case TRY:- try {- execute(n.tryBlock, x);- } catch (e if e == THROW && (j = n.catchClauses.length)) {- e = x.result;- x.result = undefined;- for (i = 0; ; i++) {- if (i == j) {- x.result = e;- throw THROW;- }- t = n.catchClauses[i];- x.scope = {object: {}, parent: x.scope};- x.scope.object.__defineProperty__(t.varName, e, true);- try {- if (t.guard && !getValue(execute(t.guard, x)))- continue;- execute(t.block, x);- break;- } finally {- x.scope = x.scope.parent;- }- }- } finally {- if (n.finallyBlock)- execute(n.finallyBlock, x);- }- break;-- case THROW:- x.result = getValue(execute(n.exception, x));- throw THROW;-- case RETURN:- x.result = getValue(execute(n.value, x));- throw RETURN;-- case WITH:- r = execute(n.object, x);- t = toObject(getValue(r), r, n.object);- x.scope = {object: t, parent: x.scope};- try {- execute(n.body, x);- } finally {- x.scope = x.scope.parent;- }- break;-- case VAR:- case CONST:- for (i = 0, j = n.length; i < j; i++) {- u = n[i].initializer;- if (!u)- continue;- t = n[i].name;- for (s = x.scope; s; s = s.parent) {- if (hasDirectProperty(s.object, t))- break;- }- u = getValue(execute(u, x));- if (n.type == CONST)- s.object.__defineProperty__(t, u, x.type != EVAL_CODE, true);- else- s.object[t] = u;- }- break;-- case DEBUGGER:- throw "NYI: " + tokens[n.type];-- case SEMICOLON:- if (n.expression)- x.result = getValue(execute(n.expression, x));- break;-- case LABEL:- try {- execute(n.statement, x);- } catch (e if e == BREAK && x.target == n) {- }- break;-- case COMMA:- for (i = 0, j = n.length; i < j; i++)- v = getValue(execute(n[i], x));- break;-- case ASSIGN:- r = execute(n[0], x);- t = n[0].assignOp;- if (t)- u = getValue(r);- v = getValue(execute(n[1], x));- if (t) {- switch (t) {- case BITWISE_OR: v = u | v; break;- case BITWISE_XOR: v = u ^ v; break;- case BITWISE_AND: v = u & v; break;- case LSH: v = u << v; break;- case RSH: v = u >> v; break;- case URSH: v = u >>> v; break;- case PLUS: v = u + v; break;- case MINUS: v = u - v; break;- case MUL: v = u * v; break;- case DIV: v = u / v; break;- case MOD: v = u % v; break;- }- }- putValue(r, v, n[0]);- break;-- case CONDITIONAL:- v = getValue(execute(n[0], x)) ? getValue(execute(n[1], x))- : getValue(execute(n[2], x));- break;-- case OR:- v = getValue(execute(n[0], x)) || getValue(execute(n[1], x));- break;-- case AND:- v = getValue(execute(n[0], x)) && getValue(execute(n[1], x));- break;-- case BITWISE_OR:- v = getValue(execute(n[0], x)) | getValue(execute(n[1], x));- break;-- case BITWISE_XOR:- v = getValue(execute(n[0], x)) ^ getValue(execute(n[1], x));- break;-- case BITWISE_AND:- v = getValue(execute(n[0], x)) & getValue(execute(n[1], x));- break;-- case EQ:- v = getValue(execute(n[0], x)) == getValue(execute(n[1], x));- break;-- case NE:- v = getValue(execute(n[0], x)) != getValue(execute(n[1], x));- break;-- case STRICT_EQ:- v = getValue(execute(n[0], x)) === getValue(execute(n[1], x));- break;-- case STRICT_NE:- v = getValue(execute(n[0], x)) !== getValue(execute(n[1], x));- break;-- case LT:- v = getValue(execute(n[0], x)) < getValue(execute(n[1], x));- break;-- case LE:- v = getValue(execute(n[0], x)) <= getValue(execute(n[1], x));- break;-- case GE:- v = getValue(execute(n[0], x)) >= getValue(execute(n[1], x));- break;-- case GT:- v = getValue(execute(n[0], x)) > getValue(execute(n[1], x));- break;-- case IN:- v = getValue(execute(n[0], x)) in getValue(execute(n[1], x));- break;-- case INSTANCEOF:- t = getValue(execute(n[0], x));- u = getValue(execute(n[1], x));- if (isObject(u) && typeof u.__hasInstance__ == "function")- v = u.__hasInstance__(t);- else- v = t instanceof u;- break;-- case LSH:- v = getValue(execute(n[0], x)) << getValue(execute(n[1], x));- break;-- case RSH:- v = getValue(execute(n[0], x)) >> getValue(execute(n[1], x));- break;-- case URSH:- v = getValue(execute(n[0], x)) >>> getValue(execute(n[1], x));- break;-- case PLUS:- v = getValue(execute(n[0], x)) + getValue(execute(n[1], x));- break;-- case MINUS:- v = getValue(execute(n[0], x)) - getValue(execute(n[1], x));- break;-- case MUL:- v = getValue(execute(n[0], x)) * getValue(execute(n[1], x));- break;-- case DIV:- v = getValue(execute(n[0], x)) / getValue(execute(n[1], x));- break;-- case MOD:- v = getValue(execute(n[0], x)) % getValue(execute(n[1], x));- break;-- case DELETE:- t = execute(n[0], x);- v = !(t instanceof Reference) || delete t.base[t.propertyName];- break;-- case VOID:- getValue(execute(n[0], x));- break;-- case TYPEOF:- t = execute(n[0], x);- if (t instanceof Reference)- t = t.base ? t.base[t.propertyName] : undefined;- v = typeof t;- break;-- case NOT:- v = !getValue(execute(n[0], x));- break;-- case BITWISE_NOT:- v = ~getValue(execute(n[0], x));- break;-- case UNARY_PLUS:- v = +getValue(execute(n[0], x));- break;-- case UNARY_MINUS:- v = -getValue(execute(n[0], x));- break;-- case INCREMENT:- case DECREMENT:- t = execute(n[0], x);- u = Number(getValue(t));- if (n.postfix)- v = u;- putValue(t, (n.type == INCREMENT) ? ++u : --u, n[0]);- if (!n.postfix)- v = u;- break;-- case DOT:- r = execute(n[0], x);- t = getValue(r);- u = n[1].value;- v = new Reference(toObject(t, r, n[0]), u, n);- break;-- case INDEX:- r = execute(n[0], x);- t = getValue(r);- u = getValue(execute(n[1], x));- v = new Reference(toObject(t, r, n[0]), String(u), n);- break;-- case LIST:- // Curse ECMA for specifying that arguments is not an Array object!- v = {};- for (i = 0, j = n.length; i < j; i++) {- u = getValue(execute(n[i], x));- v.__defineProperty__(i, u, false, false, true);- }- v.__defineProperty__('length', i, false, false, true);- break;-- case CALL:- r = execute(n[0], x);- a = execute(n[1], x);- f = getValue(r);- if (isPrimitive(f) || typeof f.__call__ != "function") {- throw new TypeError(r + " is not callable",- n[0].filename, n[0].lineno);- }- t = (r instanceof Reference) ? r.base : null;- if (t instanceof Activation)- t = null;- v = f.__call__(t, a, x);- break;-- case NEW:- case NEW_WITH_ARGS:- r = execute(n[0], x);- f = getValue(r);- if (n.type == NEW) {- a = {};- a.__defineProperty__('length', 0, false, false, true);- } else {- a = execute(n[1], x);- }- if (isPrimitive(f) || typeof f.__construct__ != "function") {- throw new TypeError(r + " is not a constructor",- n[0].filename, n[0].lineno);- }- v = f.__construct__(a, x);- break;-- case ARRAY_INIT:- v = [];- for (i = 0, j = n.length; i < j; i++) {- if (n[i])- v[i] = getValue(execute(n[i], x));- }- v.length = j;- break;-- case OBJECT_INIT:- v = {};- for (i = 0, j = n.length; i < j; i++) {- t = n[i];- if (t.type == PROPERTY_INIT) {- v[t[0].value] = getValue(execute(t[1], x));- } else {- f = new FunctionObject(t, x.scope);- u = (t.type == GETTER) ? '__defineGetter__'- : '__defineSetter__';- v[u](t.name, thunk(f, x));- }- }- break;-- case NULL:- v = null;- break;-- case THIS:- v = x.thisObject;- break;-- case TRUE:- v = true;- break;-- case FALSE:- v = false;- break;-- case IDENTIFIER:- for (s = x.scope; s; s = s.parent) {- if (n.value in s.object)- break;- }- v = new Reference(s && s.object, n.value, n);- break;-- case NUMBER:- case STRING:- case REGEXP:- v = n.value;- break;-- case GROUP:- v = execute(n[0], x);- break;-- default:- throw "PANIC: unknown operation " + n.type + ": " + uneval(n);- }-- return v;-//}-}--function Activation(f, a) {- for (var i = 0, j = f.params.length; i < j; i++)- this.__defineProperty__(f.params[i], a[i], true);- this.__defineProperty__('arguments', a, true);-}--// Null Activation.prototype's proto slot so that Object.prototype.* does not-// pollute the scope of heavyweight functions. Also delete its 'constructor'-// property so that it doesn't pollute function scopes. But first, we must-// copy __defineProperty__ down from Object.prototype.--Activation.prototype.__defineProperty__ = Object.prototype.__defineProperty__;-Activation.prototype.__proto__ = null;-delete Activation.prototype.constructor;--function FunctionObject(node, scope) {- this.node = node;- this.scope = scope;- this.__defineProperty__('length', node.params.length, true, true, true);- var proto = {};- this.__defineProperty__('prototype', proto, true);- proto.__defineProperty__('constructor', this, false, false, true);-}--var FOp = FunctionObject.prototype = {- // Internal methods.- __call__: function (t, a, x) {- var x2 = new ExecutionContext(FUNCTION_CODE);- x2.thisObject = t || global;- x2.caller = x;- x2.callee = this;- a.__defineProperty__('callee', this, false, false, true);- var f = this.node;- x2.scope = {object: new Activation(f, a), parent: this.scope};-- ExecutionContext.current = x2;- try {- execute(f.body, x2);- } catch (e if e == RETURN) {- return x2.result;- } catch (e if e == THROW) {- x.result = x2.result;- throw THROW;- } finally {- ExecutionContext.current = x;- }- return undefined;- },-- __construct__: function (a, x) {- var o = new Object;- var p = this.prototype;- if (isObject(p))- o.__proto__ = p;- // else o.__proto__ defaulted to Object.prototype-- var v = this.__call__(o, a, x);- if (isObject(v))- return v;- return o;- },-- __hasInstance__: function (v) {- if (isPrimitive(v))- return false;- var p = this.prototype;- if (isPrimitive(p)) {- throw new TypeError("'prototype' property is not an object",- this.node.filename, this.node.lineno);- }- var o;- while ((o = v.__proto__)) {- if (o == p)- return true;- v = o;- }- return false;- },-- // Standard methods.- toString: function () {- return this.node.getSource();- },-- apply: function (t, a) {- // Curse ECMA again!- if (typeof this.__call__ != "function") {- throw new TypeError("Function.prototype.apply called on" +- " uncallable object");- }-- if (t === undefined || t === null)- t = global;- else if (typeof t != "object")- t = toObject(t, t);-- if (a === undefined || a === null) {- a = {};- a.__defineProperty__('length', 0, false, false, true);- } else if (a instanceof Array) {- var v = {};- for (var i = 0, j = a.length; i < j; i++)- v.__defineProperty__(i, a[i], false, false, true);- v.__defineProperty__('length', i, false, false, true);- a = v;- } else if (!(a instanceof Object)) {- // XXX check for a non-arguments object- throw new TypeError("Second argument to Function.prototype.apply" +- " must be an array or arguments object",- this.node.filename, this.node.lineno);- }-- return this.__call__(t, a, ExecutionContext.current);- },-- call: function (t) {- // Curse ECMA a third time!- var a = Array.prototype.splice.call(arguments, 1);- return this.apply(t, a);- }-};--// Connect Function.prototype and Function.prototype.constructor in global.-reflectClass('Function', FOp);--// Help native and host-scripted functions be like FunctionObjects.-var Fp = Function.prototype;-var REp = RegExp.prototype;--if (!('__call__' in Fp)) {- Fp.__defineProperty__('__call__', function (t, a, x) {- // Curse ECMA yet again!- a = Array.prototype.splice.call(a, 0, a.length);- return this.apply(t, a);- }, true, true, true);-- REp.__defineProperty__('__call__', function (t, a, x) {- a = Array.prototype.splice.call(a, 0, a.length);- return this.exec.apply(this, a);- }, true, true, true);-- Fp.__defineProperty__('__construct__', function (a, x) {- a = Array.prototype.splice.call(a, 0, a.length);- return this.__applyConstructor__(a);- }, true, true, true);-- // Since we use native functions such as Date along with host ones such- // as global.eval, we want both to be considered instances of the native- // Function constructor.- Fp.__defineProperty__('__hasInstance__', function (v) {- return v instanceof Function || v instanceof global.Function;- }, true, true, true);-}--function thunk(f, x) {- return function () { return f.__call__(this, arguments, x); };-}--function evaluate(s, f, l) {- if (typeof s != "string")- return s;-- var x = ExecutionContext.current;- var x2 = new ExecutionContext(GLOBAL_CODE);- ExecutionContext.current = x2;- try {- execute(parse(s, f, l), x2);- } catch (e if e == THROW) {- if (x) {- x.result = x2.result;- throw THROW;- }- throw x2.result;- } finally {- ExecutionContext.current = x;- }- return x2.result;-}
− test/parsingonly/123_jsparse.js
@@ -1,997 +0,0 @@-/* vim: set sw=4 ts=8 et tw=80: */-/* ***** BEGIN LICENSE BLOCK *****- * Version: MPL 1.1/GPL 2.0/LGPL 2.1- *- * The contents of this file are subject to the Mozilla Public License Version- * 1.1 (the "License"); you may not use this file except in compliance with- * the License. You may obtain a copy of the License at- * http://www.mozilla.org/MPL/- *- * Software distributed under the License is distributed on an "AS IS" basis,- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License- * for the specific language governing rights and limitations under the- * License.- *- * The Original Code is the Narcissus JavaScript engine.- *- * The Initial Developer of the Original Code is- * Brendan Eich <brendan@mozilla.org>.- * Portions created by the Initial Developer are Copyright (C) 2004- * the Initial Developer. All Rights Reserved.- *- * Contributor(s):- *- * Alternatively, the contents of this file may be used under the terms of- * either the GNU General Public License Version 2 or later (the "GPL"), or- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),- * in which case the provisions of the GPL or the LGPL are applicable instead- * of those above. If you wish to allow use of your version of this file only- * under the terms of either the GPL or the LGPL, and not to allow others to- * use your version of this file under the terms of the MPL, indicate your- * decision by deleting the provisions above and replace them with the notice- * and other provisions required by the GPL or the LGPL. If you do not delete- * the provisions above, a recipient may use your version of this file under- * the terms of any one of the MPL, the GPL or the LGPL.- *- * ***** END LICENSE BLOCK ***** */--/*- * Narcissus - JS implemented in JS.- *- * Lexical scanner and parser.- */--// Build a regexp that recognizes operators and punctuators (except newline).-var opRegExpSrc = "^";-for (i in opTypeNames) {- if (i == '\n')- continue;- if (opRegExpSrc != "^")- opRegExpSrc += "|^";- opRegExpSrc += i.replace(/[?|^&(){}\[\]+\-*\/\.]/g, "\\$&");-}-var opRegExp = new RegExp(opRegExpSrc);--// A regexp to match floating point literals (but not integer literals).-var fpRegExp = /^\d+\.\d*(?:[eE][-+]?\d+)?|^\d+(?:\.\d*)?[eE][-+]?\d+|^\.\d+(?:[eE][-+]?\d+)?/;--function Tokenizer(s, f, l) {- this.cursor = 0;- this.source = String(s);- this.tokens = [];- this.tokenIndex = 0;- this.lookahead = 0;- this.scanNewlines = false;- this.scanOperand = true;- this.filename = f || "";- this.lineno = l || 1;-}--Tokenizer.prototype = {- get input() {- return this.source.substring(this.cursor);- },-- get done() {- return this.peek() == END;- },-- get token() {- return this.tokens[this.tokenIndex];- },-- match: function (tt) {- return this.get() == tt || this.unget();- },-- mustMatch: function (tt) {- if (!this.match(tt))- throw this.newSyntaxError("Missing " + tokens[tt].toLowerCase());- return this.token;- },-- peek: function () {- var tt;- if (this.lookahead) {- tt = this.tokens[(this.tokenIndex + this.lookahead) & 3].type;- } else {- tt = this.get();- this.unget();- }- return tt;- },-- peekOnSameLine: function () {- this.scanNewlines = true;- var tt = this.peek();- this.scanNewlines = false;- return tt;- },-- get: function () {- var token;- while (this.lookahead) {- --this.lookahead;- this.tokenIndex = (this.tokenIndex + 1) & 3;- token = this.tokens[this.tokenIndex];- if (token.type != NEWLINE || this.scanNewlines)- return token.type;- }-- for (;;) {- var input = this.input;- var match = (this.scanNewlines ? /^[ \t]+/ : /^\s+/)(input);- if (match) {- var spaces = match[0];- this.cursor += spaces.length;- var newlines = spaces.match(/\n/g);- if (newlines)- this.lineno += newlines.length;- input = this.input;- }-- if (!(match = /^\/(?:\*(?:.|\n)*?\*\/|\/.*)/(input)))- break;- var comment = match[0];- this.cursor += comment.length;- newlines = comment.match(/\n/g);- if (newlines)- this.lineno += newlines.length- }-- this.tokenIndex = (this.tokenIndex + 1) & 3;- token = this.tokens[this.tokenIndex];- if (!token)- this.tokens[this.tokenIndex] = token = {};-- if (!input)- return token.type = END;-- if ((match = fpRegExp(input))) {- token.type = NUMBER;- token.value = parseFloat(match[0]);- } else if ((match = /^0[xX][\da-fA-F]+|^0[0-7]*|^\d+/(input))) {- token.type = NUMBER;- token.value = parseInt(match[0]);- } else if ((match = /^\w+/(input))) {- var id = match[0];- token.type = keywords[id] || IDENTIFIER;- token.value = id;- } else if ((match = /^"(?:\\.|[^"])*"|^'(?:[^']|\\.)*'/(input))) { //"){- token.type = STRING;- token.value = eval(match[0]);- } else if (this.scanOperand &&- (match = /^\/((?:\\.|[^\/])+)\/([gi]*)/(input))) {- token.type = REGEXP;- token.value = new RegExp(match[1], match[2]);- } else if ((match = opRegExp(input))) {- var op = match[0];- if (assignOps[op] && input[op.length] == '=') {- token.type = ASSIGN;- token.assignOp = GLOBAL[opTypeNames[op]];- match[0] += '=';- } else {- token.type = GLOBAL[opTypeNames[op]];- if (this.scanOperand &&- (token.type == PLUS || token.type == MINUS)) {- token.type += UNARY_PLUS - PLUS;- }- token.assignOp = null;- }- token.value = op;- } else {- throw this.newSyntaxError("Illegal token");- }-- token.start = this.cursor;- this.cursor += match[0].length;- token.end = this.cursor;- token.lineno = this.lineno;- return token.type;- },-- unget: function () {- if (++this.lookahead == 4) throw "PANIC: too much lookahead!";- this.tokenIndex = (this.tokenIndex - 1) & 3;- },-- newSyntaxError: function (m) {- var e = new SyntaxError(m, this.filename, this.lineno);- e.source = this.source;- e.cursor = this.cursor;- return e;- }-};--function CompilerContext(inFunction) {- this.inFunction = inFunction;- this.stmtStack = [];- this.funDecls = [];- this.varDecls = [];-}--var CCp = CompilerContext.prototype;-CCp.bracketLevel = CCp.curlyLevel = CCp.parenLevel = CCp.hookLevel = 0;-CCp.ecmaStrictMode = CCp.inForLoopInit = false;--function Script(t, x) {- var n = Statements(t, x);- n.type = SCRIPT;- n.funDecls = x.funDecls;- n.varDecls = x.varDecls;- return n;-}--// Node extends Array, which we extend slightly with a top-of-stack method.-Array.prototype.__defineProperty__(- 'top',- function () { - return this.length && this[this.length-1]; - },- false, false, true-);--function Node(t, type) {- var token = t.token;- if (token) {- this.type = type || token.type;- this.value = token.value;- this.lineno = token.lineno;- this.start = token.start;- this.end = token.end;- } else {- this.type = type;- this.lineno = t.lineno;- }- this.tokenizer = t;-- for (var i = 2; i < arguments.length; i++)- this.push(arguments[i]);-}--var Np = Node.prototype = new Array;-Np.constructor = Node;-Np.toSource = Object.prototype.toSource;--// Always use push to add operands to an expression, to update start and end.-Np.push = function (kid) {- if (kid.start < this.start)- this.start = kid.start;- if (this.end < kid.end)- this.end = kid.end;- return Array.prototype.push.call(this, kid);-}--Node.indentLevel = 0;--function tokenstr(tt) {- var t = tokens[tt];- return /^\W/.test(t) ? opTypeNames[t] : t.toUpperCase();-}--Np.toString = function () {- var a = [];- for (var i in this) {- if (this.hasOwnProperty(i) && i != 'type')- a.push({id: i, value: this[i]});- }- a.sort(function (a,b) { return (a.id < b.id) ? -1 : 1; });- const INDENTATION = " ";- var n = ++Node.indentLevel;- var s = "{\n" + INDENTATION.repeat(n) + "type: " + tokenstr(this.type);- for (i = 0; i < a.length; i++)- s += ",\n" + INDENTATION.repeat(n) + a[i].id + ": " + a[i].value;- n = --Node.indentLevel;- s += "\n" + INDENTATION.repeat(n) + "}";- return s;-}--Np.getSource = function () {- return this.tokenizer.source.slice(this.start, this.end);-};--Np.__defineGetter__('filename',- function () { return this.tokenizer.filename; });--String.prototype.__defineProperty__(- 'repeat',- function (n) {- var s = "", t = this + s;- while (--n >= 0)- s += t;- return s;- },- false, false, true-);--// Statement stack and nested statement handler.-function nest(t, x, node, func, end) {- x.stmtStack.push(node);- var n = func(t, x);- x.stmtStack.pop();- end && t.mustMatch(end);- return n;-}--function Statements(t, x) {- var n = new Node(t, BLOCK);- x.stmtStack.push(n);- while (!t.done && t.peek() != RIGHT_CURLY)- n.push(Statement(t, x));- x.stmtStack.pop();- return n;-}--function Block(t, x) {- t.mustMatch(LEFT_CURLY);- var n = Statements(t, x);- t.mustMatch(RIGHT_CURLY);- return n;-}--const DECLARED_FORM = 0, EXPRESSED_FORM = 1, STATEMENT_FORM = 2;--function Statement(t, x) {- var i, label, n, n2, ss, tt = t.get();-- // Cases for statements ending in a right curly return early, avoiding the- // common semicolon insertion magic after this switch.- switch (tt) {- case FUNCTION:- return FunctionDefinition(t, x, true,- (x.stmtStack.length > 1)- ? STATEMENT_FORM- : DECLARED_FORM);-- case LEFT_CURLY:- n = Statements(t, x);- t.mustMatch(RIGHT_CURLY);- return n;-- case IF:- n = new Node(t);- n.condition = ParenExpression(t, x);- x.stmtStack.push(n);- n.thenPart = Statement(t, x);- n.elsePart = t.match(ELSE) ? Statement(t, x) : null;- x.stmtStack.pop();- return n;-- case SWITCH:- n = new Node(t);- t.mustMatch(LEFT_PAREN);- n.discriminant = Expression(t, x);- t.mustMatch(RIGHT_PAREN);- n.cases = [];- n.defaultIndex = -1;- x.stmtStack.push(n);- t.mustMatch(LEFT_CURLY);- while ((tt = t.get()) != RIGHT_CURLY) {- switch (tt) {- case DEFAULT:- if (n.defaultIndex >= 0)- throw t.newSyntaxError("More than one switch default");- // FALL THROUGH- case CASE:- n2 = new Node(t);- if (tt == DEFAULT)- n.defaultIndex = n.cases.length;- else- n2.caseLabel = Expression(t, x, COLON);- break;- default:- throw t.newSyntaxError("Invalid switch case");- }- t.mustMatch(COLON);- n2.statements = new Node(t, BLOCK);- while ((tt=t.peek()) != CASE && tt != DEFAULT && tt != RIGHT_CURLY)- n2.statements.push(Statement(t, x));- n.cases.push(n2);- }- x.stmtStack.pop();- return n;-- case FOR:- n = new Node(t);- n.isLoop = true;- t.mustMatch(LEFT_PAREN);- if ((tt = t.peek()) != SEMICOLON) {- x.inForLoopInit = true;- if (tt == VAR || tt == CONST) {- t.get();- n2 = Variables(t, x);- } else {- n2 = Expression(t, x);- }- x.inForLoopInit = false;- }- if (n2 && t.match(IN)) {- n.type = FOR_IN;- if (n2.type == VAR) {- if (n2.length != 1) {- throw new SyntaxError("Invalid for..in left-hand side",- t.filename, n2.lineno);- }-- // NB: n2[0].type == IDENTIFIER and n2[0].value == n2[0].name.- n.iterator = n2[0];- n.varDecl = n2;- } else {- n.iterator = n2;- n.varDecl = null;- }- n.object = Expression(t, x);- } else {- n.setup = n2 || null;- t.mustMatch(SEMICOLON);- n.condition = (t.peek() == SEMICOLON) ? null : Expression(t, x);- t.mustMatch(SEMICOLON);- n.update = (t.peek() == RIGHT_PAREN) ? null : Expression(t, x);- }- t.mustMatch(RIGHT_PAREN);- n.body = nest(t, x, n, Statement);- return n;-- case WHILE:- n = new Node(t);- n.isLoop = true;- n.condition = ParenExpression(t, x);- n.body = nest(t, x, n, Statement);- return n;-- case DO:- n = new Node(t);- n.isLoop = true;- n.body = nest(t, x, n, Statement, WHILE);- n.condition = ParenExpression(t, x);- if (!x.ecmaStrictMode) {- // <script language="JavaScript"> (without version hints) may need- // automatic semicolon insertion without a newline after do-while.- // See http://bugzilla.mozilla.org/show_bug.cgi?id=238945.- t.match(SEMICOLON);- return n;- }- break;-- case BREAK:- case CONTINUE:- n = new Node(t);- if (t.peekOnSameLine() == IDENTIFIER) {- t.get();- n.label = t.token.value;- }- ss = x.stmtStack;- i = ss.length;- label = n.label;- if (label) {- do {- if (--i < 0)- throw t.newSyntaxError("Label not found");- } while (ss[i].label != label);- } else {- do {- if (--i < 0) {- throw t.newSyntaxError("Invalid " + ((tt == BREAK)- ? "break"- : "continue"));- }- } while (!ss[i].isLoop && (tt != BREAK || ss[i].type != SWITCH));- }- n.target = ss[i];- break;-- case TRY:- n = new Node(t);- n.tryBlock = Block(t, x);- n.catchClauses = [];- while (t.match(CATCH)) {- n2 = new Node(t);- t.mustMatch(LEFT_PAREN);- n2.varName = t.mustMatch(IDENTIFIER).value;- if (t.match(IF)) {- if (x.ecmaStrictMode)- throw t.newSyntaxError("Illegal catch guard");- if (n.catchClauses.length && !n.catchClauses.top().guard)- throw t.newSyntaxError("Guarded catch after unguarded");- n2.guard = Expression(t, x);- } else {- n2.guard = null;- }- t.mustMatch(RIGHT_PAREN);- n2.block = Block(t, x);- n.catchClauses.push(n2);- }- if (t.match(FINALLY))- n.finallyBlock = Block(t, x);- if (!n.catchClauses.length && !n.finallyBlock)- throw t.newSyntaxError("Invalid try statement");- return n;-- case CATCH:- case FINALLY:- throw t.newSyntaxError(tokens[tt] + " without preceding try");-- case THROW:- n = new Node(t);- n.exception = Expression(t, x);- break;-- case RETURN:- if (!x.inFunction)- throw t.newSyntaxError("Invalid return");- n = new Node(t);- tt = t.peekOnSameLine();- if (tt != END && tt != NEWLINE && tt != SEMICOLON && tt != RIGHT_CURLY)- n.value = Expression(t, x);- break;-- case WITH:- n = new Node(t);- n.object = ParenExpression(t, x);- n.body = nest(t, x, n, Statement);- return n;-- case VAR:- case CONST:- n = Variables(t, x);- break;-- case DEBUGGER:- n = new Node(t);- break;-- case NEWLINE:- case SEMICOLON:- n = new Node(t, SEMICOLON);- n.expression = null;- return n;-- default:- if (tt == IDENTIFIER && t.peek() == COLON) {- label = t.token.value;- ss = x.stmtStack;- for (i = ss.length-1; i >= 0; --i) {- if (ss[i].label == label)- throw t.newSyntaxError("Duplicate label");- }- t.get();- n = new Node(t, LABEL);- n.label = label;- n.statement = nest(t, x, n, Statement);- return n;- }-- n = new Node(t, SEMICOLON);- t.unget();- n.expression = Expression(t, x);- n.end = n.expression.end;- break;- }-- if (t.lineno == t.token.lineno) {- tt = t.peekOnSameLine();- if (tt != END && tt != NEWLINE && tt != SEMICOLON && tt != RIGHT_CURLY)- throw t.newSyntaxError("Missing ; before statement");- }- t.match(SEMICOLON);- return n;-}--function FunctionDefinition(t, x, requireName, functionForm) {- var f = new Node(t);- if (f.type != FUNCTION)- f.type = (f.value == "get") ? GETTER : SETTER;- if (t.match(IDENTIFIER))- f.name = t.token.value;- else if (requireName)- throw t.newSyntaxError("Missing function identifier");-- t.mustMatch(LEFT_PAREN);- f.params = [];- var tt;- while ((tt = t.get()) != RIGHT_PAREN) {- if (tt != IDENTIFIER)- throw t.newSyntaxError("Missing formal parameter");- f.params.push(t.token.value);- if (t.peek() != RIGHT_PAREN)- t.mustMatch(COMMA);- }-- t.mustMatch(LEFT_CURLY);- var x2 = new CompilerContext(true);- f.body = Script(t, x2);- t.mustMatch(RIGHT_CURLY);- f.end = t.token.end;-- f.functionForm = functionForm;- if (functionForm == DECLARED_FORM)- x.funDecls.push(f);- return f;-}--function Variables(t, x) {- var n = new Node(t);- do {- t.mustMatch(IDENTIFIER);- var n2 = new Node(t);- n2.name = n2.value;- if (t.match(ASSIGN)) {- if (t.token.assignOp)- throw t.newSyntaxError("Invalid variable initialization");- n2.initializer = Expression(t, x, COMMA);- }- n2.readOnly = (n.type == CONST);- n.push(n2);- x.varDecls.push(n2);- } while (t.match(COMMA));- return n;-}--function ParenExpression(t, x) {- t.mustMatch(LEFT_PAREN);- var n = Expression(t, x);- t.mustMatch(RIGHT_PAREN);- return n;-}--var opPrecedence = {- SEMICOLON: 0,- COMMA: 1,- ASSIGN: 2, HOOK: 2, COLON: 2, CONDITIONAL: 2,- // The above all have to have the same precedence, see bug 330975.- OR: 4,- AND: 5,- BITWISE_OR: 6,- BITWISE_XOR: 7,- BITWISE_AND: 8,- EQ: 9, NE: 9, STRICT_EQ: 9, STRICT_NE: 9,- LT: 10, LE: 10, GE: 10, GT: 10, IN: 10, INSTANCEOF: 10,- LSH: 11, RSH: 11, URSH: 11,- PLUS: 12, MINUS: 12,- MUL: 13, DIV: 13, MOD: 13,- DELETE: 14, VOID: 14, TYPEOF: 14, // PRE_INCREMENT: 14, PRE_DECREMENT: 14,- NOT: 14, BITWISE_NOT: 14, UNARY_PLUS: 14, UNARY_MINUS: 14,- INCREMENT: 15, DECREMENT: 15, // postfix- NEW: 16,- DOT: 17-};--// Map operator type code to precedence.-for (i in opPrecedence)- opPrecedence[GLOBAL[i]] = opPrecedence[i];--var opArity = {- COMMA: -2,- ASSIGN: 2,- CONDITIONAL: 3,- OR: 2,- AND: 2,- BITWISE_OR: 2,- BITWISE_XOR: 2,- BITWISE_AND: 2,- EQ: 2, NE: 2, STRICT_EQ: 2, STRICT_NE: 2,- LT: 2, LE: 2, GE: 2, GT: 2, IN: 2, INSTANCEOF: 2,- LSH: 2, RSH: 2, URSH: 2,- PLUS: 2, MINUS: 2,- MUL: 2, DIV: 2, MOD: 2,- DELETE: 1, VOID: 1, TYPEOF: 1, // PRE_INCREMENT: 1, PRE_DECREMENT: 1,- NOT: 1, BITWISE_NOT: 1, UNARY_PLUS: 1, UNARY_MINUS: 1,- INCREMENT: 1, DECREMENT: 1, // postfix- NEW: 1, NEW_WITH_ARGS: 2, DOT: 2, INDEX: 2, CALL: 2,- ARRAY_INIT: 1, OBJECT_INIT: 1, GROUP: 1-};--// Map operator type code to arity.-for (i in opArity)- opArity[GLOBAL[i]] = opArity[i];--function Expression(t, x, stop) {- var n, id, tt, operators = [], operands = [];- var bl = x.bracketLevel, cl = x.curlyLevel, pl = x.parenLevel,- hl = x.hookLevel;-- function reduce() {- var n = operators.pop();- var op = n.type;- var arity = opArity[op];- if (arity == -2) {- // Flatten left-associative trees.- var left = operands.length >= 2 && operands[operands.length-2];- if (left.type == op) {- var right = operands.pop();- left.push(right);- return left;- }- arity = 2;- }-- // Always use push to add operands to n, to update start and end.- var a = operands.splice(operands.length - arity);- for (var i = 0; i < arity; i++)- n.push(a[i]);-- // Include closing bracket or postfix operator in [start,end).- if (n.end < t.token.end)- n.end = t.token.end;-- operands.push(n);- return n;- }--loop:- while ((tt = t.get()) != END) {- if (tt == stop &&- x.bracketLevel == bl && x.curlyLevel == cl && x.parenLevel == pl &&- x.hookLevel == hl) {- // Stop only if tt matches the optional stop parameter, and that- // token is not quoted by some kind of bracket.- break;- }- switch (tt) {- case SEMICOLON:- // NB: cannot be empty, Statement handled that.- break loop;-- case ASSIGN:- case HOOK:- case COLON:- if (t.scanOperand)- break loop;- // Use >, not >=, for right-associative ASSIGN and HOOK/COLON.- while (opPrecedence[operators.top().type] > opPrecedence[tt] ||- (tt == COLON && operators.top().type == ASSIGN)) {- reduce();- }- if (tt == COLON) {- n = operators.top();- if (n.type != HOOK)- throw t.newSyntaxError("Invalid label");- n.type = CONDITIONAL;- --x.hookLevel;- } else {- operators.push(new Node(t));- if (tt == ASSIGN)- operands.top().assignOp = t.token.assignOp;- else- ++x.hookLevel; // tt == HOOK- }- t.scanOperand = true;- break;-- case IN:- // An in operator should not be parsed if we're parsing the head of- // a for (...) loop, unless it is in the then part of a conditional- // expression, or parenthesized somehow.- if (x.inForLoopInit && !x.hookLevel &&- !x.bracketLevel && !x.curlyLevel && !x.parenLevel) {- break loop;- }- // FALL THROUGH- case COMMA:- // Treat comma as left-associative so reduce can fold left-heavy- // COMMA trees into a single array.- // FALL THROUGH- case OR:- case AND:- case BITWISE_OR:- case BITWISE_XOR:- case BITWISE_AND:- case EQ: case NE: case STRICT_EQ: case STRICT_NE:- case LT: case LE: case GE: case GT:- case INSTANCEOF:- case LSH: case RSH: case URSH:- case PLUS: case MINUS:- case MUL: case DIV: case MOD:- case DOT:- if (t.scanOperand)- break loop;- while (opPrecedence[operators.top().type] >= opPrecedence[tt])- reduce();- if (tt == DOT) {- t.mustMatch(IDENTIFIER);- operands.push(new Node(t, DOT, operands.pop(), new Node(t)));- } else {- operators.push(new Node(t));- t.scanOperand = true;- }- break;-- case DELETE: case VOID: case TYPEOF:- case NOT: case BITWISE_NOT: case UNARY_PLUS: case UNARY_MINUS:- case NEW:- if (!t.scanOperand)- break loop;- operators.push(new Node(t));- break;-- case INCREMENT: case DECREMENT:- if (t.scanOperand) {- operators.push(new Node(t)); // prefix increment or decrement- } else {- // Use >, not >=, so postfix has higher precedence than prefix.- while (opPrecedence[operators.top().type] > opPrecedence[tt])- reduce();- n = new Node(t, tt, operands.pop());- n.postfix = true;- operands.push(n);- }- break;-- case FUNCTION:- if (!t.scanOperand)- break loop;- operands.push(FunctionDefinition(t, x, false, EXPRESSED_FORM));- t.scanOperand = false;- break;-- case NULL: case THIS: case TRUE: case FALSE:- case IDENTIFIER: case NUMBER: case STRING: case REGEXP:- if (!t.scanOperand)- break loop;- operands.push(new Node(t));- t.scanOperand = false;- break;-- case LEFT_BRACKET:- if (t.scanOperand) {- // Array initialiser. Parse using recursive descent, as the- // sub-grammar here is not an operator grammar.- n = new Node(t, ARRAY_INIT);- while ((tt = t.peek()) != RIGHT_BRACKET) {- if (tt == COMMA) {- t.get();- n.push(null);- continue;- }- n.push(Expression(t, x, COMMA));- if (!t.match(COMMA))- break;- }- t.mustMatch(RIGHT_BRACKET);- operands.push(n);- t.scanOperand = false;- } else {- // Property indexing operator.- operators.push(new Node(t, INDEX));- t.scanOperand = true;- ++x.bracketLevel;- }- break;-- case RIGHT_BRACKET:- if (t.scanOperand || x.bracketLevel == bl)- break loop;- while (reduce().type != INDEX)- continue;- --x.bracketLevel;- break;-- case LEFT_CURLY:- if (!t.scanOperand)- break loop;- // Object initialiser. As for array initialisers (see above),- // parse using recursive descent.- ++x.curlyLevel;- n = new Node(t, OBJECT_INIT);- object_init:- if (!t.match(RIGHT_CURLY)) {- do {- tt = t.get();- if ((t.token.value == "get" || t.token.value == "set") &&- t.peek() == IDENTIFIER) {- if (x.ecmaStrictMode)- throw t.newSyntaxError("Illegal property accessor");- n.push(FunctionDefinition(t, x, true, EXPRESSED_FORM));- } else {- switch (tt) {- case IDENTIFIER:- case NUMBER:- case STRING:- id = new Node(t);- break;- case RIGHT_CURLY:- if (x.ecmaStrictMode)- throw t.newSyntaxError("Illegal trailing ,");- break object_init;- default:- throw t.newSyntaxError("Invalid property name");- }- t.mustMatch(COLON);- n.push(new Node(t, PROPERTY_INIT, id,- Expression(t, x, COMMA)));- }- } while (t.match(COMMA));- t.mustMatch(RIGHT_CURLY);- }- operands.push(n);- t.scanOperand = false;- --x.curlyLevel;- break;-- case RIGHT_CURLY:- if (!t.scanOperand && x.curlyLevel != cl)- throw "PANIC: right curly botch";- break loop;-- case LEFT_PAREN:- if (t.scanOperand) {- operators.push(new Node(t, GROUP));- } else {- while (opPrecedence[operators.top().type] > opPrecedence[NEW])- reduce();-- // Handle () now, to regularize the n-ary case for n > 0.- // We must set scanOperand in case there are arguments and- // the first one is a regexp or unary+/-.- n = operators.top();- t.scanOperand = true;- if (t.match(RIGHT_PAREN)) {- if (n.type == NEW) {- --operators.length;- n.push(operands.pop());- } else {- n = new Node(t, CALL, operands.pop(),- new Node(t, LIST));- }- operands.push(n);- t.scanOperand = false;- break;- }- if (n.type == NEW)- n.type = NEW_WITH_ARGS;- else- operators.push(new Node(t, CALL));- }- ++x.parenLevel;- break;-- case RIGHT_PAREN:- if (t.scanOperand || x.parenLevel == pl)- break loop;- while ((tt = reduce().type) != GROUP && tt != CALL &&- tt != NEW_WITH_ARGS) {- continue;- }- if (tt != GROUP) {- n = operands.top();- if (n[1].type != COMMA)- n[1] = new Node(t, LIST, n[1]);- else- n[1].type = LIST;- }- --x.parenLevel;- break;-- // Automatic semicolon insertion means we may scan across a newline- // and into the beginning of another statement. If so, break out of- // the while loop and let the t.scanOperand logic handle errors.- default:- break loop;- }- }-- if (x.hookLevel != hl)- throw t.newSyntaxError("Missing : after ?");- if (x.parenLevel != pl)- throw t.newSyntaxError("Missing ) in parenthetical");- if (x.bracketLevel != bl)- throw t.newSyntaxError("Missing ] in index expression");- if (t.scanOperand)- throw t.newSyntaxError("Missing operand");-- // Resume default mode, scanning for operands, not operators.- t.scanOperand = true;- t.unget();- while (operators.length)- reduce();- return operands.pop();-}--function parse(s, f, l) {- var t = new Tokenizer(s, f, l);- var x = new CompilerContext(false);- var n = Script(t, x);- if (!t.done)- throw t.newSyntaxError("Syntax error");- return n;-}
− test/parsingonly/130_htojs.js
@@ -1,2725 +0,0 @@-// Javascript Runtime Functions for NHC-based Haskell -> Javascript compiler. - -// Runtime support functions. - -// Declare a variable which will serve as a constructor index. -// It will be populated later. - -var conIdx = { }; - -// Declare a variable which will serve as a function name index. -// It will be populated later. - -var funIdx = { }; - -// Declare a variable which will serve as a string literals reverse index. -// It will be populated later. - -var strIdx = { }; - -// Make primitive types behave as thunks. - -Number.prototype._c = function () {return this;}; -Number.prototype._r = false; -Number.prototype._chr = false; - -Boolean.prototype._c = function () { - return new HSData(this.valueOf() ? true : false,[]); -}; -Boolean.prototype._r = true; - -// Strings when evaluated return their first character CONS'ed with -// the remainder of the string. - -String.prototype._c = function () { - var cmeth = this._c; - this._c = function () { - throw ("B '" + this + "' blackhole: thunk reentered"); - } - try { - var res = consStr (this); - this._r = true; - this._c = function () {return res;} - return res; - } catch (e) { - this._c = cmeth; - throw (e); - } -}; - -String.prototype._r = true; - -// Arrays when evaluated return their first element CONS'ed with -// the remainder of the array. - -Array.prototype._c = function () { - var cmeth = this._c; - this._c = function () { - throw ("B [" + this.toString() + "] blackhole: thunk reentered"); - } - try { - var res = consArr (this); - this._r = true; - this._c = function () {return res;} - return res; - } catch (e) { - this._c = cmeth; - throw (e); - } -}; - -Array.prototype._r = true; -Array.prototype._toArray = function () {return this;}; - -// Convert a String into its first character CONS'ed with the string remainder. - -var consStr = function (s) { - if (s.length == 0) { - return new HSEOL (); - } else { - var hdc = mkChar (s.charCodeAt (0)); - return new HSCons (hdc, s.length > 1 ? s.substring (1) : consStr ("")); - }; -}; - -// Convert an Array into its first element CONS'ed with the array remainder. - -var consArr = function (ar) { - if (ar.length == 0) { - return new HSEOL (); - } else { - return new HSCons (ar[0], ar.length > 1 ? ar.slice (1) : consArr ([])); - }; -}; - -// Create a Number object with a special property pretending that -// this is a character. - -function mkChar(c) { - var n = new Number(c); - n._chr = true; - return n; -} - -// Object for consistent representation of lists - -function HSCons (head,tail) { - this._r = false; - this._c = function () { return this; }; - this._t = conIdx['Prelude.:']; - this._f = [head, tail]; -}; - -HSCons.prototype.toString = function () { - var evhead = exprEval (this._f[0]); - if (evhead._chr == true) { - return (String.fromCharCode(evhead) + (exprEval(this._f[1])).toString ()); - } else { - return this._toArray().toString(); - }; - }; - -HSCons.prototype._toArray = function () { - return [exprEval(this._f[0])].concat(exprEval(this._f[1])._toArray ()); - }; - - -function HSEOL() { - this._r = false; - this._c = function () {return this; }; - this._t = conIdx['Prelude.[]']; - this._f = []; - this.toString = function() { return ""}; - this._toArray = function() {return [];}; -} - -// A HSFun object represents function body but holds no arguments. -// It may be evaluated only for nullary functions. -// Its _ap method creates a HSDly object referring to this function -// and holding call arguments. - -function HSFun (name, arity, body) { - this._n = name; // function name - this._r = (arity == 0); // evaluable only for nullary functions - this._x = arity; // function arity - this._d = this; // refer to self - this._y = 0; // actual number of args - this._u = null; // nothing up stack - this._b = body; // function body -} - -HSFun.prototype._c = function () { - if (!this._r) return this; // nothing to do if not evaluable - var cmeth = this._c; // save the _c method - this._c = function () { // install blackhole handler - throw ("B " + this._n + " blackhole: thunk reentered"); - }; - try { - var res = this._b(); // obtain evaluation result - this._c = function () { // replace the _c method to return the result - return res; // without re-evaluation - }; - return res; // return result of this evaluation - } catch (e) { // if an exception is caught - this._c = cmeth; // restore the method - throw (e); // rethrow - } - }; - -HSFun.prototype._ap = function (targs) { - if (targs.length == 0) return this; - return new HSDly(this, this, targs); - }; - - -// A HSDly object holds function arguments. It also holds -// a reference to the HSFun to be evaluated when required, -// and also reference to another HSDly (or to the HSFun if first application). -// Its _ap method acts same way as HSFun's does. -// Its _c method retrieves all arguments in proper order, -// evaluates the HSFun object with proper number of arguments applied, -// and returns a new HSDly with all remaining arguments and whatever came out -// from the evaluation of HSFun. - -function HSDly (fun, up, targs) { - this._a = targs; // arguments to hold - this._n = fun._n; // function name - this._d = fun; // delayed function object (HSFun) - this._u = up; // up stack (HSFun or HSDly) - this._y = targs.length + up._y; // summary number of arguments in the stack - this._r = (this._y >= fun._x); // evaluable only if # args >= function arity -} - -HSDly.prototype._c = function () { - if (!this._r) return this; - var cmeth = this._c; - this._c = function () { - throw ("B " + this._n + " blackhole: thunk reentered"); - }; - var cargs = this._a; // arguments read from the stack - var stack = this._u; - for (; stack._u; stack = stack._u) { - cargs = stack._a.concat(cargs); // concatenate in correct order - }; - var res; // to store result - try { - if (cargs.length == this._d._x) { // saturated call - res = this._d._b.apply(this._d,cargs); - this._u = null; // tear the stack apart - this._c = function () { // replace the method to return result - return res; // without reevaluation - }; - } else { // oversaturated call - var evd; - if (this._d._x == 0) { // nullary function - evd = exprEval(this._d); // evaluate it - this._a = cargs; // carry all the arguments over - } else { // need to feed some arguments - var feed = cargs.slice (0, this._d._x); - var over = cargs.slice (this._d._x); - evd = exprEval(this._d._ap(feed)); - this._a = over; // and carry the rest over - } - this._n = evd._n; // name of whatever was computed - this._d = evd._d; // now refer to whatever it refers to - this._u = evd; // now this is our upstack - this._y = this._a.length + evd._y; // new total arguments - this._r = (this._y >= this._d._x); // are we evaluable? - res = this; // reuse this object - this._c = cmeth; // restore the _c method - } - return res; // return result; - } catch (e) { // if exception is raised - this._c = cmeth; // restore method - throw (e); // rethrow - } - }; - -HSDly.prototype._ap = function (targs) { - if (targs.length == 0) return this; - return new HSDly(this._d, this, targs); - }; - - -// Object type for a Haskell data - -function HSData (con, arrs) { - this._r = false; - this._c = function () { return this; }; - this._t = con; - this._f = arrs; -}; - -// Toplevel expression evaluator entry point - -function exprEval (e) { - for (var ex = e; ex != undefined && ex._r ; ex = ex._c()) - ; - return ex; -}; - -// Cross-browser version of the `apply' function -// Suggested by Neil, should work around MSIE DOM methods -// that do not support the `apply' method. - -function cbrApply(func, thisp, args) -{ - if (func.apply) - return func.apply(thisp,args); - else - { - var s = "func("; - for (var i = 0; i < args.length; i++) - s += (i == 0 ? "" : ",") + "args[" + i + "]"; - s += ")"; - return eval(s); - } -} - -// Support for XML HTTP requests. Based on -// http://www.w3schools.com/xml/tryit.asp?filename=try_xmlhttprequest_js4 - -function newXmlHttpRequest () { - var xmlhttp; - xmlhttp = null; - if (window.XMLHttpRequest) { - xmlhttp=new XMLHttpRequest(); - } else if (window.ActiveXObject) { - xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); - } else throw "R XML HTTP Request not supported"; - return xmlhttp; -} - - -/******* Generated Code: Do Not Edit *******/ -conIdx["Data.Ratio.:%"] = (-4); -conIdx["Echo.JS"] = (-5); -conIdx["Prelude.()"] = (-6); -conIdx["Prelude.(,)"] = (-7); -conIdx["Prelude.(,,)"] = (-8); -conIdx["Prelude.(,,,)"] = (-9); -conIdx["Prelude.(,,,,,,,)"] = (-10); -conIdx["Prelude.(,,,,,,,,)"] = (-11); -conIdx["Prelude.:"] = 3; -conIdx["Prelude.EQ"] = 13; -conIdx["Prelude.False"] = false; -conIdx["Prelude.GT"] = 15; -conIdx["Prelude.Just"] = 16; -conIdx["Prelude.LT"] = 17; -conIdx["Prelude.Nothing"] = 18; -conIdx["Prelude.True"] = true; -conIdx["Prelude.[]"] = 2; -strIdx["F_0"] = "Data.Char.isUpper"; -strIdx["F_1"] = "Data.Char.lexLitChar"; -strIdx["F_2"] = "Data.Char.toUpper"; -strIdx["F_4"] = "Data.Maybe.fromJust"; -strIdx["F_5"] = "Data.Maybe.fromMaybe"; -strIdx["F_6"] = "Data.Ratio.%"; -strIdx["F_8"] = "Data.Ratio.reduce"; -strIdx["F_9"] = "Data._CharNumeric._LAMBDA409"; -strIdx["F_U"] = "Data.Char.asciiTab"; -strIdx["F_V"] = "Data.Char.intToDigit"; -strIdx["F_W"] = "Data.Char.isAlpha"; -strIdx["F_X"] = "Data.Char.isAlphaNum"; -strIdx["F_Y"] = "Data.Char.isLower"; -strIdx["F_Z"] = "Data.Char.isSpace"; -strIdx["F_b"] = "Control.Monad.when"; -strIdx["F_b0"] = "Echo._LAMBDA640"; -strIdx["F_b9"] = "Echo._LAMBDA649"; -strIdx["F_bH"] = "Echo._LAMBDA621"; -strIdx["F_bJ"] = "Echo._LAMBDA623"; -strIdx["F_bS"] = "Echo._LAMBDA632"; -strIdx["F_bT"] = "Echo._LAMBDA633"; -strIdx["F_bU"] = "Echo._LAMBDA634"; -strIdx["F_bV"] = "Echo._LAMBDA635"; -strIdx["F_bW"] = "Echo._LAMBDA636"; -strIdx["F_bX"] = "Echo._LAMBDA637"; -strIdx["F_bY"] = "Echo._LAMBDA638"; -strIdx["F_bZ"] = "Echo._LAMBDA639"; -strIdx["F_ba"] = "Data._CharNumeric._LAMBDA410"; -strIdx["F_bb"] = "Data._CharNumeric._LAMBDA411"; -strIdx["F_be"] = "Data._CharNumeric.chr"; -strIdx["F_bf"] = "Data._CharNumeric.digitToInt"; -strIdx["F_bg"] = "Data._CharNumeric.isDigit"; -strIdx["F_bh"] = "Data._CharNumeric.isHexDigit"; -strIdx["F_bi"] = "Data._CharNumeric.isOctDigit"; -strIdx["F_bj"] = "Data._CharNumeric.nonnull"; -strIdx["F_bk"] = "Data._CharNumeric.ord"; -strIdx["F_bl"] = "Data._CharNumeric.readDec"; -strIdx["F_bm"] = "Data._CharNumeric.readInt"; -strIdx["F_bn"] = "Echo.Prelude.Monad.Echo.JS"; -strIdx["F_bo"] = "Echo.Prelude.Monad.Echo.JS.>>"; -strIdx["F_bp"] = "Echo.Prelude.Monad.Echo.JS.>>="; -strIdx["F_bq"] = "Echo.Prelude.Monad.Echo.JS.fail"; -strIdx["F_br"] = "Echo.Prelude.Monad.Echo.JS.return"; -strIdx["F_c"] = "Data.Char.Data.Char.Prelude.244.prefix"; -strIdx["F_c0"] = "Prelude.Prelude.Enum.Prelude.Integer.enumFromThen"; -strIdx["F_c1"] = "Prelude.Prelude.Enum.Prelude.Integer.enumFromThenTo"; -strIdx["F_c2"] = "Prelude.Prelude.Enum.Prelude.Integer.enumFromTo"; -strIdx["F_c3"] = "Prelude.Prelude.Enum.Prelude.Integer.fromEnum"; -strIdx["F_c4"] = "Prelude.Prelude.Enum.Prelude.Integer.pred"; -strIdx["F_c5"] = "Prelude.Prelude.Enum.Prelude.Integer.succ"; -strIdx["F_c6"] = "Prelude.Prelude.Enum.Prelude.Integer.toEnum"; -strIdx["F_c7"] = "Prelude.Prelude.Enum.Prelude.Ordering.fromEnum"; -strIdx["F_c8"] = "Prelude.Prelude.Eq.Prelude.Char"; -strIdx["F_c9"] = "Prelude.Prelude.Eq.Prelude.Char./="; -strIdx["F_cA"] = "Numeric.showIntAtBase"; -strIdx["F_cB"] = "Numeric.showSigned"; -strIdx["F_cC"] = "Prelude.$"; -strIdx["F_cD"] = "Prelude.&&"; -strIdx["F_cE"] = "Prelude.*"; -strIdx["F_cF"] = "Prelude.+"; -strIdx["F_cG"] = "Prelude.++"; -strIdx["F_cH"] = "Prelude.-"; -strIdx["F_cI"] = "Prelude.."; -strIdx["F_cJ"] = "Prelude.<"; -strIdx["F_cK"] = "Prelude.<="; -strIdx["F_cL"] = "Prelude.=="; -strIdx["F_cM"] = "Prelude.>"; -strIdx["F_cN"] = "Prelude.>="; -strIdx["F_cO"] = "Prelude.Prelude.Enum.Prelude.Char.fromEnum"; -strIdx["F_cP"] = "Prelude.Prelude.Enum.Prelude.Int"; -strIdx["F_cQ"] = "Prelude.Prelude.Enum.Prelude.Int.enumFrom"; -strIdx["F_cR"] = "Prelude.Prelude.Enum.Prelude.Int.enumFromThen"; -strIdx["F_cS"] = "Prelude.Prelude.Enum.Prelude.Int.enumFromThenTo"; -strIdx["F_cT"] = "Prelude.Prelude.Enum.Prelude.Int.enumFromTo"; -strIdx["F_cU"] = "Prelude.Prelude.Enum.Prelude.Int.fromEnum"; -strIdx["F_cV"] = "Prelude.Prelude.Enum.Prelude.Int.pred"; -strIdx["F_cW"] = "Prelude.Prelude.Enum.Prelude.Int.succ"; -strIdx["F_cX"] = "Prelude.Prelude.Enum.Prelude.Int.toEnum"; -strIdx["F_cY"] = "Prelude.Prelude.Enum.Prelude.Integer"; -strIdx["F_cZ"] = "Prelude.Prelude.Enum.Prelude.Integer.enumFrom"; -strIdx["F_ca"] = "Echo._LAMBDA650"; -strIdx["F_cb"] = "Echo._LAMBDA651"; -strIdx["F_cc"] = "Echo.asInt"; -strIdx["F_cd"] = "Echo.asString"; -strIdx["F_ce"] = "Echo.catchJS"; -strIdx["F_cf"] = "Echo.getDocument"; -strIdx["F_cg"] = "Echo.getProperty"; -strIdx["F_ch"] = "Echo.getTime"; -strIdx["F_ci"] = "Echo.inkey"; -strIdx["F_cj"] = "Echo.main"; -strIdx["F_ck"] = "Echo.regEventHandler"; -strIdx["F_cl"] = "Echo.runMethod"; -strIdx["F_cm"] = "Echo.setProperty"; -strIdx["F_cn"] = "Numeric.Numeric.Prelude.413.read'"; -strIdx["F_co"] = "Numeric.Numeric.Prelude.414.read''"; -strIdx["F_cq"] = "Numeric._LAMBDA2002"; -strIdx["F_cr"] = "Numeric._LAMBDA2003"; -strIdx["F_ct"] = "Numeric._LAMBDA2057"; -strIdx["F_cu"] = "Numeric._LAMBDA2058"; -strIdx["F_cv"] = "Numeric._LAMBDA2059"; -strIdx["F_cw"] = "Numeric._LAMBDA2060"; -strIdx["F_cx"] = "Numeric.lexDigits"; -strIdx["F_cy"] = "Numeric.readSigned"; -strIdx["F_cz"] = "Numeric.showInt"; -strIdx["F_d"] = "Data.Char.Data.Char.Prelude.245.lexEsc"; -strIdx["F_d0"] = "Prelude.Prelude.Ord.Prelude.Char.compare"; -strIdx["F_d1"] = "Prelude.Prelude.Ord.Prelude.Char.max"; -strIdx["F_d2"] = "Prelude.Prelude.Ord.Prelude.Char.min"; -strIdx["F_d3"] = "Prelude.Prelude.Ord.Prelude.Eq"; -strIdx["F_d4"] = "Prelude.Prelude.Ord.Prelude.Int"; -strIdx["F_d5"] = "Prelude.Prelude.Ord.Prelude.Int.<"; -strIdx["F_d6"] = "Prelude.Prelude.Ord.Prelude.Int.<="; -strIdx["F_d7"] = "Prelude.Prelude.Ord.Prelude.Int.>"; -strIdx["F_d8"] = "Prelude.Prelude.Ord.Prelude.Int.>="; -strIdx["F_d9"] = "Prelude.Prelude.Ord.Prelude.Int.compare"; -strIdx["F_dA"] = "Prelude.Prelude.Integral.Prelude.Integer.quotRem"; -strIdx["F_dB"] = "Prelude.Prelude.Integral.Prelude.Integer.rem"; -strIdx["F_dC"] = "Prelude.Prelude.Integral.Prelude.Integer.toInteger"; -strIdx["F_dD"] = "Prelude.Prelude.Integral.Prelude.Real"; -strIdx["F_dE"] = "Prelude.Prelude.Num.Prelude.Eq"; -strIdx["F_dF"] = "Prelude.Prelude.Num.Prelude.Int"; -strIdx["F_dG"] = "Prelude.Prelude.Num.Prelude.Int.*"; -strIdx["F_dH"] = "Prelude.Prelude.Num.Prelude.Int.+"; -strIdx["F_dI"] = "Prelude.Prelude.Num.Prelude.Int.-"; -strIdx["F_dJ"] = "Prelude.Prelude.Num.Prelude.Int.abs"; -strIdx["F_dK"] = "Prelude.Prelude.Num.Prelude.Int.fromInteger"; -strIdx["F_dL"] = "Prelude.Prelude.Num.Prelude.Int.negate"; -strIdx["F_dM"] = "Prelude.Prelude.Num.Prelude.Int.signum"; -strIdx["F_dN"] = "Prelude.Prelude.Num.Prelude.Integer"; -strIdx["F_dO"] = "Prelude.Prelude.Num.Prelude.Integer.*"; -strIdx["F_dP"] = "Prelude.Prelude.Num.Prelude.Integer.+"; -strIdx["F_dQ"] = "Prelude.Prelude.Num.Prelude.Integer.-"; -strIdx["F_dR"] = "Prelude.Prelude.Num.Prelude.Integer.abs"; -strIdx["F_dS"] = "Prelude.Prelude.Num.Prelude.Integer.fromInteger"; -strIdx["F_dT"] = "Prelude.Prelude.Num.Prelude.Integer.negate"; -strIdx["F_dU"] = "Prelude.Prelude.Num.Prelude.Integer.signum"; -strIdx["F_dV"] = "Prelude.Prelude.Ord.Prelude.Char"; -strIdx["F_dW"] = "Prelude.Prelude.Ord.Prelude.Char.<"; -strIdx["F_dX"] = "Prelude.Prelude.Ord.Prelude.Char.<="; -strIdx["F_dY"] = "Prelude.Prelude.Ord.Prelude.Char.>"; -strIdx["F_dZ"] = "Prelude.Prelude.Ord.Prelude.Char.>="; -strIdx["F_da"] = "Prelude.Prelude.Eq.Prelude.Char.=="; -strIdx["F_db"] = "Prelude.Prelude.Eq.Prelude.Int"; -strIdx["F_dc"] = "Prelude.Prelude.Eq.Prelude.Int./="; -strIdx["F_dd"] = "Prelude.Prelude.Eq.Prelude.Int.=="; -strIdx["F_de"] = "Prelude.Prelude.Eq.Prelude.Integer"; -strIdx["F_df"] = "Prelude.Prelude.Eq.Prelude.Integer./="; -strIdx["F_dg"] = "Prelude.Prelude.Eq.Prelude.Integer.=="; -strIdx["F_dh"] = "Prelude.Prelude.Eq.Prelude.Ordering"; -strIdx["F_di"] = "Prelude.Prelude.Eq.Prelude.Ordering./="; -strIdx["F_dj"] = "Prelude.Prelude.Eq.Prelude.Ordering.=="; -strIdx["F_dk"] = "Prelude.Prelude.Eq.Prelude.[]"; -strIdx["F_dl"] = "Prelude.Prelude.Eq.Prelude.[]./="; -strIdx["F_dm"] = "Prelude.Prelude.Eq.Prelude.[].=="; -strIdx["F_dn"] = "Prelude.Prelude.Integral.Prelude.Int"; -strIdx["F_do"] = "Prelude.Prelude.Integral.Prelude.Int.div"; -strIdx["F_dp"] = "Prelude.Prelude.Integral.Prelude.Int.divMod"; -strIdx["F_dq"] = "Prelude.Prelude.Integral.Prelude.Int.mod"; -strIdx["F_dr"] = "Prelude.Prelude.Integral.Prelude.Int.quot"; -strIdx["F_ds"] = "Prelude.Prelude.Integral.Prelude.Int.quotRem"; -strIdx["F_dt"] = "Prelude.Prelude.Integral.Prelude.Int.rem"; -strIdx["F_du"] = "Prelude.Prelude.Integral.Prelude.Int.toInteger"; -strIdx["F_dv"] = "Prelude.Prelude.Integral.Prelude.Integer"; -strIdx["F_dw"] = "Prelude.Prelude.Integral.Prelude.Integer.div"; -strIdx["F_dx"] = "Prelude.Prelude.Integral.Prelude.Integer.divMod"; -strIdx["F_dy"] = "Prelude.Prelude.Integral.Prelude.Integer.mod"; -strIdx["F_dz"] = "Prelude.Prelude.Integral.Prelude.Integer.quot"; -strIdx["F_e"] = "Data.Char.Data.Char.Prelude.246.match"; -strIdx["F_e0"] = "Prelude.Prelude._.divMod"; -strIdx["F_e1"] = "Prelude.Prelude._.enumFromThenTo"; -strIdx["F_e2"] = "Prelude.Prelude._.enumFromTo"; -strIdx["F_e3"] = "Prelude.Prelude._.fail"; -strIdx["F_e4"] = "Prelude.Prelude._.max"; -strIdx["F_e5"] = "Prelude.Prelude._.min"; -strIdx["F_e6"] = "Prelude.Prelude._.pred"; -strIdx["F_e7"] = "Prelude.Prelude._.readList"; -strIdx["F_e8"] = "Prelude.Prelude._.show"; -strIdx["F_e9"] = "Prelude.Prelude._.showList"; -strIdx["F_eA"] = "Prelude.Prelude.Read.Prelude.Int"; -strIdx["F_eB"] = "Prelude.Prelude.Read.Prelude.Int.readList"; -strIdx["F_eC"] = "Prelude.Prelude.Read.Prelude.Int.readsPrec"; -strIdx["F_eD"] = "Prelude.Prelude.Read.Prelude.Integer.readsPrec"; -strIdx["F_eE"] = "Prelude.Prelude.Real.Prelude.Int"; -strIdx["F_eF"] = "Prelude.Prelude.Real.Prelude.Int.toRational"; -strIdx["F_eG"] = "Prelude.Prelude.Real.Prelude.Integer"; -strIdx["F_eH"] = "Prelude.Prelude.Real.Prelude.Integer.toRational"; -strIdx["F_eI"] = "Prelude.Prelude.Real.Prelude.Num"; -strIdx["F_eJ"] = "Prelude.Prelude.Real.Prelude.Ord"; -strIdx["F_eK"] = "Prelude.Prelude.Show.Prelude.Int"; -strIdx["F_eL"] = "Prelude.Prelude.Show.Prelude.Int.show"; -strIdx["F_eM"] = "Prelude.Prelude.Show.Prelude.Int.showList"; -strIdx["F_eN"] = "Prelude.Prelude.Show.Prelude.Int.showsPrec"; -strIdx["F_eO"] = "Prelude.Prelude.Show.Prelude.Int.showsType"; -strIdx["F_eP"] = "Prelude.Prelude.Show.Prelude.Integer"; -strIdx["F_eQ"] = "Prelude.Prelude.Show.Prelude.Integer.show"; -strIdx["F_eR"] = "Prelude.Prelude.Show.Prelude.Integer.showList"; -strIdx["F_eS"] = "Prelude.Prelude.Show.Prelude.Integer.showsPrec"; -strIdx["F_eT"] = "Prelude.Prelude.Show.Prelude.Integer.showsType"; -strIdx["F_eU"] = "Prelude.Prelude._./="; -strIdx["F_eV"] = "Prelude.Prelude._.<"; -strIdx["F_eW"] = "Prelude.Prelude._.>"; -strIdx["F_eX"] = "Prelude.Prelude._.>="; -strIdx["F_eY"] = "Prelude.Prelude._.compare"; -strIdx["F_eZ"] = "Prelude.Prelude._.div"; -strIdx["F_ea"] = "Prelude.Prelude.Ord.Prelude.Int.max"; -strIdx["F_eb"] = "Prelude.Prelude.Ord.Prelude.Int.min"; -strIdx["F_ec"] = "Prelude.Prelude.Ord.Prelude.Integer"; -strIdx["F_ed"] = "Prelude.Prelude.Ord.Prelude.Integer.<"; -strIdx["F_ee"] = "Prelude.Prelude.Ord.Prelude.Integer.<="; -strIdx["F_ef"] = "Prelude.Prelude.Ord.Prelude.Integer.>"; -strIdx["F_eg"] = "Prelude.Prelude.Ord.Prelude.Integer.>="; -strIdx["F_eh"] = "Prelude.Prelude.Ord.Prelude.Integer.compare"; -strIdx["F_ei"] = "Prelude.Prelude.Ord.Prelude.Integer.max"; -strIdx["F_ej"] = "Prelude.Prelude.Ord.Prelude.Integer.min"; -strIdx["F_ek"] = "Prelude.Prelude.Prelude.1812.lexString"; -strIdx["F_el"] = "Prelude.Prelude.Prelude.1813.lexStrItem"; -strIdx["F_em"] = "Prelude.Prelude.Prelude.1837.isSingle"; -strIdx["F_en"] = "Prelude.Prelude.Prelude.1838.isSym"; -strIdx["F_eo"] = "Prelude.Prelude.Prelude.1839.isIdInit"; -strIdx["F_ep"] = "Prelude.Prelude.Prelude.1840.isIdChar"; -strIdx["F_eq"] = "Prelude.Prelude.Prelude.1841.lexFracExp"; -strIdx["F_er"] = "Prelude.Prelude.Prelude.1842.lexExp"; -strIdx["F_es"] = "Prelude.Prelude.Prelude.1899.optional"; -strIdx["F_et"] = "Prelude.Prelude.Prelude.1900.mandatory"; -strIdx["F_eu"] = "Prelude.Prelude.Prelude.1937.gcd'"; -strIdx["F_ev"] = "Prelude.Prelude.Prelude.535.readl"; -strIdx["F_ew"] = "Prelude.Prelude.Prelude.536.readl'"; -strIdx["F_ex"] = "Prelude.Prelude.Prelude.580.showl"; -strIdx["F_ey"] = "Prelude.Prelude.Prelude.890.ll"; -strIdx["F_ez"] = "Prelude.Prelude.Prelude.Read.Prelude.Int.readsPrec'Id 3510"; -strIdx["F_f1"] = "Prelude._LAMBDA27500"; -strIdx["F_f2"] = "Prelude._LAMBDA27501"; -strIdx["F_f6"] = "Prelude._LAMBDA27620"; -strIdx["F_f7"] = "Prelude._LAMBDA27621"; -strIdx["F_f8"] = "Prelude._LAMBDA27631"; -strIdx["F_f9"] = "Prelude._LAMBDA27632"; -strIdx["F_fA"] = "Prelude._LAMBDA26955"; -strIdx["F_fE"] = "Prelude._LAMBDA26959"; -strIdx["F_fF"] = "Prelude._LAMBDA26960"; -strIdx["F_fG"] = "Prelude._LAMBDA26961"; -strIdx["F_fH"] = "Prelude._LAMBDA26962"; -strIdx["F_fJ"] = "Prelude._LAMBDA26964"; -strIdx["F_fK"] = "Prelude._LAMBDA26965"; -strIdx["F_fL"] = "Prelude._LAMBDA26966"; -strIdx["F_fM"] = "Prelude._LAMBDA26999"; -strIdx["F_fN"] = "Prelude._LAMBDA27000"; -strIdx["F_fO"] = "Prelude._LAMBDA27001"; -strIdx["F_fP"] = "Prelude._LAMBDA27002"; -strIdx["F_fQ"] = "Prelude._LAMBDA27003"; -strIdx["F_fR"] = "Prelude._LAMBDA27004"; -strIdx["F_fS"] = "Prelude._LAMBDA27005"; -strIdx["F_fT"] = "Prelude._LAMBDA27006"; -strIdx["F_fU"] = "Prelude._LAMBDA27007"; -strIdx["F_fV"] = "Prelude._LAMBDA27008"; -strIdx["F_fW"] = "Prelude._LAMBDA27246"; -strIdx["F_fa"] = "Prelude.Prelude._.succ"; -strIdx["F_fc"] = "Prelude._LAMBDA26931"; -strIdx["F_fd"] = "Prelude._LAMBDA26932"; -strIdx["F_fe"] = "Prelude._LAMBDA26933"; -strIdx["F_fk"] = "Prelude._LAMBDA26939"; -strIdx["F_fm"] = "Prelude._LAMBDA26941"; -strIdx["F_fn"] = "Prelude._LAMBDA26942"; -strIdx["F_fo"] = "Prelude._LAMBDA26943"; -strIdx["F_fr"] = "Prelude._LAMBDA26946"; -strIdx["F_fs"] = "Prelude._LAMBDA26947"; -strIdx["F_fv"] = "Prelude._LAMBDA26950"; -strIdx["F_fw"] = "Prelude._LAMBDA26951"; -strIdx["F_fx"] = "Prelude._LAMBDA26952"; -strIdx["F_fz"] = "Prelude._LAMBDA26954"; -strIdx["F_g0"] = "Prelude.toInteger"; -strIdx["F_g1"] = "Prelude.||"; -strIdx["F_g2"] = "Roman.Roman.Prelude.221.k"; -strIdx["F_g3"] = "Roman.Roman.Prelude.228.length"; -strIdx["F_g4"] = "Roman._LAMBDA480"; -strIdx["F_g5"] = "Roman._LAMBDA481"; -strIdx["F_g9"] = "Roman.fromNumeral"; -strIdx["F_gA"] = "Prelude.lookup"; -strIdx["F_gB"] = "Prelude.map"; -strIdx["F_gC"] = "Prelude.negate"; -strIdx["F_gD"] = "Prelude.not"; -strIdx["F_gE"] = "Prelude.or"; -strIdx["F_gF"] = "Prelude.otherwise"; -strIdx["F_gG"] = "Prelude.quot"; -strIdx["F_gH"] = "Prelude.quotRem"; -strIdx["F_gI"] = "Prelude.read"; -strIdx["F_gJ"] = "Prelude.readParen"; -strIdx["F_gK"] = "Prelude.reads"; -strIdx["F_gL"] = "Prelude.readsPrec"; -strIdx["F_gM"] = "Prelude.rem"; -strIdx["F_gN"] = "Prelude.return"; -strIdx["F_gO"] = "Prelude.reverse"; -strIdx["F_gP"] = "Prelude.seq"; -strIdx["F_gQ"] = "Prelude.show"; -strIdx["F_gR"] = "Prelude.showChar"; -strIdx["F_gS"] = "Prelude.showParen"; -strIdx["F_gT"] = "Prelude.showString"; -strIdx["F_gU"] = "Prelude.showsPrec"; -strIdx["F_gV"] = "Prelude.signum"; -strIdx["F_gW"] = "Prelude.snd"; -strIdx["F_gX"] = "Prelude.span"; -strIdx["F_gY"] = "Prelude.subtract"; -strIdx["F_gZ"] = "Prelude.toEnum"; -strIdx["F_gb"] = "Prelude._LAMBDA27663"; -strIdx["F_gd"] = "Prelude._enumFromToDecC"; -strIdx["F_ge"] = "Prelude._enumFromToIncC"; -strIdx["F_gf"] = "Prelude._filter"; -strIdx["F_gg"] = "Prelude._foldr"; -strIdx["F_gh"] = "Prelude.abs"; -strIdx["F_gi"] = "Prelude.any"; -strIdx["F_gj"] = "Prelude.compare"; -strIdx["F_gk"] = "Prelude.divMod"; -strIdx["F_gl"] = "Prelude.dropWhile"; -strIdx["F_gm"] = "Prelude.elem"; -strIdx["F_gn"] = "Prelude.error"; -strIdx["F_go"] = "Prelude.flip"; -strIdx["F_gp"] = "Prelude.foldl"; -strIdx["F_gq"] = "Prelude.foldl1"; -strIdx["F_gr"] = "Prelude.foldr"; -strIdx["F_gs"] = "Prelude.fromEnum"; -strIdx["F_gt"] = "Prelude.fromInteger"; -strIdx["F_gu"] = "Prelude.fromIntegral"; -strIdx["F_gv"] = "Prelude.fst"; -strIdx["F_gw"] = "Prelude.gcd"; -strIdx["F_gx"] = "Prelude.id"; -strIdx["F_gy"] = "Prelude.length"; -strIdx["F_gz"] = "Prelude.lex"; -strIdx["F_hC"] = "YHC.Primitive.primIntAbs"; -strIdx["F_hD"] = "YHC.Primitive.primIntFromInteger"; -strIdx["F_hE"] = "YHC.Primitive.primIntSignum"; -strIdx["F_hF"] = "YHC.Primitive.primIntegerAdd"; -strIdx["F_hG"] = "YHC.Primitive.primIntegerEq"; -strIdx["F_hH"] = "YHC.Primitive.primIntegerFromInt"; -strIdx["F_hI"] = "YHC.Primitive.primIntegerGe"; -strIdx["F_hJ"] = "YHC.Primitive.primIntegerGt"; -strIdx["F_hK"] = "YHC.Primitive.primIntegerLe"; -strIdx["F_hL"] = "YHC.Primitive.primIntegerLt"; -strIdx["F_hM"] = "YHC.Primitive.primIntegerMul"; -strIdx["F_hN"] = "YHC.Primitive.primIntegerNe"; -strIdx["F_hO"] = "YHC.Primitive.primIntegerNeg"; -strIdx["F_hP"] = "YHC.Primitive.primIntegerQuot"; -strIdx["F_hQ"] = "YHC.Primitive.primIntegerQuotRem"; -strIdx["F_hR"] = "YHC.Primitive.primIntegerRem"; -strIdx["F_hS"] = "YHC.Primitive.primIntegerSub"; -strIdx["F_ha"] = "Roman.fromRoman"; -strIdx["F_hb"] = "Roman.maxmunch"; -strIdx["F_hc"] = "Roman.numerals"; -strIdx["F_hd"] = "Roman.subnums"; -strIdx["F_he"] = "Roman.toNumeral"; -strIdx["F_hf"] = "Roman.toRoman"; -strIdx["F_hg"] = "StdOverlay.StdOverlay.Prelude.255.showInt"; -strIdx["F_hh"] = "StdOverlay.StdOverlay.Prelude.256.showPosInt"; -strIdx["F_m"] = "Data.Char._LAMBDA1026"; -strIdx["F_n"] = "Data.Char._LAMBDA1027"; -var F_b=new HSFun("F_b", 3, function(_lJ, _lK, _lL){ -var c1=exprEval(_lK); -switch((c1)._t) { -case true : return _lL; -case false : return ((exprEval(_lJ))._f[3])._ap([new HSData((-6), [])]); -} -throw('X (' + this._n + ') ' +c1.toSource()); -}); - -var F_c=new HSFun("F_c", 2, function(_lZ, _l0){ -var c2=exprEval(_l0); -return function(_l1, _l2){return new HSData((-7), [new HSCons(_lZ, _l1), _l2]);}((c2)._f[0], (c2)._f[1]); -}); - -var F_d=new HSFun("F_d", 1, function(_l3){ -var c3=exprEval(_l3); -switch((c3)._t) { -case 3 : return function(_l4, _l5){ -var c4=exprEval(((F_gm)._b(F_c8, _l4))._ap([F_l])); -switch((c4)._t) { -case true : return new HSCons(new HSData((-7), [new HSCons(_l4, new HSEOL()), _l5]), new HSEOL()); -case false : var c5=exprEval(_l4); -switch((c5).valueOf()) { -case 94 : var c6=exprEval(_l5); -switch((c6)._t) { -case 3 : return function(_l6, _l7){ -var c7=exprEval((F_cD)._b((F_dZ)._b(_l6, mkChar(64)), (Number(exprEval(_l6)))<=(Number(exprEval(mkChar(95)))))); -switch((c7)._t) { -case true : return new HSCons(new HSData((-7), [new HSCons(mkChar(94), new HSCons(_l6, new HSEOL())), _l7]), new HSEOL()); -case false : var c8=exprEval((F_bg)._b(_l4)); -switch((c8)._t) { -case true : return new HSCons((F_gX)._b(F_bg, _l3), new HSEOL()); -case false : var c9=exprEval((F_0)._b(_l4)); -switch((c9)._t) { -case true : var c10=exprEval((F_gg)._b(new HSFun("F_n", 0, function(){return (F_n)._ap([_l3]);}), new HSCons(F_o, (F_gB)._b(F_gW, F_U)), new HSEOL())); -switch((c10)._t) { -case 2 : return new HSEOL(); -case 3 : return function(_ma, _mb){return new HSCons(_ma, new HSEOL());}((c10)._f[0], (c10)._f[1]); -} -throw('X (' + this._n + ') ' +c10.toSource()); -case false : return new HSEOL(); -} -throw('X (' + this._n + ') ' +c9.toSource()); -} -throw('X (' + this._n + ') ' +c8.toSource()); -} -throw('X (' + this._n + ') ' +c7.toSource()); -}((c6)._f[0], (c6)._f[1]); -default : var c11=exprEval((F_bg)._b(_l4)); -switch((c11)._t) { -case true : return new HSCons((F_gX)._b(F_bg, _l3), new HSEOL()); -case false : var c12=exprEval((F_0)._b(_l4)); -switch((c12)._t) { -case true : var c13=exprEval((F_gg)._b(new HSFun("F_n", 0, function(){return (F_n)._ap([_l3]);}), new HSCons(F_o, (F_gB)._b(F_gW, F_U)), new HSEOL())); -switch((c13)._t) { -case 2 : return new HSEOL(); -case 3 : return function(_ma, _mb){return new HSCons(_ma, new HSEOL());}((c13)._f[0], (c13)._f[1]); -} -throw('X (' + this._n + ') ' +c13.toSource()); -case false : return new HSEOL(); -} -throw('X (' + this._n + ') ' +c12.toSource()); -} -throw('X (' + this._n + ') ' +c11.toSource()); -} -throw('X (' + this._n + ') ' +c6.toSource()); -case 111 : return new HSCons((F_c)._ap([mkChar(111), new HSFun("F_gX", 0, function(){return (F_gX)._b(F_bi, _l5);})]), new HSEOL()); -case 120 : return new HSCons((F_c)._ap([mkChar(120), new HSFun("F_gX", 0, function(){return (F_gX)._b(F_bh, _l5);})]), new HSEOL()); -default : var c14=exprEval((F_bg)._b(_l4)); -switch((c14)._t) { -case true : return new HSCons((F_gX)._b(F_bg, _l3), new HSEOL()); -case false : var c15=exprEval((F_0)._b(_l4)); -switch((c15)._t) { -case true : var c16=exprEval((F_gg)._b(new HSFun("F_n", 0, function(){return (F_n)._ap([_l3]);}), new HSCons(F_o, (F_gB)._b(F_gW, F_U)), new HSEOL())); -switch((c16)._t) { -case 2 : return new HSEOL(); -case 3 : return function(_ma, _mb){return new HSCons(_ma, new HSEOL());}((c16)._f[0], (c16)._f[1]); -} -throw('X (' + this._n + ') ' +c16.toSource()); -case false : return new HSEOL(); -} -throw('X (' + this._n + ') ' +c15.toSource()); -} -throw('X (' + this._n + ') ' +c14.toSource()); -} -throw('X (' + this._n + ') ' +c5.toSource()); -} -throw('X (' + this._n + ') ' +c4.toSource()); -}((c3)._f[0], (c3)._f[1]); -default : return new HSEOL(); -} -throw('X (' + this._n + ') ' +c3.toSource()); -}); - -var F_e=new HSFun("F_e", 3, function(_lS, _lT, _lU){ -var c17=exprEval(_lT); -switch((c17)._t) { -case 3 : return function(_lV, _lW){ -var c18=exprEval(_lU); -switch((c18)._t) { -case 3 : return function(_lX, _lY){ -var c19=exprEval(((exprEval(_lS))._f[1])._ap([_lV, _lX])); -switch((c19)._t) { -case true : return (F_e)._ap([_lS, _lW, _lY]); -case false : return new HSData((-7), [_lT, _lU]); -} -throw('X (' + this._n + ') ' +c19.toSource()); -}((c18)._f[0], (c18)._f[1]); -default : return new HSData((-7), [_lT, _lU]); -} -throw('X (' + this._n + ') ' +c18.toSource()); -}((c17)._f[0], (c17)._f[1]); -default : return new HSData((-7), [_lT, _lU]); -} -throw('X (' + this._n + ') ' +c17.toSource()); -}); - -var F_f="ESC"; - -var F_g="FS"; - -var F_h="GS"; - -var F_i="RS"; - -var F_j="US"; - -var F_k="SP"; - -var F_l="abfnrtv\\\"\'"; - -var F_m=new HSFun("F_m", 3, function(_hd, _io, _iH){ -var c20=exprEval(_io); -return function(_l8, _l9){ -var c21=exprEval(_l8); -switch((c21)._t) { -case 2 : return new HSCons(new HSData((-7), [_hd, _l9]), _iH); -default : return _iH; -} -throw('X (' + this._n + ') ' +c21.toSource()); -}((c20)._f[0], (c20)._f[1]); -}); - -var F_n=new HSFun("F_n", 3, function(_l3, _hd, _he){return (F_gg)._b(new HSFun("F_m", 0, function(){return (F_m)._ap([_hd]);}), new HSCons((F_e)._ap([F_c8, _hd, _l3]), new HSEOL()), _he);}); - -var F_o="DEL"; - -var F_p=" \u0009\u000a\u000d\u000c\u000b\xa0"; - -var F_q="Char.intToDigit: not a digit"; - -var F_r="Data.Char: Pattern match failure in function at 74:1-77:62."; - -var F_s="Data.Char: Pattern match failure in function at 275:1-276:28."; - -var F_t="NUL"; - -var F_u="SOH"; - -var F_v="STX"; - -var F_w="ETX"; - -var F_x="EOT"; - -var F_y="ENQ"; - -var F_z="ACK"; - -var F_A="BEL"; - -var F_B="BS"; - -var F_C="HT"; - -var F_D="LF"; - -var F_E="VT"; - -var F_F="FF"; - -var F_G="CR"; - -var F_H="SO"; - -var F_I="SI"; - -var F_J="DLE"; - -var F_K="DC1"; - -var F_L="DC2"; - -var F_M="DC3"; - -var F_N="DC4"; - -var F_O="NAK"; - -var F_P="SYN"; - -var F_Q="ETB"; - -var F_R="CAN"; - -var F_S="EM"; - -var F_T="SUB"; - -var F_U=new HSFun("F_U", 0, function(){return new HSCons(new HSData((-7), [mkChar(0), F_t]), new HSCons(new HSData((-7), [mkChar(1), F_u]), new HSCons(new HSData((-7), [mkChar(2), F_v]), new HSCons(new HSData((-7), [mkChar(3), F_w]), new HSCons(new HSData((-7), [mkChar(4), F_x]), new HSCons(new HSData((-7), [mkChar(5), F_y]), new HSCons(new HSData((-7), [mkChar(6), F_z]), new HSCons(new HSData((-7), [mkChar(7), F_A]), new HSCons(new HSData((-7), [mkChar(8), F_B]), new HSCons(new HSData((-7), [mkChar(9), F_C]), new HSCons(new HSData((-7), [mkChar(10), F_D]), new HSCons(new HSData((-7), [mkChar(11), F_E]), new HSCons(new HSData((-7), [mkChar(12), F_F]), new HSCons(new HSData((-7), [mkChar(13), F_G]), new HSCons(new HSData((-7), [mkChar(14), F_H]), new HSCons(new HSData((-7), [mkChar(15), F_I]), new HSCons(new HSData((-7), [mkChar(16), F_J]), new HSCons(new HSData((-7), [mkChar(17), F_K]), new HSCons(new HSData((-7), [mkChar(18), F_L]), new HSCons(new HSData((-7), [mkChar(19), F_M]), new HSCons(new HSData((-7), [mkChar(20), F_N]), new HSCons(new HSData((-7), [mkChar(21), F_O]), new HSCons(new HSData((-7), [mkChar(22), F_P]), new HSCons(new HSData((-7), [mkChar(23), F_Q]), new HSCons(new HSData((-7), [mkChar(24), F_R]), new HSCons(new HSData((-7), [mkChar(25), F_S]), new HSCons(new HSData((-7), [mkChar(26), F_T]), new HSCons(new HSData((-7), [mkChar(27), F_f]), new HSCons(new HSData((-7), [mkChar(28), F_g]), new HSCons(new HSData((-7), [mkChar(29), F_h]), new HSCons(new HSData((-7), [mkChar(30), F_i]), new HSCons(new HSData((-7), [mkChar(31), F_j]), new HSCons(new HSData((-7), [mkChar(32), F_k]), new HSEOL())))))))))))))))))))))))))))))))));}); - -var F_V=new HSFun("F_V", 1, function(_mf){ -var c22=exprEval((F_cD)._b((Number(exprEval(_mf)))>=(0), (Number(exprEval(_mf)))<=(9))); -switch((c22)._t) { -case true : return (F_be)._ap([(exprEval((F_bk)._ap([mkChar(48)])))+(exprEval(_mf))]); -case false : var c23=exprEval((F_cD)._b((Number(exprEval(_mf)))>=(10), (Number(exprEval(_mf)))<=(15))); -switch((c23)._t) { -case true : return (F_be)._ap([(exprEval((exprEval((F_bk)._ap([mkChar(97)])))+(exprEval(_mf))))-(10)]); -case false : var c24=exprEval(F_gF); -switch((c24)._t) { -case true : return (F_gn)._b(F_q); -case false : return (F_gn)._b(F_r); -} -throw('X (' + this._n + ') ' +c24.toSource()); -} -throw('X (' + this._n + ') ' +c23.toSource()); -} -throw('X (' + this._n + ') ' +c22.toSource()); -}); - -var F_W=new HSFun("F_W", 1, function(_md){return (F_g1)._b((F_0)._b(_md), new HSFun("F_Y", 0, function(){return (F_Y)._b(_md);}));}); - -var F_X=new HSFun("F_X", 1, function(_me){return (F_g1)._b((F_W)._b(_me), new HSFun("F_bg", 0, function(){return (F_bg)._b(_me);}));}); - -var F_Y=new HSFun("F_Y", 1, function(_lM){return (F_g1)._b((F_cD)._b((F_dZ)._b(_lM, mkChar(97)), (Number(exprEval(_lM)))<=(Number(exprEval(mkChar(122))))), new HSFun("F_g1", 0, function(){return (F_g1)._b((F_cD)._b((F_dZ)._b(_lM, mkChar(223)), (Number(exprEval(_lM)))<=(Number(exprEval(mkChar(246))))), new HSFun("F_cD", 0, function(){return (F_cD)._b((F_dZ)._b(_lM, mkChar(248)), (Number(exprEval(_lM)))<=(Number(exprEval(mkChar(255)))));}));}));}); - -var F_Z=new HSFun("F_Z", 1, function(_mc){return ((F_gm)._b(F_c8, _mc))._ap([F_p]);}); - -var F_0=new HSFun("F_0", 1, function(_lO){return (F_g1)._b((F_cD)._b((F_dZ)._b(_lO, mkChar(65)), (Number(exprEval(_lO)))<=(Number(exprEval(mkChar(90))))), new HSFun("F_g1", 0, function(){return (F_g1)._b((F_cD)._b((F_dZ)._b(_lO, mkChar(192)), (Number(exprEval(_lO)))<=(Number(exprEval(mkChar(214))))), new HSFun("F_cD", 0, function(){return (F_cD)._b((F_dZ)._b(_lO, mkChar(216)), (Number(exprEval(_lO)))<=(Number(exprEval(mkChar(222)))));}));}));}); - -var F_1=new HSFun("F_1", 1, function(_lP){ -var c25=exprEval(_lP); -switch((c25)._t) { -case 2 : return new HSEOL(); -case 3 : return function(_lQ, _lR){ -var c26=exprEval(_lQ); -switch((c26).valueOf()) { -case 92 : return (F_gB)._b((F_c)._ap([mkChar(92)]), (F_d)._ap([_lR])); -default : return new HSCons(new HSData((-7), [new HSCons(_lQ, new HSEOL()), _lR]), new HSEOL()); -} -throw('X (' + this._n + ') ' +c26.toSource()); -}((c25)._f[0], (c25)._f[1]); -} -throw('X (' + this._n + ') ' +c25.toSource()); -}); - -var F_2=new HSFun("F_2", 1, function(_lN){ -var c27=exprEval((F_Y)._b(_lN)); -switch((c27)._t) { -case true : return (exprEval((exprEval(_lN))-(exprEval(mkChar(97)))))+(exprEval(mkChar(65))); -case false : var c28=exprEval(F_gF); -switch((c28)._t) { -case true : return _lN; -case false : return (F_gn)._b(F_s); -} -throw('X (' + this._n + ') ' +c28.toSource()); -} -throw('X (' + this._n + ') ' +c27.toSource()); -}); - -var F_3="Maybe.fromJust: Nothing"; - -var F_4=new HSFun("F_4", 1, function(_kg){ -var c29=exprEval(_kg); -switch((c29)._t) { -case 18 : return (F_gn)._b(F_3); -case 16 : return (c29)._f[0]; -} -throw('X (' + this._n + ') ' +c29.toSource()); -}); - -var F_5=new HSFun("F_5", 2, function(_kd, _ke){ -var c30=exprEval(_ke); -switch((c30)._t) { -case 18 : return _kd; -case 16 : return (c30)._f[0]; -} -throw('X (' + this._n + ') ' +c30.toSource()); -}); - -var F_6=new HSFun("F_6", 3, function(_I, _J, _K){return (F_8)._b(_I, ((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[2])._ap([_J, ((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[6])._ap([_K])]), ((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[8])._ap([_K]));}); - -var F_7="Ratio.%: zero denominator"; - -var F_8=new HSFun("F_8", 3, function(_F, _G, _H){ -var _lf=new HSFun("_lf", 0, function(){return _F;}); -var _b=new HSFun("_b", 0, function(){return (F_gw)._b(_lf, _G, _H);}); -var c31=exprEval(((exprEval((exprEval((exprEval((exprEval(_F))._f[0]))._f[0]))._f[0]))._f[1])._ap([_H, ((exprEval((exprEval((exprEval(_F))._f[0]))._f[0]))._f[7])._ap([0])])); -switch((c31)._t) { -case true : return (F_gn)._b(F_7); -case false : return new HSData((-4), [((exprEval(_F))._f[7])._ap([_G, _b]), ((exprEval(_F))._f[7])._ap([_H, _b])]); -} -throw('X (' + this._n + ') ' +c31.toSource()); -}); - -var F_9=new HSFun("F_9", 2, function(_ee, _ef){ -var c32=exprEval(_ee); -return function(_kl, _km){ -var c33=exprEval(_kl); -switch((c33)._t) { -case 3 : return function(_kn, _ko){return new HSCons(new HSData((-7), [_kl, _km]), _ef);}((c33)._f[0], (c33)._f[1]); -default : return _ef; -} -throw('X (' + this._n + ') ' +c33.toSource()); -}((c32)._f[0], (c32)._f[1]); -}); - -var F_ba=new HSFun("F_ba", 4, function(_kp, _kq, _ec, _ed){return ((exprEval((exprEval((exprEval(_kp))._f[0]))._f[0]))._f[3])._ap([((exprEval((exprEval((exprEval(_kp))._f[0]))._f[0]))._f[2])._ap([_ec, _kq]), _ed]);}); - -var F_bb=new HSFun("F_bb", 5, function(_kq, _kp, _ks, _c7, _dI){ -var c34=exprEval(_c7); -return function(_ku, _kv){return new HSCons(new HSData((-7), [new HSFun("F_gq", 0, function(){return (F_gq)._b(new HSFun("F_ba", 0, function(){return (F_ba)._ap([_kp, _kq]);}), (F_gB)._b((F_fc)._ap([_ks, (F_gu)._b(F_dn, new HSFun("F_eI", 0, function(){return (exprEval((exprEval(_kp))._f[0]))._f[0];}))]), _ku));}), _kv]), _dI);}((c34)._f[0], (c34)._f[1]); -}); - -var F_bc="Char.digitToInt: not a digit"; - -var F_bd="Data._CharNumeric: Pattern match failure in function at 22:1-26:64."; - -var F_be=new HSFun("F_be", 0, function(){return F_gx;}); - -var F_bf=new HSFun("F_bf", 1, function(_ky){ -var c35=exprEval((F_bg)._b(_ky)); -switch((c35)._t) { -case true : return (exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(48)]))); -case false : var c36=exprEval((F_cD)._b((F_dZ)._b(_ky, mkChar(97)), (Number(exprEval(_ky)))<=(Number(exprEval(mkChar(102)))))); -switch((c36)._t) { -case true : return (exprEval((exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(97)])))))+(10); -case false : var c37=exprEval((F_cD)._b((F_dZ)._b(_ky, mkChar(65)), (Number(exprEval(_ky)))<=(Number(exprEval(mkChar(70)))))); -switch((c37)._t) { -case true : return (exprEval((exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(65)])))))+(10); -case false : var c38=exprEval(F_gF); -switch((c38)._t) { -case true : return (F_gn)._b(F_bc); -case false : return (F_gn)._b(F_bd); -} -throw('X (' + this._n + ') ' +c38.toSource()); -} -throw('X (' + this._n + ') ' +c37.toSource()); -} -throw('X (' + this._n + ') ' +c36.toSource()); -} -throw('X (' + this._n + ') ' +c35.toSource()); -}); - -var F_bg=new HSFun("F_bg", 1, function(_kx){return (F_cD)._b((F_dZ)._b(_kx, mkChar(48)), (Number(exprEval(_kx)))<=(Number(exprEval(mkChar(57)))));}); - -var F_bh=new HSFun("F_bh", 1, function(_kw){return (F_g1)._b((F_cD)._b((F_dZ)._b(_kw, mkChar(48)), (Number(exprEval(_kw)))<=(Number(exprEval(mkChar(57))))), new HSFun("F_g1", 0, function(){return (F_g1)._b((F_cD)._b((F_dZ)._b(_kw, mkChar(65)), (Number(exprEval(_kw)))<=(Number(exprEval(mkChar(70))))), new HSFun("F_cD", 0, function(){return (F_cD)._b((F_dZ)._b(_kw, mkChar(97)), (Number(exprEval(_kw)))<=(Number(exprEval(mkChar(102)))));}));}));}); - -var F_bi=new HSFun("F_bi", 1, function(_kz){return (F_cD)._b((F_dZ)._b(_kz, mkChar(48)), (Number(exprEval(_kz)))<=(Number(exprEval(mkChar(55)))));}); - -var F_bj=new HSFun("F_bj", 2, function(_kj, _kk){return (F_gg)._b(F_9, new HSCons((F_gX)._b(_kj, _kk), new HSEOL()), new HSEOL());}); - -var F_bk=new HSFun("F_bk", 0, function(){return F_gx;}); - -var F_bl=new HSFun("F_bl", 1, function(_kA){return (F_bm)._ap([_kA, ((exprEval((exprEval((exprEval(_kA))._f[0]))._f[0]))._f[7])._ap([10]), F_bg, F_bf]);}); - -var F_bm=new HSFun("F_bm", 5, function(_kp, _kq, _kr, _ks, _kt){return (F_gg)._b(new HSFun("F_bb", 0, function(){return (F_bb)._ap([_kq, _kp, _ks]);}), (F_bj)._b(_kr, _kt), new HSEOL());}); - -var F_bn=new HSFun("F_bn", 0, function(){return new HSData((-9), [F_bp, F_bo, F_bq, F_br]);}); - -var F_bo=new HSFun("F_bo", 2, function(_lC, _lD){ -var c39=exprEval(_lC); -return _lD; -}); - -var F_bp=new HSFun("F_bp", 2, function(_lF, _lG){ -var c40=exprEval(_lF); -return function(_lH){return (_lG)._ap([_lH]);}((c40)._f[0]); -}); - -var F_bq=new HSFun("F_bq", 1, function(_lI){return (F_gn)._b(_lI);}); - -var F_br=new HSFun("F_br", 1, function(_lB){return (F_gP)._b(_lB, new HSData((-5), [_lB]));}); - -var F_bs="return new HSData(conIdx[\'Echo.JS\'],[document]);"; - -var F_bt="return new HSData(conIdx[\'Echo.JS\'],[exprEval(a)[exprEval(b).toString()]]);"; - -var F_bu="exprEval(a)[exprEval(b).toString()]=exprEval(c);return new HSData(conIdx[\'Echo.JS\'],[]);"; - -var F_bv="exprEval(a)[exprEval(b).toString()]=function(e){if(!e){e=window.event;}; return exprEval(exprEval(c)._ap([e]));}; return new HSData(conIdx[\'Echo.JS\'],[]);"; - -var F_bw="return new HSData(conIdx[\'Echo.JS\'],[new Number(exprEval(a))]);"; - -var F_bx="return new HSData(conIdx[\'Echo.JS\'],[new String(exprEval(a))]);"; - -var F_by="try {return exprEval(a);} catch(_e) {return exprEval(b)._ap([_e]);}"; - -var F_bz="return new HSData(conIdx[\'Echo.JS\'],[(new Date()).getTime()]);"; - -var F_bA="var a1=exprEval(a); return new HSData(conIdx[\'Echo.JS\'],[cbrApply(a1[exprEval(b).toString()],a1,exprEval(c)._toArray())]);"; - -var F_bB="keyCode"; - -var F_bC="body"; - -var F_bD="createElement"; - -var F_bE="div"; - -var F_bF="value"; - -var F_bG=""; - -var F_bH=new HSFun("F_bH", 1, function(v593){return (F_br)._b(F_bG);}); - -var F_bI=""; - -var F_bJ=new HSFun("F_bJ", 1, function(v594){return (F_br)._b(F_bI);}); - -var F_bK=" "; - -var F_bL=" "; - -var F_bM=" "; - -var F_bN=" ms"; - -var F_bO="innerHTML"; - -var F_bP="insertBefore"; - -var F_bQ="value"; - -var F_bR=""; - -var F_bS=new HSFun("F_bS", 8, function(_et, _fK, _fO, _f8, _e2, _e3, _lz, _hc){ -var _kJ=new HSFun("_kJ", 0, function(){return F_dF;}); -var _c=new HSFun("_c", 0, function(){return ((exprEval(_kJ))._f[4])._ap([_hc, _et]);}); -var _kL=new HSFun("_kL", 0, function(){return F_eK;}); -var _d=new HSFun("_d", 0, function(){return (F_cG)._b(_fK, new HSFun("F_cG", 0, function(){return (F_cG)._b(F_bK, new HSFun("F_cG", 0, function(){return (F_cG)._b(_fO, new HSFun("F_cG", 0, function(){return (F_cG)._b(F_bL, new HSFun("F_cG", 0, function(){return (F_cG)._b(_f8, new HSFun("F_cG", 0, function(){return (F_cG)._b(F_bM, new HSFun("F_cG", 0, function(){return (F_cG)._b(((exprEval(_kL))._f[3])._ap([_c]), F_bN);}));}));}));}));}));}));}); -return (F_bo)._b((F_cm)._b(_e3, F_bO, _d), (F_bo)._b((F_cl)._b(_e2, F_bP, new HSCons(_e3, new HSCons(_lz, new HSEOL()))), (F_bo)._b((F_cm)._b(_lz, F_bQ, F_bR), (F_br)._b(new HSData((-6), []))))); -}); - -var F_bT=new HSFun("F_bT", 7, function(_et, _fK, _fO, _e2, _e3, _lz, _f8){return (F_bp)._b((F_ch)._b(0), new HSFun("F_bS", 0, function(){return (F_bS)._ap([_et, _fK, _fO, _f8, _e2, _e3, _lz]);}));}); - -var F_bU=new HSFun("F_bU", 6, function(_et, _fK, _e2, _e3, _lz, _fO){return (F_bp)._b((F_ce)._b(new HSFun("F_cC", 0, function(){return (F_cC)._b(F_br, new HSFun("F_hf", 0, function(){return (F_hf)._b(new HSFun("F_gI", 0, function(){return (F_gI)._b(F_eA, _fK);}));}));}), F_bJ), new HSFun("F_bT", 0, function(){return (F_bT)._ap([_et, _fK, _fO, _e2, _e3, _lz]);}));}); - -var F_bV=new HSFun("F_bV", 5, function(_et, _e2, _e3, _lz, _fK){return (F_bo)._b((F_cC)._b(new HSFun("F_b", 0, function(){return (F_b)._ap([F_bn, (Number(exprEval((F_gy)._b(_fK))))>(0)]);}), new HSFun("F_bp", 0, function(){return (F_bp)._b((F_ce)._b(new HSFun("F_cC", 0, function(){return (F_cC)._b(F_br, ((F_fc)._ap([F_ha, F_eL]))._ap([_fK]));}), F_bH), new HSFun("F_bU", 0, function(){return (F_bU)._ap([_et, _fK, _e2, _e3, _lz]);}));})), (F_br)._b(new HSData((-6), [])));}); - -var F_bW=new HSFun("F_bW", 4, function(_et, _e2, _lz, _e3){return (F_bp)._b((F_bp)._b((F_cg)._b(_lz, F_bF), F_cd), new HSFun("F_bV", 0, function(){return (F_bV)._ap([_et, _e2, _e3, _lz]);}));}); - -var F_bX=new HSFun("F_bX", 4, function(_eY, _et, _lz, _e2){return (F_bp)._b((F_cl)._b(_eY, F_bD, new HSCons(F_bE, new HSEOL())), new HSFun("F_bW", 0, function(){return (F_bW)._ap([_et, _e2, _lz]);}));}); - -var F_bY=new HSFun("F_bY", 3, function(_et, _lz, _eY){return (F_bp)._b((F_cg)._b(_eY, F_bC), new HSFun("F_bX", 0, function(){return (F_bX)._ap([_eY, _et, _lz]);}));}); - -var F_bZ=new HSFun("F_bZ", 2, function(_lz, _et){return (F_bp)._b(F_cf, new HSFun("F_bY", 0, function(){return (F_bY)._ap([_et, _lz]);}));}); - -var F_b0=new HSFun("F_b0", 2, function(_lz, _eq){return (F_bo)._b((F_cC)._b(new HSFun("F_b", 0, function(){return (F_b)._ap([F_bn, (Number(exprEval(_eq)))===(13)]);}), new HSFun("F_bp", 0, function(){return (F_bp)._b((F_ch)._b(0), new HSFun("F_bZ", 0, function(){return (F_bZ)._ap([_lz]);}));})), (F_br)._b(new HSData((-6), [])));}); - -var F_b1="body"; - -var F_b2="createElement"; - -var F_b3="input"; - -var F_b4="id"; - -var F_b5="input-echo"; - -var F_b6="appendChild"; - -var F_b7="onkeypress"; - -var F_b8="focus"; - -var F_b9=new HSFun("F_b9", 2, function(_io, _iH){return (F_bo)._b((F_cm)._b(_iH, F_b4, F_b5), (F_bo)._b((F_cl)._b(_io, F_b6, new HSCons(_iH, new HSEOL())), (F_bo)._b((F_ck)._b(_iH, F_b7, new HSFun("F_ci", 0, function(){return (F_ci)._ap([_iH]);})), (F_bo)._b((F_cl)._b(_iH, F_b8, new HSEOL()), (F_br)._b(new HSData((-6), []))))));}); - -var F_ca=new HSFun("F_ca", 2, function(_ia, _io){return (F_bp)._b((F_cl)._b(_ia, F_b2, new HSCons(F_b3, new HSEOL())), new HSFun("F_b9", 0, function(){return (F_b9)._ap([_io]);}));}); - -var F_cb=new HSFun("F_cb", 1, function(_ia){return (F_bp)._b((F_cg)._b(_ia, F_b1), new HSFun("F_ca", 0, function(){return (F_ca)._ap([_ia]);}));}); - -var F_cc=new HSFun("F_cc", 1, function(a){ -return new HSData(conIdx['Echo.JS'],[new Number(exprEval(a))]);}); - -var F_cd=new HSFun("F_cd", 1, function(a){ -return new HSData(conIdx['Echo.JS'],[new String(exprEval(a))]);}); - -var F_ce=new HSFun("F_ce", 2, function(a, b){ -try {return exprEval(a);} catch(_e) {return exprEval(b)._ap([_e]);}}); - -var F_cf=new HSFun("F_cf", 0, function(){ -return new HSData(conIdx['Echo.JS'],[document]);}); - -var F_cg=new HSFun("F_cg", 2, function(a, b){ -return new HSData(conIdx['Echo.JS'],[exprEval(a)[exprEval(b).toString()]]);}); - -var F_ch=new HSFun("F_ch", 1, function(a){ -return new HSData(conIdx['Echo.JS'],[(new Date()).getTime()]);}); - -var F_ci=new HSFun("F_ci", 2, function(_lz, _lA){return (F_bp)._b((F_bp)._b((F_cg)._b(_lA, F_bB), F_cc), new HSFun("F_b0", 0, function(){return (F_b0)._ap([_lz]);}));}); - -var F_cj=new HSFun("F_cj", 0, function(){return (F_bp)._b(F_cf, F_cb);}); - -var F_ck=new HSFun("F_ck", 3, function(a, b, c){ -exprEval(a)[exprEval(b).toString()]=function(e){if(!e){e=window.event;}; return exprEval(exprEval(c)._ap([e]));}; return new HSData(conIdx['Echo.JS'],[]);}); - -var F_cl=new HSFun("F_cl", 3, function(a, b, c){ -var a1=exprEval(a); return new HSData(conIdx['Echo.JS'],[cbrApply(a1[exprEval(b).toString()],a1,exprEval(c)._toArray())]);}); - -var F_cm=new HSFun("F_cm", 3, function(a, b, c){ -exprEval(a)[exprEval(b).toString()]=exprEval(c);return new HSData(conIdx['Echo.JS'],[]);}); - -var F_cn=new HSFun("F_cn", 3, function(_E, _bI, _bO){return (F_cG)._b(((F_co)._ap([_bI]))._ap([_bO]), new HSFun("F_gg", 0, function(){return (F_gg)._b(new HSFun("F_cw", 0, function(){return (F_cw)._ap([_E, _bI]);}), (F_gz)._b(_bO), new HSEOL());}));}); - -var F_co=new HSFun("F_co", 2, function(_bI, _bJ){return (F_gg)._b(new HSFun("F_cu", 0, function(){return (F_cu)._ap([_bI]);}), (F_gz)._b(_bJ), new HSEOL());}); - -var F_cp="Numeric.showIntAtBase: can\'t show negative numbers"; - -var F_cq=new HSFun("F_cq", 1, function(_e){return (exprEval(_e))._f[0];}); - -var F_cr=new HSFun("F_cr", 1, function(_e){return (exprEval(_e))._f[1];}); - -var F_cs="Numeric: Pattern match failure in function at 435:1-440:66."; - -var F_ct=new HSFun("F_ct", 3, function(_bL, _kJ, _kK){ -var c41=exprEval(_kJ); -return function(_bM, _bN){ -var c42=exprEval(_bN); -switch((c42)._t) { -case 2 : return new HSCons(new HSData((-7), [_bM, _bL]), _kK); -default : return _kK; -} -throw('X (' + this._n + ') ' +c42.toSource()); -}((c41)._f[0], (c41)._f[1]); -}); - -var F_cu=new HSFun("F_cu", 3, function(_bI, _kH, _kI){ -var c43=exprEval(_kH); -return function(_bK, _bL){return (F_gg)._b(new HSFun("F_ct", 0, function(){return (F_ct)._ap([_bL]);}), (_bI)._ap([_bK]), _kI);}((c43)._f[0], (c43)._f[1]); -}); - -var F_cv=new HSFun("F_cv", 3, function(_E, _kD, _kE){ -var c44=exprEval(_kD); -return function(_bT, _bU){return new HSCons(new HSData((-7), [((exprEval(_E))._f[5])._ap([_bT]), _bU]), _kE);}((c44)._f[0], (c44)._f[1]); -}); - -var F_cw=new HSFun("F_cw", 4, function(_E, _bI, _kB, _kC){ -var c45=exprEval(_kB); -return function(_bP, _bQ){ -var c46=exprEval(_bP); -switch((c46)._t) { -case 3 : return function(_bR, _bS){ -var c47=exprEval(_bR); -switch((c47).valueOf()) { -case 45 : var c48=exprEval(_bS); -switch((c48)._t) { -case 2 : return (F_gg)._b(new HSFun("F_cv", 0, function(){return (F_cv)._ap([_E]);}), ((F_co)._ap([_bI]))._ap([_bQ]), _kC); -default : return _kC; -} -throw('X (' + this._n + ') ' +c48.toSource()); -default : return _kC; -} -throw('X (' + this._n + ') ' +c47.toSource()); -}((c46)._f[0], (c46)._f[1]); -default : return _kC; -} -throw('X (' + this._n + ') ' +c46.toSource()); -}((c45)._f[0], (c45)._f[1]); -}); - -var F_cx=new HSFun("F_cx", 0, function(){return (F_bj)._ap([F_bg]);}); - -var F_cy=new HSFun("F_cy", 2, function(_bH, _bI){ -var _E=new HSFun("_E", 0, function(){return (exprEval(_bH))._f[0];}); -return (F_gJ)._b(false, new HSFun("F_cn", 0, function(){return (F_cn)._ap([_E, _bI]);})); -}); - -var F_cz=new HSFun("F_cz", 1, function(_4){return (F_cA)._ap([_4, ((exprEval((exprEval((exprEval(_4))._f[0]))._f[0]))._f[7])._ap([10]), F_V]);}); - -var F_cA=new HSFun("F_cA", 5, function(_V, _W, _X, _Y, _Z){ -var c49=exprEval(((exprEval((exprEval((exprEval(_V))._f[0]))._f[1]))._f[1])._ap([_Y, ((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[7])._ap([0])])); -switch((c49)._t) { -case true : return (F_gn)._b(F_cp); -case false : var c50=exprEval(F_gF); -switch((c50)._t) { -case true : var _ld=new HSFun("_ld", 0, function(){return _V;}); -var _e=new HSFun("_e", 0, function(){return ((exprEval(_ld))._f[4])._ap([_Y, _W]);}); -var _f=new HSFun("_f", 0, function(){return (exprEval(_e))._f[0];}); -var _g=new HSFun("_g", 0, function(){return (exprEval(_e))._f[1];}); -var _le=new HSFun("_le", 0, function(){return _V;}); -var _h=new HSFun("_h", 0, function(){return new HSCons((_X)._ap([((F_gu)._b(_le, F_dF))._ap([_g])]), _Z);}); -var c51=exprEval(((exprEval((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[0]))._f[1])._ap([_f, ((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[7])._ap([0])])); -switch((c51)._t) { -case true : return _h; -case false : return (F_cA)._b(_V, _W, _X, _f, _h); -} -throw('X (' + this._n + ') ' +c51.toSource()); -case false : return (F_gn)._b(F_cs); -} -throw('X (' + this._n + ') ' +c50.toSource()); -} -throw('X (' + this._n + ') ' +c49.toSource()); -}); - -var F_cB=new HSFun("F_cB", 4, function(_R, _S, _T, _U){ -var c52=exprEval(((exprEval((exprEval(_R))._f[1]))._f[1])._ap([_U, ((exprEval((exprEval(_R))._f[0]))._f[7])._ap([0])])); -switch((c52)._t) { -case true : return (F_gS)._b((Number(exprEval(_T)))>(6), (F_fc)._ap([(_S)._ap([((exprEval((exprEval(_R))._f[0]))._f[5])._ap([_U])]), (F_fW)._ap([mkChar(45)])])); -case false : return (_S)._ap([_U]); -} -throw('X (' + this._n + ') ' +c52.toSource()); -}); - -var F_cC=new HSFun("F_cC", 2, function(_eK, _eL){return (_eK)._ap([_eL]);}); - -var F_cD=new HSFun("F_cD", 2, function(_er, _es){ -var c53=exprEval(_er); -switch((c53)._t) { -case true : return _es; -case false : return false; -} -throw('X (' + this._n + ') ' +c53.toSource()); -}); - -var F_cE=new HSFun("F_cE", 1, function(_jC){return (exprEval(_jC))._f[2];}); - -var F_cF=new HSFun("F_cF", 1, function(_jD){return (exprEval(_jD))._f[3];}); - -var F_cG=new HSFun("F_cG", 2, function(_cp, _cq){ -var c54=exprEval(_cp); -switch((c54)._t) { -case 2 : return _cq; -case 3 : return function(_cr, _cs){return new HSCons(_cr, (F_cG)._b(_cs, _cq));}((c54)._f[0], (c54)._f[1]); -} -throw('X (' + this._n + ') ' +c54.toSource()); -}); - -var F_cH=new HSFun("F_cH", 1, function(_jE){return (exprEval(_jE))._f[4];}); - -var F_cI=new HSFun("F_cI", 2, function(_b9, _ca){return (F_fc)._ap([_ca, _b9]);}); - -var F_cJ=new HSFun("F_cJ", 1, function(_jn){return (exprEval(_jn))._f[1];}); - -var F_cK=new HSFun("F_cK", 1, function(_jo){return (exprEval(_jo))._f[2];}); - -var F_cL=new HSFun("F_cL", 1, function(_jd){return (exprEval(_jd))._f[1];}); - -var F_cM=new HSFun("F_cM", 1, function(_jq){return (exprEval(_jq))._f[4];}); - -var F_cN=new HSFun("F_cN", 1, function(_jp){return (exprEval(_jp))._f[3];}); - -var F_cO=new HSFun("F_cO", 1, function(_f7){return _f7;}); - -var F_cP=new HSFun("F_cP", 0, function(){return new HSData((-10), [F_cW, F_cV, F_cQ, F_cU, F_cX, F_cR, F_cT, F_cS]);}); - -var F_cQ=new HSFun("F_cQ", 1, function(_hH){return new HSCons(_hH, (F_cQ)._b((exprEval(_hH))+(1)));}); - -var F_cR=new HSFun("F_cR", 2, function(_hF, _hG){return new HSCons(_hF, (F_cR)._b(_hG, (exprEval((2)*(exprEval(_hG))))-(exprEval(_hF))));}); - -var F_cS=new HSFun("F_cS", 3, function(_hK, _hL, _hM){return (F_e1)._b(F_cP, _hK, _hL, _hM);}); - -var F_cT=new HSFun("F_cT", 2, function(_hN, _hO){return (F_e2)._b(F_cP, _hN, _hO);}); - -var F_cU=new HSFun("F_cU", 1, function(_hI){return _hI;}); - -var F_cV=new HSFun("F_cV", 1, function(_hP){return (F_e6)._b(F_cP, _hP);}); - -var F_cW=new HSFun("F_cW", 1, function(_hQ){return (F_fa)._b(F_cP, _hQ);}); - -var F_cX=new HSFun("F_cX", 1, function(_hJ){return _hJ;}); - -var F_cY=new HSFun("F_cY", 0, function(){return new HSData((-10), [F_c5, F_c4, F_cZ, F_c3, F_c6, F_c0, F_c2, F_c1]);}); - -var F_cZ=new HSFun("F_cZ", 1, function(_g2){return new HSCons(_g2, (F_cZ)._b((F_hF)._b(_g2, 1)));}); - -var F_c0=new HSFun("F_c0", 2, function(_g0, _g1){return new HSCons(_g0, (F_c0)._b(_g1, (F_hF)._b((F_hM)._b(2, _g1), _g0)));}); - -var F_c1=new HSFun("F_c1", 3, function(_g7, _g8, _g9){return (F_e1)._b(F_cY, _g7, _g8, _g9);}); - -var F_c2=new HSFun("F_c2", 2, function(_ha, _hb){return (F_e2)._b(F_cY, _ha, _hb);}); - -var F_c3=new HSFun("F_c3", 1, function(_g3){return (F_hD)._b(_g3);}); - -var F_c4=new HSFun("F_c4", 1, function(_g5){return (F_hS)._b(_g5, 1);}); - -var F_c5=new HSFun("F_c5", 1, function(_g6){return (F_hF)._b(_g6, 1);}); - -var F_c6=new HSFun("F_c6", 1, function(_g4){return (F_hH)._b(_g4);}); - -var F_c7=new HSFun("F_c7", 1, function(_fq){ -var c55=exprEval(_fq); -switch((c55)._t) { -case 17 : return 0; -case 13 : return 1; -case 15 : return 2; -} -throw('X (' + this._n + ') ' +c55.toSource()); -}); - -var F_c8=new HSFun("F_c8", 0, function(){return new HSData((-7), [F_c9, F_da]);}); - -var F_c9=new HSFun("F_c9", 2, function(_f5, _f6){return (F_eU)._b(F_c8, _f5, _f6);}); - -var F_da=new HSFun("F_da", 2, function(_f3, _f4){return (Number(exprEval(_f3)))===(Number(exprEval(_f4)));}); - -var F_db=new HSFun("F_db", 0, function(){return new HSData((-7), [F_dc, F_dd]);}); - -var F_dc=new HSFun("F_dc", 2, function(_if, _ig){return (Number(exprEval(_if)))!==(Number(exprEval(_ig)));}); - -var F_dd=new HSFun("F_dd", 2, function(_ih, _ii){return (Number(exprEval(_ih)))===(Number(exprEval(_ii)));}); - -var F_de=new HSFun("F_de", 0, function(){return new HSData((-7), [F_df, F_dg]);}); - -var F_df=new HSFun("F_df", 2, function(_gW, _gX){return (F_hN)._b(_gW, _gX);}); - -var F_dg=new HSFun("F_dg", 2, function(_gY, _gZ){return (F_hG)._b(_gY, _gZ);}); - -var F_dh=new HSFun("F_dh", 0, function(){return new HSData((-7), [F_di, F_dj]);}); - -var F_di=new HSFun("F_di", 2, function(_fo, _fp){return (F_eU)._b(F_dh, _fo, _fp);}); - -var F_dj=new HSFun("F_dj", 2, function(_fj, _fk){return (Number(exprEval((F_c7)._b(_fj))))===(Number(exprEval((F_c7)._b(_fk))));}); - -var F_dk=new HSFun("F_dk", 1, function(_bW){return new HSData((-7), [new HSFun("F_dl", 0, function(){return (F_dl)._ap([_bW]);}), new HSFun("F_dm", 0, function(){return (F_dm)._ap([_bW]);})]);}); - -var F_dl=new HSFun("F_dl", 3, function(_iP, _iQ, _iR){return (F_eU)._b(new HSFun("F_dk", 0, function(){return (F_dk)._b(_iP);}), _iQ, _iR);}); - -var F_dm=new HSFun("F_dm", 3, function(_iI, _iJ, _iK){ -var c56=exprEval(_iJ); -switch((c56)._t) { -case 2 : var c57=exprEval(_iK); -switch((c57)._t) { -case 2 : return true; -default : return false; -} -throw('X (' + this._n + ') ' +c57.toSource()); -case 3 : return function(_iL, _iM){ -var c58=exprEval(_iK); -switch((c58)._t) { -case 3 : return function(_iN, _iO){return (F_cD)._b(((exprEval(_iI))._f[1])._ap([_iL, _iN]), new HSFun("F_dm", 0, function(){return (F_dm)._b(_iI, _iM, _iO);}));}((c58)._f[0], (c58)._f[1]); -default : return false; -} -throw('X (' + this._n + ') ' +c58.toSource()); -}((c56)._f[0], (c56)._f[1]); -} -throw('X (' + this._n + ') ' +c56.toSource()); -}); - -var F_dn=new HSFun("F_dn", 0, function(){return new HSData((-11), [F_eE, F_cP, F_dp, F_dq, F_ds, F_dt, F_du, F_dr, F_do]);}); - -var F_do=new HSFun("F_do", 2, function(_hC, _hD){return (F_eZ)._b(F_dn, _hC, _hD);}); - -var F_dp=new HSFun("F_dp", 2, function(_hx, _hy){return (F_e0)._b(F_dn, _hx, _hy);}); - -var F_dq=new HSFun("F_dq", 2, function(_hp, _hq){ -var _k=new HSFun("_k", 0, function(){return (exprEval(_hp))%(exprEval(_hq));}); -var c59=exprEval((Number(exprEval((F_hE)._b(_k))))===(Number(exprEval(NEG_W(exprEval((F_hE)._b(_hq))))))); -switch((c59)._t) { -case true : return (exprEval(_k))+(exprEval(_hq)); -case false : return _k; -} -throw('X (' + this._n + ') ' +c59.toSource()); -}); - -var F_dr=new HSFun("F_dr", 2, function(_hv, _hw){return function(x,y){return (x - (x % y))/y;}(Number(exprEval(_hv)),Number(exprEval(_hw)));}); - -var F_ds=new HSFun("F_ds", 2, function(_hr, _hs){return new HSData((-7), [function(x,y){return (x - (x % y))/y;}(Number(exprEval(_hr)),Number(exprEval(_hs))), (exprEval(_hr))%(exprEval(_hs))]);}); - -var F_dt=new HSFun("F_dt", 2, function(_ht, _hu){return (exprEval(_ht))%(exprEval(_hu));}); - -var F_du=new HSFun("F_du", 1, function(_ho){return (F_hH)._b(_ho);}); - -var F_dv=new HSFun("F_dv", 0, function(){return new HSData((-11), [F_eG, F_cY, F_dx, F_dy, F_dA, F_dB, F_dC, F_dz, F_dw]);}); - -var F_dw=new HSFun("F_dw", 2, function(_gi, _gj){return (exprEval((F_dx)._b(_gi, _gj)))._f[0];}); - -var F_dx=new HSFun("F_dx", 2, function(_gv, _gw){return (F_e0)._b(F_dv, _gv, _gw);}); - -var F_dy=new HSFun("F_dy", 2, function(_gg, _gh){return (exprEval((F_dx)._b(_gg, _gh)))._f[1];}); - -var F_dz=new HSFun("F_dz", 2, function(_gm, _gn){return (F_hP)._b(_gm, _gn);}); - -var F_dA=new HSFun("F_dA", 2, function(_ge, _gf){return (F_hQ)._b(_ge, _gf);}); - -var F_dB=new HSFun("F_dB", 2, function(_gk, _gl){return (F_hR)._b(_gk, _gl);}); - -var F_dC=new HSFun("F_dC", 1, function(_gd){return _gd;}); - -var F_dD=new HSFun("F_dD", 1, function(_jX){return (exprEval(_jX))._f[0];}); - -var F_dE=new HSFun("F_dE", 1, function(_jB){return (exprEval(_jB))._f[0];}); - -var F_dF=new HSFun("F_dF", 0, function(){return new HSData((-11), [F_db, F_eK, F_dG, F_dH, F_dI, F_dL, F_dM, F_dK, F_dJ]);}); - -var F_dG=new HSFun("F_dG", 2, function(_hU, _hV){return (exprEval(_hU))*(exprEval(_hV));}); - -var F_dH=new HSFun("F_dH", 2, function(_hY, _hZ){return (exprEval(_hY))+(exprEval(_hZ));}); - -var F_dI=new HSFun("F_dI", 2, function(_hW, _hX){return (exprEval(_hW))-(exprEval(_hX));}); - -var F_dJ=new HSFun("F_dJ", 1, function(_hT){return (F_hC)._b(_hT);}); - -var F_dK=new HSFun("F_dK", 1, function(_hR){return (F_hD)._b(_hR);}); - -var F_dL=new HSFun("F_dL", 1, function(a){ -return 0 - Number(exprEval(a));}); - -var F_dM=new HSFun("F_dM", 1, function(_hS){return (F_hE)._b(_hS);}); - -var F_dN=new HSFun("F_dN", 0, function(){return new HSData((-11), [F_de, F_eP, F_dO, F_dP, F_dQ, F_dT, F_dU, F_dS, F_dR]);}); - -var F_dO=new HSFun("F_dO", 2, function(_gC, _gD){return (F_hM)._b(_gC, _gD);}); - -var F_dP=new HSFun("F_dP", 2, function(_gG, _gH){return (F_hF)._b(_gG, _gH);}); - -var F_dQ=new HSFun("F_dQ", 2, function(_gE, _gF){return (F_hS)._b(_gE, _gF);}); - -var F_dR=new HSFun("F_dR", 1, function(_gA){ -var c60=exprEval((F_hL)._b(_gA, 0)); -switch((c60)._t) { -case true : return (F_hO)._b(_gA); -case false : return _gA; -} -throw('X (' + this._n + ') ' +c60.toSource()); -}); - -var F_dS=new HSFun("F_dS", 1, function(_gy){return _gy;}); - -var F_dT=new HSFun("F_dT", 1, function(_gB){return (F_hO)._b(_gB);}); - -var F_dU=new HSFun("F_dU", 1, function(_gz){ -var c61=exprEval((F_eh)._b(_gz, 0)); -switch((c61)._t) { -case 17 : return -1; -case 13 : return 0; -case 15 : return 1; -} -throw('X (' + this._n + ') ' +c61.toSource()); -}); - -var F_dV=new HSFun("F_dV", 0, function(){return new HSData((-10), [F_c8, F_dW, F_dX, F_dZ, F_dY, F_d0, F_d2, F_d1]);}); - -var F_dW=new HSFun("F_dW", 2, function(_f1, _f2){return (F_eV)._b(F_dV, _f1, _f2);}); - -var F_dX=new HSFun("F_dX", 2, function(_fR, _fS){return (Number(exprEval(_fR)))<=(Number(exprEval(_fS)));}); - -var F_dY=new HSFun("F_dY", 2, function(_fX, _fY){return (F_eW)._b(F_dV, _fX, _fY);}); - -var F_dZ=new HSFun("F_dZ", 2, function(_fZ, _f0){return (F_eX)._b(F_dV, _fZ, _f0);}); - -var F_d0=new HSFun("F_d0", 2, function(_fP, _fQ){return (F_d9)._b(_fP, _fQ);}); - -var F_d1=new HSFun("F_d1", 2, function(_fV, _fW){return (F_e4)._b(F_dV, _fV, _fW);}); - -var F_d2=new HSFun("F_d2", 2, function(_fT, _fU){return (F_e5)._b(F_dV, _fT, _fU);}); - -var F_d3=new HSFun("F_d3", 1, function(_jm){return (exprEval(_jm))._f[0];}); - -var F_d4=new HSFun("F_d4", 0, function(){return new HSData((-10), [F_db, F_d5, F_d6, F_d8, F_d7, F_d9, F_eb, F_ea]);}); - -var F_d5=new HSFun("F_d5", 2, function(_h6, _h7){return (Number(exprEval(_h6)))<(Number(exprEval(_h7)));}); - -var F_d6=new HSFun("F_d6", 2, function(_h4, _h5){return (Number(exprEval(_h4)))<=(Number(exprEval(_h5)));}); - -var F_d7=new HSFun("F_d7", 2, function(_h0, _h1){return (Number(exprEval(_h0)))>(Number(exprEval(_h1)));}); - -var F_d8=new HSFun("F_d8", 2, function(_h2, _h3){return (Number(exprEval(_h2)))>=(Number(exprEval(_h3)));}); - -var F_d9=new HSFun("F_d9", 2, function(_id, _ie){return (F_eY)._b(F_d4, _id, _ie);}); - -var F_ea=new HSFun("F_ea", 2, function(_ib, _ic){return (F_e4)._b(F_d4, _ib, _ic);}); - -var F_eb=new HSFun("F_eb", 2, function(_h8, _h9){return (F_e5)._b(F_d4, _h8, _h9);}); - -var F_ec=new HSFun("F_ec", 0, function(){return new HSData((-10), [F_de, F_ed, F_ee, F_eg, F_ef, F_eh, F_ej, F_ei]);}); - -var F_ed=new HSFun("F_ed", 2, function(_gO, _gP){return (F_hL)._b(_gO, _gP);}); - -var F_ee=new HSFun("F_ee", 2, function(_gM, _gN){return (F_hK)._b(_gM, _gN);}); - -var F_ef=new HSFun("F_ef", 2, function(_gI, _gJ){return (F_hJ)._b(_gI, _gJ);}); - -var F_eg=new HSFun("F_eg", 2, function(_gK, _gL){return (F_hI)._b(_gK, _gL);}); - -var F_eh=new HSFun("F_eh", 2, function(_gU, _gV){return (F_eY)._b(F_ec, _gU, _gV);}); - -var F_ei=new HSFun("F_ei", 2, function(_gS, _gT){return (F_e4)._b(F_ec, _gS, _gT);}); - -var F_ej=new HSFun("F_ej", 2, function(_gQ, _gR){return (F_e5)._b(F_ec, _gQ, _gR);}); - -var F_ek=new HSFun("F_ek", 1, function(_cL){ -var c62=exprEval(_cL); -switch((c62)._t) { -case 3 : return function(_cM, _cN){ -var c63=exprEval(_cM); -switch((c63).valueOf()) { -case 34 : return new HSCons(new HSData((-7), [F_fl, _cN]), new HSEOL()); -default : return (F_gg)._b(F_fn, (F_el)._ap([_cL]), new HSEOL()); -} -throw('X (' + this._n + ') ' +c63.toSource()); -}((c62)._f[0], (c62)._f[1]); -default : return (F_gg)._b(F_fn, (F_el)._ap([_cL]), new HSEOL()); -} -throw('X (' + this._n + ') ' +c62.toSource()); -}); - -var F_el=new HSFun("F_el", 1, function(_cE){ -var c64=exprEval(_cE); -switch((c64)._t) { -case 3 : return function(_cF, _cG){ -var c65=exprEval(_cF); -switch((c65).valueOf()) { -case 92 : var c66=exprEval(_cG); -switch((c66)._t) { -case 3 : return function(_cH, _cI){ -var c67=exprEval(_cH); -switch((c67).valueOf()) { -case 38 : return new HSCons(new HSData((-7), [F_fi, _cI]), new HSEOL()); -default : var c68=exprEval((F_Z)._b(_cH)); -switch((c68)._t) { -case true : return (F_gg)._b(F_fk, new HSCons((F_gl)._b(F_Z, _cI), new HSEOL()), new HSEOL()); -case false : return (F_1)._b(_cE); -} -throw('X (' + this._n + ') ' +c68.toSource()); -} -throw('X (' + this._n + ') ' +c67.toSource()); -}((c66)._f[0], (c66)._f[1]); -default : return (F_1)._b(_cE); -} -throw('X (' + this._n + ') ' +c66.toSource()); -default : return (F_1)._b(_cE); -} -throw('X (' + this._n + ') ' +c65.toSource()); -}((c64)._f[0], (c64)._f[1]); -default : return (F_1)._b(_cE); -} -throw('X (' + this._n + ') ' +c64.toSource()); -}); - -var F_em=new HSFun("F_em", 1, function(_dk){return ((F_gm)._b(F_c8, _dk))._ap([F_fD]);}); - -var F_en=new HSFun("F_en", 1, function(_dj){return ((F_gm)._b(F_c8, _dj))._ap([F_fC]);}); - -var F_eo=new HSFun("F_eo", 1, function(_di){return (F_g1)._b((F_W)._b(_di), (Number(exprEval(_di)))===(Number(exprEval(mkChar(95)))));}); - -var F_ep=new HSFun("F_ep", 1, function(_dh){return (F_g1)._b((F_X)._b(_dh), ((F_gm)._b(F_c8, _dh))._ap([F_fB]));}); - -var F_eq=new HSFun("F_eq", 1, function(_c8){ -var c69=exprEval(_c8); -switch((c69)._t) { -case 3 : return function(_c9, _da){ -var c70=exprEval(_c9); -switch((c70).valueOf()) { -case 46 : var c71=exprEval(_da); -switch((c71)._t) { -case 3 : return function(_db, _dc){ -var c72=exprEval((F_bg)._b(_db)); -switch((c72)._t) { -case true : return (F_gg)._b(F_fA, (F_cx)._ap([new HSCons(_db, _dc)]), new HSEOL()); -case false : return (F_er)._ap([_c8]); -} -throw('X (' + this._n + ') ' +c72.toSource()); -}((c71)._f[0], (c71)._f[1]); -default : return (F_er)._ap([_c8]); -} -throw('X (' + this._n + ') ' +c71.toSource()); -default : return (F_er)._ap([_c8]); -} -throw('X (' + this._n + ') ' +c70.toSource()); -}((c69)._f[0], (c69)._f[1]); -default : return (F_er)._ap([_c8]); -} -throw('X (' + this._n + ') ' +c69.toSource()); -}); - -var F_er=new HSFun("F_er", 1, function(_cY){ -var c73=exprEval(_cY); -switch((c73)._t) { -case 3 : return function(_cZ, _c0){ -var c74=exprEval(((F_gm)._b(F_c8, _cZ))._ap([F_ft])); -switch((c74)._t) { -case true : return (F_cG)._b((F_gg)._b(new HSFun("F_fw", 0, function(){return (F_fw)._ap([_cZ]);}), new HSCons(_c0, new HSEOL()), new HSEOL()), new HSFun("F_gg", 0, function(){return (F_gg)._b(new HSFun("F_fx", 0, function(){return (F_fx)._ap([_cZ]);}), (F_cx)._ap([_c0]), new HSEOL());})); -case false : return new HSCons(new HSData((-7), [F_fy, _cY]), new HSEOL()); -} -throw('X (' + this._n + ') ' +c74.toSource()); -}((c73)._f[0], (c73)._f[1]); -default : return new HSCons(new HSData((-7), [F_fy, _cY]), new HSEOL()); -} -throw('X (' + this._n + ') ' +c73.toSource()); -}); - -var F_es=new HSFun("F_es", 2, function(_du, _dv){return (F_cG)._b((_du)._ap([_dv]), ((F_et)._ap([_du]))._ap([_dv]));}); - -var F_et=new HSFun("F_et", 2, function(_du, _dw){return (F_gg)._b(new HSFun("F_fL", 0, function(){return (F_fL)._ap([_du]);}), (F_gz)._b(_dw), new HSEOL());}); - -var F_eu=new HSFun("F_eu", 3, function(_eD, _eE, _eF){ -var c75=exprEval(((exprEval((exprEval((exprEval((exprEval(_eD))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eF, ((exprEval((exprEval((exprEval(_eD))._f[0]))._f[0]))._f[7])._ap([0])])); -switch((c75)._t) { -case true : return _eE; -case false : return (F_eu)._ap([_eD, _eF, ((exprEval(_eD))._f[5])._ap([_eE, _eF])]); -} -throw('X (' + this._n + ') ' +c75.toSource()); -}); - -var F_ev=new HSFun("F_ev", 2, function(_dY, _dZ){return (F_cG)._b((F_gg)._b(F_fQ, (F_gz)._b(_dZ), new HSEOL()), new HSFun("F_gg", 0, function(){return (F_gg)._b(new HSFun("F_fS", 0, function(){return (F_fS)._ap([_dY]);}), ((exprEval(_dY))._f[0])._ap([0, _dZ]), new HSEOL());}));}); - -var F_ew=new HSFun("F_ew", 2, function(_dK, _dL){return (F_cG)._b((F_gg)._b(F_fM, (F_gz)._b(_dL), new HSEOL()), new HSFun("F_gg", 0, function(){return (F_gg)._b(new HSFun("F_fP", 0, function(){return (F_fP)._ap([_dK]);}), (F_gz)._b(_dL), new HSEOL());}));}); - -var F_ex=new HSFun("F_ex", 2, function(_ek, _el){ -var c76=exprEval(_el); -switch((c76)._t) { -case 2 : return (F_fW)._ap([mkChar(93)]); -case 3 : return function(_em, _en){return (F_fc)._ap([(F_fc)._ap([(F_ex)._ap([_ek, _en]), ((exprEval(_ek))._f[0])._ap([0, _em])]), (F_gT)._ap([F_fY])]);}((c76)._f[0], (c76)._f[1]); -} -throw('X (' + this._n + ') ' +c76.toSource()); -}); - -var F_ey=new HSFun("F_ey", 2, function(_iD, _iE){ -var c77=exprEval(_iE); -switch((c77)._t) { -case 2 : return _iD; -case 3 : return function(_iF, _iG){ -var _u=new HSFun("_u", 0, function(){return (exprEval(_iD))+(1);}); -return (F_gP)._b(_u, (F_ey)._ap([_u, _iG])); -}((c77)._f[0], (c77)._f[1]); -} -throw('X (' + this._n + ') ' +c77.toSource()); -}); - -var F_ez=new HSFun("F_ez", 3, function(_hg, _hh, _hi){return (F_gB)._b(new HSFun("F_f8", 0, function(){return (F_f8)._ap([_hg]);}), ((F_eD)._b(_hh))._ap([_hi]));}); - -var F_eA=new HSFun("F_eA", 0, function(){return new HSData((-7), [F_eC, F_eB]);}); - -var F_eB=new HSFun("F_eB", 0, function(){return (F_e7)._b(F_eA);}); - -var F_eC=new HSFun("F_eC", 1, function(_hf){return (F_f9)._ap([_hf]);}); - -var F_eD=new HSFun("F_eD", 1, function(v25828){return (F_cy)._b(F_eG, new HSFun("F_bl", 0, function(){return (F_bl)._b(F_dv);}));}); - -var F_eE=new HSFun("F_eE", 0, function(){return new HSData((-8), [F_dF, F_d4, F_eF]);}); - -var F_eF=new HSFun("F_eF", 1, function(_hE){return (F_6)._b(F_dv, (F_hH)._b(_hE), 1);}); - -var F_eG=new HSFun("F_eG", 0, function(){return new HSData((-8), [F_dN, F_ec, F_eH]);}); - -var F_eH=new HSFun("F_eH", 1, function(_gx){return (F_6)._b(F_dv, _gx, 1);}); - -var F_eI=new HSFun("F_eI", 1, function(_jM){return (exprEval(_jM))._f[0];}); - -var F_eJ=new HSFun("F_eJ", 1, function(_jN){return (exprEval(_jN))._f[1];}); - -var F_eK=new HSFun("F_eK", 0, function(){return new HSData((-9), [F_eN, F_eO, F_eM, F_eL]);}); - -var F_eL=new HSFun("F_eL", 1, function(_hn){return (F_e8)._b(F_eK, _hn);}); - -var F_eM=new HSFun("F_eM", 1, function(_hm){return (F_e9)._b(F_eK, _hm);}); - -var F_eN=new HSFun("F_eN", 2, function(_kn, _ko){ -var c78=exprEval((Number(exprEval(_ko)))<(0)); -switch((c78)._t) { -case true : return (F_gS)._b((Number(exprEval(_kn)))>(6), (F_fc)._ap([(F_hh)._ap([new HSFun("F_dL", 0, function(){return (F_dL)._b(_ko);})]), (F_fW)._ap([mkChar(45)])])); -case false : return (F_hh)._ap([_ko]); -} -throw('X (' + this._n + ') ' +c78.toSource()); -}); - -var F_eO=new HSFun("F_eO", 1, function(v26141){return (F_gT)._ap([F_ga]);}); - -var F_eP=new HSFun("F_eP", 0, function(){return new HSData((-9), [F_eS, F_eT, F_eR, F_eQ]);}); - -var F_eQ=new HSFun("F_eQ", 1, function(_gc){return (F_e8)._b(F_eP, _gc);}); - -var F_eR=new HSFun("F_eR", 1, function(_gb){return (F_e9)._b(F_eP, _gb);}); - -var F_eS=new HSFun("F_eS", 2, function(_f9, _ga){return (F_cB)._b(F_eG, new HSFun("F_cz", 0, function(){return (F_cz)._b(F_dv);}), _f9, _ga);}); - -var F_eT=new HSFun("F_eT", 1, function(v25823){return (F_gT)._ap([F_f5]);}); - -var F_eU=new HSFun("F_eU", 3, function(_fl, _fm, _fn){return (F_gD)._b(((exprEval(_fl))._f[1])._ap([_fm, _fn]));}); - -var F_eV=new HSFun("F_eV", 3, function(_fg, _fh, _fi){return (F_dj)._b(((exprEval(_fg))._f[5])._ap([_fh, _fi]), new HSData(17, []));}); - -var F_eW=new HSFun("F_eW", 3, function(_fa, _fb, _fc){return (F_dj)._b(((exprEval(_fa))._f[5])._ap([_fb, _fc]), new HSData(15, []));}); - -var F_eX=new HSFun("F_eX", 3, function(_fd, _fe, _ff){return (F_di)._b(((exprEval(_fd))._f[5])._ap([_fe, _ff]), new HSData(17, []));}); - -var F_eY=new HSFun("F_eY", 3, function(_fL, _fM, _fN){ -var c79=exprEval(((exprEval((exprEval(_fL))._f[0]))._f[1])._ap([_fM, _fN])); -switch((c79)._t) { -case true : return new HSData(13, []); -case false : var c80=exprEval(((exprEval(_fL))._f[2])._ap([_fM, _fN])); -switch((c80)._t) { -case true : return new HSData(17, []); -case false : return new HSData(15, []); -} -throw('X (' + this._n + ') ' +c80.toSource()); -} -throw('X (' + this._n + ') ' +c79.toSource()); -}); - -var F_eZ=new HSFun("F_eZ", 3, function(_hz, _hA, _hB){return (exprEval(((exprEval(_hz))._f[2])._ap([_hA, _hB])))._f[0];}); - -var F_e0=new HSFun("F_e0", 3, function(_go, _gp, _gq){ -var _Q=new HSFun("_Q", 0, function(){return _go;}); -var _r=new HSFun("_r", 0, function(){return ((exprEval(_Q))._f[4])._ap([_gp, _gq]);}); -var _i=new HSFun("_i", 0, function(){return _r;}); -var _s=new HSFun("_s", 0, function(){return (exprEval(_i))._f[0];}); -var _t=new HSFun("_t", 0, function(){return (exprEval(_i))._f[1];}); -var c81=exprEval(((exprEval((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[0]))._f[1])._ap([((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[6])._ap([_t]), ((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[5])._ap([((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[6])._ap([_gq])])])); -switch((c81)._t) { -case true : return new HSData((-7), [((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[4])._ap([_s, ((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[7])._ap([1])]), ((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[3])._ap([_t, _gq])]); -case false : return _r; -} -throw('X (' + this._n + ') ' +c81.toSource()); -}); - -var F_e1=new HSFun("F_e1", 4, function(_fz, _fA, _fB, _fC){ -var _L=new HSFun("_L", 0, function(){return _fz;}); -var _o=new HSFun("_o", 0, function(){return ((exprEval(_L))._f[3])._ap([_fB]);}); -var _M=new HSFun("_M", 0, function(){return _fz;}); -var _n=new HSFun("_n", 0, function(){return ((exprEval(_M))._f[3])._ap([_fA]);}); -var _q=new HSFun("_q", 0, function(){return (exprEval(_o))-(exprEval(_n));}); -var _N=new HSFun("_N", 0, function(){return _fz;}); -var _p=new HSFun("_p", 0, function(){return ((exprEval(_N))._f[3])._ap([_fC]);}); -var c82=exprEval((Number(exprEval(_q)))>=(0)); -switch((c82)._t) { -case true : return (F_ge)._b(_fz, _n, _q, _p); -case false : return (F_gd)._b(_fz, _n, _q, _p); -} -throw('X (' + this._n + ') ' +c82.toSource()); -}); - -var F_e2=new HSFun("F_e2", 3, function(_fD, _fE, _fF){ -var _O=new HSFun("_O", 0, function(){return _fD;}); -var _m=new HSFun("_m", 0, function(){return ((exprEval(_O))._f[3])._ap([_fF]);}); -var _P=new HSFun("_P", 0, function(){return _fD;}); -var _l=new HSFun("_l", 0, function(){return ((exprEval(_P))._f[3])._ap([_fE]);}); -var c83=exprEval((F_d9)._b(_l, _m)); -switch((c83)._t) { -case 17 : return (F_ge)._b(_fD, _l, 1, _m); -case 13 : return new HSCons(_fE, new HSEOL()); -case 15 : return new HSEOL(); -} -throw('X (' + this._n + ') ' +c83.toSource()); -}); - -var F_e3=new HSFun("F_e3", 2, function(v25368, _e1){return (F_gn)._b(_e1);}); - -var F_e4=new HSFun("F_e4", 3, function(_e7, _e8, _e9){ -var c84=exprEval(((exprEval(_e7))._f[3])._ap([_e8, _e9])); -switch((c84)._t) { -case true : return _e8; -case false : return _e9; -} -throw('X (' + this._n + ') ' +c84.toSource()); -}); - -var F_e5=new HSFun("F_e5", 3, function(_e4, _e5, _e6){ -var c85=exprEval(((exprEval(_e4))._f[2])._ap([_e5, _e6])); -switch((c85)._t) { -case true : return _e5; -case false : return _e6; -} -throw('X (' + this._n + ') ' +c85.toSource()); -}); - -var F_e6=new HSFun("F_e6", 2, function(_fG, _fH){return ((F_fc)._ap([(F_fc)._ap([new HSFun("F_gs", 0, function(){return (exprEval(_fG))._f[3];}), ((F_gY)._b(F_dF))._ap([1])]), (exprEval(_fG))._f[4]]))._ap([_fH]);}); - -var F_e7=new HSFun("F_e7", 1, function(_dJ){return (F_gJ)._b(false, new HSFun("F_fV", 0, function(){return (F_fV)._ap([_dJ]);}));}); - -var F_e8=new HSFun("F_e8", 2, function(_eo, _ep){return ((exprEval(_eo))._f[0])._ap([0, _ep, F_fZ]);}); - -var F_e9=new HSFun("F_e9", 2, function(_eg, _eh){ -var c86=exprEval(_eh); -switch((c86)._t) { -case 2 : return (F_gT)._ap([F_fX]); -case 3 : return function(_ei, _ej){return (F_fc)._ap([(F_fc)._ap([(F_ex)._ap([_eg, _ej]), ((exprEval(_eg))._f[0])._ap([0, _ei])]), (F_fW)._ap([mkChar(91)])]);}((c86)._f[0], (c86)._f[1]); -} -throw('X (' + this._n + ') ' +c86.toSource()); -}); - -var F_fa=new HSFun("F_fa", 2, function(_fI, _fJ){return ((F_fc)._ap([(F_fc)._ap([new HSFun("F_gs", 0, function(){return (exprEval(_fI))._f[3];}), new HSFun("F_go", 0, function(){return (F_go)._ap([F_dH, 1]);})]), (exprEval(_fI))._f[4]]))._ap([_fJ]);}); - -var F_fb="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 592:1-594:31."; - -var F_fc=new HSFun("F_fc", 3, function(_ca, _b9, _bV){return (_b9)._ap([(_ca)._ap([_bV])]);}); - -var F_fd=new HSFun("F_fd", 1, function(_j){return (exprEval(_j))._f[0];}); - -var F_fe=new HSFun("F_fe", 1, function(_j){return (exprEval(_j))._f[1];}); - -var F_ff="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 736:1-738:32."; - -var F_fg=""; - -var F_fh=""; - -var F_fi="\\&"; - -var F_fj="\\&"; - -var F_fk=new HSFun("F_fk", 2, function(_bb, _bc){ -var c87=exprEval(_bb); -switch((c87)._t) { -case 3 : return function(_cJ, _cK){ -var c88=exprEval(_cJ); -switch((c88).valueOf()) { -case 92 : return new HSCons(new HSData((-7), [F_fj, _cK]), _bc); -default : return _bc; -} -throw('X (' + this._n + ') ' +c88.toSource()); -}((c87)._f[0], (c87)._f[1]); -default : return _bc; -} -throw('X (' + this._n + ') ' +c87.toSource()); -}); - -var F_fl="\""; - -var F_fm=new HSFun("F_fm", 3, function(_cO, _9, _ba){ -var c89=exprEval(_9); -return function(_cQ, _cR){return new HSCons(new HSData((-7), [new HSFun("F_cG", 0, function(){return (F_cG)._b(_cO, _cQ);}), _cR]), _ba);}((c89)._f[0], (c89)._f[1]); -}); - -var F_fn=new HSFun("F_fn", 2, function(_7, _8){ -var c90=exprEval(_7); -return function(_cO, _cP){return (F_gg)._b(new HSFun("F_fm", 0, function(){return (F_fm)._ap([_cO]);}), (F_ek)._ap([_cP]), _8);}((c90)._f[0], (c90)._f[1]); -}); - -var F_fo=new HSFun("F_fo", 2, function(_bd, _be){ -var c91=exprEval(_bd); -return function(_cS, _cT){return new HSCons(new HSData((-7), [new HSCons(mkChar(34), _cS), _cT]), _be);}((c91)._f[0], (c91)._f[1]); -}); - -var F_fp="\'"; - -var F_fq="\'"; - -var F_fr=new HSFun("F_fr", 3, function(_cU, _cX, _j8){return new HSCons(new HSData((-7), [new HSCons(mkChar(39), (F_cG)._b(_cU, F_fq)), _cX]), _j8);}); - -var F_fs=new HSFun("F_fs", 2, function(_5, _6){ -var c92=exprEval(_5); -return function(_cU, _cV){ -var c93=exprEval(_cV); -switch((c93)._t) { -case 3 : return function(_cW, _cX){ -var c94=exprEval(_cW); -switch((c94).valueOf()) { -case 39 : return (F_gf)._b((F_dl)._b(F_c8, _cU, F_fp), new HSFun("F_fr", 0, function(){return (F_fr)._ap([_cU, _cX]);}), _6); -default : return _6; -} -throw('X (' + this._n + ') ' +c94.toSource()); -}((c93)._f[0], (c93)._f[1]); -default : return _6; -} -throw('X (' + this._n + ') ' +c93.toSource()); -}((c92)._f[0], (c92)._f[1]); -}); - -var F_ft="eE"; - -var F_fu="+-"; - -var F_fv=new HSFun("F_fv", 4, function(_cZ, _c1, _bl, _bm){ -var c95=exprEval(_bl); -return function(_c3, _c4){return new HSCons(new HSData((-7), [new HSCons(_cZ, new HSCons(_c1, _c3)), _c4]), _bm);}((c95)._f[0], (c95)._f[1]); -}); - -var F_fw=new HSFun("F_fw", 3, function(_cZ, _bj, _bk){ -var c96=exprEval(_bj); -switch((c96)._t) { -case 3 : return function(_c1, _c2){return (F_gf)._b(((F_gm)._b(F_c8, _c1))._ap([F_fu]), new HSFun("F_gg", 0, function(){return (F_gg)._ap([new HSFun("F_fv", 0, function(){return (F_fv)._ap([_cZ, _c1]);}), (F_cx)._ap([_c2])]);}), _bk);}((c96)._f[0], (c96)._f[1]); -default : return _bk; -} -throw('X (' + this._n + ') ' +c96.toSource()); -}); - -var F_fx=new HSFun("F_fx", 3, function(_cZ, _bn, _bo){ -var c97=exprEval(_bn); -return function(_c5, _c6){return new HSCons(new HSData((-7), [new HSCons(_cZ, _c5), _c6]), _bo);}((c97)._f[0], (c97)._f[1]); -}); - -var F_fy=""; - -var F_fz=new HSFun("F_fz", 3, function(_dd, _bh, _bi){ -var c98=exprEval(_bh); -return function(_df, _dg){return new HSCons(new HSData((-7), [new HSCons(mkChar(46), (F_cG)._b(_dd, _df)), _dg]), _bi);}((c98)._f[0], (c98)._f[1]); -}); - -var F_fA=new HSFun("F_fA", 2, function(_bf, _bg){ -var c99=exprEval(_bf); -return function(_dd, _de){return (F_gg)._b(new HSFun("F_fz", 0, function(){return (F_fz)._ap([_dd]);}), (F_er)._ap([_de]), _bg);}((c99)._f[0], (c99)._f[1]); -}); - -var F_fB="_\'"; - -var F_fC="!@#$%&*+./<=>\u003f\\^|:-~"; - -var F_fD=",;()[]{}`"; - -var F_fE=new HSFun("F_fE", 3, function(_cC, _bp, _bq){ -var c100=exprEval(_bp); -return function(_dl, _dm){return new HSCons(new HSData((-7), [new HSCons(_cC, _dl), _dm]), _bq);}((c100)._f[0], (c100)._f[1]); -}); - -var F_fF=new HSFun("F_fF", 3, function(_cC, _br, _bs){ -var c101=exprEval(_br); -return function(_dn, _do){return new HSCons(new HSData((-7), [new HSCons(_cC, _dn), _do]), _bs);}((c101)._f[0], (c101)._f[1]); -}); - -var F_fG=new HSFun("F_fG", 4, function(_cC, _dp, _bv, _bw){ -var c102=exprEval(_bv); -return function(_dr, _ds){return new HSCons(new HSData((-7), [new HSCons(_cC, (F_cG)._b(_dp, _dr)), _ds]), _bw);}((c102)._f[0], (c102)._f[1]); -}); - -var F_fH=new HSFun("F_fH", 3, function(_cC, _bt, _bu){ -var c103=exprEval(_bt); -return function(_dp, _dq){return (F_gg)._b(new HSFun("F_fG", 0, function(){return (F_fG)._ap([_cC, _dp]);}), (F_eq)._ap([_dq]), _bu);}((c103)._f[0], (c103)._f[1]); -}); - -var F_fI="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 1664:1-1701:35."; - -var F_fJ=new HSFun("F_fJ", 3, function(_dB, _bF, _bG){ -var c104=exprEval(_bF); -return function(_dD, _dE){ -var c105=exprEval(_dD); -switch((c105)._t) { -case 3 : return function(_dF, _dG){ -var c106=exprEval(_dF); -switch((c106).valueOf()) { -case 41 : var c107=exprEval(_dG); -switch((c107)._t) { -case 2 : return new HSCons(new HSData((-7), [_dB, _dE]), _bG); -default : return _bG; -} -throw('X (' + this._n + ') ' +c107.toSource()); -default : return _bG; -} -throw('X (' + this._n + ') ' +c106.toSource()); -}((c105)._f[0], (c105)._f[1]); -default : return _bG; -} -throw('X (' + this._n + ') ' +c105.toSource()); -}((c104)._f[0], (c104)._f[1]); -}); - -var F_fK=new HSFun("F_fK", 2, function(_bD, _bE){ -var c108=exprEval(_bD); -return function(_dB, _dC){return (F_gg)._b(new HSFun("F_fJ", 0, function(){return (F_fJ)._ap([_dB]);}), (F_gz)._b(_dC), _bE);}((c108)._f[0], (c108)._f[1]); -}); - -var F_fL=new HSFun("F_fL", 3, function(_du, _bB, _bC){ -var c109=exprEval(_bB); -return function(_dx, _dy){ -var c110=exprEval(_dx); -switch((c110)._t) { -case 3 : return function(_dz, _dA){ -var c111=exprEval(_dz); -switch((c111).valueOf()) { -case 40 : var c112=exprEval(_dA); -switch((c112)._t) { -case 2 : return (F_gg)._b(F_fK, ((F_es)._ap([_du]))._ap([_dy]), _bC); -default : return _bC; -} -throw('X (' + this._n + ') ' +c112.toSource()); -default : return _bC; -} -throw('X (' + this._n + ') ' +c111.toSource()); -}((c110)._f[0], (c110)._f[1]); -default : return _bC; -} -throw('X (' + this._n + ') ' +c110.toSource()); -}((c109)._f[0], (c109)._f[1]); -}); - -var F_fM=new HSFun("F_fM", 2, function(_lm, _ln){ -var c113=exprEval(_lm); -return function(_dM, _dN){ -var c114=exprEval(_dM); -switch((c114)._t) { -case 3 : return function(_dO, _dP){ -var c115=exprEval(_dO); -switch((c115).valueOf()) { -case 93 : var c116=exprEval(_dP); -switch((c116)._t) { -case 2 : return new HSCons(new HSData((-7), [new HSEOL(), _dN]), _ln); -default : return _ln; -} -throw('X (' + this._n + ') ' +c116.toSource()); -default : return _ln; -} -throw('X (' + this._n + ') ' +c115.toSource()); -}((c114)._f[0], (c114)._f[1]); -default : return _ln; -} -throw('X (' + this._n + ') ' +c114.toSource()); -}((c113)._f[0], (c113)._f[1]); -}); - -var F_fN=new HSFun("F_fN", 3, function(_dU, _ls, _lt){ -var c117=exprEval(_ls); -return function(_dW, _dX){return new HSCons(new HSData((-7), [new HSCons(_dU, _dW), _dX]), _lt);}((c117)._f[0], (c117)._f[1]); -}); - -var F_fO=new HSFun("F_fO", 3, function(_dK, _lq, _lr){ -var c118=exprEval(_lq); -return function(_dU, _dV){return (F_gg)._b(new HSFun("F_fN", 0, function(){return (F_fN)._ap([_dU]);}), (F_ew)._ap([_dK, _dV]), _lr);}((c118)._f[0], (c118)._f[1]); -}); - -var F_fP=new HSFun("F_fP", 3, function(_dK, _lo, _lp){ -var c119=exprEval(_lo); -return function(_dQ, _dR){ -var c120=exprEval(_dQ); -switch((c120)._t) { -case 3 : return function(_dS, _dT){ -var c121=exprEval(_dS); -switch((c121).valueOf()) { -case 44 : var c122=exprEval(_dT); -switch((c122)._t) { -case 2 : return (F_gg)._b(new HSFun("F_fO", 0, function(){return (F_fO)._ap([_dK]);}), ((exprEval(_dK))._f[0])._ap([0, _dR]), _lp); -default : return _lp; -} -throw('X (' + this._n + ') ' +c122.toSource()); -default : return _lp; -} -throw('X (' + this._n + ') ' +c121.toSource()); -}((c120)._f[0], (c120)._f[1]); -default : return _lp; -} -throw('X (' + this._n + ') ' +c120.toSource()); -}((c119)._f[0], (c119)._f[1]); -}); - -var F_fQ=new HSFun("F_fQ", 2, function(_lg, _lh){ -var c123=exprEval(_lg); -return function(_d0, _d1){ -var c124=exprEval(_d0); -switch((c124)._t) { -case 3 : return function(_d2, _d3){ -var c125=exprEval(_d2); -switch((c125).valueOf()) { -case 93 : var c126=exprEval(_d3); -switch((c126)._t) { -case 2 : return new HSCons(new HSData((-7), [new HSEOL(), _d1]), _lh); -default : return _lh; -} -throw('X (' + this._n + ') ' +c126.toSource()); -default : return _lh; -} -throw('X (' + this._n + ') ' +c125.toSource()); -}((c124)._f[0], (c124)._f[1]); -default : return _lh; -} -throw('X (' + this._n + ') ' +c124.toSource()); -}((c123)._f[0], (c123)._f[1]); -}); - -var F_fR=new HSFun("F_fR", 3, function(_d4, _lk, _ll){ -var c127=exprEval(_lk); -return function(_d6, _d7){return new HSCons(new HSData((-7), [new HSCons(_d4, _d6), _d7]), _ll);}((c127)._f[0], (c127)._f[1]); -}); - -var F_fS=new HSFun("F_fS", 3, function(_dY, _li, _lj){ -var c128=exprEval(_li); -return function(_d4, _d5){return (F_gg)._b(new HSFun("F_fR", 0, function(){return (F_fR)._ap([_d4]);}), (F_ew)._ap([_dY, _d5]), _lj);}((c128)._f[0], (c128)._f[1]); -}); - -var F_fT=new HSFun("F_fT", 2, function(_lx, _ly){return new HSCons(_lx, _ly);}); - -var F_fU=new HSFun("F_fU", 3, function(_dJ, _lv, _lw){ -var c129=exprEval(_lv); -return function(_d8, _d9){ -var c130=exprEval(_d8); -switch((c130)._t) { -case 3 : return function(_ea, _eb){ -var c131=exprEval(_ea); -switch((c131).valueOf()) { -case 91 : var c132=exprEval(_eb); -switch((c132)._t) { -case 2 : return (F_gg)._b(F_fT, (F_ev)._ap([_dJ, _d9]), _lw); -default : return _lw; -} -throw('X (' + this._n + ') ' +c132.toSource()); -default : return _lw; -} -throw('X (' + this._n + ') ' +c131.toSource()); -}((c130)._f[0], (c130)._f[1]); -default : return _lw; -} -throw('X (' + this._n + ') ' +c130.toSource()); -}((c129)._f[0], (c129)._f[1]); -}); - -var F_fV=new HSFun("F_fV", 2, function(_dJ, _lu){return (F_gg)._b(new HSFun("F_fU", 0, function(){return (F_fU)._ap([_dJ]);}), (F_gz)._b(_lu), new HSEOL());}); - -var F_fW=new HSFun("F_fW", 2, function(_ka, _j9){return new HSCons(_ka, _j9);}); - -var F_fX="[]"; - -var F_fY=","; - -var F_fZ=""; - -var F_f0="Prelude.gcd: gcd 0 0 is undefined."; - -var F_f1=new HSFun("F_f1", 3, function(_eO, _bz, _bA){ -var c133=exprEval(_bz); -return function(_eQ, _eR){ -var c134=exprEval(_eQ); -switch((c134)._t) { -case 2 : var c135=exprEval(_eR); -switch((c135)._t) { -case 2 : return new HSCons(_eO, _bA); -default : return _bA; -} -throw('X (' + this._n + ') ' +c135.toSource()); -default : return _bA; -} -throw('X (' + this._n + ') ' +c134.toSource()); -}((c133)._f[0], (c133)._f[1]); -}); - -var F_f2=new HSFun("F_f2", 2, function(_bx, _by){ -var c136=exprEval(_bx); -return function(_eO, _eP){return (F_gg)._b(new HSFun("F_f1", 0, function(){return (F_f1)._ap([_eO]);}), (F_gz)._b(_eP), _by);}((c136)._f[0], (c136)._f[1]); -}); - -var F_f3="Prelude.read: no parse"; - -var F_f4="Prelude.read: ambiguous parse"; - -var F_f5="Integer"; - -var F_f6=new HSFun("F_f6", 1, function(_i){return (exprEval(_i))._f[0];}); - -var F_f7=new HSFun("F_f7", 1, function(_i){return (exprEval(_i))._f[1];}); - -var F_f8=new HSFun("F_f8", 2, function(_hg, _hj){ -var c137=exprEval(_hj); -return function(_hk, _hl){return new HSData((-7), [((exprEval(_hg))._f[7])._ap([_hk]), _hl]);}((c137)._f[0], (c137)._f[1]); -}); - -var F_f9=new HSFun("F_f9", 2, function(_hf, _ki){return (F_ez)._ap([F_dF, _hf, _ki]);}); - -var F_ga="Int"; - -var F_gb=new HSFun("F_gb", 2, function(_kc, _kb){return new HSCons(_kc, _kb);}); - -var F_gc="PreludeList.foldl1: empty list"; - -var F_gd=new HSFun("F_gd", 4, function(_fv, _fw, _fx, _fy){ -var c138=exprEval((F_d9)._b(_fw, _fy)); -switch((c138)._t) { -case 17 : return new HSEOL(); -case 13 : return new HSCons(((exprEval(_fv))._f[4])._ap([_fw]), new HSEOL()); -case 15 : return new HSCons(((exprEval(_fv))._f[4])._ap([_fw]), (F_gd)._b(_fv, (exprEval(_fw))+(exprEval(_fx)), _fx, _fy)); -} -throw('X (' + this._n + ') ' +c138.toSource()); -}); - -var F_ge=new HSFun("F_ge", 4, function(_fr, _fs, _ft, _fu){ -var c139=exprEval((F_d9)._b(_fs, _fu)); -switch((c139)._t) { -case 17 : return new HSCons(((exprEval(_fr))._f[4])._ap([_fs]), (F_ge)._b(_fr, (exprEval(_fs))+(exprEval(_ft)), _ft, _fu)); -case 13 : return new HSCons(((exprEval(_fr))._f[4])._ap([_fs]), new HSEOL()); -case 15 : return new HSEOL(); -} -throw('X (' + this._n + ') ' +c139.toSource()); -}); - -var F_gf=new HSFun("F_gf", 3, function(_b6, _b7, _b8){ -var c140=exprEval(_b6); -switch((c140)._t) { -case true : return (_b7)._ap([_b8]); -case false : return _b8; -} -throw('X (' + this._n + ') ' +c140.toSource()); -}); - -var F_gg=new HSFun("F_gg", 3, function(_bX, _bY, _bZ){ -var c141=exprEval(_bY); -switch((c141)._t) { -case 2 : return _bZ; -case 3 : return function(_b0, _b1){return (_bX)._ap([_b0, new HSFun("F_gg", 0, function(){return (F_gg)._b(_bX, _b1, _bZ);})]);}((c141)._f[0], (c141)._f[1]); -} -throw('X (' + this._n + ') ' +c141.toSource()); -}); - -var F_gh=new HSFun("F_gh", 1, function(_jI){return (exprEval(_jI))._f[8];}); - -var F_gi=new HSFun("F_gi", 1, function(_cm){return (F_fc)._ap([new HSFun("F_gB", 0, function(){return (F_gB)._ap([_cm]);}), F_gE]);}); - -var F_gj=new HSFun("F_gj", 1, function(_jr){return (exprEval(_jr))._f[5];}); - -var F_gk=new HSFun("F_gk", 1, function(_jY){return (exprEval(_jY))._f[2];}); - -var F_gl=new HSFun("F_gl", 2, function(_b2, _b3){ -var c142=exprEval(_b3); -switch((c142)._t) { -case 2 : return new HSEOL(); -case 3 : return function(_b4, _b5){ -var c143=exprEval((_b2)._ap([_b4])); -switch((c143)._t) { -case true : return (F_gl)._b(_b2, _b5); -case false : var c144=exprEval(F_gF); -switch((c144)._t) { -case true : return _b3; -case false : return (F_gn)._b(F_fb); -} -throw('X (' + this._n + ') ' +c144.toSource()); -} -throw('X (' + this._n + ') ' +c143.toSource()); -}((c142)._f[0], (c142)._f[1]); -} -throw('X (' + this._n + ') ' +c142.toSource()); -}); - -var F_gm=new HSFun("F_gm", 2, function(_cn, _co){return (F_gi)._b(((exprEval(_cn))._f[1])._ap([_co]));}); - -var F_gn=new HSFun("F_gn", 1, function(a){ -throw('E ' + exprEval(a).toString()); return undefined;}); - -var F_go=new HSFun("F_go", 3, function(_eH, _eI, _eJ){return (_eH)._ap([_eJ, _eI]);}); - -var F_gp=new HSFun("F_gp", 3, function(_ij, _ik, _il){ -var c145=exprEval(_il); -switch((c145)._t) { -case 2 : return _ik; -case 3 : return function(_im, _in){return (F_gp)._b(_ij, (_ij)._ap([_ik, _im]), _in);}((c145)._f[0], (c145)._f[1]); -} -throw('X (' + this._n + ') ' +c145.toSource()); -}); - -var F_gq=new HSFun("F_gq", 2, function(_ip, _iq){ -var c146=exprEval(_iq); -switch((c146)._t) { -case 2 : return (F_gn)._b(F_gc); -case 3 : return function(_ir, _is){return (F_gp)._b(_ip, _ir, _is);}((c146)._f[0], (c146)._f[1]); -} -throw('X (' + this._n + ') ' +c146.toSource()); -}); - -var F_gr=new HSFun("F_gr", 3, function(_cb, _cc, _cd){ -var c147=exprEval(_cd); -switch((c147)._t) { -case 2 : return _cc; -case 3 : return function(_ce, _cf){return (_cb)._ap([_ce, new HSFun("F_gr", 0, function(){return (F_gr)._b(_cb, _cc, _cf);})]);}((c147)._f[0], (c147)._f[1]); -} -throw('X (' + this._n + ') ' +c147.toSource()); -}); - -var F_gs=new HSFun("F_gs", 1, function(_i0){return (exprEval(_i0))._f[3];}); - -var F_gt=new HSFun("F_gt", 1, function(_jH){return (exprEval(_jH))._f[7];}); - -var F_gu=new HSFun("F_gu", 2, function(_eZ, _e0){return (F_fc)._ap([new HSFun("F_g0", 0, function(){return (exprEval(_eZ))._f[6];}), (exprEval(_e0))._f[7]]);}); - -var F_gv=new HSFun("F_gv", 1, function(_eu){return (exprEval(_eu))._f[0];}); - -var F_gw=new HSFun("F_gw", 3, function(_eA, _eB, _eC){ -var c148=exprEval(((exprEval((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eB, ((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[7])._ap([0])])); -switch((c148)._t) { -case true : var c149=exprEval(((exprEval((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eC, ((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[7])._ap([0])])); -switch((c149)._t) { -case true : return (F_gn)._b(F_f0); -case false : return (F_eu)._ap([_eA, ((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eB]), ((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eC])]); -} -throw('X (' + this._n + ') ' +c149.toSource()); -case false : return (F_eu)._ap([_eA, ((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eB]), ((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eC])]); -} -throw('X (' + this._n + ') ' +c148.toSource()); -}); - -var F_gx=new HSFun("F_gx", 1, function(_eG){return _eG;}); - -var F_gy=new HSFun("F_gy", 1, function(_iA){ -var c150=exprEval(_iA); -switch((c150)._t) { -case 2 : return 0; -case 3 : return function(_iB, _iC){return (F_ey)._ap([1, _iC]);}((c150)._f[0], (c150)._f[1]); -} -throw('X (' + this._n + ') ' +c150.toSource()); -}); - -var F_gz=new HSFun("F_gz", 1, function(_cB){ -var c151=exprEval(_cB); -switch((c151)._t) { -case 2 : return new HSCons(new HSData((-7), [F_fg, F_fh]), new HSEOL()); -case 3 : return function(_cC, _cD){ -var c152=exprEval((F_Z)._b(_cC)); -switch((c152)._t) { -case true : return (F_gz)._b((F_gl)._b(F_Z, _cD)); -case false : var c153=exprEval(_cC); -switch((c153).valueOf()) { -case 34 : return (F_gg)._b(F_fo, (F_ek)._ap([_cD]), new HSEOL()); -case 39 : return (F_gg)._b(F_fs, (F_1)._b(_cD), new HSEOL()); -default : var c154=exprEval((F_em)._ap([_cC])); -switch((c154)._t) { -case true : return new HSCons(new HSData((-7), [new HSCons(_cC, new HSEOL()), _cD]), new HSEOL()); -case false : var c155=exprEval((F_en)._ap([_cC])); -switch((c155)._t) { -case true : return (F_gg)._b(new HSFun("F_fE", 0, function(){return (F_fE)._ap([_cC]);}), new HSCons((F_gX)._b(F_en, _cD), new HSEOL()), new HSEOL()); -case false : var c156=exprEval((F_eo)._ap([_cC])); -switch((c156)._t) { -case true : return (F_gg)._b(new HSFun("F_fF", 0, function(){return (F_fF)._ap([_cC]);}), new HSCons((F_gX)._b(F_ep, _cD), new HSEOL()), new HSEOL()); -case false : var c157=exprEval((F_bg)._b(_cC)); -switch((c157)._t) { -case true : return (F_gg)._b(new HSFun("F_fH", 0, function(){return (F_fH)._ap([_cC]);}), new HSCons((F_gX)._b(F_bg, _cD), new HSEOL()), new HSEOL()); -case false : var c158=exprEval(F_gF); -switch((c158)._t) { -case true : return new HSEOL(); -case false : return (F_gn)._b(F_fI); -} -throw('X (' + this._n + ') ' +c158.toSource()); -} -throw('X (' + this._n + ') ' +c157.toSource()); -} -throw('X (' + this._n + ') ' +c156.toSource()); -} -throw('X (' + this._n + ') ' +c155.toSource()); -} -throw('X (' + this._n + ') ' +c154.toSource()); -} -throw('X (' + this._n + ') ' +c153.toSource()); -} -throw('X (' + this._n + ') ' +c152.toSource()); -}((c151)._f[0], (c151)._f[1]); -} -throw('X (' + this._n + ') ' +c151.toSource()); -}); - -var F_gA=new HSFun("F_gA", 3, function(_it, _iu, _iv){ -var c159=exprEval(_iv); -switch((c159)._t) { -case 2 : return new HSData(18, []); -case 3 : return function(_iw, _ix){ -var c160=exprEval(_iw); -return function(_iy, _iz){ -var c161=exprEval(((exprEval(_it))._f[1])._ap([_iu, _iy])); -switch((c161)._t) { -case true : return new HSData(16, [_iz]); -case false : return (F_gA)._b(_it, _iu, _ix); -} -throw('X (' + this._n + ') ' +c161.toSource()); -}((c160)._f[0], (c160)._f[1]); -}((c159)._f[0], (c159)._f[1]); -} -throw('X (' + this._n + ') ' +c159.toSource()); -}); - -var F_gB=new HSFun("F_gB", 2, function(_ci, _cj){ -var c162=exprEval(_cj); -switch((c162)._t) { -case 2 : return new HSEOL(); -case 3 : return function(_ck, _cl){return new HSCons((_ci)._ap([_ck]), (F_gB)._b(_ci, _cl));}((c162)._f[0], (c162)._f[1]); -} -throw('X (' + this._n + ') ' +c162.toSource()); -}); - -var F_gC=new HSFun("F_gC", 1, function(_jF){return (exprEval(_jF))._f[5];}); - -var F_gD=new HSFun("F_gD", 1, function(_eX){ -var c163=exprEval(_eX); -switch((c163)._t) { -case true : return false; -case false : return true; -} -throw('X (' + this._n + ') ' +c163.toSource()); -}); - -var F_gE=new HSFun("F_gE", 0, function(){return (F_gr)._ap([F_g1, false]);}); - -var F_gF=new HSFun("F_gF", 0, function(){return true;}); - -var F_gG=new HSFun("F_gG", 1, function(_j2){return (exprEval(_j2))._f[7];}); - -var F_gH=new HSFun("F_gH", 1, function(_jZ){return (exprEval(_jZ))._f[4];}); - -var F_gI=new HSFun("F_gI", 2, function(_eM, _eN){ -var c164=exprEval((F_gg)._b(F_f2, ((F_gK)._b(_eM))._ap([_eN]), new HSEOL())); -switch((c164)._t) { -case 2 : return (F_gn)._b(F_f3); -case 3 : return function(_eS, _eT){ -var c165=exprEval(_eT); -switch((c165)._t) { -case 2 : return _eS; -default : return (F_gn)._b(F_f4); -} -throw('X (' + this._n + ') ' +c165.toSource()); -}((c164)._f[0], (c164)._f[1]); -} -throw('X (' + this._n + ') ' +c164.toSource()); -}); - -var F_gJ=new HSFun("F_gJ", 2, function(_dt, _du){ -var c166=exprEval(_dt); -switch((c166)._t) { -case true : return (F_et)._ap([_du]); -case false : return (F_es)._ap([_du]); -} -throw('X (' + this._n + ') ' +c166.toSource()); -}); - -var F_gK=new HSFun("F_gK", 1, function(_dH){return ((exprEval(_dH))._f[0])._ap([0]);}); - -var F_gL=new HSFun("F_gL", 1, function(_i4){return (exprEval(_i4))._f[0];}); - -var F_gM=new HSFun("F_gM", 1, function(_j0){return (exprEval(_j0))._f[5];}); - -var F_gN=new HSFun("F_gN", 1, function(_j7){return (exprEval(_j7))._f[3];}); - -var F_gO=new HSFun("F_gO", 0, function(){return (F_gp)._ap([new HSFun("F_go", 0, function(){return (F_go)._ap([F_gb]);}), new HSEOL()]);}); - -var F_gP=new HSFun("F_gP", 2, function(a, b){ -exprEval(a); return b;}); - -var F_gQ=new HSFun("F_gQ", 1, function(_ja){return (exprEval(_ja))._f[3];}); - -var F_gR=new HSFun("F_gR", 0, function(){return F_fW;}); - -var F_gS=new HSFun("F_gS", 2, function(_eU, _eV){ -var c167=exprEval(_eU); -switch((c167)._t) { -case true : return (F_fc)._ap([(F_fc)._ap([(F_fW)._ap([mkChar(41)]), _eV]), (F_fW)._ap([mkChar(40)])]); -case false : return _eV; -} -throw('X (' + this._n + ') ' +c167.toSource()); -}); - -var F_gT=new HSFun("F_gT", 0, function(){return F_cG;}); - -var F_gU=new HSFun("F_gU", 1, function(_i9){return (exprEval(_i9))._f[0];}); - -var F_gV=new HSFun("F_gV", 1, function(_jG){return (exprEval(_jG))._f[6];}); - -var F_gW=new HSFun("F_gW", 1, function(_ex){return (exprEval(_ex))._f[1];}); - -var F_gX=new HSFun("F_gX", 2, function(_ct, _cu){ -var c168=exprEval(_cu); -switch((c168)._t) { -case 2 : return new HSData((-7), [new HSEOL(), new HSEOL()]); -case 3 : return function(_cv, _cw){ -var c169=exprEval((_ct)._ap([_cv])); -switch((c169)._t) { -case true : var _j=new HSFun("_j", 0, function(){return (F_gX)._b(_ct, _cw);}); -var _v=new HSFun("_v", 0, function(){return (exprEval(_j))._f[0];}); -var _w=new HSFun("_w", 0, function(){return (exprEval(_j))._f[1];}); -return new HSData((-7), [new HSCons(_cv, _v), _w]); -case false : var c170=exprEval(F_gF); -switch((c170)._t) { -case true : return new HSData((-7), [new HSEOL(), _cu]); -case false : return (F_gn)._b(F_ff); -} -throw('X (' + this._n + ') ' +c170.toSource()); -} -throw('X (' + this._n + ') ' +c169.toSource()); -}((c168)._f[0], (c168)._f[1]); -} -throw('X (' + this._n + ') ' +c168.toSource()); -}); - -var F_gY=new HSFun("F_gY", 1, function(_eW){return (F_go)._ap([(exprEval(_eW))._f[4]]);}); - -var F_gZ=new HSFun("F_gZ", 1, function(_i1){return (exprEval(_i1))._f[4];}); - -var F_g0=new HSFun("F_g0", 1, function(_j1){return (exprEval(_j1))._f[6];}); - -var F_g1=new HSFun("F_g1", 2, function(_cg, _ch){ -var c171=exprEval(_cg); -switch((c171)._t) { -case true : return true; -case false : return _ch; -} -throw('X (' + this._n + ') ' +c171.toSource()); -}); - -var F_g2=new HSFun("F_g2", 2, function(_y, _lb){return (F_5)._b(((exprEval(_lb))._f[7])._ap([0]), (F_gA)._b(F_c8, _y, (F_hc)._b(_lb)));}); - -var F_g3=new HSFun("F_g3", 2, function(_kR, _kS){ -var c172=exprEval(_kS); -switch((c172)._t) { -case 2 : return ((exprEval(_kR))._f[7])._ap([0]); -case 3 : return function(_kT, _kU){return ((exprEval(_kR))._f[3])._ap([((exprEval(_kR))._f[7])._ap([1]), (F_g3)._ap([_kR, _kU])]);}((c172)._f[0], (c172)._f[1]); -} -throw('X (' + this._n + ') ' +c172.toSource()); -}); - -var F_g4=new HSFun("F_g4", 1, function(_x){return (exprEval(_x))._f[0];}); - -var F_g5=new HSFun("F_g5", 1, function(_x){return (exprEval(_x))._f[1];}); - -var F_g6="Roman: Pattern match failure in function at 54:1-56:16."; - -var F_g7="Roman: Pattern match failure in function at 38:1-43:55."; - -var F_g8=""; - -var F_g9=new HSFun("F_g9", 4, function(_kZ, _k0, _k1, _k2){ -var c173=exprEval(((exprEval(_k0))._f[1])._ap([_k1, _k2])); -switch((c173)._t) { -case true : return ((exprEval(_kZ))._f[4])._ap([_k2, _k1]); -case false : var c174=exprEval(((exprEval(_k0))._f[4])._ap([_k1, _k2])); -switch((c174)._t) { -case true : return ((exprEval(_kZ))._f[3])._ap([_k2, _k1]); -case false : return (F_gn)._b(F_g6); -} -throw('X (' + this._n + ') ' +c174.toSource()); -} -throw('X (' + this._n + ') ' +c173.toSource()); -}); - -var F_ha=new HSFun("F_ha", 0, function(){return (F_fc)._ap([(F_fc)._ap([new HSFun("F_gB", 0, function(){return (F_gB)._ap([F_2]);}), new HSFun("F_hb", 0, function(){return (F_hb)._ap([F_dF]);})]), new HSFun("F_gr", 0, function(){return (F_gr)._ap([new HSFun("F_g9", 0, function(){return (F_g9)._ap([F_dF, F_d4]);}), 0]);})]);}); - -var F_hb=new HSFun("F_hb", 2, function(_kN, _kO){ -var c175=exprEval(_kO); -switch((c175)._t) { -case 2 : return new HSEOL(); -case 3 : return function(_kP, _kQ){ -var _x=new HSFun("_x", 0, function(){return (F_gX)._b(new HSFun("F_da", 0, function(){return (F_da)._ap([_kP]);}), _kO);}); -var _z=new HSFun("_z", 0, function(){return (exprEval(_x))._f[0];}); -var _A=new HSFun("_A", 0, function(){return (exprEval(_x))._f[1];}); -return new HSCons(((exprEval(_kN))._f[2])._ap([new HSFun("F_4", 0, function(){return (F_4)._b((F_gA)._b(F_c8, _kP, (F_hc)._b(_kN)));}), (F_g3)._ap([_kN, _z])]), (F_hb)._b(_kN, _A)); -}((c175)._f[0], (c175)._f[1]); -} -throw('X (' + this._n + ') ' +c175.toSource()); -}); - -var F_hc=new HSFun("F_hc", 1, function(_kM){return new HSCons(new HSData((-7), [mkChar(73), ((exprEval(_kM))._f[7])._ap([1])]), new HSCons(new HSData((-7), [mkChar(86), ((exprEval(_kM))._f[7])._ap([5])]), new HSCons(new HSData((-7), [mkChar(88), ((exprEval(_kM))._f[7])._ap([10])]), new HSCons(new HSData((-7), [mkChar(76), ((exprEval(_kM))._f[7])._ap([50])]), new HSCons(new HSData((-7), [mkChar(67), ((exprEval(_kM))._f[7])._ap([100])]), new HSCons(new HSData((-7), [mkChar(68), ((exprEval(_kM))._f[7])._ap([500])]), new HSCons(new HSData((-7), [mkChar(77), ((exprEval(_kM))._f[7])._ap([1000])]), new HSEOL())))))));}); - -var F_hd=new HSFun("F_hd", 0, function(){return new HSCons(new HSData((-7), [mkChar(86), mkChar(73)]), new HSCons(new HSData((-7), [mkChar(88), mkChar(73)]), new HSCons(new HSData((-7), [mkChar(76), mkChar(88)]), new HSCons(new HSData((-7), [mkChar(67), mkChar(88)]), new HSCons(new HSData((-7), [mkChar(68), mkChar(67)]), new HSCons(new HSData((-7), [mkChar(77), mkChar(67)]), new HSEOL()))))));}); - -var F_he=new HSFun("F_he", 4, function(_k3, _k4, _k5, _k6){ -var c176=exprEval(_k5); -return function(_k7, _k8){ -var c177=exprEval(_k6); -return function(_k9, _la){ -var _y=new HSFun("_y", 0, function(){return (F_5)._b(mkChar(0), (F_gA)._b(F_c8, _k7, F_hd));}); -var c178=exprEval(((exprEval(_k4))._f[3])._ap([_k9, _k8])); -switch((c178)._t) { -case true : return (F_he)._b(_k3, _k4, _k5, new HSData((-7), [((exprEval(_k3))._f[4])._ap([_k9, _k8]), new HSCons(_k7, _la)])); -case false : var c179=exprEval(((exprEval(_k4))._f[3])._ap([((exprEval(_k3))._f[3])._ap([_k9, ((F_g2)._ap([_y]))._ap([_k3])]), _k8])); -switch((c179)._t) { -case true : return new HSData((-7), [((exprEval(_k3))._f[3])._ap([((exprEval(_k3))._f[4])._ap([_k9, _k8]), ((F_g2)._ap([_y]))._ap([_k3])]), new HSCons(_k7, new HSCons(_y, _la))]); -case false : var c180=exprEval(F_gF); -switch((c180)._t) { -case true : return new HSData((-7), [_k9, _la]); -case false : return (F_gn)._b(F_g7); -} -throw('X (' + this._n + ') ' +c180.toSource()); -} -throw('X (' + this._n + ') ' +c179.toSource()); -} -throw('X (' + this._n + ') ' +c178.toSource()); -}((c177)._f[0], (c177)._f[1]); -}((c176)._f[0], (c176)._f[1]); -}); - -var F_hf=new HSFun("F_hf", 1, function(_lc){return ((F_fc)._ap([F_gW, F_gO]))._ap([new HSFun("F_gr", 0, function(){return (F_gr)._b(new HSFun("F_he", 0, function(){return (F_he)._ap([F_dF, F_d4]);}), new HSData((-7), [_lc, F_g8]), (F_hc)._b(F_dF));})]);}); - -var F_hg=new HSFun("F_hg", 1, function(a){ -return Number(exprEval(a)).toString();}); - -var F_hh=new HSFun("F_hh", 2, function(_kq, _kr){return (F_cG)._b((F_hg)._ap([_kq]), _kr);}); - -var F_hi="return Number(exprEval(a)).toString();"; - -var F_hj="return 0 - Number(exprEval(a));"; - -var F_hk="var ea = exprEval(a); if (ea>0) return 1; else if (ea<0) return -1; else return 0;"; - -var F_hl="return Math.abs(exprEval(a));"; - -var F_hm="return a;"; - -var F_hn="return a;"; - -var F_ho="return Number(exprEval(a)) < Number(exprEval(b));"; - -var F_hp="return Number(exprEval(a)) <= Number(exprEval(b));"; - -var F_hq="return Number(exprEval(a)) > Number(exprEval(b));"; - -var F_hr="return Number(exprEval(a)) >= Number(exprEval(b));"; - -var F_hs="return Number(exprEval(a)) !== Number(exprEval(b));"; - -var F_ht="return Number(exprEval(a)) === Number(exprEval(b));"; - -var F_hu="return 0 - Number(exprEval(a));"; - -var F_hv="return exprEval(a) * exprEval(b);"; - -var F_hw="return exprEval(a) - exprEval(b);"; - -var F_hx="return exprEval(a) + exprEval(b);"; - -var F_hy="return exprEval(a) % exprEval(b);"; - -var F_hz="(function(x,y){return (x - (x % y))/y;})(exprEval(a),exprEval(b));"; - -var F_hA="exprEval(a); return b;"; - -var F_hB="throw(\'E \' + exprEval(a).toString()); return undefined;"; - -var F_hC=new HSFun("F_hC", 1, function(a){ -return Math.abs(exprEval(a));}); - -var F_hD=new HSFun("F_hD", 1, function(a){ -return a;}); - -var F_hE=new HSFun("F_hE", 1, function(a){ -var ea = exprEval(a); if (ea>0) return 1; else if (ea<0) return -1; else return 0;}); - -var F_hF=new HSFun("F_hF", 2, function(a, b){ -return exprEval(a) + exprEval(b);}); - -var F_hG=new HSFun("F_hG", 2, function(a, b){ -return Number(exprEval(a)) === Number(exprEval(b));}); - -var F_hH=new HSFun("F_hH", 1, function(a){ -return a;}); - -var F_hI=new HSFun("F_hI", 2, function(a, b){ -return Number(exprEval(a)) >= Number(exprEval(b));}); - -var F_hJ=new HSFun("F_hJ", 2, function(a, b){ -return Number(exprEval(a)) > Number(exprEval(b));}); - -var F_hK=new HSFun("F_hK", 2, function(a, b){ -return Number(exprEval(a)) <= Number(exprEval(b));}); - -var F_hL=new HSFun("F_hL", 2, function(a, b){ -return Number(exprEval(a)) < Number(exprEval(b));}); - -var F_hM=new HSFun("F_hM", 2, function(a, b){ -return exprEval(a) * exprEval(b);}); - -var F_hN=new HSFun("F_hN", 2, function(a, b){ -return Number(exprEval(a)) !== Number(exprEval(b));}); - -var F_hO=new HSFun("F_hO", 1, function(a){ -return 0 - Number(exprEval(a));}); - -var F_hP=new HSFun("F_hP", 2, function(a, b){ -(function(x,y){return (x - (x % y))/y;})(exprEval(a),exprEval(b));}); - -var F_hQ=new HSFun("F_hQ", 2, function(_kF, _kG){ -var _C=new HSFun("_C", 0, function(){return (F_hR)._b(_kF, _kG);}); -var _B=new HSFun("_B", 0, function(){return (F_hP)._b(_kF, _kG);}); -return new HSData((-7), [_B, _C]); -}); - -var F_hR=new HSFun("F_hR", 2, function(a, b){ -return exprEval(a) % exprEval(b);}); - -var F_hS=new HSFun("F_hS", 2, function(a, b){ -return exprEval(a) - exprEval(b);}); - -funIdx["Echo.main"] = F_cj; -
− test/parsingonly/130_htojs2.js
@@ -1,85 +0,0 @@-//++AZ++ -var F_d=new HSFun("F_d", 1, function(_l3){ -var c3=exprEval(_l3); -switch((c3)._t) { -case 3 : return function(_l4, _l5){ -var c4=exprEval(((F_gm)._b(F_c8, _l4))._ap([F_l])); -switch((c4)._t) { - -case true : return new HSCons(new HSData((-7), [new HSCons(_l4, new HSEOL()), _l5]), new HSEOL()); -case false : var c5=exprEval(_l4); -switch((c5).valueOf()) { -case 94 : var c6=exprEval(_l5); -switch((c6)._t) { -/* -case 3 : return function(_l6, _l7){ -var c7=exprEval((F_cD)._b((F_dZ)._b(_l6, mkChar(64)), (Number(exprEval(_l6)))<=(Number(exprEval(mkChar(95)))))); -switch((c7)._t) { -case true : return new HSCons(new HSData((-7), [new HSCons(mkChar(94), new HSCons(_l6, new HSEOL())), _l7]), new HSEOL()); -case false : var c8=exprEval((F_bg)._b(_l4)); -switch((c8)._t) { -case true : return new HSCons((F_gX)._b(F_bg, _l3), new HSEOL()); -case false : var c9=exprEval((F_0)._b(_l4)); -switch((c9)._t) { -case true : var c10=exprEval((F_gg)._b(new HSFun("F_n", 0, function(){return (F_n)._ap([_l3]);}), new HSCons(F_o, (F_gB)._b(F_gW, F_U)), new HSEOL())); -switch((c10)._t) { -case 2 : return new HSEOL(); -case 3 : return function(_ma, _mb){return new HSCons(_ma, new HSEOL());}((c10)._f[0], (c10)._f[1]); -} -throw('X (' + this._n + ') ' +c10.toSource()); -case false : return new HSEOL(); -} -throw('X (' + this._n + ') ' +c9.toSource()); -} -throw('X (' + this._n + ') ' +c8.toSource()); -} -throw('X (' + this._n + ') ' +c7.toSource()); -}((c6)._f[0], (c6)._f[1]); -default : var c11=exprEval((F_bg)._b(_l4)); -switch((c11)._t) { -case true : return new HSCons((F_gX)._b(F_bg, _l3), new HSEOL()); -case false : var c12=exprEval((F_0)._b(_l4)); -switch((c12)._t) { -case true : var c13=exprEval((F_gg)._b(new HSFun("F_n", 0, function(){return (F_n)._ap([_l3]);}), new HSCons(F_o, (F_gB)._b(F_gW, F_U)), new HSEOL())); -switch((c13)._t) { -case 2 : return new HSEOL(); -case 3 : return function(_ma, _mb){return new HSCons(_ma, new HSEOL());}((c13)._f[0], (c13)._f[1]); -} -throw('X (' + this._n + ') ' +c13.toSource()); -case false : return new HSEOL(); -} -throw('X (' + this._n + ') ' +c12.toSource()); -} -throw('X (' + this._n + ') ' +c11.toSource()); -*/ -} -throw('X (' + this._n + ') ' +c6.toSource()); -//case 111 : return new HSCons((F_c)._ap([mkChar(111), new HSFun("F_gX", 0, function(){return (F_gX)._b(F_bi, _l5);})]), new HSEOL()); -//case 120 : return new HSCons((F_c)._ap([mkChar(120), new HSFun("F_gX", 0, function(){return (F_gX)._b(F_bh, _l5);})]), new HSEOL()); -default : var c14=exprEval((F_bg)._b(_l4)); -switch((c14)._t) { -/* -case true : return new HSCons((F_gX)._b(F_bg, _l3), new HSEOL()); -case false : var c15=exprEval((F_0)._b(_l4)); -switch((c15)._t) { -case true : var c16=exprEval((F_gg)._b(new HSFun("F_n", 0, function(){return (F_n)._ap([_l3]);}), new HSCons(F_o, (F_gB)._b(F_gW, F_U)), new HSEOL())); -switch((c16)._t) { -case 2 : return new HSEOL(); -case 3 : return function(_ma, _mb){return new HSCons(_ma, new HSEOL());}((c16)._f[0], (c16)._f[1]); -} -throw('X (' + this._n + ') ' +c16.toSource()); -case false : return new HSEOL(); -} -throw('X (' + this._n + ') ' +c15.toSource()); -*///AZ -} -throw('X (' + this._n + ') ' +c14.toSource()); -} -throw('X (' + this._n + ') ' +c5.toSource()); -} -throw('X (' + this._n + ') ' +c4.toSource()); -}((c3)._f[0], (c3)._f[1]); -default : return new HSEOL(); -} -throw('X (' + this._n + ') ' +c3.toSource()); -});
− test/parsingonly/130s.js
@@ -1,4 +0,0 @@-//var F_c=new HSFun("F_c", 2, function(_lZ, _l0){ -//var c2=exprEval(_l0); -function(_l1, _l2){}((c2)._f[0], (c2)._f[1]); -//});
− test/parsingonly/14_labelled_stmts.js
@@ -1,33 +0,0 @@-i=0; -bob: i=0; -i=0; - -bob: -if(x){} - -{do { - t; - } while(t); -t;} - -if (t){ - do { - t; - } while(t); - t; -} - -switch(i) { - case "x": - - - case LEFT_CURLY: - //object_init: - if (t){ - do { - t; - } while(t); - t; - } - -}
− test/parsingonly/15_literals.js
@@ -1,16 +0,0 @@-const GLOBAL = this; - -var tokens = [ - - "END", - - // Operators and punctuators. Some pair-wise order matters, e.g. (+, -) - // and (UNARY_PLUS, UNARY_MINUS). - "\n", ";"]; - -var opTypeNames = { - '\n': "NEWLINE", - ';': "SEMICOLON", - ',': "COMMA"}; - -var assignOps = ['|', '^', '&', '<<', '>>', '>>>', '+', '-', '*', '/', '%'];
− test/parsingonly/16_literals.js
@@ -1,43 +0,0 @@-const GLOBAL = this; - -var tokens = [ - - "END", - - // Operators and punctuators. Some pair-wise order matters, e.g. (+, -) - // and (UNARY_PLUS, UNARY_MINUS). - "\n", ";"]; - -var opTypeNames = { - '\n': "NEWLINE", - ';': "SEMICOLON", - ',': "COMMA" -}; - -var assignOps = ['|', '^', '&', '<<', '>>', '>>>', '+', '-', '*', '/', '%']; - -function eval(s) { - a=-1; -} - -var global = { - // Value properties. - NaN: NaN, Infinity: Infinity, undefined: undefined, - - - - - // Exte - snarf: snarf, evaluate: evaluate, - load: function load(s) { - if (typeof s != "string") - return s; - - evaluate(snarf(s), s, 1); - }, - print: print, version: null -}; - -function eval(s) { -; -}
− test/parsingonly/1_simple.js
@@ -1,1 +0,0 @@-"abfnrtv\\\"\'";
− test/parsingonly/20_statements.js
@@ -1,116 +0,0 @@- -t = 1 + b - -t ? '1' : 'b'; - -if (getValue) - execute; -else { - execute; -} - - -for (i = 0; i <= 5; i++) -{ - x += i; -} - -for (var i = 0; i < n; i++) { - this[i] = 1 + v; -} - -var sumOfDivisors = new ExprArray(n+1,1); - - -for (var i = 0; i < j; i++) { - if (i > 0) - consts += ", "; - var t = tokens[i]; -} - -for (var i = 0, j = tokens.length; i < j; i++) { - if (i > 0) - consts += ", "; - var t = tokens[i]; -} - - -for (i = 0; ; i++) -{ - x += i; -} - -for( x in bob) -{ - -} - -function f() { - if (typeof s != "string") - return; - - - while (--n >= 0) - s += t; - -var a, f, i, j, r, s, t, u, v; - -(x.stmtStack.length > 1) -? STATEMENT_FORM -: DECLARED_FORM; - - n2 = new Node(t); - while (1) { - if (tt == DEFAULT) - n.defaultIndex = n.cases.length; - else - n2.caseLabel = Expression(t, x, COLON); - break; - - n = new Node(t); - t.mustMatch(LEFT_PAREN); - n.discriminant = Expression(t, x); - t.mustMatch(RIGHT_PAREN); - n.cases = []; - n.defaultIndex = -1; - x.stmtStack.push(n); - t.mustMatch(LEFT_CURLY); - while ((tt = t.get()) != RIGHT_CURLY) { - switch (tt) { - case DEFAULT: - if (n.defaultIndex >= 0) - throw t.newSyntaxError("More than one switch default"); - // FALL THROUGH - case CASE: - n2 = new Node(t); - if (tt == DEFAULT) - n.defaultIndex = n.cases.length; - else - n2.caseLabel = Expression(t, x, COLON); - break; - default: - throw t.newSyntaxError("Invalid switch case"); - } - t.mustMatch(COLON); - n2.statements = new Node(t, BLOCK); - while ((tt=t.peek()) != CASE && tt != DEFAULT && tt != RIGHT_CURLY) - n2.statements.push(Statement(t, x)); - n.cases.push(n2); - } - x.stmtStack.pop(); - return n; - - - - do { - try { - execute(n.body, x); - } catch (e if e == BREAK && x.target == n) { - break; - } catch (e if e == CONTINUE && x.target == n) { - continue; - } - } while (getValue(execute(n.condition, x))); - break; -} -}
− test/parsingonly/25_trycatch.js
@@ -1,52 +0,0 @@-try { - print("hello"); -} catch(bob){} - -try {} -finally {} - -try {} -catch(bob) -{ -} - -try -{ -} -catch(bob if 1==0) -{ -} - - - -try - { - adddlert("Welcome guest!"); - } -catch(err) - { - txt="There was an error on this page.\n\n"; - txt+="Error description: " + err.description + "\n\n"; - txt+="Click OK to continue.\n\n"; - alert(txt); - } - - - try { - execute(parse(s), x2); - } catch (e if e == THROW) { - x.result = x2.result; - throw e; - } finally { - ExecutionContext.current = x; - } - -while(1) - try { - execute(n.body, x); - } catch (e if e == BREAK && x.target == n) { - break; - } catch (e if e == CONTINUE && x.target == n) { - continue; - } - n.update && getValue(execute(n.update, x));
− test/parsingonly/40_functions.js
@@ -1,31 +0,0 @@-function bob(){} -function bob(a,b){} -function bob(a,b){a=1; -} - -// constructor -- expression array initialization -function ExprArray(n,v) -{ - // Initializes n values to v coerced to a string. - for (var i = 0; i < n; i++) { - this[i] = "" + v; - } -} - -function Hello() -{ - ExprArray(1,1); -} - -Reference.prototype.toString = function () { return this.node.getSource(); } - -function getValue(v) { - if (v instanceof Reference) { - if (!v.base) { - throw new ReferenceError(v.propertyName + " is not defined", - v.node.filename, v.node.lineno); - } - return v.base[v.propertyName]; - } - return v; -}
− test/parsingonly/41_functions.js
@@ -1,1 +0,0 @@-function(){}()
− test/parsingonly/5_comments.js
@@ -1,21 +0,0 @@-// Helper to avoid Object.prototype.hasOwnProperty polluting scope objects. -// One problem is that lexer is picking the longest string -function bob() -{ - /* This a comment inside a function - second line of the comment */ -} - -function bill() -{ - /* This a comment inside a function - second line of the comment */ - i=2; - - function mary() - { - /* bob */ - var currentConstructor = this.constructor - var methodName = null - } -}
− test/parsingonly/67_bob.js
@@ -1,68 +0,0 @@-function x() -{ - - var token; - while (this.lookahead) { - --this.lookahead; - this.tokenIndex = (this.tokenIndex + 1) & 3; - token = this.tokens[this.tokenIndex]; - if (token.type != NEWLINE || this.scanNewlines) - return token.type; - } - - for (;;) { - var input = this.input; - var match = (this.scanNewlines ? /^[ \t]+/ : /^\s+/)(input); - if (match) { - var spaces = match[0]; - this.cursor += spaces.length; - var newlines = spaces.match(/\n/g); - if (newlines) - this.lineno += newlines.length; - input = this.input; - } - - if (!(match = /^\/(?:\*(?:.|\n)*?\*\/|\/.*)/(input))) - break; - var comment = match[0]; - this.cursor += comment.length; - newlines = comment.match(/\n/g); - if (newlines) - this.lineno += newlines.length - } - - this.tokenIndex = (this.tokenIndex + 1) & 3; - token = this.tokens[this.tokenIndex]; - if (!token) - this.tokens[this.tokenIndex] = token = {}; - - if (!input) - return token.type = END; - - if ((match = fpRegExp(input))) { - token.type = NUMBER; - token.value = parseFloat(match[0]); - } else if ((match = /^0[xX][\da-fA-F]+|^0[0-7]*|^\d+/(input))) { - token.type = NUMBER; - token.value = parseInt(match[0]); - } else if ((match = /^\w+/(input))) { - var id = match[0]; - token.type = keywords[id] || IDENTIFIER; - token.value = id; - } else if ((match = /^"(?:\\.|[^"])*"|^'(?:[^']|\\.)*'/(input))) { //"){ - token.type = STRING; - token.value = eval(match[0]); - } - - if (this.scanOperand && - (match = /^\/((?:\\.|[^\/])+)\/([gi]*)/(input))) { - token.type = REGEXP; - token.value = new RegExp(match[1], match[2]); - } - - token.start = this.cursor; - this.cursor += match[0].length; - token.end = this.cursor; - token.lineno = this.lineno; - return token.type; -}
− test/parsingonly/errorline13.js
@@ -1,13 +0,0 @@-// Test to make sure we're handling comment lines correctly as part of line number tracking -/* - -*/ -1+1; -x; - - - - -// -// -+
− test/parsingonly/fn.js
@@ -1,8 +0,0 @@- -var global = { - NaN: NaN, Infinity: Infinity, undefined: undefined, - - eval: function eval(s) { - a=-1; - } -};
− test/pminified/00_f.js
@@ -1,1 +0,0 @@-function Hello(a){ExprArray(1,1)}
− test/pminified/01_semi1.js
@@ -1,1 +0,0 @@-{zero.one1;zero};one1;two;three;four;five
− test/pminified/02_semicolon.js
@@ -1,2 +0,0 @@-Parse error: Invalid return in file 'foo' on line 6-
− test/pminified/02_sm.js
@@ -1,1 +0,0 @@-zero;one1;two;{three;four;five;{six;seven}}
− test/pminified/03_sm.js
@@ -1,1 +0,0 @@-a=b+z;b;c
− test/pminified/04_if.js
@@ -1,1 +0,0 @@-a=f?e:g
− test/pminified/05_comments_simple.js
@@ -1,1 +0,0 @@-a+1
− test/pminified/05_regex.js
@@ -1,1 +0,0 @@-x=1/y;var newlines=spaces.match(/\n/g),newlines=spaces.match(/\n/g);opRegExpSrc+=i.replace(/[?|^&(){}\[\]+\-*\/\.]/g,"\\$&");for(i=0;;)var t=1;for(var i=0,j=tokens.length;i<j;i++){if(i>0)consts+=", ";var t=tokens[i];if(/^[a-z]/.test(t)){consts+=t.toUpperCase();keywords[t]=i}else consts+=(/^\W/.test(t)?opTypeNames[t]:t);consts+=" = "+x;tokens[t]=j}
− test/pminified/06_block.js
@@ -1,1 +0,0 @@-
− test/pminified/06_callexpr.js
@@ -1,1 +0,0 @@-bob();bob(1)(2,3);bob().mary;bob()[1];bob(11)[2][3];bob(mary())
− test/pminified/06_newexpr.js
@@ -1,1 +0,0 @@-new bob;new bob(1);new bob()(1,2);bob[1](1,2)
− test/pminified/06_var.js
@@ -1,1 +0,0 @@-for(i=0;;)var t=1
− test/pminified/07_expr.js
@@ -1,1 +0,0 @@-w=x*y+1/2;z=z+1;1+2;"Prototype does not have an ancestor: "+currentConstructor+".";Error("Prototype does not have an ancestor: "+currentConstructor+".");Error("Prototype does not have an ancestor: "+currentConstructor+".")
− test/pminified/101_inheritance.js
@@ -1,5 +0,0 @@-Function.prototype.inherits=function(superConstructor){function CreatePrototype(){};CreatePrototype.prototype=superConstructor.prototype;this.prototype=new CreatePrototype();this.prototype.constructor=this;this.superConstructor=superConstructor;this.prototype.callSuper=function(){var caller=arguments.callee.caller,caller=arguments[0],args=new Array();for(var i=1;i<arguments.length;i++)args.push(arguments[i]);var currentConstructor=this.constructor,methodName=null;while(methodName==null&¤tConstructor!=null){if(caller===currentConstructor)return currentConstructor.superConstructor.apply(this,args);methodName=figureMethodName(currentConstructor.prototype,caller);currentConstructor=currentConstructor.superConstructor};if(!methodName)throw new Error("Could not find method: "+methodName+".");if(!currentConstructor)throw new Error("Prototype does not have an ancestor: "+currentConstructor+".");return currentConstructor.prototype[methodName].apply(this,args)}}-function figureMethodName(prototype,method){for(var key in prototype)if(prototype.hasOwnProperty(key)&&prototype[key]===method)return key;return null}-function Animal(name){if(!name)throw new Error('Must specify an animal name');this.name=name};Animal.prototype.toString=function(){return'My name is '+this.name}-function Pet(owner,name){this.owner=owner;this.callSuper(arguments.callee,name)};Pet.inherits(Animal);Pet.prototype.toString=function(){return this.callSuper(arguments.callee)+"\nMy owner is "+this.owner}-function Cat(owner,name){this.callSuper(arguments.callee,owner,name)};Cat.inherits(Pet);Cat.prototype.toString=function(){return this.callSuper(arguments.callee)+'\nI eat mice'};var cat=new Cat('charlie','oba');print(cat.toString())
− test/pminified/10_switch.js
@@ -1,2 +0,0 @@-switch(i){case 1:1;case 2:2}-function x(){switch(typeof v){case"boolean":return new global.Boolean(v);case"number":i=1;break;return new global.Number(v);case"string":return new global.String(v);case"function":return v;case"object":if(v!==null)return v}};switch(t){case BITWISE_OR:v=u|v;break;case BITWISE_XOR:v=u^v;break;case BITWISE_AND:v=u&v;break;case LSH:v=u<<v;break;case RSH:v=u>>v;break;case URSH:v=u>>>v;break;case PLUS:v=u+v;break;case MINUS:v=u-v;break;case MUL:v=u*v;break;case DIV:v=u/v;break;case MOD:v=u%v;break}
− test/pminified/110_perfect.js
@@ -1,2 +0,0 @@-function ExprArray(n,v){for(var i=0;i<n;i++)this[i]=""+v}-function perfect(n){print("The perfect numbers up to "+n+" are:");var sumOfDivisors=new ExprArray(n+1,1);for(var divisor=2;divisor<=n;divisor++){for(var j=divisor+divisor;j<=n;j+=divisor)sumOfDivisors[j]+=" + "+divisor;if(eval(sumOfDivisors[divisor])==divisor)print(""+divisor+" = "+sumOfDivisors[divisor])};print("That's all.")};print("\nA number is 'perfect' if it is equal to the sum of its");print("divisors (excluding itself).\n");perfect(500)
− test/pminified/120_js.js
@@ -1,1 +0,0 @@-function my_load(filename){evaluate(snarf(filename),filename,1)};my_load('jsdefs.js');my_load('jsparse.js');my_load('jsexec.js')
− test/pminified/121_jsdefs.js
@@ -1,1 +0,0 @@-const GLOBAL=this;var tokens=["END","\n",";",",","=","?",":","CONDITIONAL","||","&&","|","^","&","==","!=","===","!==","<","<=",">=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","enum","false","finally","for","function","if","in","instanceof","new","null","return","switch","this","throw","true","try","typeof","var","void","while","with"],opTypeNames={'\n':"NEWLINE",';':"SEMICOLON",',':"COMMA",'?':"HOOK",':':"COLON",'||':"OR",'&&':"AND",'|':"BITWISE_OR",'^':"BITWISE_XOR",'&':"BITWISE_AND",'===':"STRICT_EQ",'==':"EQ",'=':"ASSIGN",'!==':"STRICT_NE",'!=':"NE",'<<':"LSH",'<=':"LE",'<':"LT",'>>>':"URSH",'>>':"RSH",'>=':"GE",'>':"GT",'++':"INCREMENT",'--':"DECREMENT",'+':"PLUS",'-':"MINUS",'*':"MUL",'/':"DIV",'%':"MOD",'!':"NOT",'~':"BITWISE_NOT",'.':"DOT",'[':"LEFT_BRACKET",']':"RIGHT_BRACKET",'{':"LEFT_CURLY",'}':"RIGHT_CURLY",'(':"LEFT_PAREN",')':"RIGHT_PAREN"},keywords={__proto__:null},consts="const ";for(var i=0,j=tokens.length;i<j;i++){if(i>0)consts+=", ";var t=tokens[i];if(/^[a-z]/.test(t)){consts+=t.toUpperCase();keywords[t]=i}else consts+=(/^\W/.test(t)?opTypeNames[t]:t);consts+=" = "+i;tokens[t]=i};eval(consts+";");var assignOps=['|','^','&','<<','>>','>>>','+','-','*','/','%'];for(i=0,j=assignOps.length;i<j;i++){t=assignOps[i];assignOps[t]=tokens[t]}
− test/pminified/122_jsexec.js
@@ -1,15 +0,0 @@-const GLOBAL_CODE=0,EVAL_CODE=1,FUNCTION_CODE=2-function ExecutionContext(type){this.type=type};var global={NaN:NaN,Infinity:Infinity,undefined:undefined,eval:function eval(s){if(typeof s!="string")return s;var x=ExecutionContext.current,x2=new ExecutionContext(EVAL_CODE);x2.thisObject=x.thisObject;x2.caller=x.caller;x2.callee=x.callee;x2.scope=x.scope;ExecutionContext.current=x2;try{execute(parse(s),x2)}catch(e if e==THROW){x.result=x2.result;throw e}finally{ExecutionContext.current=x};return x2.result},parseInt:parseInt,parseFloat:parseFloat,isNaN:isNaN,isFinite:isFinite,decodeURI:decodeURI,encodeURI:encodeURI,decodeURIComponent:decodeURIComponent,encodeURIComponent:encodeURIComponent,Object:Object,Function:function Function(dummy){var p="",b="",n=arguments.length;if(n){var m=n-1;if(m){p+=arguments[0];for(var k=1;k<m;k++)p+=","+arguments[k]};b+=arguments[m]};var t=new Tokenizer("anonymous("+p+") {"+b+"}"),f=FunctionDefinition(t,null,false,STATEMENT_FORM),s={object:global,parent:null};return new FunctionObject(f,s)},Array:function Array(dummy){return GLOBAL.Array.apply(this,arguments)},String:function String(s){s=arguments.length?""+s:"";if(this instanceof String){this.value=s;return this};return s},Boolean:Boolean,Number:Number,Date:Date,RegExp:RegExp,Error:Error,EvalError:EvalError,RangeError:RangeError,ReferenceError:ReferenceError,SyntaxError:SyntaxError,TypeError:TypeError,URIError:URIError,Math:Math,snarf:snarf,evaluate:evaluate,load:function load(s){if(typeof s!="string")return s;evaluate(snarf(s),s,1)},print:print,version:null}-function hasDirectProperty(o,p){return Object.prototype.hasOwnProperty.call(o,p)}-function reflectClass(name,proto){var gctor=global[name];gctor.__defineProperty__('prototype',proto,true,true,true);proto.__defineProperty__('constructor',gctor,false,false,true);return proto};reflectClass('Array',new Array);var gSp=reflectClass('String',new String);gSp.toSource=function(){return this.value.toSource()};gSp.toString=function(){return this.value};gSp.valueOf=function(){return this.value};global.String.fromCharCode=String.fromCharCode;var XCp=ExecutionContext.prototype;ExecutionContext.current=XCp.caller=XCp.callee=null;XCp.scope={object:global,parent:null};XCp.thisObject=global;XCp.result=undefined;XCp.target=null;XCp.ecmaStrictMode=false-function Reference(base,propertyName,node){this.base=base;this.propertyName=propertyName;this.node=node};Reference.prototype.toString=function(){return this.node.getSource()}-function getValue(v){if(v instanceof Reference){if(!v.base)throw new ReferenceError(v.propertyName+" is not defined",v.node.filename,v.node.lineno);return v.base[v.propertyName]};return v}-function putValue(v,w,vn){if(v instanceof Reference)return(v.base||global)[v.propertyName]=w;throw new ReferenceError("Invalid assignment left-hand side",vn.filename,vn.lineno)}-function isPrimitive(v){var t=typeof v;return(t=="object")?v===null:t!="function"}-function isObject(v){var t=typeof v;return(t=="object")?v!==null:t=="function"}-function toObject(v,r,rn){switch(typeof v){case"boolean":return new global.Boolean(v);case"number":return new global.Number(v);case"string":return new global.String(v);case"function":return v;case"object":if(v!==null)return v};var message=r+" (type "+(typeof v)+") has no properties";throw rn?new TypeError(message,rn.filename,rn.lineno):new TypeError(message)}-function execute(n,x){var a,f,i,j,r,s,t,u,v;switch(n.type){case FUNCTION:if(n.functionForm!=DECLARED_FORM)if(!n.name||n.functionForm==STATEMENT_FORM){v=new FunctionObject(n,x.scope);if(n.functionForm==STATEMENT_FORM)x.scope.object.__defineProperty__(n.name,v,true)}else{t=new Object;x.scope={object:t,parent:x.scope};try{v=new FunctionObject(n,x.scope);t.__defineProperty__(n.name,v,true,true)}finally{x.scope=x.scope.parent}};break;case SCRIPT:t=x.scope.object;a=n.funDecls;for(i=0,j=a.length;i<j;i++){s=a[i].name;f=new FunctionObject(a[i],x.scope);t.__defineProperty__(s,f,x.type!=EVAL_CODE)};a=n.varDecls;for(i=0,j=a.length;i<j;i++){u=a[i];s=u.name;if(u.readOnly&&hasDirectProperty(t,s))throw new TypeError("Redeclaration of const "+s,u.filename,u.lineno);if(u.readOnly||!hasDirectProperty(t,s))t.__defineProperty__(s,undefined,x.type!=EVAL_CODE,u.readOnly)};case BLOCK:for(i=0,j=n.length;i<j;i++)execute(n[i],x);break;case IF:if(getValue(execute(n.condition,x))){execute(n.thenPart,x)}else if(n.elsePart)execute(n.elsePart,x);break;case SWITCH:s=getValue(execute(n.discriminant,x));a=n.cases;var matchDefault=false;switch_loop:for(i=0,j=a.length;;i++){if(i==j){if(n.defaultIndex>=0){i=n.defaultIndex-1;matchDefault=true;continue};break};t=a[i];if(t.type==CASE){u=getValue(execute(t.caseLabel,x))}else{if(!matchDefault)continue;u=s};if(u===s)for(;;){if(t.statements.length)try{execute(t.statements,x)}catch(e if e==BREAK&&x.target==n){break switch_loop};if(++i==j)break switch_loop;t=a[i]}};break;case FOR:n.setup&&getValue(execute(n.setup,x));case WHILE:while(!n.condition||getValue(execute(n.condition,x))){try{execute(n.body,x)}catch(e if e==BREAK&&x.target==n){break}catch(e if e==CONTINUE&&x.target==n){continue};n.update&&getValue(execute(n.update,x))};break;case FOR_IN:u=n.varDecl;if(u)execute(u,x);r=n.iterator;s=execute(n.object,x);v=getValue(s);t=(v==null&&!x.ecmaStrictMode)?v:toObject(v,s,n.object);a=[];for(i in t)a.push(i);for(i=0,j=a.length;i<j;i++){putValue(execute(r,x),a[i],r);try{execute(n.body,x)}catch(e if e==BREAK&&x.target==n){break}catch(e if e==CONTINUE&&x.target==n){continue}};break;case DO:do{try{execute(n.body,x)}catch(e if e==BREAK&&x.target==n){break}catch(e if e==CONTINUE&&x.target==n){continue}}while(getValue(execute(n.condition,x)));break;case BREAK:case CONTINUE:x.target=n.target;throw n.type;case TRY:try{execute(n.tryBlock,x)}catch(e if e==THROW&&(j=n.catchClauses.length)){e=x.result;x.result=undefined;for(i=0;;i++){if(i==j){x.result=e;throw THROW};t=n.catchClauses[i];x.scope={object:{},parent:x.scope};x.scope.object.__defineProperty__(t.varName,e,true);try{if(t.guard&&!getValue(execute(t.guard,x)))continue;execute(t.block,x);break}finally{x.scope=x.scope.parent}}}finally{if(n.finallyBlock)execute(n.finallyBlock,x)};break;case THROW:x.result=getValue(execute(n.exception,x));throw THROW;case RETURN:x.result=getValue(execute(n.value,x));throw RETURN;case WITH:r=execute(n.object,x);t=toObject(getValue(r),r,n.object);x.scope={object:t,parent:x.scope};try{execute(n.body,x)}finally{x.scope=x.scope.parent};break;case VAR:case CONST:for(i=0,j=n.length;i<j;i++){u=n[i].initializer;if(!u)continue;t=n[i].name;for(s=x.scope;s;s=s.parent)if(hasDirectProperty(s.object,t))break;u=getValue(execute(u,x));if(n.type==CONST){s.object.__defineProperty__(t,u,x.type!=EVAL_CODE,true)}else s.object[t]=u};break;case DEBUGGER:throw "NYI: "+tokens[n.type];case SEMICOLON:if(n.expression)x.result=getValue(execute(n.expression,x));break;case LABEL:try{execute(n.statement,x)}catch(e if e==BREAK&&x.target==n){};break;case COMMA:for(i=0,j=n.length;i<j;i++)v=getValue(execute(n[i],x));break;case ASSIGN:r=execute(n[0],x);t=n[0].assignOp;if(t)u=getValue(r);v=getValue(execute(n[1],x));if(t)switch(t){case BITWISE_OR:v=u|v;break;case BITWISE_XOR:v=u^v;break;case BITWISE_AND:v=u&v;break;case LSH:v=u<<v;break;case RSH:v=u>>v;break;case URSH:v=u>>>v;break;case PLUS:v=u+v;break;case MINUS:v=u-v;break;case MUL:v=u*v;break;case DIV:v=u/v;break;case MOD:v=u%v;break};putValue(r,v,n[0]);break;case CONDITIONAL:v=getValue(execute(n[0],x))?getValue(execute(n[1],x)):getValue(execute(n[2],x));break;case OR:v=getValue(execute(n[0],x))||getValue(execute(n[1],x));break;case AND:v=getValue(execute(n[0],x))&&getValue(execute(n[1],x));break;case BITWISE_OR:v=getValue(execute(n[0],x))|getValue(execute(n[1],x));break;case BITWISE_XOR:v=getValue(execute(n[0],x))^getValue(execute(n[1],x));break;case BITWISE_AND:v=getValue(execute(n[0],x))&getValue(execute(n[1],x));break;case EQ:v=getValue(execute(n[0],x))==getValue(execute(n[1],x));break;case NE:v=getValue(execute(n[0],x))!=getValue(execute(n[1],x));break;case STRICT_EQ:v=getValue(execute(n[0],x))===getValue(execute(n[1],x));break;case STRICT_NE:v=getValue(execute(n[0],x))!==getValue(execute(n[1],x));break;case LT:v=getValue(execute(n[0],x))<getValue(execute(n[1],x));break;case LE:v=getValue(execute(n[0],x))<=getValue(execute(n[1],x));break;case GE:v=getValue(execute(n[0],x))>=getValue(execute(n[1],x));break;case GT:v=getValue(execute(n[0],x))>getValue(execute(n[1],x));break;case IN:v=getValue(execute(n[0],x)) in getValue(execute(n[1],x));break;case INSTANCEOF:t=getValue(execute(n[0],x));u=getValue(execute(n[1],x));if(isObject(u)&&typeof u.__hasInstance__=="function"){v=u.__hasInstance__(t)}else v=t instanceof u;break;case LSH:v=getValue(execute(n[0],x))<<getValue(execute(n[1],x));break;case RSH:v=getValue(execute(n[0],x))>>getValue(execute(n[1],x));break;case URSH:v=getValue(execute(n[0],x))>>>getValue(execute(n[1],x));break;case PLUS:v=getValue(execute(n[0],x))+getValue(execute(n[1],x));break;case MINUS:v=getValue(execute(n[0],x))-getValue(execute(n[1],x));break;case MUL:v=getValue(execute(n[0],x))*getValue(execute(n[1],x));break;case DIV:v=getValue(execute(n[0],x))/getValue(execute(n[1],x));break;case MOD:v=getValue(execute(n[0],x))%getValue(execute(n[1],x));break;case DELETE:t=execute(n[0],x);v=!(t instanceof Reference)||delete t.base[t.propertyName];break;case VOID:getValue(execute(n[0],x));break;case TYPEOF:t=execute(n[0],x);if(t instanceof Reference)t=t.base?t.base[t.propertyName]:undefined;v=typeof t;break;case NOT:v=!getValue(execute(n[0],x));break;case BITWISE_NOT:v=~getValue(execute(n[0],x));break;case UNARY_PLUS:v=+getValue(execute(n[0],x));break;case UNARY_MINUS:v=-getValue(execute(n[0],x));break;case INCREMENT:case DECREMENT:t=execute(n[0],x);u=Number(getValue(t));if(n.postfix)v=u;putValue(t,(n.type==INCREMENT)?++u:--u,n[0]);if(!n.postfix)v=u;break;case DOT:r=execute(n[0],x);t=getValue(r);u=n[1].value;v=new Reference(toObject(t,r,n[0]),u,n);break;case INDEX:r=execute(n[0],x);t=getValue(r);u=getValue(execute(n[1],x));v=new Reference(toObject(t,r,n[0]),String(u),n);break;case LIST:v={};for(i=0,j=n.length;i<j;i++){u=getValue(execute(n[i],x));v.__defineProperty__(i,u,false,false,true)};v.__defineProperty__('length',i,false,false,true);break;case CALL:r=execute(n[0],x);a=execute(n[1],x);f=getValue(r);if(isPrimitive(f)||typeof f.__call__!="function")throw new TypeError(r+" is not callable",n[0].filename,n[0].lineno);t=(r instanceof Reference)?r.base:null;if(t instanceof Activation)t=null;v=f.__call__(t,a,x);break;case NEW:case NEW_WITH_ARGS:r=execute(n[0],x);f=getValue(r);if(n.type==NEW){a={};a.__defineProperty__('length',0,false,false,true)}else a=execute(n[1],x);if(isPrimitive(f)||typeof f.__construct__!="function")throw new TypeError(r+" is not a constructor",n[0].filename,n[0].lineno);v=f.__construct__(a,x);break;case ARRAY_INIT:v=[];for(i=0,j=n.length;i<j;i++)if(n[i])v[i]=getValue(execute(n[i],x));v.length=j;break;case OBJECT_INIT:v={};for(i=0,j=n.length;i<j;i++){t=n[i];if(t.type==PROPERTY_INIT){v[t[0].value]=getValue(execute(t[1],x))}else{f=new FunctionObject(t,x.scope);u=(t.type==GETTER)?'__defineGetter__':'__defineSetter__';v[u](t.name,thunk(f,x))}};break;case NULL:v=null;break;case THIS:v=x.thisObject;break;case TRUE:v=true;break;case FALSE:v=false;break;case IDENTIFIER:for(s=x.scope;s;s=s.parent)if(n.value in s.object)break;v=new Reference(s&&s.object,n.value,n);break;case NUMBER:case STRING:case REGEXP:v=n.value;break;case GROUP:v=execute(n[0],x);break;default:throw "PANIC: unknown operation "+n.type+": "+uneval(n)};return v}-function Activation(f,a){for(var i=0,j=f.params.length;i<j;i++)this.__defineProperty__(f.params[i],a[i],true);this.__defineProperty__('arguments',a,true)};Activation.prototype.__defineProperty__=Object.prototype.__defineProperty__;Activation.prototype.__proto__=null;delete Activation.prototype.constructor-function FunctionObject(node,scope){this.node=node;this.scope=scope;this.__defineProperty__('length',node.params.length,true,true,true);var proto={};this.__defineProperty__('prototype',proto,true);proto.__defineProperty__('constructor',this,false,false,true)};var FOp=FunctionObject.prototype={__call__:function(t,a,x){var x2=new ExecutionContext(FUNCTION_CODE);x2.thisObject=t||global;x2.caller=x;x2.callee=this;a.__defineProperty__('callee',this,false,false,true);var f=this.node;x2.scope={object:new Activation(f,a),parent:this.scope};ExecutionContext.current=x2;try{execute(f.body,x2)}catch(e if e==RETURN){return x2.result}catch(e if e==THROW){x.result=x2.result;throw THROW}finally{ExecutionContext.current=x};return undefined},__construct__:function(a,x){var o=new Object,p=this.prototype;if(isObject(p))o.__proto__=p;var v=this.__call__(o,a,x);if(isObject(v))return v;return o},__hasInstance__:function(v){if(isPrimitive(v))return false;var p=this.prototype;if(isPrimitive(p))throw new TypeError("'prototype' property is not an object",this.node.filename,this.node.lineno);var o;while((o=v.__proto__)){if(o==p)return true;v=o};return false},toString:function(){return this.node.getSource()},apply:function(t,a){if(typeof this.__call__!="function")throw new TypeError("Function.prototype.apply called on uncallable object");if(t===undefined||t===null){t=global}else if(typeof t!="object")t=toObject(t,t);if(a===undefined||a===null){a={};a.__defineProperty__('length',0,false,false,true)}else if(a instanceof Array){var v={};for(var i=0,j=a.length;i<j;i++)v.__defineProperty__(i,a[i],false,false,true);v.__defineProperty__('length',i,false,false,true);a=v}else if(!(a instanceof Object))throw new TypeError("Second argument to Function.prototype.apply must be an array or arguments object",this.node.filename,this.node.lineno);return this.__call__(t,a,ExecutionContext.current)},call:function(t){var a=Array.prototype.splice.call(arguments,1);return this.apply(t,a)}};reflectClass('Function',FOp);var Fp=Function.prototype,REp=RegExp.prototype;if(!('__call__' in Fp)){Fp.__defineProperty__('__call__',function(t,a,x){a=Array.prototype.splice.call(a,0,a.length);return this.apply(t,a)},true,true,true);REp.__defineProperty__('__call__',function(t,a,x){a=Array.prototype.splice.call(a,0,a.length);return this.exec.apply(this,a)},true,true,true);Fp.__defineProperty__('__construct__',function(a,x){a=Array.prototype.splice.call(a,0,a.length);return this.__applyConstructor__(a)},true,true,true);Fp.__defineProperty__('__hasInstance__',function(v){return v instanceof Function||v instanceof global.Function},true,true,true)}-function thunk(f,x){return function(){return f.__call__(this,arguments,x)}}-function evaluate(s,f,l){if(typeof s!="string")return s;var x=ExecutionContext.current,x2=new ExecutionContext(GLOBAL_CODE);ExecutionContext.current=x2;try{execute(parse(s,f,l),x2)}catch(e if e==THROW){if(x){x.result=x2.result;throw THROW};throw x2.result}finally{ExecutionContext.current=x};return x2.result}
− test/pminified/122_jsexec2.js
@@ -1,1 +0,0 @@-function execute(n,x){switch(n.type){case CONST:for(i=0,j=n.length;i<j;i++){u=n[i].initializer;if(!u)continue;t=n[i].name;for(s=x.scope;s;s=s.parent)if(hasDirectProperty(s.object,t))break;u=getValue(execute(u,x));if(n.type==CONST){s.object.__defineProperty__(t,u,x.type!=EVAL_CODE,true)}else s.object[t]=u};break}}
− test/pminified/122_jsexec3.js
@@ -1,2 +0,0 @@-function execute(n,x){switch(n.type){case SWITCH:s=getValue(execute(n.discriminant,x));a=n.cases;var matchDefault=false;switch_loop:for(i=0,j=a.length;;i++){if(i==j){if(n.defaultIndex>=0){i=n.defaultIndex-1;matchDefault=true;continue};break};t=a[i];if(t.type==CASE){u=getValue(execute(t.caseLabel,x))}else{if(!matchDefault)continue;u=s};if(u===s)for(;;){if(t.statements.length)try{execute(t.statements,x)}catch(e if e==BREAK&&x.target==n){break switch_loop};if(++i==j)break switch_loop;t=a[i]}};break;default:throw "PANIC: unknown operation "+n.type+": "+uneval(n)};return v}-
− test/pminified/123_jsparse.js
@@ -1,16 +0,0 @@-var opRegExpSrc="^";for(i in opTypeNames){if(i=='\n')continue;if(opRegExpSrc!="^")opRegExpSrc+="|^";opRegExpSrc+=i.replace(/[?|^&(){}\[\]+\-*\/\.]/g,"\\$&")};var opRegExp=new RegExp(opRegExpSrc),fpRegExp=/^\d+\.\d*(?:[eE][-+]?\d+)?|^\d+(?:\.\d*)?[eE][-+]?\d+|^\.\d+(?:[eE][-+]?\d+)?/-function Tokenizer(s,f,l){this.cursor=0;this.source=String(s);this.tokens=[];this.tokenIndex=0;this.lookahead=0;this.scanNewlines=false;this.scanOperand=true;this.filename=f||"";this.lineno=l||1};Tokenizer.prototype={get input(){return this.source.substring(this.cursor)}}-function CompilerContext(inFunction){this.inFunction=inFunction;this.stmtStack=[];this.funDecls=[];this.varDecls=[]};var CCp=CompilerContext.prototype;CCp.bracketLevel=CCp.curlyLevel=CCp.parenLevel=CCp.hookLevel=0;CCp.ecmaStrictMode=CCp.inForLoopInit=false-function Script(t,x){var n=Statements(t,x);n.type=SCRIPT;n.funDecls=x.funDecls;n.varDecls=x.varDecls;return n};Array.prototype.__defineProperty__('top',function(){return this.length&&this[this.length-1]},false,false,true)-function Node(t,type){var token=t.token;if(token){this.type=type||token.type;this.value=token.value;this.lineno=token.lineno;this.start=token.start;this.end=token.end}else{this.type=type;this.lineno=t.lineno};this.tokenizer=t;for(var i=2;i<arguments.length;i++)this.push(arguments[i])};var Np=Node.prototype=new Array();Np.constructor=Node;Np.toSource=Object.prototype.toSource;Np.push=function(kid){if(kid.start<this.start)this.start=kid.start;if(this.end<kid.end)this.end=kid.end;return Array.prototype.push.call(this,kid)};Node.indentLevel=0-function tokenstr(tt){var t=tokens[tt];return/^\W/.test(t)?opTypeNames[t]:t.toUpperCase()};Np.toString=function(){var a=[];for(var i in this)if(this.hasOwnProperty(i)&&i!='type')a.push({id:i,value:this[i]});a.sort(function(a,b){return(a.id<b.id)?-1:1});const INDENTATION=" ";var n=++Node.indentLevel,s="{\n"+INDENTATION.repeat(n)+"type: "+tokenstr(this.type);for(i=0;i<a.length;i++)s+=",\n"+INDENTATION.repeat(n)+a[i].id+": "+a[i].value;n=--Node.indentLevel;s+="\n"+INDENTATION.repeat(n)+"}";return s};Np.getSource=function(){return this.tokenizer.source.slice(this.start,this.end)};Np.__defineGetter__('filename',function(){return this.tokenizer.filename});String.prototype.__defineProperty__('repeat',function(n){var s="",t=this+s;while(--n>=0)s+=t;return s},false,false,true)-function nest(t,x,node,func,end){x.stmtStack.push(node);var n=func(t,x);x.stmtStack.pop();end&&t.mustMatch(end);return n}-function Statements(t,x){var n=new Node(t,BLOCK);x.stmtStack.push(n);while(!t.done&&t.peek()!=RIGHT_CURLY)n.push(Statement(t,x));x.stmtStack.pop();return n}-function Block(t,x){t.mustMatch(LEFT_CURLY);var n=Statements(t,x);t.mustMatch(RIGHT_CURLY);return n};const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2-function Statement(t,x){var i,label,n,n2,ss,tt=t.get();switch(tt){case FUNCTION:return FunctionDefinition(t,x,true,(x.stmtStack.length>1)?STATEMENT_FORM:DECLARED_FORM);case LEFT_CURLY:n=Statements(t,x);t.mustMatch(RIGHT_CURLY);return n;case IF:n=new Node(t);n.condition=ParenExpression(t,x);x.stmtStack.push(n);n.thenPart=Statement(t,x);n.elsePart=t.match(ELSE)?Statement(t,x):null;x.stmtStack.pop();return n;case SWITCH:n=new Node(t);t.mustMatch(LEFT_PAREN);n.discriminant=Expression(t,x);t.mustMatch(RIGHT_PAREN);n.cases=[];n.defaultIndex=-1;x.stmtStack.push(n);t.mustMatch(LEFT_CURLY);while((tt=t.get())!=RIGHT_CURLY){switch(tt){case DEFAULT:if(n.defaultIndex>=0)throw t.newSyntaxError("More than one switch default");case CASE:n2=new Node(t);if(tt==DEFAULT){n.defaultIndex=n.cases.length}else n2.caseLabel=Expression(t,x,COLON);break;default:throw t.newSyntaxError("Invalid switch case")};t.mustMatch(COLON);n2.statements=new Node(t,BLOCK);while((tt=t.peek())!=CASE&&tt!=DEFAULT&&tt!=RIGHT_CURLY)n2.statements.push(Statement(t,x));n.cases.push(n2)};x.stmtStack.pop();return n;case FOR:n=new Node(t);n.isLoop=true;t.mustMatch(LEFT_PAREN);if((tt=t.peek())!=SEMICOLON){x.inForLoopInit=true;if(tt==VAR||tt==CONST){t.get();n2=Variables(t,x)}else n2=Expression(t,x);x.inForLoopInit=false};if(n2&&t.match(IN)){n.type=FOR_IN;if(n2.type==VAR){if(n2.length!=1)throw new SyntaxError("Invalid for..in left-hand side",t.filename,n2.lineno);n.iterator=n2[0];n.varDecl=n2}else{n.iterator=n2;n.varDecl=null};n.object=Expression(t,x)}else{n.setup=n2||null;t.mustMatch(SEMICOLON);n.condition=(t.peek()==SEMICOLON)?null:Expression(t,x);t.mustMatch(SEMICOLON);n.update=(t.peek()==RIGHT_PAREN)?null:Expression(t,x)};t.mustMatch(RIGHT_PAREN);n.body=nest(t,x,n,Statement);return n;case WHILE:n=new Node(t);n.isLoop=true;n.condition=ParenExpression(t,x);n.body=nest(t,x,n,Statement);return n;case DO:n=new Node(t);n.isLoop=true;n.body=nest(t,x,n,Statement,WHILE);n.condition=ParenExpression(t,x);if(!x.ecmaStrictMode){t.match(SEMICOLON);return n};break;case BREAK:case CONTINUE:n=new Node(t);if(t.peekOnSameLine()==IDENTIFIER){t.get();n.label=t.token.value};ss=x.stmtStack;i=ss.length;label=n.label;if(label){do{if(--i<0)throw t.newSyntaxError("Label not found")}while(ss[i].label!=label)}else do{if(--i<0)throw t.newSyntaxError("Invalid "+((tt==BREAK)?"break":"continue"))}while(!ss[i].isLoop&&(tt!=BREAK||ss[i].type!=SWITCH));n.target=ss[i];break;case TRY:n=new Node(t);n.tryBlock=Block(t,x);n.catchClauses=[];while(t.match(CATCH)){n2=new Node(t);t.mustMatch(LEFT_PAREN);n2.varName=t.mustMatch(IDENTIFIER).value;if(t.match(IF)){if(x.ecmaStrictMode)throw t.newSyntaxError("Illegal catch guard");if(n.catchClauses.length&&!n.catchClauses.top().guard)throw t.newSyntaxError("Guarded catch after unguarded");n2.guard=Expression(t,x)}else n2.guard=null;t.mustMatch(RIGHT_PAREN);n2.block=Block(t,x);n.catchClauses.push(n2)};if(t.match(FINALLY))n.finallyBlock=Block(t,x);if(!n.catchClauses.length&&!n.finallyBlock)throw t.newSyntaxError("Invalid try statement");return n;case CATCH:case FINALLY:throw t.newSyntaxError(tokens[tt]+" without preceding try");case THROW:n=new Node(t);n.exception=Expression(t,x);break;case RETURN:if(!x.inFunction)throw t.newSyntaxError("Invalid return");n=new Node(t);tt=t.peekOnSameLine();if(tt!=END&&tt!=NEWLINE&&tt!=SEMICOLON&&tt!=RIGHT_CURLY)n.value=Expression(t,x);break;case WITH:n=new Node(t);n.object=ParenExpression(t,x);n.body=nest(t,x,n,Statement);return n;case VAR:case CONST:n=Variables(t,x);break;case DEBUGGER:n=new Node(t);break;case NEWLINE:case SEMICOLON:n=new Node(t,SEMICOLON);n.expression=null;return n;default:if(tt==IDENTIFIER&&t.peek()==COLON){label=t.token.value;ss=x.stmtStack;for(i=ss.length-1;i>=0;--i)if(ss[i].label==label)throw t.newSyntaxError("Duplicate label");t.get();n=new Node(t,LABEL);n.label=label;n.statement=nest(t,x,n,Statement);return n};n=new Node(t,SEMICOLON);t.unget();n.expression=Expression(t,x);n.end=n.expression.end;break};if(t.lineno==t.token.lineno){tt=t.peekOnSameLine();if(tt!=END&&tt!=NEWLINE&&tt!=SEMICOLON&&tt!=RIGHT_CURLY)throw t.newSyntaxError("Missing ; before statement")};t.match(SEMICOLON);return n}-function FunctionDefinition(t,x,requireName,functionForm){var f=new Node(t);if(f.type!=FUNCTION)f.type=(f.value=="get")?GETTER:SETTER;if(t.match(IDENTIFIER)){f.name=t.token.value}else if(requireName)throw t.newSyntaxError("Missing function identifier");t.mustMatch(LEFT_PAREN);f.params=[];var tt;while((tt=t.get())!=RIGHT_PAREN){if(tt!=IDENTIFIER)throw t.newSyntaxError("Missing formal parameter");f.params.push(t.token.value);if(t.peek()!=RIGHT_PAREN)t.mustMatch(COMMA)};t.mustMatch(LEFT_CURLY);var x2=new CompilerContext(true);f.body=Script(t,x2);t.mustMatch(RIGHT_CURLY);f.end=t.token.end;f.functionForm=functionForm;if(functionForm==DECLARED_FORM)x.funDecls.push(f);return f}-function Variables(t,x){var n=new Node(t);do{t.mustMatch(IDENTIFIER);var n2=new Node(t);n2.name=n2.value;if(t.match(ASSIGN)){if(t.token.assignOp)throw t.newSyntaxError("Invalid variable initialization");n2.initializer=Expression(t,x,COMMA)};n2.readOnly=(n.type==CONST);n.push(n2);x.varDecls.push(n2)}while(t.match(COMMA));return n}-function ParenExpression(t,x){t.mustMatch(LEFT_PAREN);var n=Expression(t,x);t.mustMatch(RIGHT_PAREN);return n};var opPrecedence={SEMICOLON:0,COMMA:1,ASSIGN:2,HOOK:2,COLON:2,CONDITIONAL:2,OR:4,AND:5,BITWISE_OR:6,BITWISE_XOR:7,BITWISE_AND:8,EQ:9,NE:9,STRICT_EQ:9,STRICT_NE:9,LT:10,LE:10,GE:10,GT:10,IN:10,INSTANCEOF:10,LSH:11,RSH:11,URSH:11,PLUS:12,MINUS:12,MUL:13,DIV:13,MOD:13,DELETE:14,VOID:14,TYPEOF:14,NOT:14,BITWISE_NOT:14,UNARY_PLUS:14,UNARY_MINUS:14,INCREMENT:15,DECREMENT:15,NEW:16,DOT:17};for(i in opPrecedence)opPrecedence[GLOBAL[i]]=opPrecedence[i];var opArity={COMMA:-2,ASSIGN:2,CONDITIONAL:3,OR:2,AND:2,BITWISE_OR:2,BITWISE_XOR:2,BITWISE_AND:2,EQ:2,NE:2,STRICT_EQ:2,STRICT_NE:2,LT:2,LE:2,GE:2,GT:2,IN:2,INSTANCEOF:2,LSH:2,RSH:2,URSH:2,PLUS:2,MINUS:2,MUL:2,DIV:2,MOD:2,DELETE:1,VOID:1,TYPEOF:1,NOT:1,BITWISE_NOT:1,UNARY_PLUS:1,UNARY_MINUS:1,INCREMENT:1,DECREMENT:1,NEW:1,NEW_WITH_ARGS:2,DOT:2,INDEX:2,CALL:2,ARRAY_INIT:1,OBJECT_INIT:1,GROUP:1};for(i in opArity)opArity[GLOBAL[i]]=opArity[i]-function Expression(t,x,stop){var n,id,tt,operators=[],operands=[],bl=x.bracketLevel,cl=x.curlyLevel,pl=x.parenLevel,hl=x.hookLevel-function reduce(){var n=operators.pop(),op=n.type,arity=opArity[op];if(arity==-2){var left=operands.length>=2&&operands[operands.length-2];if(left.type==op){var right=operands.pop();left.push(right);return left};arity=2};var a=operands.splice(operands.length-arity);for(var i=0;i<arity;i++)n.push(a[i]);if(n.end<t.token.end)n.end=t.token.end;operands.push(n);return n};loop:while((tt=t.get())!=END){if(tt==stop&&x.bracketLevel==bl&&x.curlyLevel==cl&&x.parenLevel==pl&&x.hookLevel==hl)break;switch(tt){case SEMICOLON:break loop;case ASSIGN:case HOOK:case COLON:if(t.scanOperand)break loop;while(opPrecedence[operators.top().type]>opPrecedence[tt]||(tt==COLON&&operators.top().type==ASSIGN))reduce();if(tt==COLON){n=operators.top();if(n.type!=HOOK)throw t.newSyntaxError("Invalid label");n.type=CONDITIONAL;--x.hookLevel}else{operators.push(new Node(t));if(tt==ASSIGN){operands.top().assignOp=t.token.assignOp}else ++x.hookLevel};t.scanOperand=true;break;case IN:if(x.inForLoopInit&&!x.hookLevel&&!x.bracketLevel&&!x.curlyLevel&&!x.parenLevel)break loop;case COMMA:case OR:case AND:case BITWISE_OR:case BITWISE_XOR:case BITWISE_AND:case EQ:case NE:case STRICT_EQ:case STRICT_NE:case LT:case LE:case GE:case GT:case INSTANCEOF:case LSH:case RSH:case URSH:case PLUS:case MINUS:case MUL:case DIV:case MOD:case DOT:if(t.scanOperand)break loop;while(opPrecedence[operators.top().type]>=opPrecedence[tt])reduce();if(tt==DOT){t.mustMatch(IDENTIFIER);operands.push(new Node(t,DOT,operands.pop(),new Node(t)))}else{operators.push(new Node(t));t.scanOperand=true};break;case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case UNARY_PLUS:case UNARY_MINUS:case NEW:if(!t.scanOperand)break loop;operators.push(new Node(t));break;case INCREMENT:case DECREMENT:if(t.scanOperand){operators.push(new Node(t))}else{while(opPrecedence[operators.top().type]>opPrecedence[tt])reduce();n=new Node(t,tt,operands.pop());n.postfix=true;operands.push(n)};break;case FUNCTION:if(!t.scanOperand)break loop;operands.push(FunctionDefinition(t,x,false,EXPRESSED_FORM));t.scanOperand=false;break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:if(!t.scanOperand)break loop;operands.push(new Node(t));t.scanOperand=false;break;case LEFT_BRACKET:if(t.scanOperand){n=new Node(t,ARRAY_INIT);while((tt=t.peek())!=RIGHT_BRACKET){if(tt==COMMA){t.get();n.push(null);continue};n.push(Expression(t,x,COMMA));if(!t.match(COMMA))break};t.mustMatch(RIGHT_BRACKET);operands.push(n);t.scanOperand=false}else{operators.push(new Node(t,INDEX));t.scanOperand=true;++x.bracketLevel};break;case RIGHT_BRACKET:if(t.scanOperand||x.bracketLevel==bl)break loop;while(reduce().type!=INDEX)continue;--x.bracketLevel;break;case LEFT_CURLY:if(!t.scanOperand)break loop;++x.curlyLevel;n=new Node(t,OBJECT_INIT);object_init:if(!t.match(RIGHT_CURLY)){do{tt=t.get();if((t.token.value=="get"||t.token.value=="set")&&t.peek()==IDENTIFIER){if(x.ecmaStrictMode)throw t.newSyntaxError("Illegal property accessor");n.push(FunctionDefinition(t,x,true,EXPRESSED_FORM))}else{switch(tt){case IDENTIFIER:case NUMBER:case STRING:id=new Node(t);break;case RIGHT_CURLY:if(x.ecmaStrictMode)throw t.newSyntaxError("Illegal trailing ,");break object_init;default:throw t.newSyntaxError("Invalid property name")};t.mustMatch(COLON);n.push(new Node(t,PROPERTY_INIT,id,Expression(t,x,COMMA)))}}while(t.match(COMMA));t.mustMatch(RIGHT_CURLY)};operands.push(n);t.scanOperand=false;--x.curlyLevel;break;case RIGHT_CURLY:if(!t.scanOperand&&x.curlyLevel!=cl)throw "PANIC: right curly botch";break loop;case LEFT_PAREN:if(t.scanOperand){operators.push(new Node(t,GROUP))}else{while(opPrecedence[operators.top().type]>opPrecedence[NEW])reduce();n=operators.top();t.scanOperand=true;if(t.match(RIGHT_PAREN)){if(n.type==NEW){--operators.length;n.push(operands.pop())}else n=new Node(t,CALL,operands.pop(),new Node(t,LIST));operands.push(n);t.scanOperand=false;break};if(n.type==NEW){n.type=NEW_WITH_ARGS}else operators.push(new Node(t,CALL))};++x.parenLevel;break;case RIGHT_PAREN:if(t.scanOperand||x.parenLevel==pl)break loop;while((tt=reduce().type)!=GROUP&&tt!=CALL&&tt!=NEW_WITH_ARGS)continue;if(tt!=GROUP){n=operands.top();if(n[1].type!=COMMA){n[1]=new Node(t,LIST,n[1])}else n[1].type=LIST};--x.parenLevel;break;default:break loop}};if(x.hookLevel!=hl)throw t.newSyntaxError("Missing : after ?");if(x.parenLevel!=pl)throw t.newSyntaxError("Missing ) in parenthetical");if(x.bracketLevel!=bl)throw t.newSyntaxError("Missing ] in index expression");if(t.scanOperand)throw t.newSyntaxError("Missing operand");t.scanOperand=true;t.unget();while(operators.length)reduce();return operands.pop()}-function parse(s,f,l){var t=new Tokenizer(s,f,l),x=new CompilerContext(false),n=Script(t,x);if(!t.done)throw t.newSyntaxError("Syntax error");return n}
− test/pminified/130_htojs.js
@@ -1,10 +0,0 @@-var conIdx={},funIdx={},strIdx={};Number.prototype._c=function(){return this};Number.prototype._r=false;Number.prototype._chr=false;Boolean.prototype._c=function(){return new HSData(this.valueOf()?true:false,[])};Boolean.prototype._r=true;String.prototype._c=function(){var cmeth=this._c;this._c=function(){throw ("B '"+this+"' blackhole: thunk reentered")};try{var res=consStr(this);this._r=true;this._c=function(){return res};return res}catch(e){this._c=cmeth;throw (e)}};String.prototype._r=true;Array.prototype._c=function(){var cmeth=this._c;this._c=function(){throw ("B ["+this.toString()+"] blackhole: thunk reentered")};try{var res=consArr(this);this._r=true;this._c=function(){return res};return res}catch(e){this._c=cmeth;throw (e)}};Array.prototype._r=true;Array.prototype._toArray=function(){return this};var consStr=function(s){if(s.length==0){return new HSEOL()}else{var hdc=mkChar(s.charCodeAt(0));return new HSCons(hdc,s.length>1?s.substring(1):consStr(""))}},consArr=function(ar){if(ar.length==0){return new HSEOL()}else return new HSCons(ar[0],ar.length>1?ar.slice(1):consArr([]))}-function mkChar(c){var n=new Number(c);n._chr=true;return n}-function HSCons(head,tail){this._r=false;this._c=function(){return this};this._t=conIdx['Prelude.:'];this._f=[head,tail]};HSCons.prototype.toString=function(){var evhead=exprEval(this._f[0]);if(evhead._chr==true){return(String.fromCharCode(evhead)+(exprEval(this._f[1])).toString())}else return this._toArray().toString()};HSCons.prototype._toArray=function(){return[exprEval(this._f[0])].concat(exprEval(this._f[1])._toArray())}-function HSEOL(){this._r=false;this._c=function(){return this};this._t=conIdx['Prelude.[]'];this._f=[];this.toString=function(){return""};this._toArray=function(){return[]}}-function HSFun(name,arity,body){this._n=name;this._r=(arity==0);this._x=arity;this._d=this;this._y=0;this._u=null;this._b=body};HSFun.prototype._c=function(){if(!this._r)return this;var cmeth=this._c;this._c=function(){throw ("B "+this._n+" blackhole: thunk reentered")};try{var res=this._b();this._c=function(){return res};return res}catch(e){this._c=cmeth;throw (e)}};HSFun.prototype._ap=function(targs){if(targs.length==0)return this;return new HSDly(this,this,targs)}-function HSDly(fun,up,targs){this._a=targs;this._n=fun._n;this._d=fun;this._u=up;this._y=targs.length+up._y;this._r=(this._y>=fun._x)};HSDly.prototype._c=function(){if(!this._r)return this;var cmeth=this._c;this._c=function(){throw ("B "+this._n+" blackhole: thunk reentered")};var cargs=this._a,stack=this._u;for(;stack._u;stack=stack._u)cargs=stack._a.concat(cargs);var res;try{if(cargs.length==this._d._x){res=this._d._b.apply(this._d,cargs);this._u=null;this._c=function(){return res}}else{var evd;if(this._d._x==0){evd=exprEval(this._d);this._a=cargs}else{var feed=cargs.slice(0,this._d._x),over=cargs.slice(this._d._x);evd=exprEval(this._d._ap(feed));this._a=over};this._n=evd._n;this._d=evd._d;this._u=evd;this._y=this._a.length+evd._y;this._r=(this._y>=this._d._x);res=this;this._c=cmeth};return res}catch(e){this._c=cmeth;throw (e)}};HSDly.prototype._ap=function(targs){if(targs.length==0)return this;return new HSDly(this._d,this,targs)}-function HSData(con,arrs){this._r=false;this._c=function(){return this};this._t=con;this._f=arrs}-function exprEval(e){for(var ex=e;ex!=undefined&&ex._r;ex=ex._c());return ex}-function cbrApply(func,thisp,args){if(func.apply){return func.apply(thisp,args)}else{var s="func(";for(var i=0;i<args.length;i++)s+=(i==0?"":",")+"args["+i+"]";s+=")";return eval(s)}}-function newXmlHttpRequest(){var xmlhttp;xmlhttp=null;if(window.XMLHttpRequest){xmlhttp=new XMLHttpRequest()}else if(window.ActiveXObject){xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")}else throw "R XML HTTP Request not supported";return xmlhttp};conIdx["Data.Ratio.:%"]=(-4);conIdx["Echo.JS"]=(-5);conIdx["Prelude.()"]=(-6);conIdx["Prelude.(,)"]=(-7);conIdx["Prelude.(,,)"]=(-8);conIdx["Prelude.(,,,)"]=(-9);conIdx["Prelude.(,,,,,,,)"]=(-10);conIdx["Prelude.(,,,,,,,,)"]=(-11);conIdx["Prelude.:"]=3;conIdx["Prelude.EQ"]=13;conIdx["Prelude.False"]=false;conIdx["Prelude.GT"]=15;conIdx["Prelude.Just"]=16;conIdx["Prelude.LT"]=17;conIdx["Prelude.Nothing"]=18;conIdx["Prelude.True"]=true;conIdx["Prelude.[]"]=2;strIdx.F_0="Data.Char.isUpper";strIdx.F_1="Data.Char.lexLitChar";strIdx.F_2="Data.Char.toUpper";strIdx.F_4="Data.Maybe.fromJust";strIdx.F_5="Data.Maybe.fromMaybe";strIdx.F_6="Data.Ratio.%";strIdx.F_8="Data.Ratio.reduce";strIdx.F_9="Data._CharNumeric._LAMBDA409";strIdx.F_U="Data.Char.asciiTab";strIdx.F_V="Data.Char.intToDigit";strIdx.F_W="Data.Char.isAlpha";strIdx.F_X="Data.Char.isAlphaNum";strIdx.F_Y="Data.Char.isLower";strIdx.F_Z="Data.Char.isSpace";strIdx.F_b="Control.Monad.when";strIdx.F_b0="Echo._LAMBDA640";strIdx.F_b9="Echo._LAMBDA649";strIdx.F_bH="Echo._LAMBDA621";strIdx.F_bJ="Echo._LAMBDA623";strIdx.F_bS="Echo._LAMBDA632";strIdx.F_bT="Echo._LAMBDA633";strIdx.F_bU="Echo._LAMBDA634";strIdx.F_bV="Echo._LAMBDA635";strIdx.F_bW="Echo._LAMBDA636";strIdx.F_bX="Echo._LAMBDA637";strIdx.F_bY="Echo._LAMBDA638";strIdx.F_bZ="Echo._LAMBDA639";strIdx.F_ba="Data._CharNumeric._LAMBDA410";strIdx.F_bb="Data._CharNumeric._LAMBDA411";strIdx.F_be="Data._CharNumeric.chr";strIdx.F_bf="Data._CharNumeric.digitToInt";strIdx.F_bg="Data._CharNumeric.isDigit";strIdx.F_bh="Data._CharNumeric.isHexDigit";strIdx.F_bi="Data._CharNumeric.isOctDigit";strIdx.F_bj="Data._CharNumeric.nonnull";strIdx.F_bk="Data._CharNumeric.ord";strIdx.F_bl="Data._CharNumeric.readDec";strIdx.F_bm="Data._CharNumeric.readInt";strIdx.F_bn="Echo.Prelude.Monad.Echo.JS";strIdx.F_bo="Echo.Prelude.Monad.Echo.JS.>>";strIdx.F_bp="Echo.Prelude.Monad.Echo.JS.>>=";strIdx.F_bq="Echo.Prelude.Monad.Echo.JS.fail";strIdx.F_br="Echo.Prelude.Monad.Echo.JS.return";strIdx.F_c="Data.Char.Data.Char.Prelude.244.prefix";strIdx.F_c0="Prelude.Prelude.Enum.Prelude.Integer.enumFromThen";strIdx.F_c1="Prelude.Prelude.Enum.Prelude.Integer.enumFromThenTo";strIdx.F_c2="Prelude.Prelude.Enum.Prelude.Integer.enumFromTo";strIdx.F_c3="Prelude.Prelude.Enum.Prelude.Integer.fromEnum";strIdx.F_c4="Prelude.Prelude.Enum.Prelude.Integer.pred";strIdx.F_c5="Prelude.Prelude.Enum.Prelude.Integer.succ";strIdx.F_c6="Prelude.Prelude.Enum.Prelude.Integer.toEnum";strIdx.F_c7="Prelude.Prelude.Enum.Prelude.Ordering.fromEnum";strIdx.F_c8="Prelude.Prelude.Eq.Prelude.Char";strIdx.F_c9="Prelude.Prelude.Eq.Prelude.Char./=";strIdx.F_cA="Numeric.showIntAtBase";strIdx.F_cB="Numeric.showSigned";strIdx.F_cC="Prelude.$";strIdx.F_cD="Prelude.&&";strIdx.F_cE="Prelude.*";strIdx.F_cF="Prelude.+";strIdx.F_cG="Prelude.++";strIdx.F_cH="Prelude.-";strIdx.F_cI="Prelude..";strIdx.F_cJ="Prelude.<";strIdx.F_cK="Prelude.<=";strIdx.F_cL="Prelude.==";strIdx.F_cM="Prelude.>";strIdx.F_cN="Prelude.>=";strIdx.F_cO="Prelude.Prelude.Enum.Prelude.Char.fromEnum";strIdx.F_cP="Prelude.Prelude.Enum.Prelude.Int";strIdx.F_cQ="Prelude.Prelude.Enum.Prelude.Int.enumFrom";strIdx.F_cR="Prelude.Prelude.Enum.Prelude.Int.enumFromThen";strIdx.F_cS="Prelude.Prelude.Enum.Prelude.Int.enumFromThenTo";strIdx.F_cT="Prelude.Prelude.Enum.Prelude.Int.enumFromTo";strIdx.F_cU="Prelude.Prelude.Enum.Prelude.Int.fromEnum";strIdx.F_cV="Prelude.Prelude.Enum.Prelude.Int.pred";strIdx.F_cW="Prelude.Prelude.Enum.Prelude.Int.succ";strIdx.F_cX="Prelude.Prelude.Enum.Prelude.Int.toEnum";strIdx.F_cY="Prelude.Prelude.Enum.Prelude.Integer";strIdx.F_cZ="Prelude.Prelude.Enum.Prelude.Integer.enumFrom";strIdx.F_ca="Echo._LAMBDA650";strIdx.F_cb="Echo._LAMBDA651";strIdx.F_cc="Echo.asInt";strIdx.F_cd="Echo.asString";strIdx.F_ce="Echo.catchJS";strIdx.F_cf="Echo.getDocument";strIdx.F_cg="Echo.getProperty";strIdx.F_ch="Echo.getTime";strIdx.F_ci="Echo.inkey";strIdx.F_cj="Echo.main";strIdx.F_ck="Echo.regEventHandler";strIdx.F_cl="Echo.runMethod";strIdx.F_cm="Echo.setProperty";strIdx.F_cn="Numeric.Numeric.Prelude.413.read'";strIdx.F_co="Numeric.Numeric.Prelude.414.read''";strIdx.F_cq="Numeric._LAMBDA2002";strIdx.F_cr="Numeric._LAMBDA2003";strIdx.F_ct="Numeric._LAMBDA2057";strIdx.F_cu="Numeric._LAMBDA2058";strIdx.F_cv="Numeric._LAMBDA2059";strIdx.F_cw="Numeric._LAMBDA2060";strIdx.F_cx="Numeric.lexDigits";strIdx.F_cy="Numeric.readSigned";strIdx.F_cz="Numeric.showInt";strIdx.F_d="Data.Char.Data.Char.Prelude.245.lexEsc";strIdx.F_d0="Prelude.Prelude.Ord.Prelude.Char.compare";strIdx.F_d1="Prelude.Prelude.Ord.Prelude.Char.max";strIdx.F_d2="Prelude.Prelude.Ord.Prelude.Char.min";strIdx.F_d3="Prelude.Prelude.Ord.Prelude.Eq";strIdx.F_d4="Prelude.Prelude.Ord.Prelude.Int";strIdx.F_d5="Prelude.Prelude.Ord.Prelude.Int.<";strIdx.F_d6="Prelude.Prelude.Ord.Prelude.Int.<=";strIdx.F_d7="Prelude.Prelude.Ord.Prelude.Int.>";strIdx.F_d8="Prelude.Prelude.Ord.Prelude.Int.>=";strIdx.F_d9="Prelude.Prelude.Ord.Prelude.Int.compare";strIdx.F_dA="Prelude.Prelude.Integral.Prelude.Integer.quotRem";strIdx.F_dB="Prelude.Prelude.Integral.Prelude.Integer.rem";strIdx.F_dC="Prelude.Prelude.Integral.Prelude.Integer.toInteger";strIdx.F_dD="Prelude.Prelude.Integral.Prelude.Real";strIdx.F_dE="Prelude.Prelude.Num.Prelude.Eq";strIdx.F_dF="Prelude.Prelude.Num.Prelude.Int";strIdx.F_dG="Prelude.Prelude.Num.Prelude.Int.*";strIdx.F_dH="Prelude.Prelude.Num.Prelude.Int.+";strIdx.F_dI="Prelude.Prelude.Num.Prelude.Int.-";strIdx.F_dJ="Prelude.Prelude.Num.Prelude.Int.abs";strIdx.F_dK="Prelude.Prelude.Num.Prelude.Int.fromInteger";strIdx.F_dL="Prelude.Prelude.Num.Prelude.Int.negate";strIdx.F_dM="Prelude.Prelude.Num.Prelude.Int.signum";strIdx.F_dN="Prelude.Prelude.Num.Prelude.Integer";strIdx.F_dO="Prelude.Prelude.Num.Prelude.Integer.*";strIdx.F_dP="Prelude.Prelude.Num.Prelude.Integer.+";strIdx.F_dQ="Prelude.Prelude.Num.Prelude.Integer.-";strIdx.F_dR="Prelude.Prelude.Num.Prelude.Integer.abs";strIdx.F_dS="Prelude.Prelude.Num.Prelude.Integer.fromInteger";strIdx.F_dT="Prelude.Prelude.Num.Prelude.Integer.negate";strIdx.F_dU="Prelude.Prelude.Num.Prelude.Integer.signum";strIdx.F_dV="Prelude.Prelude.Ord.Prelude.Char";strIdx.F_dW="Prelude.Prelude.Ord.Prelude.Char.<";strIdx.F_dX="Prelude.Prelude.Ord.Prelude.Char.<=";strIdx.F_dY="Prelude.Prelude.Ord.Prelude.Char.>";strIdx.F_dZ="Prelude.Prelude.Ord.Prelude.Char.>=";strIdx.F_da="Prelude.Prelude.Eq.Prelude.Char.==";strIdx.F_db="Prelude.Prelude.Eq.Prelude.Int";strIdx.F_dc="Prelude.Prelude.Eq.Prelude.Int./=";strIdx.F_dd="Prelude.Prelude.Eq.Prelude.Int.==";strIdx.F_de="Prelude.Prelude.Eq.Prelude.Integer";strIdx.F_df="Prelude.Prelude.Eq.Prelude.Integer./=";strIdx.F_dg="Prelude.Prelude.Eq.Prelude.Integer.==";strIdx.F_dh="Prelude.Prelude.Eq.Prelude.Ordering";strIdx.F_di="Prelude.Prelude.Eq.Prelude.Ordering./=";strIdx.F_dj="Prelude.Prelude.Eq.Prelude.Ordering.==";strIdx.F_dk="Prelude.Prelude.Eq.Prelude.[]";strIdx.F_dl="Prelude.Prelude.Eq.Prelude.[]./=";strIdx.F_dm="Prelude.Prelude.Eq.Prelude.[].==";strIdx.F_dn="Prelude.Prelude.Integral.Prelude.Int";strIdx.F_do="Prelude.Prelude.Integral.Prelude.Int.div";strIdx.F_dp="Prelude.Prelude.Integral.Prelude.Int.divMod";strIdx.F_dq="Prelude.Prelude.Integral.Prelude.Int.mod";strIdx.F_dr="Prelude.Prelude.Integral.Prelude.Int.quot";strIdx.F_ds="Prelude.Prelude.Integral.Prelude.Int.quotRem";strIdx.F_dt="Prelude.Prelude.Integral.Prelude.Int.rem";strIdx.F_du="Prelude.Prelude.Integral.Prelude.Int.toInteger";strIdx.F_dv="Prelude.Prelude.Integral.Prelude.Integer";strIdx.F_dw="Prelude.Prelude.Integral.Prelude.Integer.div";strIdx.F_dx="Prelude.Prelude.Integral.Prelude.Integer.divMod";strIdx.F_dy="Prelude.Prelude.Integral.Prelude.Integer.mod";strIdx.F_dz="Prelude.Prelude.Integral.Prelude.Integer.quot";strIdx.F_e="Data.Char.Data.Char.Prelude.246.match";strIdx.F_e0="Prelude.Prelude._.divMod";strIdx.F_e1="Prelude.Prelude._.enumFromThenTo";strIdx.F_e2="Prelude.Prelude._.enumFromTo";strIdx.F_e3="Prelude.Prelude._.fail";strIdx.F_e4="Prelude.Prelude._.max";strIdx.F_e5="Prelude.Prelude._.min";strIdx.F_e6="Prelude.Prelude._.pred";strIdx.F_e7="Prelude.Prelude._.readList";strIdx.F_e8="Prelude.Prelude._.show";strIdx.F_e9="Prelude.Prelude._.showList";strIdx.F_eA="Prelude.Prelude.Read.Prelude.Int";strIdx.F_eB="Prelude.Prelude.Read.Prelude.Int.readList";strIdx.F_eC="Prelude.Prelude.Read.Prelude.Int.readsPrec";strIdx.F_eD="Prelude.Prelude.Read.Prelude.Integer.readsPrec";strIdx.F_eE="Prelude.Prelude.Real.Prelude.Int";strIdx.F_eF="Prelude.Prelude.Real.Prelude.Int.toRational";strIdx.F_eG="Prelude.Prelude.Real.Prelude.Integer";strIdx.F_eH="Prelude.Prelude.Real.Prelude.Integer.toRational";strIdx.F_eI="Prelude.Prelude.Real.Prelude.Num";strIdx.F_eJ="Prelude.Prelude.Real.Prelude.Ord";strIdx.F_eK="Prelude.Prelude.Show.Prelude.Int";strIdx.F_eL="Prelude.Prelude.Show.Prelude.Int.show";strIdx.F_eM="Prelude.Prelude.Show.Prelude.Int.showList";strIdx.F_eN="Prelude.Prelude.Show.Prelude.Int.showsPrec";strIdx.F_eO="Prelude.Prelude.Show.Prelude.Int.showsType";strIdx.F_eP="Prelude.Prelude.Show.Prelude.Integer";strIdx.F_eQ="Prelude.Prelude.Show.Prelude.Integer.show";strIdx.F_eR="Prelude.Prelude.Show.Prelude.Integer.showList";strIdx.F_eS="Prelude.Prelude.Show.Prelude.Integer.showsPrec";strIdx.F_eT="Prelude.Prelude.Show.Prelude.Integer.showsType";strIdx.F_eU="Prelude.Prelude._./=";strIdx.F_eV="Prelude.Prelude._.<";strIdx.F_eW="Prelude.Prelude._.>";strIdx.F_eX="Prelude.Prelude._.>=";strIdx.F_eY="Prelude.Prelude._.compare";strIdx.F_eZ="Prelude.Prelude._.div";strIdx.F_ea="Prelude.Prelude.Ord.Prelude.Int.max";strIdx.F_eb="Prelude.Prelude.Ord.Prelude.Int.min";strIdx.F_ec="Prelude.Prelude.Ord.Prelude.Integer";strIdx.F_ed="Prelude.Prelude.Ord.Prelude.Integer.<";strIdx.F_ee="Prelude.Prelude.Ord.Prelude.Integer.<=";strIdx.F_ef="Prelude.Prelude.Ord.Prelude.Integer.>";strIdx.F_eg="Prelude.Prelude.Ord.Prelude.Integer.>=";strIdx.F_eh="Prelude.Prelude.Ord.Prelude.Integer.compare";strIdx.F_ei="Prelude.Prelude.Ord.Prelude.Integer.max";strIdx.F_ej="Prelude.Prelude.Ord.Prelude.Integer.min";strIdx.F_ek="Prelude.Prelude.Prelude.1812.lexString";strIdx.F_el="Prelude.Prelude.Prelude.1813.lexStrItem";strIdx.F_em="Prelude.Prelude.Prelude.1837.isSingle";strIdx.F_en="Prelude.Prelude.Prelude.1838.isSym";strIdx.F_eo="Prelude.Prelude.Prelude.1839.isIdInit";strIdx.F_ep="Prelude.Prelude.Prelude.1840.isIdChar";strIdx.F_eq="Prelude.Prelude.Prelude.1841.lexFracExp";strIdx.F_er="Prelude.Prelude.Prelude.1842.lexExp";strIdx.F_es="Prelude.Prelude.Prelude.1899.optional";strIdx.F_et="Prelude.Prelude.Prelude.1900.mandatory";strIdx.F_eu="Prelude.Prelude.Prelude.1937.gcd'";strIdx.F_ev="Prelude.Prelude.Prelude.535.readl";strIdx.F_ew="Prelude.Prelude.Prelude.536.readl'";strIdx.F_ex="Prelude.Prelude.Prelude.580.showl";strIdx.F_ey="Prelude.Prelude.Prelude.890.ll";strIdx.F_ez="Prelude.Prelude.Prelude.Read.Prelude.Int.readsPrec'Id 3510";strIdx.F_f1="Prelude._LAMBDA27500";strIdx.F_f2="Prelude._LAMBDA27501";strIdx.F_f6="Prelude._LAMBDA27620";strIdx.F_f7="Prelude._LAMBDA27621";strIdx.F_f8="Prelude._LAMBDA27631";strIdx.F_f9="Prelude._LAMBDA27632";strIdx.F_fA="Prelude._LAMBDA26955";strIdx.F_fE="Prelude._LAMBDA26959";strIdx.F_fF="Prelude._LAMBDA26960";strIdx.F_fG="Prelude._LAMBDA26961";strIdx.F_fH="Prelude._LAMBDA26962";strIdx.F_fJ="Prelude._LAMBDA26964";strIdx.F_fK="Prelude._LAMBDA26965";strIdx.F_fL="Prelude._LAMBDA26966";strIdx.F_fM="Prelude._LAMBDA26999";strIdx.F_fN="Prelude._LAMBDA27000";strIdx.F_fO="Prelude._LAMBDA27001";strIdx.F_fP="Prelude._LAMBDA27002";strIdx.F_fQ="Prelude._LAMBDA27003";strIdx.F_fR="Prelude._LAMBDA27004";strIdx.F_fS="Prelude._LAMBDA27005";strIdx.F_fT="Prelude._LAMBDA27006";strIdx.F_fU="Prelude._LAMBDA27007";strIdx.F_fV="Prelude._LAMBDA27008";strIdx.F_fW="Prelude._LAMBDA27246";strIdx.F_fa="Prelude.Prelude._.succ";strIdx.F_fc="Prelude._LAMBDA26931";strIdx.F_fd="Prelude._LAMBDA26932";strIdx.F_fe="Prelude._LAMBDA26933";strIdx.F_fk="Prelude._LAMBDA26939";strIdx.F_fm="Prelude._LAMBDA26941";strIdx.F_fn="Prelude._LAMBDA26942";strIdx.F_fo="Prelude._LAMBDA26943";strIdx.F_fr="Prelude._LAMBDA26946";strIdx.F_fs="Prelude._LAMBDA26947";strIdx.F_fv="Prelude._LAMBDA26950";strIdx.F_fw="Prelude._LAMBDA26951";strIdx.F_fx="Prelude._LAMBDA26952";strIdx.F_fz="Prelude._LAMBDA26954";strIdx.F_g0="Prelude.toInteger";strIdx.F_g1="Prelude.||";strIdx.F_g2="Roman.Roman.Prelude.221.k";strIdx.F_g3="Roman.Roman.Prelude.228.length";strIdx.F_g4="Roman._LAMBDA480";strIdx.F_g5="Roman._LAMBDA481";strIdx.F_g9="Roman.fromNumeral";strIdx.F_gA="Prelude.lookup";strIdx.F_gB="Prelude.map";strIdx.F_gC="Prelude.negate";strIdx.F_gD="Prelude.not";strIdx.F_gE="Prelude.or";strIdx.F_gF="Prelude.otherwise";strIdx.F_gG="Prelude.quot";strIdx.F_gH="Prelude.quotRem";strIdx.F_gI="Prelude.read";strIdx.F_gJ="Prelude.readParen";strIdx.F_gK="Prelude.reads";strIdx.F_gL="Prelude.readsPrec";strIdx.F_gM="Prelude.rem";strIdx.F_gN="Prelude.return";strIdx.F_gO="Prelude.reverse";strIdx.F_gP="Prelude.seq";strIdx.F_gQ="Prelude.show";strIdx.F_gR="Prelude.showChar";strIdx.F_gS="Prelude.showParen";strIdx.F_gT="Prelude.showString";strIdx.F_gU="Prelude.showsPrec";strIdx.F_gV="Prelude.signum";strIdx.F_gW="Prelude.snd";strIdx.F_gX="Prelude.span";strIdx.F_gY="Prelude.subtract";strIdx.F_gZ="Prelude.toEnum";strIdx.F_gb="Prelude._LAMBDA27663";strIdx.F_gd="Prelude._enumFromToDecC";strIdx.F_ge="Prelude._enumFromToIncC";strIdx.F_gf="Prelude._filter";strIdx.F_gg="Prelude._foldr";strIdx.F_gh="Prelude.abs";strIdx.F_gi="Prelude.any";strIdx.F_gj="Prelude.compare";strIdx.F_gk="Prelude.divMod";strIdx.F_gl="Prelude.dropWhile";strIdx.F_gm="Prelude.elem";strIdx.F_gn="Prelude.error";strIdx.F_go="Prelude.flip";strIdx.F_gp="Prelude.foldl";strIdx.F_gq="Prelude.foldl1";strIdx.F_gr="Prelude.foldr";strIdx.F_gs="Prelude.fromEnum";strIdx.F_gt="Prelude.fromInteger";strIdx.F_gu="Prelude.fromIntegral";strIdx.F_gv="Prelude.fst";strIdx.F_gw="Prelude.gcd";strIdx.F_gx="Prelude.id";strIdx.F_gy="Prelude.length";strIdx.F_gz="Prelude.lex";strIdx.F_hC="YHC.Primitive.primIntAbs";strIdx.F_hD="YHC.Primitive.primIntFromInteger";strIdx.F_hE="YHC.Primitive.primIntSignum";strIdx.F_hF="YHC.Primitive.primIntegerAdd";strIdx.F_hG="YHC.Primitive.primIntegerEq";strIdx.F_hH="YHC.Primitive.primIntegerFromInt";strIdx.F_hI="YHC.Primitive.primIntegerGe";strIdx.F_hJ="YHC.Primitive.primIntegerGt";strIdx.F_hK="YHC.Primitive.primIntegerLe";strIdx.F_hL="YHC.Primitive.primIntegerLt";strIdx.F_hM="YHC.Primitive.primIntegerMul";strIdx.F_hN="YHC.Primitive.primIntegerNe";strIdx.F_hO="YHC.Primitive.primIntegerNeg";strIdx.F_hP="YHC.Primitive.primIntegerQuot";strIdx.F_hQ="YHC.Primitive.primIntegerQuotRem";strIdx.F_hR="YHC.Primitive.primIntegerRem";strIdx.F_hS="YHC.Primitive.primIntegerSub";strIdx.F_ha="Roman.fromRoman";strIdx.F_hb="Roman.maxmunch";strIdx.F_hc="Roman.numerals";strIdx.F_hd="Roman.subnums";strIdx.F_he="Roman.toNumeral";strIdx.F_hf="Roman.toRoman";strIdx.F_hg="StdOverlay.StdOverlay.Prelude.255.showInt";strIdx.F_hh="StdOverlay.StdOverlay.Prelude.256.showPosInt";strIdx.F_m="Data.Char._LAMBDA1026";strIdx.F_n="Data.Char._LAMBDA1027";var F_b=new HSFun("F_b",3,function(_lJ,_lK,_lL){var c1=exprEval(_lK);switch((c1)._t){case true:return _lL;case false:return((exprEval(_lJ))._f[3])._ap([new HSData((-6),[])])};throw ('X ('+this._n+') '+c1.toSource())}),F_c=new HSFun("F_c",2,function(_lZ,_l0){var c2=exprEval(_l0);return function(_l1,_l2){return new HSData((-7),[new HSCons(_lZ,_l1),_l2])}((c2)._f[0],(c2)._f[1])}),F_d=new HSFun("F_d",1,function(_l3){var c3=exprEval(_l3);switch((c3)._t){case 3:return function(_l4,_l5){var c4=exprEval(((F_gm)._b(F_c8,_l4))._ap([F_l]));switch((c4)._t){case true:return new HSCons(new HSData((-7),[new HSCons(_l4,new HSEOL()),_l5]),new HSEOL());case false:var c5=exprEval(_l4);switch((c5).valueOf()){case 94:var c6=exprEval(_l5);switch((c6)._t){case 3:return function(_l6,_l7){var c7=exprEval((F_cD)._b((F_dZ)._b(_l6,mkChar(64)),(Number(exprEval(_l6)))<=(Number(exprEval(mkChar(95))))));switch((c7)._t){case true:return new HSCons(new HSData((-7),[new HSCons(mkChar(94),new HSCons(_l6,new HSEOL())),_l7]),new HSEOL());case false:var c8=exprEval((F_bg)._b(_l4));switch((c8)._t){case true:return new HSCons((F_gX)._b(F_bg,_l3),new HSEOL());case false:var c9=exprEval((F_0)._b(_l4));switch((c9)._t){case true:var c10=exprEval((F_gg)._b(new HSFun("F_n",0,function(){return(F_n)._ap([_l3])}),new HSCons(F_o,(F_gB)._b(F_gW,F_U)),new HSEOL()));switch((c10)._t){case 2:return new HSEOL();case 3:return function(_ma,_mb){return new HSCons(_ma,new HSEOL())}((c10)._f[0],(c10)._f[1])};throw ('X ('+this._n+') '+c10.toSource());case false:return new HSEOL()};throw ('X ('+this._n+') '+c9.toSource())};throw ('X ('+this._n+') '+c8.toSource())};throw ('X ('+this._n+') '+c7.toSource())}((c6)._f[0],(c6)._f[1]);default:var c11=exprEval((F_bg)._b(_l4));switch((c11)._t){case true:return new HSCons((F_gX)._b(F_bg,_l3),new HSEOL());case false:var c12=exprEval((F_0)._b(_l4));switch((c12)._t){case true:var c13=exprEval((F_gg)._b(new HSFun("F_n",0,function(){return(F_n)._ap([_l3])}),new HSCons(F_o,(F_gB)._b(F_gW,F_U)),new HSEOL()));switch((c13)._t){case 2:return new HSEOL();case 3:return function(_ma,_mb){return new HSCons(_ma,new HSEOL())}((c13)._f[0],(c13)._f[1])};throw ('X ('+this._n+') '+c13.toSource());case false:return new HSEOL()};throw ('X ('+this._n+') '+c12.toSource())};throw ('X ('+this._n+') '+c11.toSource())};throw ('X ('+this._n+') '+c6.toSource());case 111:return new HSCons((F_c)._ap([mkChar(111),new HSFun("F_gX",0,function(){return(F_gX)._b(F_bi,_l5)})]),new HSEOL());case 120:return new HSCons((F_c)._ap([mkChar(120),new HSFun("F_gX",0,function(){return(F_gX)._b(F_bh,_l5)})]),new HSEOL());default:var c14=exprEval((F_bg)._b(_l4));switch((c14)._t){case true:return new HSCons((F_gX)._b(F_bg,_l3),new HSEOL());case false:var c15=exprEval((F_0)._b(_l4));switch((c15)._t){case true:var c16=exprEval((F_gg)._b(new HSFun("F_n",0,function(){return(F_n)._ap([_l3])}),new HSCons(F_o,(F_gB)._b(F_gW,F_U)),new HSEOL()));switch((c16)._t){case 2:return new HSEOL();case 3:return function(_ma,_mb){return new HSCons(_ma,new HSEOL())}((c16)._f[0],(c16)._f[1])};throw ('X ('+this._n+') '+c16.toSource());case false:return new HSEOL()};throw ('X ('+this._n+') '+c15.toSource())};throw ('X ('+this._n+') '+c14.toSource())};throw ('X ('+this._n+') '+c5.toSource())};throw ('X ('+this._n+') '+c4.toSource())}((c3)._f[0],(c3)._f[1]);default:return new HSEOL()};throw ('X ('+this._n+') '+c3.toSource())}),F_e=new HSFun("F_e",3,function(_lS,_lT,_lU){var c17=exprEval(_lT);switch((c17)._t){case 3:return function(_lV,_lW){var c18=exprEval(_lU);switch((c18)._t){case 3:return function(_lX,_lY){var c19=exprEval(((exprEval(_lS))._f[1])._ap([_lV,_lX]));switch((c19)._t){case true:return(F_e)._ap([_lS,_lW,_lY]);case false:return new HSData((-7),[_lT,_lU])};throw ('X ('+this._n+') '+c19.toSource())}((c18)._f[0],(c18)._f[1]);default:return new HSData((-7),[_lT,_lU])};throw ('X ('+this._n+') '+c18.toSource())}((c17)._f[0],(c17)._f[1]);default:return new HSData((-7),[_lT,_lU])};throw ('X ('+this._n+') '+c17.toSource())}),F_f="ESC",F_g="FS",F_h="GS",F_i="RS",F_j="US",F_k="SP",F_l="abfnrtv\\\"\'",F_m=new HSFun("F_m",3,function(_hd,_io,_iH){var c20=exprEval(_io);return function(_l8,_l9){var c21=exprEval(_l8);switch((c21)._t){case 2:return new HSCons(new HSData((-7),[_hd,_l9]),_iH);default:return _iH};throw ('X ('+this._n+') '+c21.toSource())}((c20)._f[0],(c20)._f[1])}),F_n=new HSFun("F_n",3,function(_l3,_hd,_he){return(F_gg)._b(new HSFun("F_m",0,function(){return(F_m)._ap([_hd])}),new HSCons((F_e)._ap([F_c8,_hd,_l3]),new HSEOL()),_he)}),F_o="DEL",F_p=" \u0009\u000a\u000d\u000c\u000b\xa0",F_q="Char.intToDigit: not a digit",F_r="Data.Char: Pattern match failure in function at 74:1-77:62.",F_s="Data.Char: Pattern match failure in function at 275:1-276:28.",F_t="NUL",F_u="SOH",F_v="STX",F_w="ETX",F_x="EOT",F_y="ENQ",F_z="ACK",F_A="BEL",F_B="BS",F_C="HT",F_D="LF",F_E="VT",F_F="FF",F_G="CR",F_H="SO",F_I="SI",F_J="DLE",F_K="DC1",F_L="DC2",F_M="DC3",F_N="DC4",F_O="NAK",F_P="SYN",F_Q="ETB",F_R="CAN",F_S="EM",F_T="SUB",F_U=new HSFun("F_U",0,function(){return new HSCons(new HSData((-7),[mkChar(0),F_t]),new HSCons(new HSData((-7),[mkChar(1),F_u]),new HSCons(new HSData((-7),[mkChar(2),F_v]),new HSCons(new HSData((-7),[mkChar(3),F_w]),new HSCons(new HSData((-7),[mkChar(4),F_x]),new HSCons(new HSData((-7),[mkChar(5),F_y]),new HSCons(new HSData((-7),[mkChar(6),F_z]),new HSCons(new HSData((-7),[mkChar(7),F_A]),new HSCons(new HSData((-7),[mkChar(8),F_B]),new HSCons(new HSData((-7),[mkChar(9),F_C]),new HSCons(new HSData((-7),[mkChar(10),F_D]),new HSCons(new HSData((-7),[mkChar(11),F_E]),new HSCons(new HSData((-7),[mkChar(12),F_F]),new HSCons(new HSData((-7),[mkChar(13),F_G]),new HSCons(new HSData((-7),[mkChar(14),F_H]),new HSCons(new HSData((-7),[mkChar(15),F_I]),new HSCons(new HSData((-7),[mkChar(16),F_J]),new HSCons(new HSData((-7),[mkChar(17),F_K]),new HSCons(new HSData((-7),[mkChar(18),F_L]),new HSCons(new HSData((-7),[mkChar(19),F_M]),new HSCons(new HSData((-7),[mkChar(20),F_N]),new HSCons(new HSData((-7),[mkChar(21),F_O]),new HSCons(new HSData((-7),[mkChar(22),F_P]),new HSCons(new HSData((-7),[mkChar(23),F_Q]),new HSCons(new HSData((-7),[mkChar(24),F_R]),new HSCons(new HSData((-7),[mkChar(25),F_S]),new HSCons(new HSData((-7),[mkChar(26),F_T]),new HSCons(new HSData((-7),[mkChar(27),F_f]),new HSCons(new HSData((-7),[mkChar(28),F_g]),new HSCons(new HSData((-7),[mkChar(29),F_h]),new HSCons(new HSData((-7),[mkChar(30),F_i]),new HSCons(new HSData((-7),[mkChar(31),F_j]),new HSCons(new HSData((-7),[mkChar(32),F_k]),new HSEOL())))))))))))))))))))))))))))))))))}),F_V=new HSFun("F_V",1,function(_mf){var c22=exprEval((F_cD)._b((Number(exprEval(_mf)))>=(0),(Number(exprEval(_mf)))<=(9)));switch((c22)._t){case true:return(F_be)._ap([(exprEval((F_bk)._ap([mkChar(48)])))+(exprEval(_mf))]);case false:var c23=exprEval((F_cD)._b((Number(exprEval(_mf)))>=(10),(Number(exprEval(_mf)))<=(15)));switch((c23)._t){case true:return(F_be)._ap([(exprEval((exprEval((F_bk)._ap([mkChar(97)])))+(exprEval(_mf))))-(10)]);case false:var c24=exprEval(F_gF);switch((c24)._t){case true:return(F_gn)._b(F_q);case false:return(F_gn)._b(F_r)};throw ('X ('+this._n+') '+c24.toSource())};throw ('X ('+this._n+') '+c23.toSource())};throw ('X ('+this._n+') '+c22.toSource())}),F_W=new HSFun("F_W",1,function(_md){return(F_g1)._b((F_0)._b(_md),new HSFun("F_Y",0,function(){return(F_Y)._b(_md)}))}),F_X=new HSFun("F_X",1,function(_me){return(F_g1)._b((F_W)._b(_me),new HSFun("F_bg",0,function(){return(F_bg)._b(_me)}))}),F_Y=new HSFun("F_Y",1,function(_lM){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lM,mkChar(97)),(Number(exprEval(_lM)))<=(Number(exprEval(mkChar(122))))),new HSFun("F_g1",0,function(){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lM,mkChar(223)),(Number(exprEval(_lM)))<=(Number(exprEval(mkChar(246))))),new HSFun("F_cD",0,function(){return(F_cD)._b((F_dZ)._b(_lM,mkChar(248)),(Number(exprEval(_lM)))<=(Number(exprEval(mkChar(255)))))}))}))}),F_Z=new HSFun("F_Z",1,function(_mc){return((F_gm)._b(F_c8,_mc))._ap([F_p])}),F_0=new HSFun("F_0",1,function(_lO){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lO,mkChar(65)),(Number(exprEval(_lO)))<=(Number(exprEval(mkChar(90))))),new HSFun("F_g1",0,function(){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lO,mkChar(192)),(Number(exprEval(_lO)))<=(Number(exprEval(mkChar(214))))),new HSFun("F_cD",0,function(){return(F_cD)._b((F_dZ)._b(_lO,mkChar(216)),(Number(exprEval(_lO)))<=(Number(exprEval(mkChar(222)))))}))}))}),F_1=new HSFun("F_1",1,function(_lP){var c25=exprEval(_lP);switch((c25)._t){case 2:return new HSEOL();case 3:return function(_lQ,_lR){var c26=exprEval(_lQ);switch((c26).valueOf()){case 92:return(F_gB)._b((F_c)._ap([mkChar(92)]),(F_d)._ap([_lR]));default:return new HSCons(new HSData((-7),[new HSCons(_lQ,new HSEOL()),_lR]),new HSEOL())};throw ('X ('+this._n+') '+c26.toSource())}((c25)._f[0],(c25)._f[1])};throw ('X ('+this._n+') '+c25.toSource())}),F_2=new HSFun("F_2",1,function(_lN){var c27=exprEval((F_Y)._b(_lN));switch((c27)._t){case true:return(exprEval((exprEval(_lN))-(exprEval(mkChar(97)))))+(exprEval(mkChar(65)));case false:var c28=exprEval(F_gF);switch((c28)._t){case true:return _lN;case false:return(F_gn)._b(F_s)};throw ('X ('+this._n+') '+c28.toSource())};throw ('X ('+this._n+') '+c27.toSource())}),F_3="Maybe.fromJust: Nothing",F_4=new HSFun("F_4",1,function(_kg){var c29=exprEval(_kg);switch((c29)._t){case 18:return(F_gn)._b(F_3);case 16:return(c29)._f[0]};throw ('X ('+this._n+') '+c29.toSource())}),F_5=new HSFun("F_5",2,function(_kd,_ke){var c30=exprEval(_ke);switch((c30)._t){case 18:return _kd;case 16:return(c30)._f[0]};throw ('X ('+this._n+') '+c30.toSource())}),F_6=new HSFun("F_6",3,function(_I,_J,_K){return(F_8)._b(_I,((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[2])._ap([_J,((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[6])._ap([_K])]),((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[8])._ap([_K]))}),F_7="Ratio.%: zero denominator",F_8=new HSFun("F_8",3,function(_F,_G,_H){var _lf=new HSFun("_lf",0,function(){return _F}),_b=new HSFun("_b",0,function(){return(F_gw)._b(_lf,_G,_H)}),c31=exprEval(((exprEval((exprEval((exprEval((exprEval(_F))._f[0]))._f[0]))._f[0]))._f[1])._ap([_H,((exprEval((exprEval((exprEval(_F))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c31)._t){case true:return(F_gn)._b(F_7);case false:return new HSData((-4),[((exprEval(_F))._f[7])._ap([_G,_b]),((exprEval(_F))._f[7])._ap([_H,_b])])};throw ('X ('+this._n+') '+c31.toSource())}),F_9=new HSFun("F_9",2,function(_ee,_ef){var c32=exprEval(_ee);return function(_kl,_km){var c33=exprEval(_kl);switch((c33)._t){case 3:return function(_kn,_ko){return new HSCons(new HSData((-7),[_kl,_km]),_ef)}((c33)._f[0],(c33)._f[1]);default:return _ef};throw ('X ('+this._n+') '+c33.toSource())}((c32)._f[0],(c32)._f[1])}),F_ba=new HSFun("F_ba",4,function(_kp,_kq,_ec,_ed){return((exprEval((exprEval((exprEval(_kp))._f[0]))._f[0]))._f[3])._ap([((exprEval((exprEval((exprEval(_kp))._f[0]))._f[0]))._f[2])._ap([_ec,_kq]),_ed])}),F_bb=new HSFun("F_bb",5,function(_kq,_kp,_ks,_c7,_dI){var c34=exprEval(_c7);return function(_ku,_kv){return new HSCons(new HSData((-7),[new HSFun("F_gq",0,function(){return(F_gq)._b(new HSFun("F_ba",0,function(){return(F_ba)._ap([_kp,_kq])}),(F_gB)._b((F_fc)._ap([_ks,(F_gu)._b(F_dn,new HSFun("F_eI",0,function(){return(exprEval((exprEval(_kp))._f[0]))._f[0]}))]),_ku))}),_kv]),_dI)}((c34)._f[0],(c34)._f[1])}),F_bc="Char.digitToInt: not a digit",F_bd="Data._CharNumeric: Pattern match failure in function at 22:1-26:64.",F_be=new HSFun("F_be",0,function(){return F_gx}),F_bf=new HSFun("F_bf",1,function(_ky){var c35=exprEval((F_bg)._b(_ky));switch((c35)._t){case true:return(exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(48)])));case false:var c36=exprEval((F_cD)._b((F_dZ)._b(_ky,mkChar(97)),(Number(exprEval(_ky)))<=(Number(exprEval(mkChar(102))))));switch((c36)._t){case true:return(exprEval((exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(97)])))))+(10);case false:var c37=exprEval((F_cD)._b((F_dZ)._b(_ky,mkChar(65)),(Number(exprEval(_ky)))<=(Number(exprEval(mkChar(70))))));switch((c37)._t){case true:return(exprEval((exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(65)])))))+(10);case false:var c38=exprEval(F_gF);switch((c38)._t){case true:return(F_gn)._b(F_bc);case false:return(F_gn)._b(F_bd)};throw ('X ('+this._n+') '+c38.toSource())};throw ('X ('+this._n+') '+c37.toSource())};throw ('X ('+this._n+') '+c36.toSource())};throw ('X ('+this._n+') '+c35.toSource())}),F_bg=new HSFun("F_bg",1,function(_kx){return(F_cD)._b((F_dZ)._b(_kx,mkChar(48)),(Number(exprEval(_kx)))<=(Number(exprEval(mkChar(57)))))}),F_bh=new HSFun("F_bh",1,function(_kw){return(F_g1)._b((F_cD)._b((F_dZ)._b(_kw,mkChar(48)),(Number(exprEval(_kw)))<=(Number(exprEval(mkChar(57))))),new HSFun("F_g1",0,function(){return(F_g1)._b((F_cD)._b((F_dZ)._b(_kw,mkChar(65)),(Number(exprEval(_kw)))<=(Number(exprEval(mkChar(70))))),new HSFun("F_cD",0,function(){return(F_cD)._b((F_dZ)._b(_kw,mkChar(97)),(Number(exprEval(_kw)))<=(Number(exprEval(mkChar(102)))))}))}))}),F_bi=new HSFun("F_bi",1,function(_kz){return(F_cD)._b((F_dZ)._b(_kz,mkChar(48)),(Number(exprEval(_kz)))<=(Number(exprEval(mkChar(55)))))}),F_bj=new HSFun("F_bj",2,function(_kj,_kk){return(F_gg)._b(F_9,new HSCons((F_gX)._b(_kj,_kk),new HSEOL()),new HSEOL())}),F_bk=new HSFun("F_bk",0,function(){return F_gx}),F_bl=new HSFun("F_bl",1,function(_kA){return(F_bm)._ap([_kA,((exprEval((exprEval((exprEval(_kA))._f[0]))._f[0]))._f[7])._ap([10]),F_bg,F_bf])}),F_bm=new HSFun("F_bm",5,function(_kp,_kq,_kr,_ks,_kt){return(F_gg)._b(new HSFun("F_bb",0,function(){return(F_bb)._ap([_kq,_kp,_ks])}),(F_bj)._b(_kr,_kt),new HSEOL())}),F_bn=new HSFun("F_bn",0,function(){return new HSData((-9),[F_bp,F_bo,F_bq,F_br])}),F_bo=new HSFun("F_bo",2,function(_lC,_lD){var c39=exprEval(_lC);return _lD}),F_bp=new HSFun("F_bp",2,function(_lF,_lG){var c40=exprEval(_lF);return function(_lH){return(_lG)._ap([_lH])}((c40)._f[0])}),F_bq=new HSFun("F_bq",1,function(_lI){return(F_gn)._b(_lI)}),F_br=new HSFun("F_br",1,function(_lB){return(F_gP)._b(_lB,new HSData((-5),[_lB]))}),F_bs="return new HSData(conIdx[\'Echo.JS\'],[document]);",F_bt="return new HSData(conIdx[\'Echo.JS\'],[exprEval(a)[exprEval(b).toString()]]);",F_bu="exprEval(a)[exprEval(b).toString()]=exprEval(c);return new HSData(conIdx[\'Echo.JS\'],[]);",F_bv="exprEval(a)[exprEval(b).toString()]=function(e){if(!e){e=window.event;}; return exprEval(exprEval(c)._ap([e]));}; return new HSData(conIdx[\'Echo.JS\'],[]);",F_bw="return new HSData(conIdx[\'Echo.JS\'],[new Number(exprEval(a))]);",F_bx="return new HSData(conIdx[\'Echo.JS\'],[new String(exprEval(a))]);",F_by="try {return exprEval(a);} catch(_e) {return exprEval(b)._ap([_e]);}",F_bz="return new HSData(conIdx[\'Echo.JS\'],[(new Date()).getTime()]);",F_bA="var a1=exprEval(a); return new HSData(conIdx[\'Echo.JS\'],[cbrApply(a1[exprEval(b).toString()],a1,exprEval(c)._toArray())]);",F_bB="keyCode",F_bC="body",F_bD="createElement",F_bE="div",F_bF="value",F_bG="",F_bH=new HSFun("F_bH",1,function(v593){return(F_br)._b(F_bG)}),F_bI="",F_bJ=new HSFun("F_bJ",1,function(v594){return(F_br)._b(F_bI)}),F_bK=" ",F_bL=" ",F_bM=" ",F_bN=" ms",F_bO="innerHTML",F_bP="insertBefore",F_bQ="value",F_bR="",F_bS=new HSFun("F_bS",8,function(_et,_fK,_fO,_f8,_e2,_e3,_lz,_hc){var _kJ=new HSFun("_kJ",0,function(){return F_dF}),_c=new HSFun("_c",0,function(){return((exprEval(_kJ))._f[4])._ap([_hc,_et])}),_kL=new HSFun("_kL",0,function(){return F_eK}),_d=new HSFun("_d",0,function(){return(F_cG)._b(_fK,new HSFun("F_cG",0,function(){return(F_cG)._b(F_bK,new HSFun("F_cG",0,function(){return(F_cG)._b(_fO,new HSFun("F_cG",0,function(){return(F_cG)._b(F_bL,new HSFun("F_cG",0,function(){return(F_cG)._b(_f8,new HSFun("F_cG",0,function(){return(F_cG)._b(F_bM,new HSFun("F_cG",0,function(){return(F_cG)._b(((exprEval(_kL))._f[3])._ap([_c]),F_bN)}))}))}))}))}))}))});return(F_bo)._b((F_cm)._b(_e3,F_bO,_d),(F_bo)._b((F_cl)._b(_e2,F_bP,new HSCons(_e3,new HSCons(_lz,new HSEOL()))),(F_bo)._b((F_cm)._b(_lz,F_bQ,F_bR),(F_br)._b(new HSData((-6),[])))))}),F_bT=new HSFun("F_bT",7,function(_et,_fK,_fO,_e2,_e3,_lz,_f8){return(F_bp)._b((F_ch)._b(0),new HSFun("F_bS",0,function(){return(F_bS)._ap([_et,_fK,_fO,_f8,_e2,_e3,_lz])}))}),F_bU=new HSFun("F_bU",6,function(_et,_fK,_e2,_e3,_lz,_fO){return(F_bp)._b((F_ce)._b(new HSFun("F_cC",0,function(){return(F_cC)._b(F_br,new HSFun("F_hf",0,function(){return(F_hf)._b(new HSFun("F_gI",0,function(){return(F_gI)._b(F_eA,_fK)}))}))}),F_bJ),new HSFun("F_bT",0,function(){return(F_bT)._ap([_et,_fK,_fO,_e2,_e3,_lz])}))}),F_bV=new HSFun("F_bV",5,function(_et,_e2,_e3,_lz,_fK){return(F_bo)._b((F_cC)._b(new HSFun("F_b",0,function(){return(F_b)._ap([F_bn,(Number(exprEval((F_gy)._b(_fK))))>(0)])}),new HSFun("F_bp",0,function(){return(F_bp)._b((F_ce)._b(new HSFun("F_cC",0,function(){return(F_cC)._b(F_br,((F_fc)._ap([F_ha,F_eL]))._ap([_fK]))}),F_bH),new HSFun("F_bU",0,function(){return(F_bU)._ap([_et,_fK,_e2,_e3,_lz])}))})),(F_br)._b(new HSData((-6),[])))}),F_bW=new HSFun("F_bW",4,function(_et,_e2,_lz,_e3){return(F_bp)._b((F_bp)._b((F_cg)._b(_lz,F_bF),F_cd),new HSFun("F_bV",0,function(){return(F_bV)._ap([_et,_e2,_e3,_lz])}))}),F_bX=new HSFun("F_bX",4,function(_eY,_et,_lz,_e2){return(F_bp)._b((F_cl)._b(_eY,F_bD,new HSCons(F_bE,new HSEOL())),new HSFun("F_bW",0,function(){return(F_bW)._ap([_et,_e2,_lz])}))}),F_bY=new HSFun("F_bY",3,function(_et,_lz,_eY){return(F_bp)._b((F_cg)._b(_eY,F_bC),new HSFun("F_bX",0,function(){return(F_bX)._ap([_eY,_et,_lz])}))}),F_bZ=new HSFun("F_bZ",2,function(_lz,_et){return(F_bp)._b(F_cf,new HSFun("F_bY",0,function(){return(F_bY)._ap([_et,_lz])}))}),F_b0=new HSFun("F_b0",2,function(_lz,_eq){return(F_bo)._b((F_cC)._b(new HSFun("F_b",0,function(){return(F_b)._ap([F_bn,(Number(exprEval(_eq)))===(13)])}),new HSFun("F_bp",0,function(){return(F_bp)._b((F_ch)._b(0),new HSFun("F_bZ",0,function(){return(F_bZ)._ap([_lz])}))})),(F_br)._b(new HSData((-6),[])))}),F_b1="body",F_b2="createElement",F_b3="input",F_b4="id",F_b5="input-echo",F_b6="appendChild",F_b7="onkeypress",F_b8="focus",F_b9=new HSFun("F_b9",2,function(_io,_iH){return(F_bo)._b((F_cm)._b(_iH,F_b4,F_b5),(F_bo)._b((F_cl)._b(_io,F_b6,new HSCons(_iH,new HSEOL())),(F_bo)._b((F_ck)._b(_iH,F_b7,new HSFun("F_ci",0,function(){return(F_ci)._ap([_iH])})),(F_bo)._b((F_cl)._b(_iH,F_b8,new HSEOL()),(F_br)._b(new HSData((-6),[]))))))}),F_ca=new HSFun("F_ca",2,function(_ia,_io){return(F_bp)._b((F_cl)._b(_ia,F_b2,new HSCons(F_b3,new HSEOL())),new HSFun("F_b9",0,function(){return(F_b9)._ap([_io])}))}),F_cb=new HSFun("F_cb",1,function(_ia){return(F_bp)._b((F_cg)._b(_ia,F_b1),new HSFun("F_ca",0,function(){return(F_ca)._ap([_ia])}))}),F_cc=new HSFun("F_cc",1,function(a){return new HSData(conIdx['Echo.JS'],[new Number(exprEval(a))])}),F_cd=new HSFun("F_cd",1,function(a){return new HSData(conIdx['Echo.JS'],[new String(exprEval(a))])}),F_ce=new HSFun("F_ce",2,function(a,b){try{return exprEval(a)}catch(_e){return exprEval(b)._ap([_e])}}),F_cf=new HSFun("F_cf",0,function(){return new HSData(conIdx['Echo.JS'],[document])}),F_cg=new HSFun("F_cg",2,function(a,b){return new HSData(conIdx['Echo.JS'],[exprEval(a)[exprEval(b).toString()]])}),F_ch=new HSFun("F_ch",1,function(a){return new HSData(conIdx['Echo.JS'],[(new Date()).getTime()])}),F_ci=new HSFun("F_ci",2,function(_lz,_lA){return(F_bp)._b((F_bp)._b((F_cg)._b(_lA,F_bB),F_cc),new HSFun("F_b0",0,function(){return(F_b0)._ap([_lz])}))}),F_cj=new HSFun("F_cj",0,function(){return(F_bp)._b(F_cf,F_cb)}),F_ck=new HSFun("F_ck",3,function(a,b,c){exprEval(a)[exprEval(b).toString()]=function(e){if(!e)e=window.event;return exprEval(exprEval(c)._ap([e]))};return new HSData(conIdx['Echo.JS'],[])}),F_cl=new HSFun("F_cl",3,function(a,b,c){var a1=exprEval(a);return new HSData(conIdx['Echo.JS'],[cbrApply(a1[exprEval(b).toString()],a1,exprEval(c)._toArray())])}),F_cm=new HSFun("F_cm",3,function(a,b,c){exprEval(a)[exprEval(b).toString()]=exprEval(c);return new HSData(conIdx['Echo.JS'],[])}),F_cn=new HSFun("F_cn",3,function(_E,_bI,_bO){return(F_cG)._b(((F_co)._ap([_bI]))._ap([_bO]),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_cw",0,function(){return(F_cw)._ap([_E,_bI])}),(F_gz)._b(_bO),new HSEOL())}))}),F_co=new HSFun("F_co",2,function(_bI,_bJ){return(F_gg)._b(new HSFun("F_cu",0,function(){return(F_cu)._ap([_bI])}),(F_gz)._b(_bJ),new HSEOL())}),F_cp="Numeric.showIntAtBase: can\'t show negative numbers",F_cq=new HSFun("F_cq",1,function(_e){return(exprEval(_e))._f[0]}),F_cr=new HSFun("F_cr",1,function(_e){return(exprEval(_e))._f[1]}),F_cs="Numeric: Pattern match failure in function at 435:1-440:66.",F_ct=new HSFun("F_ct",3,function(_bL,_kJ,_kK){var c41=exprEval(_kJ);return function(_bM,_bN){var c42=exprEval(_bN);switch((c42)._t){case 2:return new HSCons(new HSData((-7),[_bM,_bL]),_kK);default:return _kK};throw ('X ('+this._n+') '+c42.toSource())}((c41)._f[0],(c41)._f[1])}),F_cu=new HSFun("F_cu",3,function(_bI,_kH,_kI){var c43=exprEval(_kH);return function(_bK,_bL){return(F_gg)._b(new HSFun("F_ct",0,function(){return(F_ct)._ap([_bL])}),(_bI)._ap([_bK]),_kI)}((c43)._f[0],(c43)._f[1])}),F_cv=new HSFun("F_cv",3,function(_E,_kD,_kE){var c44=exprEval(_kD);return function(_bT,_bU){return new HSCons(new HSData((-7),[((exprEval(_E))._f[5])._ap([_bT]),_bU]),_kE)}((c44)._f[0],(c44)._f[1])}),F_cw=new HSFun("F_cw",4,function(_E,_bI,_kB,_kC){var c45=exprEval(_kB);return function(_bP,_bQ){var c46=exprEval(_bP);switch((c46)._t){case 3:return function(_bR,_bS){var c47=exprEval(_bR);switch((c47).valueOf()){case 45:var c48=exprEval(_bS);switch((c48)._t){case 2:return(F_gg)._b(new HSFun("F_cv",0,function(){return(F_cv)._ap([_E])}),((F_co)._ap([_bI]))._ap([_bQ]),_kC);default:return _kC};throw ('X ('+this._n+') '+c48.toSource());default:return _kC};throw ('X ('+this._n+') '+c47.toSource())}((c46)._f[0],(c46)._f[1]);default:return _kC};throw ('X ('+this._n+') '+c46.toSource())}((c45)._f[0],(c45)._f[1])}),F_cx=new HSFun("F_cx",0,function(){return(F_bj)._ap([F_bg])}),F_cy=new HSFun("F_cy",2,function(_bH,_bI){var _E=new HSFun("_E",0,function(){return(exprEval(_bH))._f[0]});return(F_gJ)._b(false,new HSFun("F_cn",0,function(){return(F_cn)._ap([_E,_bI])}))}),F_cz=new HSFun("F_cz",1,function(_4){return(F_cA)._ap([_4,((exprEval((exprEval((exprEval(_4))._f[0]))._f[0]))._f[7])._ap([10]),F_V])}),F_cA=new HSFun("F_cA",5,function(_V,_W,_X,_Y,_Z){var c49=exprEval(((exprEval((exprEval((exprEval(_V))._f[0]))._f[1]))._f[1])._ap([_Y,((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c49)._t){case true:return(F_gn)._b(F_cp);case false:var c50=exprEval(F_gF);switch((c50)._t){case true:var _ld=new HSFun("_ld",0,function(){return _V}),_e=new HSFun("_e",0,function(){return((exprEval(_ld))._f[4])._ap([_Y,_W])}),_f=new HSFun("_f",0,function(){return(exprEval(_e))._f[0]}),_g=new HSFun("_g",0,function(){return(exprEval(_e))._f[1]}),_le=new HSFun("_le",0,function(){return _V}),_h=new HSFun("_h",0,function(){return new HSCons((_X)._ap([((F_gu)._b(_le,F_dF))._ap([_g])]),_Z)}),c51=exprEval(((exprEval((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[0]))._f[1])._ap([_f,((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c51)._t){case true:return _h;case false:return(F_cA)._b(_V,_W,_X,_f,_h)};throw ('X ('+this._n+') '+c51.toSource());case false:return(F_gn)._b(F_cs)};throw ('X ('+this._n+') '+c50.toSource())};throw ('X ('+this._n+') '+c49.toSource())}),F_cB=new HSFun("F_cB",4,function(_R,_S,_T,_U){var c52=exprEval(((exprEval((exprEval(_R))._f[1]))._f[1])._ap([_U,((exprEval((exprEval(_R))._f[0]))._f[7])._ap([0])]));switch((c52)._t){case true:return(F_gS)._b((Number(exprEval(_T)))>(6),(F_fc)._ap([(_S)._ap([((exprEval((exprEval(_R))._f[0]))._f[5])._ap([_U])]),(F_fW)._ap([mkChar(45)])]));case false:return(_S)._ap([_U])};throw ('X ('+this._n+') '+c52.toSource())}),F_cC=new HSFun("F_cC",2,function(_eK,_eL){return(_eK)._ap([_eL])}),F_cD=new HSFun("F_cD",2,function(_er,_es){var c53=exprEval(_er);switch((c53)._t){case true:return _es;case false:return false};throw ('X ('+this._n+') '+c53.toSource())}),F_cE=new HSFun("F_cE",1,function(_jC){return(exprEval(_jC))._f[2]}),F_cF=new HSFun("F_cF",1,function(_jD){return(exprEval(_jD))._f[3]}),F_cG=new HSFun("F_cG",2,function(_cp,_cq){var c54=exprEval(_cp);switch((c54)._t){case 2:return _cq;case 3:return function(_cr,_cs){return new HSCons(_cr,(F_cG)._b(_cs,_cq))}((c54)._f[0],(c54)._f[1])};throw ('X ('+this._n+') '+c54.toSource())}),F_cH=new HSFun("F_cH",1,function(_jE){return(exprEval(_jE))._f[4]}),F_cI=new HSFun("F_cI",2,function(_b9,_ca){return(F_fc)._ap([_ca,_b9])}),F_cJ=new HSFun("F_cJ",1,function(_jn){return(exprEval(_jn))._f[1]}),F_cK=new HSFun("F_cK",1,function(_jo){return(exprEval(_jo))._f[2]}),F_cL=new HSFun("F_cL",1,function(_jd){return(exprEval(_jd))._f[1]}),F_cM=new HSFun("F_cM",1,function(_jq){return(exprEval(_jq))._f[4]}),F_cN=new HSFun("F_cN",1,function(_jp){return(exprEval(_jp))._f[3]}),F_cO=new HSFun("F_cO",1,function(_f7){return _f7}),F_cP=new HSFun("F_cP",0,function(){return new HSData((-10),[F_cW,F_cV,F_cQ,F_cU,F_cX,F_cR,F_cT,F_cS])}),F_cQ=new HSFun("F_cQ",1,function(_hH){return new HSCons(_hH,(F_cQ)._b((exprEval(_hH))+(1)))}),F_cR=new HSFun("F_cR",2,function(_hF,_hG){return new HSCons(_hF,(F_cR)._b(_hG,(exprEval((2)*(exprEval(_hG))))-(exprEval(_hF))))}),F_cS=new HSFun("F_cS",3,function(_hK,_hL,_hM){return(F_e1)._b(F_cP,_hK,_hL,_hM)}),F_cT=new HSFun("F_cT",2,function(_hN,_hO){return(F_e2)._b(F_cP,_hN,_hO)}),F_cU=new HSFun("F_cU",1,function(_hI){return _hI}),F_cV=new HSFun("F_cV",1,function(_hP){return(F_e6)._b(F_cP,_hP)}),F_cW=new HSFun("F_cW",1,function(_hQ){return(F_fa)._b(F_cP,_hQ)}),F_cX=new HSFun("F_cX",1,function(_hJ){return _hJ}),F_cY=new HSFun("F_cY",0,function(){return new HSData((-10),[F_c5,F_c4,F_cZ,F_c3,F_c6,F_c0,F_c2,F_c1])}),F_cZ=new HSFun("F_cZ",1,function(_g2){return new HSCons(_g2,(F_cZ)._b((F_hF)._b(_g2,1)))}),F_c0=new HSFun("F_c0",2,function(_g0,_g1){return new HSCons(_g0,(F_c0)._b(_g1,(F_hF)._b((F_hM)._b(2,_g1),_g0)))}),F_c1=new HSFun("F_c1",3,function(_g7,_g8,_g9){return(F_e1)._b(F_cY,_g7,_g8,_g9)}),F_c2=new HSFun("F_c2",2,function(_ha,_hb){return(F_e2)._b(F_cY,_ha,_hb)}),F_c3=new HSFun("F_c3",1,function(_g3){return(F_hD)._b(_g3)}),F_c4=new HSFun("F_c4",1,function(_g5){return(F_hS)._b(_g5,1)}),F_c5=new HSFun("F_c5",1,function(_g6){return(F_hF)._b(_g6,1)}),F_c6=new HSFun("F_c6",1,function(_g4){return(F_hH)._b(_g4)}),F_c7=new HSFun("F_c7",1,function(_fq){var c55=exprEval(_fq);switch((c55)._t){case 17:return 0;case 13:return 1;case 15:return 2};throw ('X ('+this._n+') '+c55.toSource())}),F_c8=new HSFun("F_c8",0,function(){return new HSData((-7),[F_c9,F_da])}),F_c9=new HSFun("F_c9",2,function(_f5,_f6){return(F_eU)._b(F_c8,_f5,_f6)}),F_da=new HSFun("F_da",2,function(_f3,_f4){return(Number(exprEval(_f3)))===(Number(exprEval(_f4)))}),F_db=new HSFun("F_db",0,function(){return new HSData((-7),[F_dc,F_dd])}),F_dc=new HSFun("F_dc",2,function(_if,_ig){return(Number(exprEval(_if)))!==(Number(exprEval(_ig)))}),F_dd=new HSFun("F_dd",2,function(_ih,_ii){return(Number(exprEval(_ih)))===(Number(exprEval(_ii)))}),F_de=new HSFun("F_de",0,function(){return new HSData((-7),[F_df,F_dg])}),F_df=new HSFun("F_df",2,function(_gW,_gX){return(F_hN)._b(_gW,_gX)}),F_dg=new HSFun("F_dg",2,function(_gY,_gZ){return(F_hG)._b(_gY,_gZ)}),F_dh=new HSFun("F_dh",0,function(){return new HSData((-7),[F_di,F_dj])}),F_di=new HSFun("F_di",2,function(_fo,_fp){return(F_eU)._b(F_dh,_fo,_fp)}),F_dj=new HSFun("F_dj",2,function(_fj,_fk){return(Number(exprEval((F_c7)._b(_fj))))===(Number(exprEval((F_c7)._b(_fk))))}),F_dk=new HSFun("F_dk",1,function(_bW){return new HSData((-7),[new HSFun("F_dl",0,function(){return(F_dl)._ap([_bW])}),new HSFun("F_dm",0,function(){return(F_dm)._ap([_bW])})])}),F_dl=new HSFun("F_dl",3,function(_iP,_iQ,_iR){return(F_eU)._b(new HSFun("F_dk",0,function(){return(F_dk)._b(_iP)}),_iQ,_iR)}),F_dm=new HSFun("F_dm",3,function(_iI,_iJ,_iK){var c56=exprEval(_iJ);switch((c56)._t){case 2:var c57=exprEval(_iK);switch((c57)._t){case 2:return true;default:return false};throw ('X ('+this._n+') '+c57.toSource());case 3:return function(_iL,_iM){var c58=exprEval(_iK);switch((c58)._t){case 3:return function(_iN,_iO){return(F_cD)._b(((exprEval(_iI))._f[1])._ap([_iL,_iN]),new HSFun("F_dm",0,function(){return(F_dm)._b(_iI,_iM,_iO)}))}((c58)._f[0],(c58)._f[1]);default:return false};throw ('X ('+this._n+') '+c58.toSource())}((c56)._f[0],(c56)._f[1])};throw ('X ('+this._n+') '+c56.toSource())}),F_dn=new HSFun("F_dn",0,function(){return new HSData((-11),[F_eE,F_cP,F_dp,F_dq,F_ds,F_dt,F_du,F_dr,F_do])}),F_do=new HSFun("F_do",2,function(_hC,_hD){return(F_eZ)._b(F_dn,_hC,_hD)}),F_dp=new HSFun("F_dp",2,function(_hx,_hy){return(F_e0)._b(F_dn,_hx,_hy)}),F_dq=new HSFun("F_dq",2,function(_hp,_hq){var _k=new HSFun("_k",0,function(){return(exprEval(_hp))%(exprEval(_hq))}),c59=exprEval((Number(exprEval((F_hE)._b(_k))))===(Number(exprEval(NEG_W(exprEval((F_hE)._b(_hq)))))));switch((c59)._t){case true:return(exprEval(_k))+(exprEval(_hq));case false:return _k};throw ('X ('+this._n+') '+c59.toSource())}),F_dr=new HSFun("F_dr",2,function(_hv,_hw){return function(x,y){return(x-(x%y))/y}(Number(exprEval(_hv)),Number(exprEval(_hw)))}),F_ds=new HSFun("F_ds",2,function(_hr,_hs){return new HSData((-7),[function(x,y){return(x-(x%y))/y}(Number(exprEval(_hr)),Number(exprEval(_hs))),(exprEval(_hr))%(exprEval(_hs))])}),F_dt=new HSFun("F_dt",2,function(_ht,_hu){return(exprEval(_ht))%(exprEval(_hu))}),F_du=new HSFun("F_du",1,function(_ho){return(F_hH)._b(_ho)}),F_dv=new HSFun("F_dv",0,function(){return new HSData((-11),[F_eG,F_cY,F_dx,F_dy,F_dA,F_dB,F_dC,F_dz,F_dw])}),F_dw=new HSFun("F_dw",2,function(_gi,_gj){return(exprEval((F_dx)._b(_gi,_gj)))._f[0]}),F_dx=new HSFun("F_dx",2,function(_gv,_gw){return(F_e0)._b(F_dv,_gv,_gw)}),F_dy=new HSFun("F_dy",2,function(_gg,_gh){return(exprEval((F_dx)._b(_gg,_gh)))._f[1]}),F_dz=new HSFun("F_dz",2,function(_gm,_gn){return(F_hP)._b(_gm,_gn)}),F_dA=new HSFun("F_dA",2,function(_ge,_gf){return(F_hQ)._b(_ge,_gf)}),F_dB=new HSFun("F_dB",2,function(_gk,_gl){return(F_hR)._b(_gk,_gl)}),F_dC=new HSFun("F_dC",1,function(_gd){return _gd}),F_dD=new HSFun("F_dD",1,function(_jX){return(exprEval(_jX))._f[0]}),F_dE=new HSFun("F_dE",1,function(_jB){return(exprEval(_jB))._f[0]}),F_dF=new HSFun("F_dF",0,function(){return new HSData((-11),[F_db,F_eK,F_dG,F_dH,F_dI,F_dL,F_dM,F_dK,F_dJ])}),F_dG=new HSFun("F_dG",2,function(_hU,_hV){return(exprEval(_hU))*(exprEval(_hV))}),F_dH=new HSFun("F_dH",2,function(_hY,_hZ){return(exprEval(_hY))+(exprEval(_hZ))}),F_dI=new HSFun("F_dI",2,function(_hW,_hX){return(exprEval(_hW))-(exprEval(_hX))}),F_dJ=new HSFun("F_dJ",1,function(_hT){return(F_hC)._b(_hT)}),F_dK=new HSFun("F_dK",1,function(_hR){return(F_hD)._b(_hR)}),F_dL=new HSFun("F_dL",1,function(a){return 0-Number(exprEval(a))}),F_dM=new HSFun("F_dM",1,function(_hS){return(F_hE)._b(_hS)}),F_dN=new HSFun("F_dN",0,function(){return new HSData((-11),[F_de,F_eP,F_dO,F_dP,F_dQ,F_dT,F_dU,F_dS,F_dR])}),F_dO=new HSFun("F_dO",2,function(_gC,_gD){return(F_hM)._b(_gC,_gD)}),F_dP=new HSFun("F_dP",2,function(_gG,_gH){return(F_hF)._b(_gG,_gH)}),F_dQ=new HSFun("F_dQ",2,function(_gE,_gF){return(F_hS)._b(_gE,_gF)}),F_dR=new HSFun("F_dR",1,function(_gA){var c60=exprEval((F_hL)._b(_gA,0));switch((c60)._t){case true:return(F_hO)._b(_gA);case false:return _gA};throw ('X ('+this._n+') '+c60.toSource())}),F_dS=new HSFun("F_dS",1,function(_gy){return _gy}),F_dT=new HSFun("F_dT",1,function(_gB){return(F_hO)._b(_gB)}),F_dU=new HSFun("F_dU",1,function(_gz){var c61=exprEval((F_eh)._b(_gz,0));switch((c61)._t){case 17:return -1;case 13:return 0;case 15:return 1};throw ('X ('+this._n+') '+c61.toSource())}),F_dV=new HSFun("F_dV",0,function(){return new HSData((-10),[F_c8,F_dW,F_dX,F_dZ,F_dY,F_d0,F_d2,F_d1])}),F_dW=new HSFun("F_dW",2,function(_f1,_f2){return(F_eV)._b(F_dV,_f1,_f2)}),F_dX=new HSFun("F_dX",2,function(_fR,_fS){return(Number(exprEval(_fR)))<=(Number(exprEval(_fS)))}),F_dY=new HSFun("F_dY",2,function(_fX,_fY){return(F_eW)._b(F_dV,_fX,_fY)}),F_dZ=new HSFun("F_dZ",2,function(_fZ,_f0){return(F_eX)._b(F_dV,_fZ,_f0)}),F_d0=new HSFun("F_d0",2,function(_fP,_fQ){return(F_d9)._b(_fP,_fQ)}),F_d1=new HSFun("F_d1",2,function(_fV,_fW){return(F_e4)._b(F_dV,_fV,_fW)}),F_d2=new HSFun("F_d2",2,function(_fT,_fU){return(F_e5)._b(F_dV,_fT,_fU)}),F_d3=new HSFun("F_d3",1,function(_jm){return(exprEval(_jm))._f[0]}),F_d4=new HSFun("F_d4",0,function(){return new HSData((-10),[F_db,F_d5,F_d6,F_d8,F_d7,F_d9,F_eb,F_ea])}),F_d5=new HSFun("F_d5",2,function(_h6,_h7){return(Number(exprEval(_h6)))<(Number(exprEval(_h7)))}),F_d6=new HSFun("F_d6",2,function(_h4,_h5){return(Number(exprEval(_h4)))<=(Number(exprEval(_h5)))}),F_d7=new HSFun("F_d7",2,function(_h0,_h1){return(Number(exprEval(_h0)))>(Number(exprEval(_h1)))}),F_d8=new HSFun("F_d8",2,function(_h2,_h3){return(Number(exprEval(_h2)))>=(Number(exprEval(_h3)))}),F_d9=new HSFun("F_d9",2,function(_id,_ie){return(F_eY)._b(F_d4,_id,_ie)}),F_ea=new HSFun("F_ea",2,function(_ib,_ic){return(F_e4)._b(F_d4,_ib,_ic)}),F_eb=new HSFun("F_eb",2,function(_h8,_h9){return(F_e5)._b(F_d4,_h8,_h9)}),F_ec=new HSFun("F_ec",0,function(){return new HSData((-10),[F_de,F_ed,F_ee,F_eg,F_ef,F_eh,F_ej,F_ei])}),F_ed=new HSFun("F_ed",2,function(_gO,_gP){return(F_hL)._b(_gO,_gP)}),F_ee=new HSFun("F_ee",2,function(_gM,_gN){return(F_hK)._b(_gM,_gN)}),F_ef=new HSFun("F_ef",2,function(_gI,_gJ){return(F_hJ)._b(_gI,_gJ)}),F_eg=new HSFun("F_eg",2,function(_gK,_gL){return(F_hI)._b(_gK,_gL)}),F_eh=new HSFun("F_eh",2,function(_gU,_gV){return(F_eY)._b(F_ec,_gU,_gV)}),F_ei=new HSFun("F_ei",2,function(_gS,_gT){return(F_e4)._b(F_ec,_gS,_gT)}),F_ej=new HSFun("F_ej",2,function(_gQ,_gR){return(F_e5)._b(F_ec,_gQ,_gR)}),F_ek=new HSFun("F_ek",1,function(_cL){var c62=exprEval(_cL);switch((c62)._t){case 3:return function(_cM,_cN){var c63=exprEval(_cM);switch((c63).valueOf()){case 34:return new HSCons(new HSData((-7),[F_fl,_cN]),new HSEOL());default:return(F_gg)._b(F_fn,(F_el)._ap([_cL]),new HSEOL())};throw ('X ('+this._n+') '+c63.toSource())}((c62)._f[0],(c62)._f[1]);default:return(F_gg)._b(F_fn,(F_el)._ap([_cL]),new HSEOL())};throw ('X ('+this._n+') '+c62.toSource())}),F_el=new HSFun("F_el",1,function(_cE){var c64=exprEval(_cE);switch((c64)._t){case 3:return function(_cF,_cG){var c65=exprEval(_cF);switch((c65).valueOf()){case 92:var c66=exprEval(_cG);switch((c66)._t){case 3:return function(_cH,_cI){var c67=exprEval(_cH);switch((c67).valueOf()){case 38:return new HSCons(new HSData((-7),[F_fi,_cI]),new HSEOL());default:var c68=exprEval((F_Z)._b(_cH));switch((c68)._t){case true:return(F_gg)._b(F_fk,new HSCons((F_gl)._b(F_Z,_cI),new HSEOL()),new HSEOL());case false:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c68.toSource())};throw ('X ('+this._n+') '+c67.toSource())}((c66)._f[0],(c66)._f[1]);default:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c66.toSource());default:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c65.toSource())}((c64)._f[0],(c64)._f[1]);default:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c64.toSource())}),F_em=new HSFun("F_em",1,function(_dk){return((F_gm)._b(F_c8,_dk))._ap([F_fD])}),F_en=new HSFun("F_en",1,function(_dj){return((F_gm)._b(F_c8,_dj))._ap([F_fC])}),F_eo=new HSFun("F_eo",1,function(_di){return(F_g1)._b((F_W)._b(_di),(Number(exprEval(_di)))===(Number(exprEval(mkChar(95)))))}),F_ep=new HSFun("F_ep",1,function(_dh){return(F_g1)._b((F_X)._b(_dh),((F_gm)._b(F_c8,_dh))._ap([F_fB]))}),F_eq=new HSFun("F_eq",1,function(_c8){var c69=exprEval(_c8);switch((c69)._t){case 3:return function(_c9,_da){var c70=exprEval(_c9);switch((c70).valueOf()){case 46:var c71=exprEval(_da);switch((c71)._t){case 3:return function(_db,_dc){var c72=exprEval((F_bg)._b(_db));switch((c72)._t){case true:return(F_gg)._b(F_fA,(F_cx)._ap([new HSCons(_db,_dc)]),new HSEOL());case false:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c72.toSource())}((c71)._f[0],(c71)._f[1]);default:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c71.toSource());default:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c70.toSource())}((c69)._f[0],(c69)._f[1]);default:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c69.toSource())}),F_er=new HSFun("F_er",1,function(_cY){var c73=exprEval(_cY);switch((c73)._t){case 3:return function(_cZ,_c0){var c74=exprEval(((F_gm)._b(F_c8,_cZ))._ap([F_ft]));switch((c74)._t){case true:return(F_cG)._b((F_gg)._b(new HSFun("F_fw",0,function(){return(F_fw)._ap([_cZ])}),new HSCons(_c0,new HSEOL()),new HSEOL()),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_fx",0,function(){return(F_fx)._ap([_cZ])}),(F_cx)._ap([_c0]),new HSEOL())}));case false:return new HSCons(new HSData((-7),[F_fy,_cY]),new HSEOL())};throw ('X ('+this._n+') '+c74.toSource())}((c73)._f[0],(c73)._f[1]);default:return new HSCons(new HSData((-7),[F_fy,_cY]),new HSEOL())};throw ('X ('+this._n+') '+c73.toSource())}),F_es=new HSFun("F_es",2,function(_du,_dv){return(F_cG)._b((_du)._ap([_dv]),((F_et)._ap([_du]))._ap([_dv]))}),F_et=new HSFun("F_et",2,function(_du,_dw){return(F_gg)._b(new HSFun("F_fL",0,function(){return(F_fL)._ap([_du])}),(F_gz)._b(_dw),new HSEOL())}),F_eu=new HSFun("F_eu",3,function(_eD,_eE,_eF){var c75=exprEval(((exprEval((exprEval((exprEval((exprEval(_eD))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eF,((exprEval((exprEval((exprEval(_eD))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c75)._t){case true:return _eE;case false:return(F_eu)._ap([_eD,_eF,((exprEval(_eD))._f[5])._ap([_eE,_eF])])};throw ('X ('+this._n+') '+c75.toSource())}),F_ev=new HSFun("F_ev",2,function(_dY,_dZ){return(F_cG)._b((F_gg)._b(F_fQ,(F_gz)._b(_dZ),new HSEOL()),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_fS",0,function(){return(F_fS)._ap([_dY])}),((exprEval(_dY))._f[0])._ap([0,_dZ]),new HSEOL())}))}),F_ew=new HSFun("F_ew",2,function(_dK,_dL){return(F_cG)._b((F_gg)._b(F_fM,(F_gz)._b(_dL),new HSEOL()),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_fP",0,function(){return(F_fP)._ap([_dK])}),(F_gz)._b(_dL),new HSEOL())}))}),F_ex=new HSFun("F_ex",2,function(_ek,_el){var c76=exprEval(_el);switch((c76)._t){case 2:return(F_fW)._ap([mkChar(93)]);case 3:return function(_em,_en){return(F_fc)._ap([(F_fc)._ap([(F_ex)._ap([_ek,_en]),((exprEval(_ek))._f[0])._ap([0,_em])]),(F_gT)._ap([F_fY])])}((c76)._f[0],(c76)._f[1])};throw ('X ('+this._n+') '+c76.toSource())}),F_ey=new HSFun("F_ey",2,function(_iD,_iE){var c77=exprEval(_iE);switch((c77)._t){case 2:return _iD;case 3:return function(_iF,_iG){var _u=new HSFun("_u",0,function(){return(exprEval(_iD))+(1)});return(F_gP)._b(_u,(F_ey)._ap([_u,_iG]))}((c77)._f[0],(c77)._f[1])};throw ('X ('+this._n+') '+c77.toSource())}),F_ez=new HSFun("F_ez",3,function(_hg,_hh,_hi){return(F_gB)._b(new HSFun("F_f8",0,function(){return(F_f8)._ap([_hg])}),((F_eD)._b(_hh))._ap([_hi]))}),F_eA=new HSFun("F_eA",0,function(){return new HSData((-7),[F_eC,F_eB])}),F_eB=new HSFun("F_eB",0,function(){return(F_e7)._b(F_eA)}),F_eC=new HSFun("F_eC",1,function(_hf){return(F_f9)._ap([_hf])}),F_eD=new HSFun("F_eD",1,function(v25828){return(F_cy)._b(F_eG,new HSFun("F_bl",0,function(){return(F_bl)._b(F_dv)}))}),F_eE=new HSFun("F_eE",0,function(){return new HSData((-8),[F_dF,F_d4,F_eF])}),F_eF=new HSFun("F_eF",1,function(_hE){return(F_6)._b(F_dv,(F_hH)._b(_hE),1)}),F_eG=new HSFun("F_eG",0,function(){return new HSData((-8),[F_dN,F_ec,F_eH])}),F_eH=new HSFun("F_eH",1,function(_gx){return(F_6)._b(F_dv,_gx,1)}),F_eI=new HSFun("F_eI",1,function(_jM){return(exprEval(_jM))._f[0]}),F_eJ=new HSFun("F_eJ",1,function(_jN){return(exprEval(_jN))._f[1]}),F_eK=new HSFun("F_eK",0,function(){return new HSData((-9),[F_eN,F_eO,F_eM,F_eL])}),F_eL=new HSFun("F_eL",1,function(_hn){return(F_e8)._b(F_eK,_hn)}),F_eM=new HSFun("F_eM",1,function(_hm){return(F_e9)._b(F_eK,_hm)}),F_eN=new HSFun("F_eN",2,function(_kn,_ko){var c78=exprEval((Number(exprEval(_ko)))<(0));switch((c78)._t){case true:return(F_gS)._b((Number(exprEval(_kn)))>(6),(F_fc)._ap([(F_hh)._ap([new HSFun("F_dL",0,function(){return(F_dL)._b(_ko)})]),(F_fW)._ap([mkChar(45)])]));case false:return(F_hh)._ap([_ko])};throw ('X ('+this._n+') '+c78.toSource())}),F_eO=new HSFun("F_eO",1,function(v26141){return(F_gT)._ap([F_ga])}),F_eP=new HSFun("F_eP",0,function(){return new HSData((-9),[F_eS,F_eT,F_eR,F_eQ])}),F_eQ=new HSFun("F_eQ",1,function(_gc){return(F_e8)._b(F_eP,_gc)}),F_eR=new HSFun("F_eR",1,function(_gb){return(F_e9)._b(F_eP,_gb)}),F_eS=new HSFun("F_eS",2,function(_f9,_ga){return(F_cB)._b(F_eG,new HSFun("F_cz",0,function(){return(F_cz)._b(F_dv)}),_f9,_ga)}),F_eT=new HSFun("F_eT",1,function(v25823){return(F_gT)._ap([F_f5])}),F_eU=new HSFun("F_eU",3,function(_fl,_fm,_fn){return(F_gD)._b(((exprEval(_fl))._f[1])._ap([_fm,_fn]))}),F_eV=new HSFun("F_eV",3,function(_fg,_fh,_fi){return(F_dj)._b(((exprEval(_fg))._f[5])._ap([_fh,_fi]),new HSData(17,[]))}),F_eW=new HSFun("F_eW",3,function(_fa,_fb,_fc){return(F_dj)._b(((exprEval(_fa))._f[5])._ap([_fb,_fc]),new HSData(15,[]))}),F_eX=new HSFun("F_eX",3,function(_fd,_fe,_ff){return(F_di)._b(((exprEval(_fd))._f[5])._ap([_fe,_ff]),new HSData(17,[]))}),F_eY=new HSFun("F_eY",3,function(_fL,_fM,_fN){var c79=exprEval(((exprEval((exprEval(_fL))._f[0]))._f[1])._ap([_fM,_fN]));switch((c79)._t){case true:return new HSData(13,[]);case false:var c80=exprEval(((exprEval(_fL))._f[2])._ap([_fM,_fN]));switch((c80)._t){case true:return new HSData(17,[]);case false:return new HSData(15,[])};throw ('X ('+this._n+') '+c80.toSource())};throw ('X ('+this._n+') '+c79.toSource())}),F_eZ=new HSFun("F_eZ",3,function(_hz,_hA,_hB){return(exprEval(((exprEval(_hz))._f[2])._ap([_hA,_hB])))._f[0]}),F_e0=new HSFun("F_e0",3,function(_go,_gp,_gq){var _Q=new HSFun("_Q",0,function(){return _go}),_r=new HSFun("_r",0,function(){return((exprEval(_Q))._f[4])._ap([_gp,_gq])}),_i=new HSFun("_i",0,function(){return _r}),_s=new HSFun("_s",0,function(){return(exprEval(_i))._f[0]}),_t=new HSFun("_t",0,function(){return(exprEval(_i))._f[1]}),c81=exprEval(((exprEval((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[0]))._f[1])._ap([((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[6])._ap([_t]),((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[5])._ap([((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[6])._ap([_gq])])]));switch((c81)._t){case true:return new HSData((-7),[((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[4])._ap([_s,((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[7])._ap([1])]),((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[3])._ap([_t,_gq])]);case false:return _r};throw ('X ('+this._n+') '+c81.toSource())}),F_e1=new HSFun("F_e1",4,function(_fz,_fA,_fB,_fC){var _L=new HSFun("_L",0,function(){return _fz}),_o=new HSFun("_o",0,function(){return((exprEval(_L))._f[3])._ap([_fB])}),_M=new HSFun("_M",0,function(){return _fz}),_n=new HSFun("_n",0,function(){return((exprEval(_M))._f[3])._ap([_fA])}),_q=new HSFun("_q",0,function(){return(exprEval(_o))-(exprEval(_n))}),_N=new HSFun("_N",0,function(){return _fz}),_p=new HSFun("_p",0,function(){return((exprEval(_N))._f[3])._ap([_fC])}),c82=exprEval((Number(exprEval(_q)))>=(0));switch((c82)._t){case true:return(F_ge)._b(_fz,_n,_q,_p);case false:return(F_gd)._b(_fz,_n,_q,_p)};throw ('X ('+this._n+') '+c82.toSource())}),F_e2=new HSFun("F_e2",3,function(_fD,_fE,_fF){var _O=new HSFun("_O",0,function(){return _fD}),_m=new HSFun("_m",0,function(){return((exprEval(_O))._f[3])._ap([_fF])}),_P=new HSFun("_P",0,function(){return _fD}),_l=new HSFun("_l",0,function(){return((exprEval(_P))._f[3])._ap([_fE])}),c83=exprEval((F_d9)._b(_l,_m));switch((c83)._t){case 17:return(F_ge)._b(_fD,_l,1,_m);case 13:return new HSCons(_fE,new HSEOL());case 15:return new HSEOL()};throw ('X ('+this._n+') '+c83.toSource())}),F_e3=new HSFun("F_e3",2,function(v25368,_e1){return(F_gn)._b(_e1)}),F_e4=new HSFun("F_e4",3,function(_e7,_e8,_e9){var c84=exprEval(((exprEval(_e7))._f[3])._ap([_e8,_e9]));switch((c84)._t){case true:return _e8;case false:return _e9};throw ('X ('+this._n+') '+c84.toSource())}),F_e5=new HSFun("F_e5",3,function(_e4,_e5,_e6){var c85=exprEval(((exprEval(_e4))._f[2])._ap([_e5,_e6]));switch((c85)._t){case true:return _e5;case false:return _e6};throw ('X ('+this._n+') '+c85.toSource())}),F_e6=new HSFun("F_e6",2,function(_fG,_fH){return((F_fc)._ap([(F_fc)._ap([new HSFun("F_gs",0,function(){return(exprEval(_fG))._f[3]}),((F_gY)._b(F_dF))._ap([1])]),(exprEval(_fG))._f[4]]))._ap([_fH])}),F_e7=new HSFun("F_e7",1,function(_dJ){return(F_gJ)._b(false,new HSFun("F_fV",0,function(){return(F_fV)._ap([_dJ])}))}),F_e8=new HSFun("F_e8",2,function(_eo,_ep){return((exprEval(_eo))._f[0])._ap([0,_ep,F_fZ])}),F_e9=new HSFun("F_e9",2,function(_eg,_eh){var c86=exprEval(_eh);switch((c86)._t){case 2:return(F_gT)._ap([F_fX]);case 3:return function(_ei,_ej){return(F_fc)._ap([(F_fc)._ap([(F_ex)._ap([_eg,_ej]),((exprEval(_eg))._f[0])._ap([0,_ei])]),(F_fW)._ap([mkChar(91)])])}((c86)._f[0],(c86)._f[1])};throw ('X ('+this._n+') '+c86.toSource())}),F_fa=new HSFun("F_fa",2,function(_fI,_fJ){return((F_fc)._ap([(F_fc)._ap([new HSFun("F_gs",0,function(){return(exprEval(_fI))._f[3]}),new HSFun("F_go",0,function(){return(F_go)._ap([F_dH,1])})]),(exprEval(_fI))._f[4]]))._ap([_fJ])}),F_fb="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 592:1-594:31.",F_fc=new HSFun("F_fc",3,function(_ca,_b9,_bV){return(_b9)._ap([(_ca)._ap([_bV])])}),F_fd=new HSFun("F_fd",1,function(_j){return(exprEval(_j))._f[0]}),F_fe=new HSFun("F_fe",1,function(_j){return(exprEval(_j))._f[1]}),F_ff="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 736:1-738:32.",F_fg="",F_fh="",F_fi="\\&",F_fj="\\&",F_fk=new HSFun("F_fk",2,function(_bb,_bc){var c87=exprEval(_bb);switch((c87)._t){case 3:return function(_cJ,_cK){var c88=exprEval(_cJ);switch((c88).valueOf()){case 92:return new HSCons(new HSData((-7),[F_fj,_cK]),_bc);default:return _bc};throw ('X ('+this._n+') '+c88.toSource())}((c87)._f[0],(c87)._f[1]);default:return _bc};throw ('X ('+this._n+') '+c87.toSource())}),F_fl="\"",F_fm=new HSFun("F_fm",3,function(_cO,_9,_ba){var c89=exprEval(_9);return function(_cQ,_cR){return new HSCons(new HSData((-7),[new HSFun("F_cG",0,function(){return(F_cG)._b(_cO,_cQ)}),_cR]),_ba)}((c89)._f[0],(c89)._f[1])}),F_fn=new HSFun("F_fn",2,function(_7,_8){var c90=exprEval(_7);return function(_cO,_cP){return(F_gg)._b(new HSFun("F_fm",0,function(){return(F_fm)._ap([_cO])}),(F_ek)._ap([_cP]),_8)}((c90)._f[0],(c90)._f[1])}),F_fo=new HSFun("F_fo",2,function(_bd,_be){var c91=exprEval(_bd);return function(_cS,_cT){return new HSCons(new HSData((-7),[new HSCons(mkChar(34),_cS),_cT]),_be)}((c91)._f[0],(c91)._f[1])}),F_fp="\'",F_fq="\'",F_fr=new HSFun("F_fr",3,function(_cU,_cX,_j8){return new HSCons(new HSData((-7),[new HSCons(mkChar(39),(F_cG)._b(_cU,F_fq)),_cX]),_j8)}),F_fs=new HSFun("F_fs",2,function(_5,_6){var c92=exprEval(_5);return function(_cU,_cV){var c93=exprEval(_cV);switch((c93)._t){case 3:return function(_cW,_cX){var c94=exprEval(_cW);switch((c94).valueOf()){case 39:return(F_gf)._b((F_dl)._b(F_c8,_cU,F_fp),new HSFun("F_fr",0,function(){return(F_fr)._ap([_cU,_cX])}),_6);default:return _6};throw ('X ('+this._n+') '+c94.toSource())}((c93)._f[0],(c93)._f[1]);default:return _6};throw ('X ('+this._n+') '+c93.toSource())}((c92)._f[0],(c92)._f[1])}),F_ft="eE",F_fu="+-",F_fv=new HSFun("F_fv",4,function(_cZ,_c1,_bl,_bm){var c95=exprEval(_bl);return function(_c3,_c4){return new HSCons(new HSData((-7),[new HSCons(_cZ,new HSCons(_c1,_c3)),_c4]),_bm)}((c95)._f[0],(c95)._f[1])}),F_fw=new HSFun("F_fw",3,function(_cZ,_bj,_bk){var c96=exprEval(_bj);switch((c96)._t){case 3:return function(_c1,_c2){return(F_gf)._b(((F_gm)._b(F_c8,_c1))._ap([F_fu]),new HSFun("F_gg",0,function(){return(F_gg)._ap([new HSFun("F_fv",0,function(){return(F_fv)._ap([_cZ,_c1])}),(F_cx)._ap([_c2])])}),_bk)}((c96)._f[0],(c96)._f[1]);default:return _bk};throw ('X ('+this._n+') '+c96.toSource())}),F_fx=new HSFun("F_fx",3,function(_cZ,_bn,_bo){var c97=exprEval(_bn);return function(_c5,_c6){return new HSCons(new HSData((-7),[new HSCons(_cZ,_c5),_c6]),_bo)}((c97)._f[0],(c97)._f[1])}),F_fy="",F_fz=new HSFun("F_fz",3,function(_dd,_bh,_bi){var c98=exprEval(_bh);return function(_df,_dg){return new HSCons(new HSData((-7),[new HSCons(mkChar(46),(F_cG)._b(_dd,_df)),_dg]),_bi)}((c98)._f[0],(c98)._f[1])}),F_fA=new HSFun("F_fA",2,function(_bf,_bg){var c99=exprEval(_bf);return function(_dd,_de){return(F_gg)._b(new HSFun("F_fz",0,function(){return(F_fz)._ap([_dd])}),(F_er)._ap([_de]),_bg)}((c99)._f[0],(c99)._f[1])}),F_fB="_\'",F_fC="!@#$%&*+./<=>\u003f\\^|:-~",F_fD=",;()[]{}`",F_fE=new HSFun("F_fE",3,function(_cC,_bp,_bq){var c100=exprEval(_bp);return function(_dl,_dm){return new HSCons(new HSData((-7),[new HSCons(_cC,_dl),_dm]),_bq)}((c100)._f[0],(c100)._f[1])}),F_fF=new HSFun("F_fF",3,function(_cC,_br,_bs){var c101=exprEval(_br);return function(_dn,_do){return new HSCons(new HSData((-7),[new HSCons(_cC,_dn),_do]),_bs)}((c101)._f[0],(c101)._f[1])}),F_fG=new HSFun("F_fG",4,function(_cC,_dp,_bv,_bw){var c102=exprEval(_bv);return function(_dr,_ds){return new HSCons(new HSData((-7),[new HSCons(_cC,(F_cG)._b(_dp,_dr)),_ds]),_bw)}((c102)._f[0],(c102)._f[1])}),F_fH=new HSFun("F_fH",3,function(_cC,_bt,_bu){var c103=exprEval(_bt);return function(_dp,_dq){return(F_gg)._b(new HSFun("F_fG",0,function(){return(F_fG)._ap([_cC,_dp])}),(F_eq)._ap([_dq]),_bu)}((c103)._f[0],(c103)._f[1])}),F_fI="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 1664:1-1701:35.",F_fJ=new HSFun("F_fJ",3,function(_dB,_bF,_bG){var c104=exprEval(_bF);return function(_dD,_dE){var c105=exprEval(_dD);switch((c105)._t){case 3:return function(_dF,_dG){var c106=exprEval(_dF);switch((c106).valueOf()){case 41:var c107=exprEval(_dG);switch((c107)._t){case 2:return new HSCons(new HSData((-7),[_dB,_dE]),_bG);default:return _bG};throw ('X ('+this._n+') '+c107.toSource());default:return _bG};throw ('X ('+this._n+') '+c106.toSource())}((c105)._f[0],(c105)._f[1]);default:return _bG};throw ('X ('+this._n+') '+c105.toSource())}((c104)._f[0],(c104)._f[1])}),F_fK=new HSFun("F_fK",2,function(_bD,_bE){var c108=exprEval(_bD);return function(_dB,_dC){return(F_gg)._b(new HSFun("F_fJ",0,function(){return(F_fJ)._ap([_dB])}),(F_gz)._b(_dC),_bE)}((c108)._f[0],(c108)._f[1])}),F_fL=new HSFun("F_fL",3,function(_du,_bB,_bC){var c109=exprEval(_bB);return function(_dx,_dy){var c110=exprEval(_dx);switch((c110)._t){case 3:return function(_dz,_dA){var c111=exprEval(_dz);switch((c111).valueOf()){case 40:var c112=exprEval(_dA);switch((c112)._t){case 2:return(F_gg)._b(F_fK,((F_es)._ap([_du]))._ap([_dy]),_bC);default:return _bC};throw ('X ('+this._n+') '+c112.toSource());default:return _bC};throw ('X ('+this._n+') '+c111.toSource())}((c110)._f[0],(c110)._f[1]);default:return _bC};throw ('X ('+this._n+') '+c110.toSource())}((c109)._f[0],(c109)._f[1])}),F_fM=new HSFun("F_fM",2,function(_lm,_ln){var c113=exprEval(_lm);return function(_dM,_dN){var c114=exprEval(_dM);switch((c114)._t){case 3:return function(_dO,_dP){var c115=exprEval(_dO);switch((c115).valueOf()){case 93:var c116=exprEval(_dP);switch((c116)._t){case 2:return new HSCons(new HSData((-7),[new HSEOL(),_dN]),_ln);default:return _ln};throw ('X ('+this._n+') '+c116.toSource());default:return _ln};throw ('X ('+this._n+') '+c115.toSource())}((c114)._f[0],(c114)._f[1]);default:return _ln};throw ('X ('+this._n+') '+c114.toSource())}((c113)._f[0],(c113)._f[1])}),F_fN=new HSFun("F_fN",3,function(_dU,_ls,_lt){var c117=exprEval(_ls);return function(_dW,_dX){return new HSCons(new HSData((-7),[new HSCons(_dU,_dW),_dX]),_lt)}((c117)._f[0],(c117)._f[1])}),F_fO=new HSFun("F_fO",3,function(_dK,_lq,_lr){var c118=exprEval(_lq);return function(_dU,_dV){return(F_gg)._b(new HSFun("F_fN",0,function(){return(F_fN)._ap([_dU])}),(F_ew)._ap([_dK,_dV]),_lr)}((c118)._f[0],(c118)._f[1])}),F_fP=new HSFun("F_fP",3,function(_dK,_lo,_lp){var c119=exprEval(_lo);return function(_dQ,_dR){var c120=exprEval(_dQ);switch((c120)._t){case 3:return function(_dS,_dT){var c121=exprEval(_dS);switch((c121).valueOf()){case 44:var c122=exprEval(_dT);switch((c122)._t){case 2:return(F_gg)._b(new HSFun("F_fO",0,function(){return(F_fO)._ap([_dK])}),((exprEval(_dK))._f[0])._ap([0,_dR]),_lp);default:return _lp};throw ('X ('+this._n+') '+c122.toSource());default:return _lp};throw ('X ('+this._n+') '+c121.toSource())}((c120)._f[0],(c120)._f[1]);default:return _lp};throw ('X ('+this._n+') '+c120.toSource())}((c119)._f[0],(c119)._f[1])}),F_fQ=new HSFun("F_fQ",2,function(_lg,_lh){var c123=exprEval(_lg);return function(_d0,_d1){var c124=exprEval(_d0);switch((c124)._t){case 3:return function(_d2,_d3){var c125=exprEval(_d2);switch((c125).valueOf()){case 93:var c126=exprEval(_d3);switch((c126)._t){case 2:return new HSCons(new HSData((-7),[new HSEOL(),_d1]),_lh);default:return _lh};throw ('X ('+this._n+') '+c126.toSource());default:return _lh};throw ('X ('+this._n+') '+c125.toSource())}((c124)._f[0],(c124)._f[1]);default:return _lh};throw ('X ('+this._n+') '+c124.toSource())}((c123)._f[0],(c123)._f[1])}),F_fR=new HSFun("F_fR",3,function(_d4,_lk,_ll){var c127=exprEval(_lk);return function(_d6,_d7){return new HSCons(new HSData((-7),[new HSCons(_d4,_d6),_d7]),_ll)}((c127)._f[0],(c127)._f[1])}),F_fS=new HSFun("F_fS",3,function(_dY,_li,_lj){var c128=exprEval(_li);return function(_d4,_d5){return(F_gg)._b(new HSFun("F_fR",0,function(){return(F_fR)._ap([_d4])}),(F_ew)._ap([_dY,_d5]),_lj)}((c128)._f[0],(c128)._f[1])}),F_fT=new HSFun("F_fT",2,function(_lx,_ly){return new HSCons(_lx,_ly)}),F_fU=new HSFun("F_fU",3,function(_dJ,_lv,_lw){var c129=exprEval(_lv);return function(_d8,_d9){var c130=exprEval(_d8);switch((c130)._t){case 3:return function(_ea,_eb){var c131=exprEval(_ea);switch((c131).valueOf()){case 91:var c132=exprEval(_eb);switch((c132)._t){case 2:return(F_gg)._b(F_fT,(F_ev)._ap([_dJ,_d9]),_lw);default:return _lw};throw ('X ('+this._n+') '+c132.toSource());default:return _lw};throw ('X ('+this._n+') '+c131.toSource())}((c130)._f[0],(c130)._f[1]);default:return _lw};throw ('X ('+this._n+') '+c130.toSource())}((c129)._f[0],(c129)._f[1])}),F_fV=new HSFun("F_fV",2,function(_dJ,_lu){return(F_gg)._b(new HSFun("F_fU",0,function(){return(F_fU)._ap([_dJ])}),(F_gz)._b(_lu),new HSEOL())}),F_fW=new HSFun("F_fW",2,function(_ka,_j9){return new HSCons(_ka,_j9)}),F_fX="[]",F_fY=",",F_fZ="",F_f0="Prelude.gcd: gcd 0 0 is undefined.",F_f1=new HSFun("F_f1",3,function(_eO,_bz,_bA){var c133=exprEval(_bz);return function(_eQ,_eR){var c134=exprEval(_eQ);switch((c134)._t){case 2:var c135=exprEval(_eR);switch((c135)._t){case 2:return new HSCons(_eO,_bA);default:return _bA};throw ('X ('+this._n+') '+c135.toSource());default:return _bA};throw ('X ('+this._n+') '+c134.toSource())}((c133)._f[0],(c133)._f[1])}),F_f2=new HSFun("F_f2",2,function(_bx,_by){var c136=exprEval(_bx);return function(_eO,_eP){return(F_gg)._b(new HSFun("F_f1",0,function(){return(F_f1)._ap([_eO])}),(F_gz)._b(_eP),_by)}((c136)._f[0],(c136)._f[1])}),F_f3="Prelude.read: no parse",F_f4="Prelude.read: ambiguous parse",F_f5="Integer",F_f6=new HSFun("F_f6",1,function(_i){return(exprEval(_i))._f[0]}),F_f7=new HSFun("F_f7",1,function(_i){return(exprEval(_i))._f[1]}),F_f8=new HSFun("F_f8",2,function(_hg,_hj){var c137=exprEval(_hj);return function(_hk,_hl){return new HSData((-7),[((exprEval(_hg))._f[7])._ap([_hk]),_hl])}((c137)._f[0],(c137)._f[1])}),F_f9=new HSFun("F_f9",2,function(_hf,_ki){return(F_ez)._ap([F_dF,_hf,_ki])}),F_ga="Int",F_gb=new HSFun("F_gb",2,function(_kc,_kb){return new HSCons(_kc,_kb)}),F_gc="PreludeList.foldl1: empty list",F_gd=new HSFun("F_gd",4,function(_fv,_fw,_fx,_fy){var c138=exprEval((F_d9)._b(_fw,_fy));switch((c138)._t){case 17:return new HSEOL();case 13:return new HSCons(((exprEval(_fv))._f[4])._ap([_fw]),new HSEOL());case 15:return new HSCons(((exprEval(_fv))._f[4])._ap([_fw]),(F_gd)._b(_fv,(exprEval(_fw))+(exprEval(_fx)),_fx,_fy))};throw ('X ('+this._n+') '+c138.toSource())}),F_ge=new HSFun("F_ge",4,function(_fr,_fs,_ft,_fu){var c139=exprEval((F_d9)._b(_fs,_fu));switch((c139)._t){case 17:return new HSCons(((exprEval(_fr))._f[4])._ap([_fs]),(F_ge)._b(_fr,(exprEval(_fs))+(exprEval(_ft)),_ft,_fu));case 13:return new HSCons(((exprEval(_fr))._f[4])._ap([_fs]),new HSEOL());case 15:return new HSEOL()};throw ('X ('+this._n+') '+c139.toSource())}),F_gf=new HSFun("F_gf",3,function(_b6,_b7,_b8){var c140=exprEval(_b6);switch((c140)._t){case true:return(_b7)._ap([_b8]);case false:return _b8};throw ('X ('+this._n+') '+c140.toSource())}),F_gg=new HSFun("F_gg",3,function(_bX,_bY,_bZ){var c141=exprEval(_bY);switch((c141)._t){case 2:return _bZ;case 3:return function(_b0,_b1){return(_bX)._ap([_b0,new HSFun("F_gg",0,function(){return(F_gg)._b(_bX,_b1,_bZ)})])}((c141)._f[0],(c141)._f[1])};throw ('X ('+this._n+') '+c141.toSource())}),F_gh=new HSFun("F_gh",1,function(_jI){return(exprEval(_jI))._f[8]}),F_gi=new HSFun("F_gi",1,function(_cm){return(F_fc)._ap([new HSFun("F_gB",0,function(){return(F_gB)._ap([_cm])}),F_gE])}),F_gj=new HSFun("F_gj",1,function(_jr){return(exprEval(_jr))._f[5]}),F_gk=new HSFun("F_gk",1,function(_jY){return(exprEval(_jY))._f[2]}),F_gl=new HSFun("F_gl",2,function(_b2,_b3){var c142=exprEval(_b3);switch((c142)._t){case 2:return new HSEOL();case 3:return function(_b4,_b5){var c143=exprEval((_b2)._ap([_b4]));switch((c143)._t){case true:return(F_gl)._b(_b2,_b5);case false:var c144=exprEval(F_gF);switch((c144)._t){case true:return _b3;case false:return(F_gn)._b(F_fb)};throw ('X ('+this._n+') '+c144.toSource())};throw ('X ('+this._n+') '+c143.toSource())}((c142)._f[0],(c142)._f[1])};throw ('X ('+this._n+') '+c142.toSource())}),F_gm=new HSFun("F_gm",2,function(_cn,_co){return(F_gi)._b(((exprEval(_cn))._f[1])._ap([_co]))}),F_gn=new HSFun("F_gn",1,function(a){throw ('E '+exprEval(a).toString());return undefined}),F_go=new HSFun("F_go",3,function(_eH,_eI,_eJ){return(_eH)._ap([_eJ,_eI])}),F_gp=new HSFun("F_gp",3,function(_ij,_ik,_il){var c145=exprEval(_il);switch((c145)._t){case 2:return _ik;case 3:return function(_im,_in){return(F_gp)._b(_ij,(_ij)._ap([_ik,_im]),_in)}((c145)._f[0],(c145)._f[1])};throw ('X ('+this._n+') '+c145.toSource())}),F_gq=new HSFun("F_gq",2,function(_ip,_iq){var c146=exprEval(_iq);switch((c146)._t){case 2:return(F_gn)._b(F_gc);case 3:return function(_ir,_is){return(F_gp)._b(_ip,_ir,_is)}((c146)._f[0],(c146)._f[1])};throw ('X ('+this._n+') '+c146.toSource())}),F_gr=new HSFun("F_gr",3,function(_cb,_cc,_cd){var c147=exprEval(_cd);switch((c147)._t){case 2:return _cc;case 3:return function(_ce,_cf){return(_cb)._ap([_ce,new HSFun("F_gr",0,function(){return(F_gr)._b(_cb,_cc,_cf)})])}((c147)._f[0],(c147)._f[1])};throw ('X ('+this._n+') '+c147.toSource())}),F_gs=new HSFun("F_gs",1,function(_i0){return(exprEval(_i0))._f[3]}),F_gt=new HSFun("F_gt",1,function(_jH){return(exprEval(_jH))._f[7]}),F_gu=new HSFun("F_gu",2,function(_eZ,_e0){return(F_fc)._ap([new HSFun("F_g0",0,function(){return(exprEval(_eZ))._f[6]}),(exprEval(_e0))._f[7]])}),F_gv=new HSFun("F_gv",1,function(_eu){return(exprEval(_eu))._f[0]}),F_gw=new HSFun("F_gw",3,function(_eA,_eB,_eC){var c148=exprEval(((exprEval((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eB,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c148)._t){case true:var c149=exprEval(((exprEval((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eC,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c149)._t){case true:return(F_gn)._b(F_f0);case false:return(F_eu)._ap([_eA,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eB]),((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eC])])};throw ('X ('+this._n+') '+c149.toSource());case false:return(F_eu)._ap([_eA,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eB]),((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eC])])};throw ('X ('+this._n+') '+c148.toSource())}),F_gx=new HSFun("F_gx",1,function(_eG){return _eG}),F_gy=new HSFun("F_gy",1,function(_iA){var c150=exprEval(_iA);switch((c150)._t){case 2:return 0;case 3:return function(_iB,_iC){return(F_ey)._ap([1,_iC])}((c150)._f[0],(c150)._f[1])};throw ('X ('+this._n+') '+c150.toSource())}),F_gz=new HSFun("F_gz",1,function(_cB){var c151=exprEval(_cB);switch((c151)._t){case 2:return new HSCons(new HSData((-7),[F_fg,F_fh]),new HSEOL());case 3:return function(_cC,_cD){var c152=exprEval((F_Z)._b(_cC));switch((c152)._t){case true:return(F_gz)._b((F_gl)._b(F_Z,_cD));case false:var c153=exprEval(_cC);switch((c153).valueOf()){case 34:return(F_gg)._b(F_fo,(F_ek)._ap([_cD]),new HSEOL());case 39:return(F_gg)._b(F_fs,(F_1)._b(_cD),new HSEOL());default:var c154=exprEval((F_em)._ap([_cC]));switch((c154)._t){case true:return new HSCons(new HSData((-7),[new HSCons(_cC,new HSEOL()),_cD]),new HSEOL());case false:var c155=exprEval((F_en)._ap([_cC]));switch((c155)._t){case true:return(F_gg)._b(new HSFun("F_fE",0,function(){return(F_fE)._ap([_cC])}),new HSCons((F_gX)._b(F_en,_cD),new HSEOL()),new HSEOL());case false:var c156=exprEval((F_eo)._ap([_cC]));switch((c156)._t){case true:return(F_gg)._b(new HSFun("F_fF",0,function(){return(F_fF)._ap([_cC])}),new HSCons((F_gX)._b(F_ep,_cD),new HSEOL()),new HSEOL());case false:var c157=exprEval((F_bg)._b(_cC));switch((c157)._t){case true:return(F_gg)._b(new HSFun("F_fH",0,function(){return(F_fH)._ap([_cC])}),new HSCons((F_gX)._b(F_bg,_cD),new HSEOL()),new HSEOL());case false:var c158=exprEval(F_gF);switch((c158)._t){case true:return new HSEOL();case false:return(F_gn)._b(F_fI)};throw ('X ('+this._n+') '+c158.toSource())};throw ('X ('+this._n+') '+c157.toSource())};throw ('X ('+this._n+') '+c156.toSource())};throw ('X ('+this._n+') '+c155.toSource())};throw ('X ('+this._n+') '+c154.toSource())};throw ('X ('+this._n+') '+c153.toSource())};throw ('X ('+this._n+') '+c152.toSource())}((c151)._f[0],(c151)._f[1])};throw ('X ('+this._n+') '+c151.toSource())}),F_gA=new HSFun("F_gA",3,function(_it,_iu,_iv){var c159=exprEval(_iv);switch((c159)._t){case 2:return new HSData(18,[]);case 3:return function(_iw,_ix){var c160=exprEval(_iw);return function(_iy,_iz){var c161=exprEval(((exprEval(_it))._f[1])._ap([_iu,_iy]));switch((c161)._t){case true:return new HSData(16,[_iz]);case false:return(F_gA)._b(_it,_iu,_ix)};throw ('X ('+this._n+') '+c161.toSource())}((c160)._f[0],(c160)._f[1])}((c159)._f[0],(c159)._f[1])};throw ('X ('+this._n+') '+c159.toSource())}),F_gB=new HSFun("F_gB",2,function(_ci,_cj){var c162=exprEval(_cj);switch((c162)._t){case 2:return new HSEOL();case 3:return function(_ck,_cl){return new HSCons((_ci)._ap([_ck]),(F_gB)._b(_ci,_cl))}((c162)._f[0],(c162)._f[1])};throw ('X ('+this._n+') '+c162.toSource())}),F_gC=new HSFun("F_gC",1,function(_jF){return(exprEval(_jF))._f[5]}),F_gD=new HSFun("F_gD",1,function(_eX){var c163=exprEval(_eX);switch((c163)._t){case true:return false;case false:return true};throw ('X ('+this._n+') '+c163.toSource())}),F_gE=new HSFun("F_gE",0,function(){return(F_gr)._ap([F_g1,false])}),F_gF=new HSFun("F_gF",0,function(){return true}),F_gG=new HSFun("F_gG",1,function(_j2){return(exprEval(_j2))._f[7]}),F_gH=new HSFun("F_gH",1,function(_jZ){return(exprEval(_jZ))._f[4]}),F_gI=new HSFun("F_gI",2,function(_eM,_eN){var c164=exprEval((F_gg)._b(F_f2,((F_gK)._b(_eM))._ap([_eN]),new HSEOL()));switch((c164)._t){case 2:return(F_gn)._b(F_f3);case 3:return function(_eS,_eT){var c165=exprEval(_eT);switch((c165)._t){case 2:return _eS;default:return(F_gn)._b(F_f4)};throw ('X ('+this._n+') '+c165.toSource())}((c164)._f[0],(c164)._f[1])};throw ('X ('+this._n+') '+c164.toSource())}),F_gJ=new HSFun("F_gJ",2,function(_dt,_du){var c166=exprEval(_dt);switch((c166)._t){case true:return(F_et)._ap([_du]);case false:return(F_es)._ap([_du])};throw ('X ('+this._n+') '+c166.toSource())}),F_gK=new HSFun("F_gK",1,function(_dH){return((exprEval(_dH))._f[0])._ap([0])}),F_gL=new HSFun("F_gL",1,function(_i4){return(exprEval(_i4))._f[0]}),F_gM=new HSFun("F_gM",1,function(_j0){return(exprEval(_j0))._f[5]}),F_gN=new HSFun("F_gN",1,function(_j7){return(exprEval(_j7))._f[3]}),F_gO=new HSFun("F_gO",0,function(){return(F_gp)._ap([new HSFun("F_go",0,function(){return(F_go)._ap([F_gb])}),new HSEOL()])}),F_gP=new HSFun("F_gP",2,function(a,b){exprEval(a);return b}),F_gQ=new HSFun("F_gQ",1,function(_ja){return(exprEval(_ja))._f[3]}),F_gR=new HSFun("F_gR",0,function(){return F_fW}),F_gS=new HSFun("F_gS",2,function(_eU,_eV){var c167=exprEval(_eU);switch((c167)._t){case true:return(F_fc)._ap([(F_fc)._ap([(F_fW)._ap([mkChar(41)]),_eV]),(F_fW)._ap([mkChar(40)])]);case false:return _eV};throw ('X ('+this._n+') '+c167.toSource())}),F_gT=new HSFun("F_gT",0,function(){return F_cG}),F_gU=new HSFun("F_gU",1,function(_i9){return(exprEval(_i9))._f[0]}),F_gV=new HSFun("F_gV",1,function(_jG){return(exprEval(_jG))._f[6]}),F_gW=new HSFun("F_gW",1,function(_ex){return(exprEval(_ex))._f[1]}),F_gX=new HSFun("F_gX",2,function(_ct,_cu){var c168=exprEval(_cu);switch((c168)._t){case 2:return new HSData((-7),[new HSEOL(),new HSEOL()]);case 3:return function(_cv,_cw){var c169=exprEval((_ct)._ap([_cv]));switch((c169)._t){case true:var _j=new HSFun("_j",0,function(){return(F_gX)._b(_ct,_cw)}),_v=new HSFun("_v",0,function(){return(exprEval(_j))._f[0]}),_w=new HSFun("_w",0,function(){return(exprEval(_j))._f[1]});return new HSData((-7),[new HSCons(_cv,_v),_w]);case false:var c170=exprEval(F_gF);switch((c170)._t){case true:return new HSData((-7),[new HSEOL(),_cu]);case false:return(F_gn)._b(F_ff)};throw ('X ('+this._n+') '+c170.toSource())};throw ('X ('+this._n+') '+c169.toSource())}((c168)._f[0],(c168)._f[1])};throw ('X ('+this._n+') '+c168.toSource())}),F_gY=new HSFun("F_gY",1,function(_eW){return(F_go)._ap([(exprEval(_eW))._f[4]])}),F_gZ=new HSFun("F_gZ",1,function(_i1){return(exprEval(_i1))._f[4]}),F_g0=new HSFun("F_g0",1,function(_j1){return(exprEval(_j1))._f[6]}),F_g1=new HSFun("F_g1",2,function(_cg,_ch){var c171=exprEval(_cg);switch((c171)._t){case true:return true;case false:return _ch};throw ('X ('+this._n+') '+c171.toSource())}),F_g2=new HSFun("F_g2",2,function(_y,_lb){return(F_5)._b(((exprEval(_lb))._f[7])._ap([0]),(F_gA)._b(F_c8,_y,(F_hc)._b(_lb)))}),F_g3=new HSFun("F_g3",2,function(_kR,_kS){var c172=exprEval(_kS);switch((c172)._t){case 2:return((exprEval(_kR))._f[7])._ap([0]);case 3:return function(_kT,_kU){return((exprEval(_kR))._f[3])._ap([((exprEval(_kR))._f[7])._ap([1]),(F_g3)._ap([_kR,_kU])])}((c172)._f[0],(c172)._f[1])};throw ('X ('+this._n+') '+c172.toSource())}),F_g4=new HSFun("F_g4",1,function(_x){return(exprEval(_x))._f[0]}),F_g5=new HSFun("F_g5",1,function(_x){return(exprEval(_x))._f[1]}),F_g6="Roman: Pattern match failure in function at 54:1-56:16.",F_g7="Roman: Pattern match failure in function at 38:1-43:55.",F_g8="",F_g9=new HSFun("F_g9",4,function(_kZ,_k0,_k1,_k2){var c173=exprEval(((exprEval(_k0))._f[1])._ap([_k1,_k2]));switch((c173)._t){case true:return((exprEval(_kZ))._f[4])._ap([_k2,_k1]);case false:var c174=exprEval(((exprEval(_k0))._f[4])._ap([_k1,_k2]));switch((c174)._t){case true:return((exprEval(_kZ))._f[3])._ap([_k2,_k1]);case false:return(F_gn)._b(F_g6)};throw ('X ('+this._n+') '+c174.toSource())};throw ('X ('+this._n+') '+c173.toSource())}),F_ha=new HSFun("F_ha",0,function(){return(F_fc)._ap([(F_fc)._ap([new HSFun("F_gB",0,function(){return(F_gB)._ap([F_2])}),new HSFun("F_hb",0,function(){return(F_hb)._ap([F_dF])})]),new HSFun("F_gr",0,function(){return(F_gr)._ap([new HSFun("F_g9",0,function(){return(F_g9)._ap([F_dF,F_d4])}),0])})])}),F_hb=new HSFun("F_hb",2,function(_kN,_kO){var c175=exprEval(_kO);switch((c175)._t){case 2:return new HSEOL();case 3:return function(_kP,_kQ){var _x=new HSFun("_x",0,function(){return(F_gX)._b(new HSFun("F_da",0,function(){return(F_da)._ap([_kP])}),_kO)}),_z=new HSFun("_z",0,function(){return(exprEval(_x))._f[0]}),_A=new HSFun("_A",0,function(){return(exprEval(_x))._f[1]});return new HSCons(((exprEval(_kN))._f[2])._ap([new HSFun("F_4",0,function(){return(F_4)._b((F_gA)._b(F_c8,_kP,(F_hc)._b(_kN)))}),(F_g3)._ap([_kN,_z])]),(F_hb)._b(_kN,_A))}((c175)._f[0],(c175)._f[1])};throw ('X ('+this._n+') '+c175.toSource())}),F_hc=new HSFun("F_hc",1,function(_kM){return new HSCons(new HSData((-7),[mkChar(73),((exprEval(_kM))._f[7])._ap([1])]),new HSCons(new HSData((-7),[mkChar(86),((exprEval(_kM))._f[7])._ap([5])]),new HSCons(new HSData((-7),[mkChar(88),((exprEval(_kM))._f[7])._ap([10])]),new HSCons(new HSData((-7),[mkChar(76),((exprEval(_kM))._f[7])._ap([50])]),new HSCons(new HSData((-7),[mkChar(67),((exprEval(_kM))._f[7])._ap([100])]),new HSCons(new HSData((-7),[mkChar(68),((exprEval(_kM))._f[7])._ap([500])]),new HSCons(new HSData((-7),[mkChar(77),((exprEval(_kM))._f[7])._ap([1000])]),new HSEOL())))))))}),F_hd=new HSFun("F_hd",0,function(){return new HSCons(new HSData((-7),[mkChar(86),mkChar(73)]),new HSCons(new HSData((-7),[mkChar(88),mkChar(73)]),new HSCons(new HSData((-7),[mkChar(76),mkChar(88)]),new HSCons(new HSData((-7),[mkChar(67),mkChar(88)]),new HSCons(new HSData((-7),[mkChar(68),mkChar(67)]),new HSCons(new HSData((-7),[mkChar(77),mkChar(67)]),new HSEOL()))))))}),F_he=new HSFun("F_he",4,function(_k3,_k4,_k5,_k6){var c176=exprEval(_k5);return function(_k7,_k8){var c177=exprEval(_k6);return function(_k9,_la){var _y=new HSFun("_y",0,function(){return(F_5)._b(mkChar(0),(F_gA)._b(F_c8,_k7,F_hd))}),c178=exprEval(((exprEval(_k4))._f[3])._ap([_k9,_k8]));switch((c178)._t){case true:return(F_he)._b(_k3,_k4,_k5,new HSData((-7),[((exprEval(_k3))._f[4])._ap([_k9,_k8]),new HSCons(_k7,_la)]));case false:var c179=exprEval(((exprEval(_k4))._f[3])._ap([((exprEval(_k3))._f[3])._ap([_k9,((F_g2)._ap([_y]))._ap([_k3])]),_k8]));switch((c179)._t){case true:return new HSData((-7),[((exprEval(_k3))._f[3])._ap([((exprEval(_k3))._f[4])._ap([_k9,_k8]),((F_g2)._ap([_y]))._ap([_k3])]),new HSCons(_k7,new HSCons(_y,_la))]);case false:var c180=exprEval(F_gF);switch((c180)._t){case true:return new HSData((-7),[_k9,_la]);case false:return(F_gn)._b(F_g7)};throw ('X ('+this._n+') '+c180.toSource())};throw ('X ('+this._n+') '+c179.toSource())};throw ('X ('+this._n+') '+c178.toSource())}((c177)._f[0],(c177)._f[1])}((c176)._f[0],(c176)._f[1])}),F_hf=new HSFun("F_hf",1,function(_lc){return((F_fc)._ap([F_gW,F_gO]))._ap([new HSFun("F_gr",0,function(){return(F_gr)._b(new HSFun("F_he",0,function(){return(F_he)._ap([F_dF,F_d4])}),new HSData((-7),[_lc,F_g8]),(F_hc)._b(F_dF))})])}),F_hg=new HSFun("F_hg",1,function(a){return Number(exprEval(a)).toString()}),F_hh=new HSFun("F_hh",2,function(_kq,_kr){return(F_cG)._b((F_hg)._ap([_kq]),_kr)}),F_hi="return Number(exprEval(a)).toString();",F_hj="return 0 - Number(exprEval(a));",F_hk="var ea = exprEval(a); if (ea>0) return 1; else if (ea<0) return -1; else return 0;",F_hl="return Math.abs(exprEval(a));",F_hm="return a;",F_hn="return a;",F_ho="return Number(exprEval(a)) < Number(exprEval(b));",F_hp="return Number(exprEval(a)) <= Number(exprEval(b));",F_hq="return Number(exprEval(a)) > Number(exprEval(b));",F_hr="return Number(exprEval(a)) >= Number(exprEval(b));",F_hs="return Number(exprEval(a)) !== Number(exprEval(b));",F_ht="return Number(exprEval(a)) === Number(exprEval(b));",F_hu="return 0 - Number(exprEval(a));",F_hv="return exprEval(a) * exprEval(b);",F_hw="return exprEval(a) - exprEval(b);",F_hx="return exprEval(a) + exprEval(b);",F_hy="return exprEval(a) % exprEval(b);",F_hz="(function(x,y){return (x - (x % y))/y;})(exprEval(a),exprEval(b));",F_hA="exprEval(a); return b;",F_hB="throw(\'E \' + exprEval(a).toString()); return undefined;",F_hC=new HSFun("F_hC",1,function(a){return Math.abs(exprEval(a))}),F_hD=new HSFun("F_hD",1,function(a){return a}),F_hE=new HSFun("F_hE",1,function(a){var ea=exprEval(a);if(ea>0){return 1}else if(ea<0){return -1}else return 0}),F_hF=new HSFun("F_hF",2,function(a,b){return exprEval(a)+exprEval(b)}),F_hG=new HSFun("F_hG",2,function(a,b){return Number(exprEval(a))===Number(exprEval(b))}),F_hH=new HSFun("F_hH",1,function(a){return a}),F_hI=new HSFun("F_hI",2,function(a,b){return Number(exprEval(a))>=Number(exprEval(b))}),F_hJ=new HSFun("F_hJ",2,function(a,b){return Number(exprEval(a))>Number(exprEval(b))}),F_hK=new HSFun("F_hK",2,function(a,b){return Number(exprEval(a))<=Number(exprEval(b))}),F_hL=new HSFun("F_hL",2,function(a,b){return Number(exprEval(a))<Number(exprEval(b))}),F_hM=new HSFun("F_hM",2,function(a,b){return exprEval(a)*exprEval(b)}),F_hN=new HSFun("F_hN",2,function(a,b){return Number(exprEval(a))!==Number(exprEval(b))}),F_hO=new HSFun("F_hO",1,function(a){return 0-Number(exprEval(a))}),F_hP=new HSFun("F_hP",2,function(a,b){(function(x,y){return(x-(x%y))/y})(exprEval(a),exprEval(b))}),F_hQ=new HSFun("F_hQ",2,function(_kF,_kG){var _C=new HSFun("_C",0,function(){return(F_hR)._b(_kF,_kG)}),_B=new HSFun("_B",0,function(){return(F_hP)._b(_kF,_kG)});return new HSData((-7),[_B,_C])}),F_hR=new HSFun("F_hR",2,function(a,b){return exprEval(a)%exprEval(b)}),F_hS=new HSFun("F_hS",2,function(a,b){return exprEval(a)-exprEval(b)});funIdx["Echo.main"]=F_cj
− test/pminified/130_htojs2.js
@@ -1,14 +0,0 @@-var conIdx={},funIdx={},strIdx={};Number.prototype._c=function(){return this};Number.prototype._r=false;Number.prototype._chr=false;Boolean.prototype._c=function(){return new HSData(this.valueOf()?true:false,[])};Boolean.prototype._r=true;String.prototype._c=function(){var cmeth=this._c;this._c=function(){throw ("B '"+this+"' blackhole: thunk reentered")};try{var res=consStr(this);this._r=true;this._c=function(){return res};return res}catch(e){this._c=cmeth;throw (e)}};String.prototype._r=true;Array.prototype._c=function(){var cmeth=this._c;this._c=function(){throw ("B ["+this.toString()+"] blackhole: thunk reentered")};try{var res=consArr(this);this._r=true;this._c=function(){return res};return res}catch(e){this._c=cmeth;throw (e)}};Array.prototype._r=true;Array.prototype._toArray=function(){return this};var consStr=function(s){if(s.length==0){return new HSEOL()}else{var hdc=mkChar(s.charCodeAt(0));return new HSCons(hdc,s.length>1?s.substring(1):consStr(""))}},consArr=function(ar){if(ar.length==0){return new HSEOL()}else return new HSCons(ar[0],ar.length>1?ar.slice(1):consArr([]))}-/* */-function mkChar(c){var n=new Number(c);n._chr=true;return n}-function HSCons(head,tail){this._r=false;this._c=function(){return this};this._t=conIdx['Prelude.:'];this._f=[head,tail]};HSCons.prototype.toString=function(){var evhead=exprEval(this._f[0]);if(evhead._chr==true){return(String.fromCharCode(evhead)+(exprEval(this._f[1])).toString())}else return this._toArray().toString()};HSCons.prototype._toArray=function(){return[exprEval(this._f[0])].concat(exprEval(this._f[1])._toArray())}-function HSEOL(){this._r=false;this._c=function(){return this};this._t=conIdx['Prelude.[]'];this._f=[];this.toString=function(){return""};this._toArray=function(){return[]}}-function HSFun(name,arity,body){this._n=name;this._r=(arity==0);this._x=arity;this._d=this;this._y=0;this._u=null;this._b=body};HSFun.prototype._c=function(){if(!this._r)return this;var cmeth=this._c;this._c=function(){throw ("B "+this._n+" blackhole: thunk reentered")};try{var res=this._b();this._c=function(){return res};return res}catch(e){this._c=cmeth;throw (e)}};HSFun.prototype._ap=function(targs){if(targs.length==0)return this;return new HSDly(this,this,targs)}-function HSDly(fun,up,targs){this._a=targs;this._n=fun._n;this._d=fun;this._u=up;this._y=targs.length+up._y;this._r=(this._y>=fun._x)};HSDly.prototype._c=function(){if(!this._r)return this;var cmeth=this._c;this._c=function(){throw ("B "+this._n+" blackhole: thunk reentered")};var cargs=this._a,stack=this._u;for(;stack._u;stack=stack._u)cargs=stack._a.concat(cargs);var res;try{if(cargs.length==this._d._x){res=this._d._b.apply(this._d,cargs);this._u=null;this._c=function(){return res}}else{var evd;if(this._d._x==0){evd=exprEval(this._d);this._a=cargs}else{var feed=cargs.slice(0,this._d._x),over=cargs.slice(this._d._x);evd=exprEval(this._d._ap(feed));this._a=over};this._n=evd._n;this._d=evd._d;this._u=evd;this._y=this._a.length+evd._y;this._r=(this._y>=this._d._x);res=this;this._c=cmeth};return res}catch(e){this._c=cmeth;throw (e)}};HSDly.prototype._ap=function(targs){if(targs.length==0)return this;return new HSDly(this._d,this,targs)}-/**/-function HSData(con,arrs){this._r=false;this._c=function(){return this};this._t=con;this._f=arrs}-function exprEval(e){for(var ex=e;ex!=undefined&&ex._r;ex=ex._c());return ex}-function cbrApply(func,thisp,args){if(func.apply){return func.apply(thisp,args)}else{var s="func(";for(var i=0;i<args.length;i++)s+=(i==0?"":",")+"args["+i+"]";s+=")";return eval(s)}}-/**/-function newXmlHttpRequest(){var xmlhttp;xmlhttp=null;if(window.XMLHttpRequest){xmlhttp=new XMLHttpRequest()}else if(window.ActiveXObject){xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")}else throw "R XML HTTP Request not supported";return xmlhttp};conIdx["Data.Ratio.:%"]=(-4);conIdx["Echo.JS"]=(-5);conIdx["Prelude.()"]=(-6);conIdx["Prelude.(,)"]=(-7);conIdx["Prelude.(,,)"]=(-8);conIdx["Prelude.(,,,)"]=(-9);conIdx["Prelude.(,,,,,,,)"]=(-10);conIdx["Prelude.(,,,,,,,,)"]=(-11);conIdx["Prelude.:"]=3;conIdx["Prelude.EQ"]=13;conIdx["Prelude.False"]=false;conIdx["Prelude.GT"]=15;conIdx["Prelude.Just"]=16;conIdx["Prelude.LT"]=17;conIdx["Prelude.Nothing"]=18;conIdx["Prelude.True"]=true;conIdx["Prelude.[]"]=2;strIdx.F_0="Data.Char.isUpper";strIdx.F_1="Data.Char.lexLitChar";strIdx.F_2="Data.Char.toUpper";strIdx.F_4="Data.Maybe.fromJust";strIdx.F_5="Data.Maybe.fromMaybe";strIdx.F_6="Data.Ratio.%";strIdx.F_8="Data.Ratio.reduce";strIdx.F_9="Data._CharNumeric._LAMBDA409";strIdx.F_U="Data.Char.asciiTab";strIdx.F_V="Data.Char.intToDigit";strIdx.F_W="Data.Char.isAlpha";strIdx.F_X="Data.Char.isAlphaNum";strIdx.F_Y="Data.Char.isLower";strIdx.F_Z="Data.Char.isSpace";strIdx.F_b="Control.Monad.when";strIdx.F_b0="Echo._LAMBDA640";strIdx.F_b9="Echo._LAMBDA649";strIdx.F_bH="Echo._LAMBDA621";strIdx.F_bJ="Echo._LAMBDA623";strIdx.F_bS="Echo._LAMBDA632";strIdx.F_bT="Echo._LAMBDA633";strIdx.F_bU="Echo._LAMBDA634";strIdx.F_bV="Echo._LAMBDA635";strIdx.F_bW="Echo._LAMBDA636";strIdx.F_bX="Echo._LAMBDA637";strIdx.F_bY="Echo._LAMBDA638";strIdx.F_bZ="Echo._LAMBDA639";strIdx.F_ba="Data._CharNumeric._LAMBDA410";strIdx.F_bb="Data._CharNumeric._LAMBDA411";strIdx.F_be="Data._CharNumeric.chr";strIdx.F_bf="Data._CharNumeric.digitToInt";strIdx.F_bg="Data._CharNumeric.isDigit";strIdx.F_bh="Data._CharNumeric.isHexDigit";strIdx.F_bi="Data._CharNumeric.isOctDigit";strIdx.F_bj="Data._CharNumeric.nonnull";strIdx.F_bk="Data._CharNumeric.ord";strIdx.F_bl="Data._CharNumeric.readDec";strIdx.F_bm="Data._CharNumeric.readInt";strIdx.F_bn="Echo.Prelude.Monad.Echo.JS";strIdx.F_bo="Echo.Prelude.Monad.Echo.JS.>>";strIdx.F_bp="Echo.Prelude.Monad.Echo.JS.>>=";strIdx.F_bq="Echo.Prelude.Monad.Echo.JS.fail";strIdx.F_br="Echo.Prelude.Monad.Echo.JS.return";strIdx.F_c="Data.Char.Data.Char.Prelude.244.prefix";strIdx.F_c0="Prelude.Prelude.Enum.Prelude.Integer.enumFromThen";strIdx.F_c1="Prelude.Prelude.Enum.Prelude.Integer.enumFromThenTo";strIdx.F_c2="Prelude.Prelude.Enum.Prelude.Integer.enumFromTo";strIdx.F_c3="Prelude.Prelude.Enum.Prelude.Integer.fromEnum";strIdx.F_c4="Prelude.Prelude.Enum.Prelude.Integer.pred";strIdx.F_c5="Prelude.Prelude.Enum.Prelude.Integer.succ";strIdx.F_c6="Prelude.Prelude.Enum.Prelude.Integer.toEnum";strIdx.F_c7="Prelude.Prelude.Enum.Prelude.Ordering.fromEnum";strIdx.F_c8="Prelude.Prelude.Eq.Prelude.Char";strIdx.F_c9="Prelude.Prelude.Eq.Prelude.Char./=";strIdx.F_cA="Numeric.showIntAtBase";strIdx.F_cB="Numeric.showSigned";strIdx.F_cC="Prelude.$";strIdx.F_cD="Prelude.&&";strIdx.F_cE="Prelude.*";strIdx.F_cF="Prelude.+";strIdx.F_cG="Prelude.++";strIdx.F_cH="Prelude.-";strIdx.F_cI="Prelude..";strIdx.F_cJ="Prelude.<";strIdx.F_cK="Prelude.<=";strIdx.F_cL="Prelude.==";strIdx.F_cM="Prelude.>";strIdx.F_cN="Prelude.>=";strIdx.F_cO="Prelude.Prelude.Enum.Prelude.Char.fromEnum";strIdx.F_cP="Prelude.Prelude.Enum.Prelude.Int";strIdx.F_cQ="Prelude.Prelude.Enum.Prelude.Int.enumFrom";strIdx.F_cR="Prelude.Prelude.Enum.Prelude.Int.enumFromThen";strIdx.F_cS="Prelude.Prelude.Enum.Prelude.Int.enumFromThenTo";strIdx.F_cT="Prelude.Prelude.Enum.Prelude.Int.enumFromTo";strIdx.F_cU="Prelude.Prelude.Enum.Prelude.Int.fromEnum";strIdx.F_cV="Prelude.Prelude.Enum.Prelude.Int.pred";strIdx.F_cW="Prelude.Prelude.Enum.Prelude.Int.succ";strIdx.F_cX="Prelude.Prelude.Enum.Prelude.Int.toEnum";strIdx.F_cY="Prelude.Prelude.Enum.Prelude.Integer";strIdx.F_cZ="Prelude.Prelude.Enum.Prelude.Integer.enumFrom";strIdx.F_ca="Echo._LAMBDA650";strIdx.F_cb="Echo._LAMBDA651";strIdx.F_cc="Echo.asInt";strIdx.F_cd="Echo.asString";strIdx.F_ce="Echo.catchJS";strIdx.F_cf="Echo.getDocument";strIdx.F_cg="Echo.getProperty";strIdx.F_ch="Echo.getTime";strIdx.F_ci="Echo.inkey";strIdx.F_cj="Echo.main";strIdx.F_ck="Echo.regEventHandler";strIdx.F_cl="Echo.runMethod";strIdx.F_cm="Echo.setProperty";strIdx.F_cn="Numeric.Numeric.Prelude.413.read'";strIdx.F_co="Numeric.Numeric.Prelude.414.read''";strIdx.F_cq="Numeric._LAMBDA2002";strIdx.F_cr="Numeric._LAMBDA2003";strIdx.F_ct="Numeric._LAMBDA2057";strIdx.F_cu="Numeric._LAMBDA2058";strIdx.F_cv="Numeric._LAMBDA2059";strIdx.F_cw="Numeric._LAMBDA2060";strIdx.F_cx="Numeric.lexDigits";strIdx.F_cy="Numeric.readSigned";strIdx.F_cz="Numeric.showInt";strIdx.F_d="Data.Char.Data.Char.Prelude.245.lexEsc";strIdx.F_d0="Prelude.Prelude.Ord.Prelude.Char.compare";strIdx.F_d1="Prelude.Prelude.Ord.Prelude.Char.max";strIdx.F_d2="Prelude.Prelude.Ord.Prelude.Char.min";strIdx.F_d3="Prelude.Prelude.Ord.Prelude.Eq";strIdx.F_d4="Prelude.Prelude.Ord.Prelude.Int";strIdx.F_d5="Prelude.Prelude.Ord.Prelude.Int.<";strIdx.F_d6="Prelude.Prelude.Ord.Prelude.Int.<=";strIdx.F_d7="Prelude.Prelude.Ord.Prelude.Int.>";strIdx.F_d8="Prelude.Prelude.Ord.Prelude.Int.>=";strIdx.F_d9="Prelude.Prelude.Ord.Prelude.Int.compare";strIdx.F_dA="Prelude.Prelude.Integral.Prelude.Integer.quotRem";strIdx.F_dB="Prelude.Prelude.Integral.Prelude.Integer.rem";strIdx.F_dC="Prelude.Prelude.Integral.Prelude.Integer.toInteger";strIdx.F_dD="Prelude.Prelude.Integral.Prelude.Real";strIdx.F_dE="Prelude.Prelude.Num.Prelude.Eq";strIdx.F_dF="Prelude.Prelude.Num.Prelude.Int";strIdx.F_dG="Prelude.Prelude.Num.Prelude.Int.*";strIdx.F_dH="Prelude.Prelude.Num.Prelude.Int.+";strIdx.F_dI="Prelude.Prelude.Num.Prelude.Int.-";strIdx.F_dJ="Prelude.Prelude.Num.Prelude.Int.abs";strIdx.F_dK="Prelude.Prelude.Num.Prelude.Int.fromInteger";strIdx.F_dL="Prelude.Prelude.Num.Prelude.Int.negate";strIdx.F_dM="Prelude.Prelude.Num.Prelude.Int.signum";strIdx.F_dN="Prelude.Prelude.Num.Prelude.Integer";strIdx.F_dO="Prelude.Prelude.Num.Prelude.Integer.*";strIdx.F_dP="Prelude.Prelude.Num.Prelude.Integer.+";strIdx.F_dQ="Prelude.Prelude.Num.Prelude.Integer.-";strIdx.F_dR="Prelude.Prelude.Num.Prelude.Integer.abs";strIdx.F_dS="Prelude.Prelude.Num.Prelude.Integer.fromInteger";strIdx.F_dT="Prelude.Prelude.Num.Prelude.Integer.negate";strIdx.F_dU="Prelude.Prelude.Num.Prelude.Integer.signum";strIdx.F_dV="Prelude.Prelude.Ord.Prelude.Char";strIdx.F_dW="Prelude.Prelude.Ord.Prelude.Char.<";strIdx.F_dX="Prelude.Prelude.Ord.Prelude.Char.<=";strIdx.F_dY="Prelude.Prelude.Ord.Prelude.Char.>";strIdx.F_dZ="Prelude.Prelude.Ord.Prelude.Char.>=";strIdx.F_da="Prelude.Prelude.Eq.Prelude.Char.==";strIdx.F_db="Prelude.Prelude.Eq.Prelude.Int";strIdx.F_dc="Prelude.Prelude.Eq.Prelude.Int./=";strIdx.F_dd="Prelude.Prelude.Eq.Prelude.Int.==";strIdx.F_de="Prelude.Prelude.Eq.Prelude.Integer";strIdx.F_df="Prelude.Prelude.Eq.Prelude.Integer./=";strIdx.F_dg="Prelude.Prelude.Eq.Prelude.Integer.==";strIdx.F_dh="Prelude.Prelude.Eq.Prelude.Ordering";strIdx.F_di="Prelude.Prelude.Eq.Prelude.Ordering./=";strIdx.F_dj="Prelude.Prelude.Eq.Prelude.Ordering.==";strIdx.F_dk="Prelude.Prelude.Eq.Prelude.[]";strIdx.F_dl="Prelude.Prelude.Eq.Prelude.[]./=";strIdx.F_dm="Prelude.Prelude.Eq.Prelude.[].==";strIdx.F_dn="Prelude.Prelude.Integral.Prelude.Int";strIdx.F_do="Prelude.Prelude.Integral.Prelude.Int.div";strIdx.F_dp="Prelude.Prelude.Integral.Prelude.Int.divMod";strIdx.F_dq="Prelude.Prelude.Integral.Prelude.Int.mod";strIdx.F_dr="Prelude.Prelude.Integral.Prelude.Int.quot";strIdx.F_ds="Prelude.Prelude.Integral.Prelude.Int.quotRem";strIdx.F_dt="Prelude.Prelude.Integral.Prelude.Int.rem";strIdx.F_du="Prelude.Prelude.Integral.Prelude.Int.toInteger";strIdx.F_dv="Prelude.Prelude.Integral.Prelude.Integer";strIdx.F_dw="Prelude.Prelude.Integral.Prelude.Integer.div";strIdx.F_dx="Prelude.Prelude.Integral.Prelude.Integer.divMod";strIdx.F_dy="Prelude.Prelude.Integral.Prelude.Integer.mod";strIdx.F_dz="Prelude.Prelude.Integral.Prelude.Integer.quot";strIdx.F_e="Data.Char.Data.Char.Prelude.246.match";strIdx.F_e0="Prelude.Prelude._.divMod";strIdx.F_e1="Prelude.Prelude._.enumFromThenTo";strIdx.F_e2="Prelude.Prelude._.enumFromTo";strIdx.F_e3="Prelude.Prelude._.fail";strIdx.F_e4="Prelude.Prelude._.max";strIdx.F_e5="Prelude.Prelude._.min";strIdx.F_e6="Prelude.Prelude._.pred";strIdx.F_e7="Prelude.Prelude._.readList";strIdx.F_e8="Prelude.Prelude._.show";strIdx.F_e9="Prelude.Prelude._.showList";strIdx.F_eA="Prelude.Prelude.Read.Prelude.Int";strIdx.F_eB="Prelude.Prelude.Read.Prelude.Int.readList";strIdx.F_eC="Prelude.Prelude.Read.Prelude.Int.readsPrec";strIdx.F_eD="Prelude.Prelude.Read.Prelude.Integer.readsPrec";strIdx.F_eE="Prelude.Prelude.Real.Prelude.Int";strIdx.F_eF="Prelude.Prelude.Real.Prelude.Int.toRational";strIdx.F_eG="Prelude.Prelude.Real.Prelude.Integer";strIdx.F_eH="Prelude.Prelude.Real.Prelude.Integer.toRational";strIdx.F_eI="Prelude.Prelude.Real.Prelude.Num";strIdx.F_eJ="Prelude.Prelude.Real.Prelude.Ord";strIdx.F_eK="Prelude.Prelude.Show.Prelude.Int";strIdx.F_eL="Prelude.Prelude.Show.Prelude.Int.show";strIdx.F_eM="Prelude.Prelude.Show.Prelude.Int.showList";strIdx.F_eN="Prelude.Prelude.Show.Prelude.Int.showsPrec";strIdx.F_eO="Prelude.Prelude.Show.Prelude.Int.showsType";strIdx.F_eP="Prelude.Prelude.Show.Prelude.Integer";strIdx.F_eQ="Prelude.Prelude.Show.Prelude.Integer.show";strIdx.F_eR="Prelude.Prelude.Show.Prelude.Integer.showList";strIdx.F_eS="Prelude.Prelude.Show.Prelude.Integer.showsPrec";strIdx.F_eT="Prelude.Prelude.Show.Prelude.Integer.showsType";strIdx.F_eU="Prelude.Prelude._./=";strIdx.F_eV="Prelude.Prelude._.<";strIdx.F_eW="Prelude.Prelude._.>";strIdx.F_eX="Prelude.Prelude._.>=";strIdx.F_eY="Prelude.Prelude._.compare";strIdx.F_eZ="Prelude.Prelude._.div";strIdx.F_ea="Prelude.Prelude.Ord.Prelude.Int.max";strIdx.F_eb="Prelude.Prelude.Ord.Prelude.Int.min";strIdx.F_ec="Prelude.Prelude.Ord.Prelude.Integer";strIdx.F_ed="Prelude.Prelude.Ord.Prelude.Integer.<";strIdx.F_ee="Prelude.Prelude.Ord.Prelude.Integer.<=";strIdx.F_ef="Prelude.Prelude.Ord.Prelude.Integer.>";strIdx.F_eg="Prelude.Prelude.Ord.Prelude.Integer.>=";strIdx.F_eh="Prelude.Prelude.Ord.Prelude.Integer.compare";strIdx.F_ei="Prelude.Prelude.Ord.Prelude.Integer.max";strIdx.F_ej="Prelude.Prelude.Ord.Prelude.Integer.min";strIdx.F_ek="Prelude.Prelude.Prelude.1812.lexString";strIdx.F_el="Prelude.Prelude.Prelude.1813.lexStrItem";strIdx.F_em="Prelude.Prelude.Prelude.1837.isSingle";strIdx.F_en="Prelude.Prelude.Prelude.1838.isSym";strIdx.F_eo="Prelude.Prelude.Prelude.1839.isIdInit";strIdx.F_ep="Prelude.Prelude.Prelude.1840.isIdChar";strIdx.F_eq="Prelude.Prelude.Prelude.1841.lexFracExp";strIdx.F_er="Prelude.Prelude.Prelude.1842.lexExp";strIdx.F_es="Prelude.Prelude.Prelude.1899.optional";strIdx.F_et="Prelude.Prelude.Prelude.1900.mandatory";strIdx.F_eu="Prelude.Prelude.Prelude.1937.gcd'";strIdx.F_ev="Prelude.Prelude.Prelude.535.readl";strIdx.F_ew="Prelude.Prelude.Prelude.536.readl'";strIdx.F_ex="Prelude.Prelude.Prelude.580.showl";strIdx.F_ey="Prelude.Prelude.Prelude.890.ll";strIdx.F_ez="Prelude.Prelude.Prelude.Read.Prelude.Int.readsPrec'Id 3510";strIdx.F_f1="Prelude._LAMBDA27500";strIdx.F_f2="Prelude._LAMBDA27501";strIdx.F_f6="Prelude._LAMBDA27620";strIdx.F_f7="Prelude._LAMBDA27621";strIdx.F_f8="Prelude._LAMBDA27631";strIdx.F_f9="Prelude._LAMBDA27632";strIdx.F_fA="Prelude._LAMBDA26955";strIdx.F_fE="Prelude._LAMBDA26959";strIdx.F_fF="Prelude._LAMBDA26960";strIdx.F_fG="Prelude._LAMBDA26961";strIdx.F_fH="Prelude._LAMBDA26962";strIdx.F_fJ="Prelude._LAMBDA26964";strIdx.F_fK="Prelude._LAMBDA26965";strIdx.F_fL="Prelude._LAMBDA26966";strIdx.F_fM="Prelude._LAMBDA26999";strIdx.F_fN="Prelude._LAMBDA27000";strIdx.F_fO="Prelude._LAMBDA27001";strIdx.F_fP="Prelude._LAMBDA27002";strIdx.F_fQ="Prelude._LAMBDA27003";strIdx.F_fR="Prelude._LAMBDA27004";strIdx.F_fS="Prelude._LAMBDA27005";strIdx.F_fT="Prelude._LAMBDA27006";strIdx.F_fU="Prelude._LAMBDA27007";strIdx.F_fV="Prelude._LAMBDA27008";strIdx.F_fW="Prelude._LAMBDA27246";strIdx.F_fa="Prelude.Prelude._.succ";strIdx.F_fc="Prelude._LAMBDA26931";strIdx.F_fd="Prelude._LAMBDA26932";strIdx.F_fe="Prelude._LAMBDA26933";strIdx.F_fk="Prelude._LAMBDA26939";strIdx.F_fm="Prelude._LAMBDA26941";strIdx.F_fn="Prelude._LAMBDA26942";strIdx.F_fo="Prelude._LAMBDA26943";strIdx.F_fr="Prelude._LAMBDA26946";strIdx.F_fs="Prelude._LAMBDA26947";strIdx.F_fv="Prelude._LAMBDA26950";strIdx.F_fw="Prelude._LAMBDA26951";strIdx.F_fx="Prelude._LAMBDA26952";strIdx.F_fz="Prelude._LAMBDA26954";strIdx.F_g0="Prelude.toInteger";strIdx.F_g1="Prelude.||";strIdx.F_g2="Roman.Roman.Prelude.221.k";strIdx.F_g3="Roman.Roman.Prelude.228.length";strIdx.F_g4="Roman._LAMBDA480";strIdx.F_g5="Roman._LAMBDA481";strIdx.F_g9="Roman.fromNumeral";strIdx.F_gA="Prelude.lookup";strIdx.F_gB="Prelude.map";strIdx.F_gC="Prelude.negate";strIdx.F_gD="Prelude.not";strIdx.F_gE="Prelude.or";strIdx.F_gF="Prelude.otherwise";strIdx.F_gG="Prelude.quot";strIdx.F_gH="Prelude.quotRem";strIdx.F_gI="Prelude.read";strIdx.F_gJ="Prelude.readParen";strIdx.F_gK="Prelude.reads";strIdx.F_gL="Prelude.readsPrec";strIdx.F_gM="Prelude.rem";strIdx.F_gN="Prelude.return";strIdx.F_gO="Prelude.reverse";strIdx.F_gP="Prelude.seq";strIdx.F_gQ="Prelude.show";strIdx.F_gR="Prelude.showChar";strIdx.F_gS="Prelude.showParen";strIdx.F_gT="Prelude.showString";strIdx.F_gU="Prelude.showsPrec";strIdx.F_gV="Prelude.signum";strIdx.F_gW="Prelude.snd";strIdx.F_gX="Prelude.span";strIdx.F_gY="Prelude.subtract";strIdx.F_gZ="Prelude.toEnum";strIdx.F_gb="Prelude._LAMBDA27663";strIdx.F_gd="Prelude._enumFromToDecC";strIdx.F_ge="Prelude._enumFromToIncC";strIdx.F_gf="Prelude._filter";strIdx.F_gg="Prelude._foldr";strIdx.F_gh="Prelude.abs";strIdx.F_gi="Prelude.any";strIdx.F_gj="Prelude.compare";strIdx.F_gk="Prelude.divMod";strIdx.F_gl="Prelude.dropWhile";strIdx.F_gm="Prelude.elem";strIdx.F_gn="Prelude.error";strIdx.F_go="Prelude.flip";strIdx.F_gp="Prelude.foldl";strIdx.F_gq="Prelude.foldl1";strIdx.F_gr="Prelude.foldr";strIdx.F_gs="Prelude.fromEnum";strIdx.F_gt="Prelude.fromInteger";strIdx.F_gu="Prelude.fromIntegral";strIdx.F_gv="Prelude.fst";strIdx.F_gw="Prelude.gcd";strIdx.F_gx="Prelude.id";strIdx.F_gy="Prelude.length";strIdx.F_gz="Prelude.lex";strIdx.F_hC="YHC.Primitive.primIntAbs";strIdx.F_hD="YHC.Primitive.primIntFromInteger";strIdx.F_hE="YHC.Primitive.primIntSignum";strIdx.F_hF="YHC.Primitive.primIntegerAdd";strIdx.F_hG="YHC.Primitive.primIntegerEq";strIdx.F_hH="YHC.Primitive.primIntegerFromInt";strIdx.F_hI="YHC.Primitive.primIntegerGe";strIdx.F_hJ="YHC.Primitive.primIntegerGt";strIdx.F_hK="YHC.Primitive.primIntegerLe";strIdx.F_hL="YHC.Primitive.primIntegerLt";strIdx.F_hM="YHC.Primitive.primIntegerMul";strIdx.F_hN="YHC.Primitive.primIntegerNe";strIdx.F_hO="YHC.Primitive.primIntegerNeg";strIdx.F_hP="YHC.Primitive.primIntegerQuot";strIdx.F_hQ="YHC.Primitive.primIntegerQuotRem";strIdx.F_hR="YHC.Primitive.primIntegerRem";strIdx.F_hS="YHC.Primitive.primIntegerSub";strIdx.F_ha="Roman.fromRoman";strIdx.F_hb="Roman.maxmunch";strIdx.F_hc="Roman.numerals";strIdx.F_hd="Roman.subnums";strIdx.F_he="Roman.toNumeral";strIdx.F_hf="Roman.toRoman";strIdx.F_hg="StdOverlay.StdOverlay.Prelude.255.showInt";strIdx.F_hh="StdOverlay.StdOverlay.Prelude.256.showPosInt";strIdx.F_m="Data.Char._LAMBDA1026";strIdx.F_n="Data.Char._LAMBDA1027";var F_b=new HSFun("F_b",3,function(_lJ,_lK,_lL){var c1=exprEval(_lK);switch((c1)._t){case true:return _lL;case false:return((exprEval(_lJ))._f[3])._ap([new HSData((-6),[])])};throw ('X ('+this._n+') '+c1.toSource())}),F_c=new HSFun("F_c",2,function(_lZ,_l0){var c2=exprEval(_l0);return function(_l1,_l2){return new HSData((-7),[new HSCons(_lZ,_l1),_l2])}((c2)._f[0],(c2)._f[1])}),F_d=new HSFun("F_d",1,function(_l3){var c3=exprEval(_l3);switch((c3)._t){case 3:return function(_l4,_l5){var c4=exprEval(((F_gm)._b(F_c8,_l4))._ap([F_l]));switch((c4)._t){case true:return new HSCons(new HSData((-7),[new HSCons(_l4,new HSEOL()),_l5]),new HSEOL());case false:var c5=exprEval(_l4);switch((c5).valueOf()){case 94:var c6=exprEval(_l5);switch((c6)._t){case 3:return function(_l6,_l7){var c7=exprEval((F_cD)._b((F_dZ)._b(_l6,mkChar(64)),(Number(exprEval(_l6)))<=(Number(exprEval(mkChar(95))))));switch((c7)._t){case true:return new HSCons(new HSData((-7),[new HSCons(mkChar(94),new HSCons(_l6,new HSEOL())),_l7]),new HSEOL());case false:var c8=exprEval((F_bg)._b(_l4));switch((c8)._t){case true:return new HSCons((F_gX)._b(F_bg,_l3),new HSEOL());case false:var c9=exprEval((F_0)._b(_l4));switch((c9)._t){case true:var c10=exprEval((F_gg)._b(new HSFun("F_n",0,function(){return(F_n)._ap([_l3])}),new HSCons(F_o,(F_gB)._b(F_gW,F_U)),new HSEOL()));switch((c10)._t){case 2:return new HSEOL();case 3:return function(_ma,_mb){return new HSCons(_ma,new HSEOL())}((c10)._f[0],(c10)._f[1])};throw ('X ('+this._n+') '+c10.toSource());case false:return new HSEOL()};throw ('X ('+this._n+') '+c9.toSource())};throw ('X ('+this._n+') '+c8.toSource())};throw ('X ('+this._n+') '+c7.toSource())}((c6)._f[0],(c6)._f[1]);default:var c11=exprEval((F_bg)._b(_l4));switch((c11)._t){case true:return new HSCons((F_gX)._b(F_bg,_l3),new HSEOL());case false:var c12=exprEval((F_0)._b(_l4));switch((c12)._t){case true:var c13=exprEval((F_gg)._b(new HSFun("F_n",0,function(){return(F_n)._ap([_l3])}),new HSCons(F_o,(F_gB)._b(F_gW,F_U)),new HSEOL()));switch((c13)._t){case 2:return new HSEOL();case 3:return function(_ma,_mb){return new HSCons(_ma,new HSEOL())}((c13)._f[0],(c13)._f[1])};throw ('X ('+this._n+') '+c13.toSource());case false:return new HSEOL()};throw ('X ('+this._n+') '+c12.toSource())};throw ('X ('+this._n+') '+c11.toSource())};throw ('X ('+this._n+') '+c6.toSource());case 111:return new HSCons((F_c)._ap([mkChar(111),new HSFun("F_gX",0,function(){return(F_gX)._b(F_bi,_l5)})]),new HSEOL());case 120:return new HSCons((F_c)._ap([mkChar(120),new HSFun("F_gX",0,function(){return(F_gX)._b(F_bh,_l5)})]),new HSEOL());default:var c14=exprEval((F_bg)._b(_l4));switch((c14)._t){case true:return new HSCons((F_gX)._b(F_bg,_l3),new HSEOL());case false:var c15=exprEval((F_0)._b(_l4));switch((c15)._t){case true:var c16=exprEval((F_gg)._b(new HSFun("F_n",0,function(){return(F_n)._ap([_l3])}),new HSCons(F_o,(F_gB)._b(F_gW,F_U)),new HSEOL()));switch((c16)._t){case 2:return new HSEOL();case 3:return function(_ma,_mb){return new HSCons(_ma,new HSEOL())}((c16)._f[0],(c16)._f[1])};throw ('X ('+this._n+') '+c16.toSource());case false:return new HSEOL()};throw ('X ('+this._n+') '+c15.toSource())};throw ('X ('+this._n+') '+c14.toSource())};throw ('X ('+this._n+') '+c5.toSource())};throw ('X ('+this._n+') '+c4.toSource())}((c3)._f[0],(c3)._f[1]);default:return new HSEOL()};throw ('X ('+this._n+') '+c3.toSource())}),F_e=new HSFun("F_e",3,function(_lS,_lT,_lU){var c17=exprEval(_lT);switch((c17)._t){case 3:return function(_lV,_lW){var c18=exprEval(_lU);switch((c18)._t){case 3:return function(_lX,_lY){var c19=exprEval(((exprEval(_lS))._f[1])._ap([_lV,_lX]));switch((c19)._t){case true:return(F_e)._ap([_lS,_lW,_lY]);case false:return new HSData((-7),[_lT,_lU])};throw ('X ('+this._n+') '+c19.toSource())}((c18)._f[0],(c18)._f[1]);default:return new HSData((-7),[_lT,_lU])};throw ('X ('+this._n+') '+c18.toSource())}((c17)._f[0],(c17)._f[1]);default:return new HSData((-7),[_lT,_lU])};throw ('X ('+this._n+') '+c17.toSource())}),F_f="ESC",F_g="FS",F_h="GS",F_i="RS",F_j="US",F_k="SP",F_l="abfnrtv\\\"\'",F_m=new HSFun("F_m",3,function(_hd,_io,_iH){var c20=exprEval(_io);return function(_l8,_l9){var c21=exprEval(_l8);switch((c21)._t){case 2:return new HSCons(new HSData((-7),[_hd,_l9]),_iH);default:return _iH};throw ('X ('+this._n+') '+c21.toSource())}((c20)._f[0],(c20)._f[1])}),F_n=new HSFun("F_n",3,function(_l3,_hd,_he){return(F_gg)._b(new HSFun("F_m",0,function(){return(F_m)._ap([_hd])}),new HSCons((F_e)._ap([F_c8,_hd,_l3]),new HSEOL()),_he)}),F_o="DEL",F_p=" \u0009\u000a\u000d\u000c\u000b\xa0",F_q="Char.intToDigit: not a digit",F_r="Data.Char: Pattern match failure in function at 74:1-77:62.",F_s="Data.Char: Pattern match failure in function at 275:1-276:28.",F_t="NUL",F_u="SOH",F_v="STX",F_w="ETX",F_x="EOT",F_y="ENQ",F_z="ACK",F_A="BEL",F_B="BS",F_C="HT",F_D="LF",F_E="VT",F_F="FF",F_G="CR",F_H="SO",F_I="SI",F_J="DLE",F_K="DC1",F_L="DC2",F_M="DC3",F_N="DC4",F_O="NAK",F_P="SYN",F_Q="ETB",F_R="CAN",F_S="EM",F_T="SUB",F_U=new HSFun("F_U",0,function(){return new HSCons(new HSData((-7),[mkChar(0),F_t]),new HSCons(new HSData((-7),[mkChar(1),F_u]),new HSCons(new HSData((-7),[mkChar(2),F_v]),new HSCons(new HSData((-7),[mkChar(3),F_w]),new HSCons(new HSData((-7),[mkChar(4),F_x]),new HSCons(new HSData((-7),[mkChar(5),F_y]),new HSCons(new HSData((-7),[mkChar(6),F_z]),new HSCons(new HSData((-7),[mkChar(7),F_A]),new HSCons(new HSData((-7),[mkChar(8),F_B]),new HSCons(new HSData((-7),[mkChar(9),F_C]),new HSCons(new HSData((-7),[mkChar(10),F_D]),new HSCons(new HSData((-7),[mkChar(11),F_E]),new HSCons(new HSData((-7),[mkChar(12),F_F]),new HSCons(new HSData((-7),[mkChar(13),F_G]),new HSCons(new HSData((-7),[mkChar(14),F_H]),new HSCons(new HSData((-7),[mkChar(15),F_I]),new HSCons(new HSData((-7),[mkChar(16),F_J]),new HSCons(new HSData((-7),[mkChar(17),F_K]),new HSCons(new HSData((-7),[mkChar(18),F_L]),new HSCons(new HSData((-7),[mkChar(19),F_M]),new HSCons(new HSData((-7),[mkChar(20),F_N]),new HSCons(new HSData((-7),[mkChar(21),F_O]),new HSCons(new HSData((-7),[mkChar(22),F_P]),new HSCons(new HSData((-7),[mkChar(23),F_Q]),new HSCons(new HSData((-7),[mkChar(24),F_R]),new HSCons(new HSData((-7),[mkChar(25),F_S]),new HSCons(new HSData((-7),[mkChar(26),F_T]),new HSCons(new HSData((-7),[mkChar(27),F_f]),new HSCons(new HSData((-7),[mkChar(28),F_g]),new HSCons(new HSData((-7),[mkChar(29),F_h]),new HSCons(new HSData((-7),[mkChar(30),F_i]),new HSCons(new HSData((-7),[mkChar(31),F_j]),new HSCons(new HSData((-7),[mkChar(32),F_k]),new HSEOL())))))))))))))))))))))))))))))))))}),F_V=new HSFun("F_V",1,function(_mf){var c22=exprEval((F_cD)._b((Number(exprEval(_mf)))>=(0),(Number(exprEval(_mf)))<=(9)));switch((c22)._t){case true:return(F_be)._ap([(exprEval((F_bk)._ap([mkChar(48)])))+(exprEval(_mf))]);case false:var c23=exprEval((F_cD)._b((Number(exprEval(_mf)))>=(10),(Number(exprEval(_mf)))<=(15)));switch((c23)._t){case true:return(F_be)._ap([(exprEval((exprEval((F_bk)._ap([mkChar(97)])))+(exprEval(_mf))))-(10)]);case false:var c24=exprEval(F_gF);switch((c24)._t){case true:return(F_gn)._b(F_q);case false:return(F_gn)._b(F_r)};throw ('X ('+this._n+') '+c24.toSource())};throw ('X ('+this._n+') '+c23.toSource())};throw ('X ('+this._n+') '+c22.toSource())}),F_W=new HSFun("F_W",1,function(_md){return(F_g1)._b((F_0)._b(_md),new HSFun("F_Y",0,function(){return(F_Y)._b(_md)}))}),F_X=new HSFun("F_X",1,function(_me){return(F_g1)._b((F_W)._b(_me),new HSFun("F_bg",0,function(){return(F_bg)._b(_me)}))}),F_Y=new HSFun("F_Y",1,function(_lM){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lM,mkChar(97)),(Number(exprEval(_lM)))<=(Number(exprEval(mkChar(122))))),new HSFun("F_g1",0,function(){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lM,mkChar(223)),(Number(exprEval(_lM)))<=(Number(exprEval(mkChar(246))))),new HSFun("F_cD",0,function(){return(F_cD)._b((F_dZ)._b(_lM,mkChar(248)),(Number(exprEval(_lM)))<=(Number(exprEval(mkChar(255)))))}))}))}),F_Z=new HSFun("F_Z",1,function(_mc){return((F_gm)._b(F_c8,_mc))._ap([F_p])}),F_0=new HSFun("F_0",1,function(_lO){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lO,mkChar(65)),(Number(exprEval(_lO)))<=(Number(exprEval(mkChar(90))))),new HSFun("F_g1",0,function(){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lO,mkChar(192)),(Number(exprEval(_lO)))<=(Number(exprEval(mkChar(214))))),new HSFun("F_cD",0,function(){return(F_cD)._b((F_dZ)._b(_lO,mkChar(216)),(Number(exprEval(_lO)))<=(Number(exprEval(mkChar(222)))))}))}))}),F_1=new HSFun("F_1",1,function(_lP){var c25=exprEval(_lP);switch((c25)._t){case 2:return new HSEOL();case 3:return function(_lQ,_lR){var c26=exprEval(_lQ);switch((c26).valueOf()){case 92:return(F_gB)._b((F_c)._ap([mkChar(92)]),(F_d)._ap([_lR]));default:return new HSCons(new HSData((-7),[new HSCons(_lQ,new HSEOL()),_lR]),new HSEOL())};throw ('X ('+this._n+') '+c26.toSource())}((c25)._f[0],(c25)._f[1])};throw ('X ('+this._n+') '+c25.toSource())}),F_2=new HSFun("F_2",1,function(_lN){var c27=exprEval((F_Y)._b(_lN));switch((c27)._t){case true:return(exprEval((exprEval(_lN))-(exprEval(mkChar(97)))))+(exprEval(mkChar(65)));case false:var c28=exprEval(F_gF);switch((c28)._t){case true:return _lN;case false:return(F_gn)._b(F_s)};throw ('X ('+this._n+') '+c28.toSource())};throw ('X ('+this._n+') '+c27.toSource())}),F_3="Maybe.fromJust: Nothing",F_4=new HSFun("F_4",1,function(_kg){var c29=exprEval(_kg);switch((c29)._t){case 18:return(F_gn)._b(F_3);case 16:return(c29)._f[0]};throw ('X ('+this._n+') '+c29.toSource())}),F_5=new HSFun("F_5",2,function(_kd,_ke){var c30=exprEval(_ke);switch((c30)._t){case 18:return _kd;case 16:return(c30)._f[0]};throw ('X ('+this._n+') '+c30.toSource())}),F_6=new HSFun("F_6",3,function(_I,_J,_K){return(F_8)._b(_I,((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[2])._ap([_J,((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[6])._ap([_K])]),((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[8])._ap([_K]))}),F_7="Ratio.%: zero denominator",F_8=new HSFun("F_8",3,function(_F,_G,_H){var _lf=new HSFun("_lf",0,function(){return _F}),_b=new HSFun("_b",0,function(){return(F_gw)._b(_lf,_G,_H)}),c31=exprEval(((exprEval((exprEval((exprEval((exprEval(_F))._f[0]))._f[0]))._f[0]))._f[1])._ap([_H,((exprEval((exprEval((exprEval(_F))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c31)._t){case true:return(F_gn)._b(F_7);case false:return new HSData((-4),[((exprEval(_F))._f[7])._ap([_G,_b]),((exprEval(_F))._f[7])._ap([_H,_b])])};throw ('X ('+this._n+') '+c31.toSource())}),F_9=new HSFun("F_9",2,function(_ee,_ef){var c32=exprEval(_ee);return function(_kl,_km){var c33=exprEval(_kl);switch((c33)._t){case 3:return function(_kn,_ko){return new HSCons(new HSData((-7),[_kl,_km]),_ef)}((c33)._f[0],(c33)._f[1]);default:return _ef};throw ('X ('+this._n+') '+c33.toSource())}((c32)._f[0],(c32)._f[1])}),F_ba=new HSFun("F_ba",4,function(_kp,_kq,_ec,_ed){return((exprEval((exprEval((exprEval(_kp))._f[0]))._f[0]))._f[3])._ap([((exprEval((exprEval((exprEval(_kp))._f[0]))._f[0]))._f[2])._ap([_ec,_kq]),_ed])}),F_bb=new HSFun("F_bb",5,function(_kq,_kp,_ks,_c7,_dI){var c34=exprEval(_c7);return function(_ku,_kv){return new HSCons(new HSData((-7),[new HSFun("F_gq",0,function(){return(F_gq)._b(new HSFun("F_ba",0,function(){return(F_ba)._ap([_kp,_kq])}),(F_gB)._b((F_fc)._ap([_ks,(F_gu)._b(F_dn,new HSFun("F_eI",0,function(){return(exprEval((exprEval(_kp))._f[0]))._f[0]}))]),_ku))}),_kv]),_dI)}((c34)._f[0],(c34)._f[1])}),F_bc="Char.digitToInt: not a digit",F_bd="Data._CharNumeric: Pattern match failure in function at 22:1-26:64.",F_be=new HSFun("F_be",0,function(){return F_gx}),F_bf=new HSFun("F_bf",1,function(_ky){var c35=exprEval((F_bg)._b(_ky));switch((c35)._t){case true:return(exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(48)])));case false:var c36=exprEval((F_cD)._b((F_dZ)._b(_ky,mkChar(97)),(Number(exprEval(_ky)))<=(Number(exprEval(mkChar(102))))));switch((c36)._t){case true:return(exprEval((exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(97)])))))+(10);case false:var c37=exprEval((F_cD)._b((F_dZ)._b(_ky,mkChar(65)),(Number(exprEval(_ky)))<=(Number(exprEval(mkChar(70))))));switch((c37)._t){case true:return(exprEval((exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(65)])))))+(10);case false:var c38=exprEval(F_gF);switch((c38)._t){case true:return(F_gn)._b(F_bc);case false:return(F_gn)._b(F_bd)};throw ('X ('+this._n+') '+c38.toSource())};throw ('X ('+this._n+') '+c37.toSource())};throw ('X ('+this._n+') '+c36.toSource())};throw ('X ('+this._n+') '+c35.toSource())}),F_bg=new HSFun("F_bg",1,function(_kx){return(F_cD)._b((F_dZ)._b(_kx,mkChar(48)),(Number(exprEval(_kx)))<=(Number(exprEval(mkChar(57)))))}),F_bh=new HSFun("F_bh",1,function(_kw){return(F_g1)._b((F_cD)._b((F_dZ)._b(_kw,mkChar(48)),(Number(exprEval(_kw)))<=(Number(exprEval(mkChar(57))))),new HSFun("F_g1",0,function(){return(F_g1)._b((F_cD)._b((F_dZ)._b(_kw,mkChar(65)),(Number(exprEval(_kw)))<=(Number(exprEval(mkChar(70))))),new HSFun("F_cD",0,function(){return(F_cD)._b((F_dZ)._b(_kw,mkChar(97)),(Number(exprEval(_kw)))<=(Number(exprEval(mkChar(102)))))}))}))}),F_bi=new HSFun("F_bi",1,function(_kz){return(F_cD)._b((F_dZ)._b(_kz,mkChar(48)),(Number(exprEval(_kz)))<=(Number(exprEval(mkChar(55)))))}),F_bj=new HSFun("F_bj",2,function(_kj,_kk){return(F_gg)._b(F_9,new HSCons((F_gX)._b(_kj,_kk),new HSEOL()),new HSEOL())}),F_bk=new HSFun("F_bk",0,function(){return F_gx}),F_bl=new HSFun("F_bl",1,function(_kA){return(F_bm)._ap([_kA,((exprEval((exprEval((exprEval(_kA))._f[0]))._f[0]))._f[7])._ap([10]),F_bg,F_bf])}),F_bm=new HSFun("F_bm",5,function(_kp,_kq,_kr,_ks,_kt){return(F_gg)._b(new HSFun("F_bb",0,function(){return(F_bb)._ap([_kq,_kp,_ks])}),(F_bj)._b(_kr,_kt),new HSEOL())}),F_bn=new HSFun("F_bn",0,function(){return new HSData((-9),[F_bp,F_bo,F_bq,F_br])}),F_bo=new HSFun("F_bo",2,function(_lC,_lD){var c39=exprEval(_lC);return _lD}),F_bp=new HSFun("F_bp",2,function(_lF,_lG){var c40=exprEval(_lF);return function(_lH){return(_lG)._ap([_lH])}((c40)._f[0])}),F_bq=new HSFun("F_bq",1,function(_lI){return(F_gn)._b(_lI)}),F_br=new HSFun("F_br",1,function(_lB){return(F_gP)._b(_lB,new HSData((-5),[_lB]))}),F_bs="return new HSData(conIdx[\'Echo.JS\'],[document]);",F_bt="return new HSData(conIdx[\'Echo.JS\'],[exprEval(a)[exprEval(b).toString()]]);",F_bu="exprEval(a)[exprEval(b).toString()]=exprEval(c);return new HSData(conIdx[\'Echo.JS\'],[]);",F_bv="exprEval(a)[exprEval(b).toString()]=function(e){if(!e){e=window.event;}; return exprEval(exprEval(c)._ap([e]));}; return new HSData(conIdx[\'Echo.JS\'],[]);",F_bw="return new HSData(conIdx[\'Echo.JS\'],[new Number(exprEval(a))]);",F_bx="return new HSData(conIdx[\'Echo.JS\'],[new String(exprEval(a))]);",F_by="try {return exprEval(a);} catch(_e) {return exprEval(b)._ap([_e]);}",F_bz="return new HSData(conIdx[\'Echo.JS\'],[(new Date()).getTime()]);",F_bA="var a1=exprEval(a); return new HSData(conIdx[\'Echo.JS\'],[cbrApply(a1[exprEval(b).toString()],a1,exprEval(c)._toArray())]);",F_bB="keyCode",F_bC="body",F_bD="createElement",F_bE="div",F_bF="value",F_bG="",F_bH=new HSFun("F_bH",1,function(v593){return(F_br)._b(F_bG)}),F_bI="",F_bJ=new HSFun("F_bJ",1,function(v594){return(F_br)._b(F_bI)}),F_bK=" ",F_bL=" ",F_bM=" ",F_bN=" ms",F_bO="innerHTML",F_bP="insertBefore",F_bQ="value",F_bR="",F_bS=new HSFun("F_bS",8,function(_et,_fK,_fO,_f8,_e2,_e3,_lz,_hc){var _kJ=new HSFun("_kJ",0,function(){return F_dF}),_c=new HSFun("_c",0,function(){return((exprEval(_kJ))._f[4])._ap([_hc,_et])}),_kL=new HSFun("_kL",0,function(){return F_eK}),_d=new HSFun("_d",0,function(){return(F_cG)._b(_fK,new HSFun("F_cG",0,function(){return(F_cG)._b(F_bK,new HSFun("F_cG",0,function(){return(F_cG)._b(_fO,new HSFun("F_cG",0,function(){return(F_cG)._b(F_bL,new HSFun("F_cG",0,function(){return(F_cG)._b(_f8,new HSFun("F_cG",0,function(){return(F_cG)._b(F_bM,new HSFun("F_cG",0,function(){return(F_cG)._b(((exprEval(_kL))._f[3])._ap([_c]),F_bN)}))}))}))}))}))}))});return(F_bo)._b((F_cm)._b(_e3,F_bO,_d),(F_bo)._b((F_cl)._b(_e2,F_bP,new HSCons(_e3,new HSCons(_lz,new HSEOL()))),(F_bo)._b((F_cm)._b(_lz,F_bQ,F_bR),(F_br)._b(new HSData((-6),[])))))}),F_bT=new HSFun("F_bT",7,function(_et,_fK,_fO,_e2,_e3,_lz,_f8){return(F_bp)._b((F_ch)._b(0),new HSFun("F_bS",0,function(){return(F_bS)._ap([_et,_fK,_fO,_f8,_e2,_e3,_lz])}))}),F_bU=new HSFun("F_bU",6,function(_et,_fK,_e2,_e3,_lz,_fO){return(F_bp)._b((F_ce)._b(new HSFun("F_cC",0,function(){return(F_cC)._b(F_br,new HSFun("F_hf",0,function(){return(F_hf)._b(new HSFun("F_gI",0,function(){return(F_gI)._b(F_eA,_fK)}))}))}),F_bJ),new HSFun("F_bT",0,function(){return(F_bT)._ap([_et,_fK,_fO,_e2,_e3,_lz])}))}),F_bV=new HSFun("F_bV",5,function(_et,_e2,_e3,_lz,_fK){return(F_bo)._b((F_cC)._b(new HSFun("F_b",0,function(){return(F_b)._ap([F_bn,(Number(exprEval((F_gy)._b(_fK))))>(0)])}),new HSFun("F_bp",0,function(){return(F_bp)._b((F_ce)._b(new HSFun("F_cC",0,function(){return(F_cC)._b(F_br,((F_fc)._ap([F_ha,F_eL]))._ap([_fK]))}),F_bH),new HSFun("F_bU",0,function(){return(F_bU)._ap([_et,_fK,_e2,_e3,_lz])}))})),(F_br)._b(new HSData((-6),[])))}),F_bW=new HSFun("F_bW",4,function(_et,_e2,_lz,_e3){return(F_bp)._b((F_bp)._b((F_cg)._b(_lz,F_bF),F_cd),new HSFun("F_bV",0,function(){return(F_bV)._ap([_et,_e2,_e3,_lz])}))}),F_bX=new HSFun("F_bX",4,function(_eY,_et,_lz,_e2){return(F_bp)._b((F_cl)._b(_eY,F_bD,new HSCons(F_bE,new HSEOL())),new HSFun("F_bW",0,function(){return(F_bW)._ap([_et,_e2,_lz])}))}),F_bY=new HSFun("F_bY",3,function(_et,_lz,_eY){return(F_bp)._b((F_cg)._b(_eY,F_bC),new HSFun("F_bX",0,function(){return(F_bX)._ap([_eY,_et,_lz])}))}),F_bZ=new HSFun("F_bZ",2,function(_lz,_et){return(F_bp)._b(F_cf,new HSFun("F_bY",0,function(){return(F_bY)._ap([_et,_lz])}))}),F_b0=new HSFun("F_b0",2,function(_lz,_eq){return(F_bo)._b((F_cC)._b(new HSFun("F_b",0,function(){return(F_b)._ap([F_bn,(Number(exprEval(_eq)))===(13)])}),new HSFun("F_bp",0,function(){return(F_bp)._b((F_ch)._b(0),new HSFun("F_bZ",0,function(){return(F_bZ)._ap([_lz])}))})),(F_br)._b(new HSData((-6),[])))}),F_b1="body",F_b2="createElement",F_b3="input",F_b4="id",F_b5="input-echo",F_b6="appendChild",F_b7="onkeypress",F_b8="focus",F_b9=new HSFun("F_b9",2,function(_io,_iH){return(F_bo)._b((F_cm)._b(_iH,F_b4,F_b5),(F_bo)._b((F_cl)._b(_io,F_b6,new HSCons(_iH,new HSEOL())),(F_bo)._b((F_ck)._b(_iH,F_b7,new HSFun("F_ci",0,function(){return(F_ci)._ap([_iH])})),(F_bo)._b((F_cl)._b(_iH,F_b8,new HSEOL()),(F_br)._b(new HSData((-6),[]))))))}),F_ca=new HSFun("F_ca",2,function(_ia,_io){return(F_bp)._b((F_cl)._b(_ia,F_b2,new HSCons(F_b3,new HSEOL())),new HSFun("F_b9",0,function(){return(F_b9)._ap([_io])}))}),F_cb=new HSFun("F_cb",1,function(_ia){return(F_bp)._b((F_cg)._b(_ia,F_b1),new HSFun("F_ca",0,function(){return(F_ca)._ap([_ia])}))}),F_cc=new HSFun("F_cc",1,function(a){return new HSData(conIdx['Echo.JS'],[new Number(exprEval(a))])}),F_cd=new HSFun("F_cd",1,function(a){return new HSData(conIdx['Echo.JS'],[new String(exprEval(a))])}),F_ce=new HSFun("F_ce",2,function(a,b){try{return exprEval(a)}catch(_e){return exprEval(b)._ap([_e])}}),F_cf=new HSFun("F_cf",0,function(){return new HSData(conIdx['Echo.JS'],[document])}),F_cg=new HSFun("F_cg",2,function(a,b){return new HSData(conIdx['Echo.JS'],[exprEval(a)[exprEval(b).toString()]])}),F_ch=new HSFun("F_ch",1,function(a){return new HSData(conIdx['Echo.JS'],[(new Date()).getTime()])}),F_ci=new HSFun("F_ci",2,function(_lz,_lA){return(F_bp)._b((F_bp)._b((F_cg)._b(_lA,F_bB),F_cc),new HSFun("F_b0",0,function(){return(F_b0)._ap([_lz])}))}),F_cj=new HSFun("F_cj",0,function(){return(F_bp)._b(F_cf,F_cb)}),F_ck=new HSFun("F_ck",3,function(a,b,c){exprEval(a)[exprEval(b).toString()]=function(e){if(!e)e=window.event;return exprEval(exprEval(c)._ap([e]))};return new HSData(conIdx['Echo.JS'],[])}),F_cl=new HSFun("F_cl",3,function(a,b,c){var a1=exprEval(a);return new HSData(conIdx['Echo.JS'],[cbrApply(a1[exprEval(b).toString()],a1,exprEval(c)._toArray())])}),F_cm=new HSFun("F_cm",3,function(a,b,c){exprEval(a)[exprEval(b).toString()]=exprEval(c);return new HSData(conIdx['Echo.JS'],[])}),F_cn=new HSFun("F_cn",3,function(_E,_bI,_bO){return(F_cG)._b(((F_co)._ap([_bI]))._ap([_bO]),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_cw",0,function(){return(F_cw)._ap([_E,_bI])}),(F_gz)._b(_bO),new HSEOL())}))}),F_co=new HSFun("F_co",2,function(_bI,_bJ){return(F_gg)._b(new HSFun("F_cu",0,function(){return(F_cu)._ap([_bI])}),(F_gz)._b(_bJ),new HSEOL())}),F_cp="Numeric.showIntAtBase: can\'t show negative numbers",F_cq=new HSFun("F_cq",1,function(_e){return(exprEval(_e))._f[0]}),F_cr=new HSFun("F_cr",1,function(_e){return(exprEval(_e))._f[1]}),F_cs="Numeric: Pattern match failure in function at 435:1-440:66.",F_ct=new HSFun("F_ct",3,function(_bL,_kJ,_kK){var c41=exprEval(_kJ);return function(_bM,_bN){var c42=exprEval(_bN);switch((c42)._t){case 2:return new HSCons(new HSData((-7),[_bM,_bL]),_kK);default:return _kK};throw ('X ('+this._n+') '+c42.toSource())}((c41)._f[0],(c41)._f[1])}),F_cu=new HSFun("F_cu",3,function(_bI,_kH,_kI){var c43=exprEval(_kH);return function(_bK,_bL){return(F_gg)._b(new HSFun("F_ct",0,function(){return(F_ct)._ap([_bL])}),(_bI)._ap([_bK]),_kI)}((c43)._f[0],(c43)._f[1])}),F_cv=new HSFun("F_cv",3,function(_E,_kD,_kE){var c44=exprEval(_kD);return function(_bT,_bU){return new HSCons(new HSData((-7),[((exprEval(_E))._f[5])._ap([_bT]),_bU]),_kE)}((c44)._f[0],(c44)._f[1])}),F_cw=new HSFun("F_cw",4,function(_E,_bI,_kB,_kC){var c45=exprEval(_kB);return function(_bP,_bQ){var c46=exprEval(_bP);switch((c46)._t){case 3:return function(_bR,_bS){var c47=exprEval(_bR);switch((c47).valueOf()){case 45:var c48=exprEval(_bS);switch((c48)._t){case 2:return(F_gg)._b(new HSFun("F_cv",0,function(){return(F_cv)._ap([_E])}),((F_co)._ap([_bI]))._ap([_bQ]),_kC);default:return _kC};throw ('X ('+this._n+') '+c48.toSource());default:return _kC};throw ('X ('+this._n+') '+c47.toSource())}((c46)._f[0],(c46)._f[1]);default:return _kC};throw ('X ('+this._n+') '+c46.toSource())}((c45)._f[0],(c45)._f[1])}),F_cx=new HSFun("F_cx",0,function(){return(F_bj)._ap([F_bg])}),F_cy=new HSFun("F_cy",2,function(_bH,_bI){var _E=new HSFun("_E",0,function(){return(exprEval(_bH))._f[0]});return(F_gJ)._b(false,new HSFun("F_cn",0,function(){return(F_cn)._ap([_E,_bI])}))}),F_cz=new HSFun("F_cz",1,function(_4){return(F_cA)._ap([_4,((exprEval((exprEval((exprEval(_4))._f[0]))._f[0]))._f[7])._ap([10]),F_V])}),F_cA=new HSFun("F_cA",5,function(_V,_W,_X,_Y,_Z){var c49=exprEval(((exprEval((exprEval((exprEval(_V))._f[0]))._f[1]))._f[1])._ap([_Y,((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c49)._t){case true:return(F_gn)._b(F_cp);case false:var c50=exprEval(F_gF);switch((c50)._t){case true:var _ld=new HSFun("_ld",0,function(){return _V}),_e=new HSFun("_e",0,function(){return((exprEval(_ld))._f[4])._ap([_Y,_W])}),_f=new HSFun("_f",0,function(){return(exprEval(_e))._f[0]}),_g=new HSFun("_g",0,function(){return(exprEval(_e))._f[1]}),_le=new HSFun("_le",0,function(){return _V}),_h=new HSFun("_h",0,function(){return new HSCons((_X)._ap([((F_gu)._b(_le,F_dF))._ap([_g])]),_Z)}),c51=exprEval(((exprEval((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[0]))._f[1])._ap([_f,((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c51)._t){case true:return _h;case false:return(F_cA)._b(_V,_W,_X,_f,_h)};throw ('X ('+this._n+') '+c51.toSource());case false:return(F_gn)._b(F_cs)};throw ('X ('+this._n+') '+c50.toSource())};throw ('X ('+this._n+') '+c49.toSource())}),F_cB=new HSFun("F_cB",4,function(_R,_S,_T,_U){var c52=exprEval(((exprEval((exprEval(_R))._f[1]))._f[1])._ap([_U,((exprEval((exprEval(_R))._f[0]))._f[7])._ap([0])]));switch((c52)._t){case true:return(F_gS)._b((Number(exprEval(_T)))>(6),(F_fc)._ap([(_S)._ap([((exprEval((exprEval(_R))._f[0]))._f[5])._ap([_U])]),(F_fW)._ap([mkChar(45)])]));case false:return(_S)._ap([_U])};throw ('X ('+this._n+') '+c52.toSource())}),F_cC=new HSFun("F_cC",2,function(_eK,_eL){return(_eK)._ap([_eL])}),F_cD=new HSFun("F_cD",2,function(_er,_es){var c53=exprEval(_er);switch((c53)._t){case true:return _es;case false:return false};throw ('X ('+this._n+') '+c53.toSource())}),F_cE=new HSFun("F_cE",1,function(_jC){return(exprEval(_jC))._f[2]}),F_cF=new HSFun("F_cF",1,function(_jD){return(exprEval(_jD))._f[3]}),F_cG=new HSFun("F_cG",2,function(_cp,_cq){var c54=exprEval(_cp);switch((c54)._t){case 2:return _cq;case 3:return function(_cr,_cs){return new HSCons(_cr,(F_cG)._b(_cs,_cq))}((c54)._f[0],(c54)._f[1])};throw ('X ('+this._n+') '+c54.toSource())}),F_cH=new HSFun("F_cH",1,function(_jE){return(exprEval(_jE))._f[4]}),F_cI=new HSFun("F_cI",2,function(_b9,_ca){return(F_fc)._ap([_ca,_b9])}),F_cJ=new HSFun("F_cJ",1,function(_jn){return(exprEval(_jn))._f[1]}),F_cK=new HSFun("F_cK",1,function(_jo){return(exprEval(_jo))._f[2]}),F_cL=new HSFun("F_cL",1,function(_jd){return(exprEval(_jd))._f[1]}),F_cM=new HSFun("F_cM",1,function(_jq){return(exprEval(_jq))._f[4]}),F_cN=new HSFun("F_cN",1,function(_jp){return(exprEval(_jp))._f[3]}),F_cO=new HSFun("F_cO",1,function(_f7){return _f7}),F_cP=new HSFun("F_cP",0,function(){return new HSData((-10),[F_cW,F_cV,F_cQ,F_cU,F_cX,F_cR,F_cT,F_cS])}),F_cQ=new HSFun("F_cQ",1,function(_hH){return new HSCons(_hH,(F_cQ)._b((exprEval(_hH))+(1)))}),F_cR=new HSFun("F_cR",2,function(_hF,_hG){return new HSCons(_hF,(F_cR)._b(_hG,(exprEval((2)*(exprEval(_hG))))-(exprEval(_hF))))}),F_cS=new HSFun("F_cS",3,function(_hK,_hL,_hM){return(F_e1)._b(F_cP,_hK,_hL,_hM)}),F_cT=new HSFun("F_cT",2,function(_hN,_hO){return(F_e2)._b(F_cP,_hN,_hO)}),F_cU=new HSFun("F_cU",1,function(_hI){return _hI}),F_cV=new HSFun("F_cV",1,function(_hP){return(F_e6)._b(F_cP,_hP)}),F_cW=new HSFun("F_cW",1,function(_hQ){return(F_fa)._b(F_cP,_hQ)}),F_cX=new HSFun("F_cX",1,function(_hJ){return _hJ}),F_cY=new HSFun("F_cY",0,function(){return new HSData((-10),[F_c5,F_c4,F_cZ,F_c3,F_c6,F_c0,F_c2,F_c1])}),F_cZ=new HSFun("F_cZ",1,function(_g2){return new HSCons(_g2,(F_cZ)._b((F_hF)._b(_g2,1)))}),F_c0=new HSFun("F_c0",2,function(_g0,_g1){return new HSCons(_g0,(F_c0)._b(_g1,(F_hF)._b((F_hM)._b(2,_g1),_g0)))}),F_c1=new HSFun("F_c1",3,function(_g7,_g8,_g9){return(F_e1)._b(F_cY,_g7,_g8,_g9)}),F_c2=new HSFun("F_c2",2,function(_ha,_hb){return(F_e2)._b(F_cY,_ha,_hb)}),F_c3=new HSFun("F_c3",1,function(_g3){return(F_hD)._b(_g3)}),F_c4=new HSFun("F_c4",1,function(_g5){return(F_hS)._b(_g5,1)}),F_c5=new HSFun("F_c5",1,function(_g6){return(F_hF)._b(_g6,1)}),F_c6=new HSFun("F_c6",1,function(_g4){return(F_hH)._b(_g4)}),F_c7=new HSFun("F_c7",1,function(_fq){var c55=exprEval(_fq);switch((c55)._t){case 17:return 0;case 13:return 1;case 15:return 2};throw ('X ('+this._n+') '+c55.toSource())}),F_c8=new HSFun("F_c8",0,function(){return new HSData((-7),[F_c9,F_da])}),F_c9=new HSFun("F_c9",2,function(_f5,_f6){return(F_eU)._b(F_c8,_f5,_f6)}),F_da=new HSFun("F_da",2,function(_f3,_f4){return(Number(exprEval(_f3)))===(Number(exprEval(_f4)))}),F_db=new HSFun("F_db",0,function(){return new HSData((-7),[F_dc,F_dd])}),F_dc=new HSFun("F_dc",2,function(_if,_ig){return(Number(exprEval(_if)))!==(Number(exprEval(_ig)))}),F_dd=new HSFun("F_dd",2,function(_ih,_ii){return(Number(exprEval(_ih)))===(Number(exprEval(_ii)))}),F_de=new HSFun("F_de",0,function(){return new HSData((-7),[F_df,F_dg])}),F_df=new HSFun("F_df",2,function(_gW,_gX){return(F_hN)._b(_gW,_gX)}),F_dg=new HSFun("F_dg",2,function(_gY,_gZ){return(F_hG)._b(_gY,_gZ)}),F_dh=new HSFun("F_dh",0,function(){return new HSData((-7),[F_di,F_dj])}),F_di=new HSFun("F_di",2,function(_fo,_fp){return(F_eU)._b(F_dh,_fo,_fp)}),F_dj=new HSFun("F_dj",2,function(_fj,_fk){return(Number(exprEval((F_c7)._b(_fj))))===(Number(exprEval((F_c7)._b(_fk))))}),F_dk=new HSFun("F_dk",1,function(_bW){return new HSData((-7),[new HSFun("F_dl",0,function(){return(F_dl)._ap([_bW])}),new HSFun("F_dm",0,function(){return(F_dm)._ap([_bW])})])}),F_dl=new HSFun("F_dl",3,function(_iP,_iQ,_iR){return(F_eU)._b(new HSFun("F_dk",0,function(){return(F_dk)._b(_iP)}),_iQ,_iR)}),F_dm=new HSFun("F_dm",3,function(_iI,_iJ,_iK){var c56=exprEval(_iJ);switch((c56)._t){case 2:var c57=exprEval(_iK);switch((c57)._t){case 2:return true;default:return false};throw ('X ('+this._n+') '+c57.toSource());case 3:return function(_iL,_iM){var c58=exprEval(_iK);switch((c58)._t){case 3:return function(_iN,_iO){return(F_cD)._b(((exprEval(_iI))._f[1])._ap([_iL,_iN]),new HSFun("F_dm",0,function(){return(F_dm)._b(_iI,_iM,_iO)}))}((c58)._f[0],(c58)._f[1]);default:return false};throw ('X ('+this._n+') '+c58.toSource())}((c56)._f[0],(c56)._f[1])};throw ('X ('+this._n+') '+c56.toSource())}),F_dn=new HSFun("F_dn",0,function(){return new HSData((-11),[F_eE,F_cP,F_dp,F_dq,F_ds,F_dt,F_du,F_dr,F_do])}),F_do=new HSFun("F_do",2,function(_hC,_hD){return(F_eZ)._b(F_dn,_hC,_hD)}),F_dp=new HSFun("F_dp",2,function(_hx,_hy){return(F_e0)._b(F_dn,_hx,_hy)}),F_dq=new HSFun("F_dq",2,function(_hp,_hq){var _k=new HSFun("_k",0,function(){return(exprEval(_hp))%(exprEval(_hq))}),c59=exprEval((Number(exprEval((F_hE)._b(_k))))===(Number(exprEval(NEG_W(exprEval((F_hE)._b(_hq)))))));switch((c59)._t){case true:return(exprEval(_k))+(exprEval(_hq));case false:return _k};throw ('X ('+this._n+') '+c59.toSource())}),F_dr=new HSFun("F_dr",2,function(_hv,_hw){return function(x,y){return(x-(x%y))/y}(Number(exprEval(_hv)),Number(exprEval(_hw)))}),F_ds=new HSFun("F_ds",2,function(_hr,_hs){return new HSData((-7),[function(x,y){return(x-(x%y))/y}(Number(exprEval(_hr)),Number(exprEval(_hs))),(exprEval(_hr))%(exprEval(_hs))])}),F_dt=new HSFun("F_dt",2,function(_ht,_hu){return(exprEval(_ht))%(exprEval(_hu))}),F_du=new HSFun("F_du",1,function(_ho){return(F_hH)._b(_ho)}),F_dv=new HSFun("F_dv",0,function(){return new HSData((-11),[F_eG,F_cY,F_dx,F_dy,F_dA,F_dB,F_dC,F_dz,F_dw])}),F_dw=new HSFun("F_dw",2,function(_gi,_gj){return(exprEval((F_dx)._b(_gi,_gj)))._f[0]}),F_dx=new HSFun("F_dx",2,function(_gv,_gw){return(F_e0)._b(F_dv,_gv,_gw)}),F_dy=new HSFun("F_dy",2,function(_gg,_gh){return(exprEval((F_dx)._b(_gg,_gh)))._f[1]}),F_dz=new HSFun("F_dz",2,function(_gm,_gn){return(F_hP)._b(_gm,_gn)}),F_dA=new HSFun("F_dA",2,function(_ge,_gf){return(F_hQ)._b(_ge,_gf)}),F_dB=new HSFun("F_dB",2,function(_gk,_gl){return(F_hR)._b(_gk,_gl)}),F_dC=new HSFun("F_dC",1,function(_gd){return _gd}),F_dD=new HSFun("F_dD",1,function(_jX){return(exprEval(_jX))._f[0]}),F_dE=new HSFun("F_dE",1,function(_jB){return(exprEval(_jB))._f[0]}),F_dF=new HSFun("F_dF",0,function(){return new HSData((-11),[F_db,F_eK,F_dG,F_dH,F_dI,F_dL,F_dM,F_dK,F_dJ])}),F_dG=new HSFun("F_dG",2,function(_hU,_hV){return(exprEval(_hU))*(exprEval(_hV))}),F_dH=new HSFun("F_dH",2,function(_hY,_hZ){return(exprEval(_hY))+(exprEval(_hZ))}),F_dI=new HSFun("F_dI",2,function(_hW,_hX){return(exprEval(_hW))-(exprEval(_hX))}),F_dJ=new HSFun("F_dJ",1,function(_hT){return(F_hC)._b(_hT)}),F_dK=new HSFun("F_dK",1,function(_hR){return(F_hD)._b(_hR)}),F_dL=new HSFun("F_dL",1,function(a){return 0-Number(exprEval(a))}),F_dM=new HSFun("F_dM",1,function(_hS){return(F_hE)._b(_hS)}),F_dN=new HSFun("F_dN",0,function(){return new HSData((-11),[F_de,F_eP,F_dO,F_dP,F_dQ,F_dT,F_dU,F_dS,F_dR])}),F_dO=new HSFun("F_dO",2,function(_gC,_gD){return(F_hM)._b(_gC,_gD)}),F_dP=new HSFun("F_dP",2,function(_gG,_gH){return(F_hF)._b(_gG,_gH)}),F_dQ=new HSFun("F_dQ",2,function(_gE,_gF){return(F_hS)._b(_gE,_gF)}),F_dR=new HSFun("F_dR",1,function(_gA){var c60=exprEval((F_hL)._b(_gA,0));switch((c60)._t){case true:return(F_hO)._b(_gA);case false:return _gA};throw ('X ('+this._n+') '+c60.toSource())}),F_dS=new HSFun("F_dS",1,function(_gy){return _gy}),F_dT=new HSFun("F_dT",1,function(_gB){return(F_hO)._b(_gB)}),F_dU=new HSFun("F_dU",1,function(_gz){var c61=exprEval((F_eh)._b(_gz,0));switch((c61)._t){case 17:return -1;case 13:return 0;case 15:return 1};throw ('X ('+this._n+') '+c61.toSource())}),F_dV=new HSFun("F_dV",0,function(){return new HSData((-10),[F_c8,F_dW,F_dX,F_dZ,F_dY,F_d0,F_d2,F_d1])}),F_dW=new HSFun("F_dW",2,function(_f1,_f2){return(F_eV)._b(F_dV,_f1,_f2)}),F_dX=new HSFun("F_dX",2,function(_fR,_fS){return(Number(exprEval(_fR)))<=(Number(exprEval(_fS)))}),F_dY=new HSFun("F_dY",2,function(_fX,_fY){return(F_eW)._b(F_dV,_fX,_fY)}),F_dZ=new HSFun("F_dZ",2,function(_fZ,_f0){return(F_eX)._b(F_dV,_fZ,_f0)}),F_d0=new HSFun("F_d0",2,function(_fP,_fQ){return(F_d9)._b(_fP,_fQ)}),F_d1=new HSFun("F_d1",2,function(_fV,_fW){return(F_e4)._b(F_dV,_fV,_fW)}),F_d2=new HSFun("F_d2",2,function(_fT,_fU){return(F_e5)._b(F_dV,_fT,_fU)}),F_d3=new HSFun("F_d3",1,function(_jm){return(exprEval(_jm))._f[0]}),F_d4=new HSFun("F_d4",0,function(){return new HSData((-10),[F_db,F_d5,F_d6,F_d8,F_d7,F_d9,F_eb,F_ea])}),F_d5=new HSFun("F_d5",2,function(_h6,_h7){return(Number(exprEval(_h6)))<(Number(exprEval(_h7)))}),F_d6=new HSFun("F_d6",2,function(_h4,_h5){return(Number(exprEval(_h4)))<=(Number(exprEval(_h5)))}),F_d7=new HSFun("F_d7",2,function(_h0,_h1){return(Number(exprEval(_h0)))>(Number(exprEval(_h1)))}),F_d8=new HSFun("F_d8",2,function(_h2,_h3){return(Number(exprEval(_h2)))>=(Number(exprEval(_h3)))}),F_d9=new HSFun("F_d9",2,function(_id,_ie){return(F_eY)._b(F_d4,_id,_ie)}),F_ea=new HSFun("F_ea",2,function(_ib,_ic){return(F_e4)._b(F_d4,_ib,_ic)}),F_eb=new HSFun("F_eb",2,function(_h8,_h9){return(F_e5)._b(F_d4,_h8,_h9)}),F_ec=new HSFun("F_ec",0,function(){return new HSData((-10),[F_de,F_ed,F_ee,F_eg,F_ef,F_eh,F_ej,F_ei])}),F_ed=new HSFun("F_ed",2,function(_gO,_gP){return(F_hL)._b(_gO,_gP)}),F_ee=new HSFun("F_ee",2,function(_gM,_gN){return(F_hK)._b(_gM,_gN)}),F_ef=new HSFun("F_ef",2,function(_gI,_gJ){return(F_hJ)._b(_gI,_gJ)}),F_eg=new HSFun("F_eg",2,function(_gK,_gL){return(F_hI)._b(_gK,_gL)}),F_eh=new HSFun("F_eh",2,function(_gU,_gV){return(F_eY)._b(F_ec,_gU,_gV)}),F_ei=new HSFun("F_ei",2,function(_gS,_gT){return(F_e4)._b(F_ec,_gS,_gT)}),F_ej=new HSFun("F_ej",2,function(_gQ,_gR){return(F_e5)._b(F_ec,_gQ,_gR)}),F_ek=new HSFun("F_ek",1,function(_cL){var c62=exprEval(_cL);switch((c62)._t){case 3:return function(_cM,_cN){var c63=exprEval(_cM);switch((c63).valueOf()){case 34:return new HSCons(new HSData((-7),[F_fl,_cN]),new HSEOL());default:return(F_gg)._b(F_fn,(F_el)._ap([_cL]),new HSEOL())};throw ('X ('+this._n+') '+c63.toSource())}((c62)._f[0],(c62)._f[1]);default:return(F_gg)._b(F_fn,(F_el)._ap([_cL]),new HSEOL())};throw ('X ('+this._n+') '+c62.toSource())}),F_el=new HSFun("F_el",1,function(_cE){var c64=exprEval(_cE);switch((c64)._t){case 3:return function(_cF,_cG){var c65=exprEval(_cF);switch((c65).valueOf()){case 92:var c66=exprEval(_cG);switch((c66)._t){case 3:return function(_cH,_cI){var c67=exprEval(_cH);switch((c67).valueOf()){case 38:return new HSCons(new HSData((-7),[F_fi,_cI]),new HSEOL());default:var c68=exprEval((F_Z)._b(_cH));switch((c68)._t){case true:return(F_gg)._b(F_fk,new HSCons((F_gl)._b(F_Z,_cI),new HSEOL()),new HSEOL());case false:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c68.toSource())};throw ('X ('+this._n+') '+c67.toSource())}((c66)._f[0],(c66)._f[1]);default:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c66.toSource());default:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c65.toSource())}((c64)._f[0],(c64)._f[1]);default:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c64.toSource())}),F_em=new HSFun("F_em",1,function(_dk){return((F_gm)._b(F_c8,_dk))._ap([F_fD])}),F_en=new HSFun("F_en",1,function(_dj){return((F_gm)._b(F_c8,_dj))._ap([F_fC])}),F_eo=new HSFun("F_eo",1,function(_di){return(F_g1)._b((F_W)._b(_di),(Number(exprEval(_di)))===(Number(exprEval(mkChar(95)))))}),F_ep=new HSFun("F_ep",1,function(_dh){return(F_g1)._b((F_X)._b(_dh),((F_gm)._b(F_c8,_dh))._ap([F_fB]))}),F_eq=new HSFun("F_eq",1,function(_c8){var c69=exprEval(_c8);switch((c69)._t){case 3:return function(_c9,_da){var c70=exprEval(_c9);switch((c70).valueOf()){case 46:var c71=exprEval(_da);switch((c71)._t){case 3:return function(_db,_dc){var c72=exprEval((F_bg)._b(_db));switch((c72)._t){case true:return(F_gg)._b(F_fA,(F_cx)._ap([new HSCons(_db,_dc)]),new HSEOL());case false:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c72.toSource())}((c71)._f[0],(c71)._f[1]);default:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c71.toSource());default:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c70.toSource())}((c69)._f[0],(c69)._f[1]);default:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c69.toSource())}),F_er=new HSFun("F_er",1,function(_cY){var c73=exprEval(_cY);switch((c73)._t){case 3:return function(_cZ,_c0){var c74=exprEval(((F_gm)._b(F_c8,_cZ))._ap([F_ft]));switch((c74)._t){case true:return(F_cG)._b((F_gg)._b(new HSFun("F_fw",0,function(){return(F_fw)._ap([_cZ])}),new HSCons(_c0,new HSEOL()),new HSEOL()),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_fx",0,function(){return(F_fx)._ap([_cZ])}),(F_cx)._ap([_c0]),new HSEOL())}));case false:return new HSCons(new HSData((-7),[F_fy,_cY]),new HSEOL())};throw ('X ('+this._n+') '+c74.toSource())}((c73)._f[0],(c73)._f[1]);default:return new HSCons(new HSData((-7),[F_fy,_cY]),new HSEOL())};throw ('X ('+this._n+') '+c73.toSource())}),F_es=new HSFun("F_es",2,function(_du,_dv){return(F_cG)._b((_du)._ap([_dv]),((F_et)._ap([_du]))._ap([_dv]))}),F_et=new HSFun("F_et",2,function(_du,_dw){return(F_gg)._b(new HSFun("F_fL",0,function(){return(F_fL)._ap([_du])}),(F_gz)._b(_dw),new HSEOL())}),F_eu=new HSFun("F_eu",3,function(_eD,_eE,_eF){var c75=exprEval(((exprEval((exprEval((exprEval((exprEval(_eD))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eF,((exprEval((exprEval((exprEval(_eD))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c75)._t){case true:return _eE;case false:return(F_eu)._ap([_eD,_eF,((exprEval(_eD))._f[5])._ap([_eE,_eF])])};throw ('X ('+this._n+') '+c75.toSource())}),F_ev=new HSFun("F_ev",2,function(_dY,_dZ){return(F_cG)._b((F_gg)._b(F_fQ,(F_gz)._b(_dZ),new HSEOL()),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_fS",0,function(){return(F_fS)._ap([_dY])}),((exprEval(_dY))._f[0])._ap([0,_dZ]),new HSEOL())}))}),F_ew=new HSFun("F_ew",2,function(_dK,_dL){return(F_cG)._b((F_gg)._b(F_fM,(F_gz)._b(_dL),new HSEOL()),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_fP",0,function(){return(F_fP)._ap([_dK])}),(F_gz)._b(_dL),new HSEOL())}))}),F_ex=new HSFun("F_ex",2,function(_ek,_el){var c76=exprEval(_el);switch((c76)._t){case 2:return(F_fW)._ap([mkChar(93)]);case 3:return function(_em,_en){return(F_fc)._ap([(F_fc)._ap([(F_ex)._ap([_ek,_en]),((exprEval(_ek))._f[0])._ap([0,_em])]),(F_gT)._ap([F_fY])])}((c76)._f[0],(c76)._f[1])};throw ('X ('+this._n+') '+c76.toSource())}),F_ey=new HSFun("F_ey",2,function(_iD,_iE){var c77=exprEval(_iE);switch((c77)._t){case 2:return _iD;case 3:return function(_iF,_iG){var _u=new HSFun("_u",0,function(){return(exprEval(_iD))+(1)});return(F_gP)._b(_u,(F_ey)._ap([_u,_iG]))}((c77)._f[0],(c77)._f[1])};throw ('X ('+this._n+') '+c77.toSource())}),F_ez=new HSFun("F_ez",3,function(_hg,_hh,_hi){return(F_gB)._b(new HSFun("F_f8",0,function(){return(F_f8)._ap([_hg])}),((F_eD)._b(_hh))._ap([_hi]))}),F_eA=new HSFun("F_eA",0,function(){return new HSData((-7),[F_eC,F_eB])}),F_eB=new HSFun("F_eB",0,function(){return(F_e7)._b(F_eA)}),F_eC=new HSFun("F_eC",1,function(_hf){return(F_f9)._ap([_hf])}),F_eD=new HSFun("F_eD",1,function(v25828){return(F_cy)._b(F_eG,new HSFun("F_bl",0,function(){return(F_bl)._b(F_dv)}))}),F_eE=new HSFun("F_eE",0,function(){return new HSData((-8),[F_dF,F_d4,F_eF])}),F_eF=new HSFun("F_eF",1,function(_hE){return(F_6)._b(F_dv,(F_hH)._b(_hE),1)}),F_eG=new HSFun("F_eG",0,function(){return new HSData((-8),[F_dN,F_ec,F_eH])}),F_eH=new HSFun("F_eH",1,function(_gx){return(F_6)._b(F_dv,_gx,1)}),F_eI=new HSFun("F_eI",1,function(_jM){return(exprEval(_jM))._f[0]}),F_eJ=new HSFun("F_eJ",1,function(_jN){return(exprEval(_jN))._f[1]}),F_eK=new HSFun("F_eK",0,function(){return new HSData((-9),[F_eN,F_eO,F_eM,F_eL])}),F_eL=new HSFun("F_eL",1,function(_hn){return(F_e8)._b(F_eK,_hn)}),F_eM=new HSFun("F_eM",1,function(_hm){return(F_e9)._b(F_eK,_hm)}),F_eN=new HSFun("F_eN",2,function(_kn,_ko){var c78=exprEval((Number(exprEval(_ko)))<(0));switch((c78)._t){case true:return(F_gS)._b((Number(exprEval(_kn)))>(6),(F_fc)._ap([(F_hh)._ap([new HSFun("F_dL",0,function(){return(F_dL)._b(_ko)})]),(F_fW)._ap([mkChar(45)])]));case false:return(F_hh)._ap([_ko])};throw ('X ('+this._n+') '+c78.toSource())}),F_eO=new HSFun("F_eO",1,function(v26141){return(F_gT)._ap([F_ga])}),F_eP=new HSFun("F_eP",0,function(){return new HSData((-9),[F_eS,F_eT,F_eR,F_eQ])}),F_eQ=new HSFun("F_eQ",1,function(_gc){return(F_e8)._b(F_eP,_gc)}),F_eR=new HSFun("F_eR",1,function(_gb){return(F_e9)._b(F_eP,_gb)}),F_eS=new HSFun("F_eS",2,function(_f9,_ga){return(F_cB)._b(F_eG,new HSFun("F_cz",0,function(){return(F_cz)._b(F_dv)}),_f9,_ga)}),F_eT=new HSFun("F_eT",1,function(v25823){return(F_gT)._ap([F_f5])}),F_eU=new HSFun("F_eU",3,function(_fl,_fm,_fn){return(F_gD)._b(((exprEval(_fl))._f[1])._ap([_fm,_fn]))}),F_eV=new HSFun("F_eV",3,function(_fg,_fh,_fi){return(F_dj)._b(((exprEval(_fg))._f[5])._ap([_fh,_fi]),new HSData(17,[]))}),F_eW=new HSFun("F_eW",3,function(_fa,_fb,_fc){return(F_dj)._b(((exprEval(_fa))._f[5])._ap([_fb,_fc]),new HSData(15,[]))}),F_eX=new HSFun("F_eX",3,function(_fd,_fe,_ff){return(F_di)._b(((exprEval(_fd))._f[5])._ap([_fe,_ff]),new HSData(17,[]))}),F_eY=new HSFun("F_eY",3,function(_fL,_fM,_fN){var c79=exprEval(((exprEval((exprEval(_fL))._f[0]))._f[1])._ap([_fM,_fN]));switch((c79)._t){case true:return new HSData(13,[]);case false:var c80=exprEval(((exprEval(_fL))._f[2])._ap([_fM,_fN]));switch((c80)._t){case true:return new HSData(17,[]);case false:return new HSData(15,[])};throw ('X ('+this._n+') '+c80.toSource())};throw ('X ('+this._n+') '+c79.toSource())}),F_eZ=new HSFun("F_eZ",3,function(_hz,_hA,_hB){return(exprEval(((exprEval(_hz))._f[2])._ap([_hA,_hB])))._f[0]}),F_e0=new HSFun("F_e0",3,function(_go,_gp,_gq){var _Q=new HSFun("_Q",0,function(){return _go}),_r=new HSFun("_r",0,function(){return((exprEval(_Q))._f[4])._ap([_gp,_gq])}),_i=new HSFun("_i",0,function(){return _r}),_s=new HSFun("_s",0,function(){return(exprEval(_i))._f[0]}),_t=new HSFun("_t",0,function(){return(exprEval(_i))._f[1]}),c81=exprEval(((exprEval((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[0]))._f[1])._ap([((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[6])._ap([_t]),((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[5])._ap([((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[6])._ap([_gq])])]));switch((c81)._t){case true:return new HSData((-7),[((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[4])._ap([_s,((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[7])._ap([1])]),((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[3])._ap([_t,_gq])]);case false:return _r};throw ('X ('+this._n+') '+c81.toSource())}),F_e1=new HSFun("F_e1",4,function(_fz,_fA,_fB,_fC){var _L=new HSFun("_L",0,function(){return _fz}),_o=new HSFun("_o",0,function(){return((exprEval(_L))._f[3])._ap([_fB])}),_M=new HSFun("_M",0,function(){return _fz}),_n=new HSFun("_n",0,function(){return((exprEval(_M))._f[3])._ap([_fA])}),_q=new HSFun("_q",0,function(){return(exprEval(_o))-(exprEval(_n))}),_N=new HSFun("_N",0,function(){return _fz}),_p=new HSFun("_p",0,function(){return((exprEval(_N))._f[3])._ap([_fC])}),c82=exprEval((Number(exprEval(_q)))>=(0));switch((c82)._t){case true:return(F_ge)._b(_fz,_n,_q,_p);case false:return(F_gd)._b(_fz,_n,_q,_p)};throw ('X ('+this._n+') '+c82.toSource())}),F_e2=new HSFun("F_e2",3,function(_fD,_fE,_fF){var _O=new HSFun("_O",0,function(){return _fD}),_m=new HSFun("_m",0,function(){return((exprEval(_O))._f[3])._ap([_fF])}),_P=new HSFun("_P",0,function(){return _fD}),_l=new HSFun("_l",0,function(){return((exprEval(_P))._f[3])._ap([_fE])}),c83=exprEval((F_d9)._b(_l,_m));switch((c83)._t){case 17:return(F_ge)._b(_fD,_l,1,_m);case 13:return new HSCons(_fE,new HSEOL());case 15:return new HSEOL()};throw ('X ('+this._n+') '+c83.toSource())}),F_e3=new HSFun("F_e3",2,function(v25368,_e1){return(F_gn)._b(_e1)}),F_e4=new HSFun("F_e4",3,function(_e7,_e8,_e9){var c84=exprEval(((exprEval(_e7))._f[3])._ap([_e8,_e9]));switch((c84)._t){case true:return _e8;case false:return _e9};throw ('X ('+this._n+') '+c84.toSource())}),F_e5=new HSFun("F_e5",3,function(_e4,_e5,_e6){var c85=exprEval(((exprEval(_e4))._f[2])._ap([_e5,_e6]));switch((c85)._t){case true:return _e5;case false:return _e6};throw ('X ('+this._n+') '+c85.toSource())}),F_e6=new HSFun("F_e6",2,function(_fG,_fH){return((F_fc)._ap([(F_fc)._ap([new HSFun("F_gs",0,function(){return(exprEval(_fG))._f[3]}),((F_gY)._b(F_dF))._ap([1])]),(exprEval(_fG))._f[4]]))._ap([_fH])}),F_e7=new HSFun("F_e7",1,function(_dJ){return(F_gJ)._b(false,new HSFun("F_fV",0,function(){return(F_fV)._ap([_dJ])}))}),F_e8=new HSFun("F_e8",2,function(_eo,_ep){return((exprEval(_eo))._f[0])._ap([0,_ep,F_fZ])}),F_e9=new HSFun("F_e9",2,function(_eg,_eh){var c86=exprEval(_eh);switch((c86)._t){case 2:return(F_gT)._ap([F_fX]);case 3:return function(_ei,_ej){return(F_fc)._ap([(F_fc)._ap([(F_ex)._ap([_eg,_ej]),((exprEval(_eg))._f[0])._ap([0,_ei])]),(F_fW)._ap([mkChar(91)])])}((c86)._f[0],(c86)._f[1])};throw ('X ('+this._n+') '+c86.toSource())}),F_fa=new HSFun("F_fa",2,function(_fI,_fJ){return((F_fc)._ap([(F_fc)._ap([new HSFun("F_gs",0,function(){return(exprEval(_fI))._f[3]}),new HSFun("F_go",0,function(){return(F_go)._ap([F_dH,1])})]),(exprEval(_fI))._f[4]]))._ap([_fJ])}),F_fb="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 592:1-594:31.",F_fc=new HSFun("F_fc",3,function(_ca,_b9,_bV){return(_b9)._ap([(_ca)._ap([_bV])])}),F_fd=new HSFun("F_fd",1,function(_j){return(exprEval(_j))._f[0]}),F_fe=new HSFun("F_fe",1,function(_j){return(exprEval(_j))._f[1]}),F_ff="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 736:1-738:32.",F_fg="",F_fh="",F_fi="\\&",F_fj="\\&",F_fk=new HSFun("F_fk",2,function(_bb,_bc){var c87=exprEval(_bb);switch((c87)._t){case 3:return function(_cJ,_cK){var c88=exprEval(_cJ);switch((c88).valueOf()){case 92:return new HSCons(new HSData((-7),[F_fj,_cK]),_bc);default:return _bc};throw ('X ('+this._n+') '+c88.toSource())}((c87)._f[0],(c87)._f[1]);default:return _bc};throw ('X ('+this._n+') '+c87.toSource())}),F_fl="\"",F_fm=new HSFun("F_fm",3,function(_cO,_9,_ba){var c89=exprEval(_9);return function(_cQ,_cR){return new HSCons(new HSData((-7),[new HSFun("F_cG",0,function(){return(F_cG)._b(_cO,_cQ)}),_cR]),_ba)}((c89)._f[0],(c89)._f[1])}),F_fn=new HSFun("F_fn",2,function(_7,_8){var c90=exprEval(_7);return function(_cO,_cP){return(F_gg)._b(new HSFun("F_fm",0,function(){return(F_fm)._ap([_cO])}),(F_ek)._ap([_cP]),_8)}((c90)._f[0],(c90)._f[1])}),F_fo=new HSFun("F_fo",2,function(_bd,_be){var c91=exprEval(_bd);return function(_cS,_cT){return new HSCons(new HSData((-7),[new HSCons(mkChar(34),_cS),_cT]),_be)}((c91)._f[0],(c91)._f[1])}),F_fp="\'",F_fq="\'",F_fr=new HSFun("F_fr",3,function(_cU,_cX,_j8){return new HSCons(new HSData((-7),[new HSCons(mkChar(39),(F_cG)._b(_cU,F_fq)),_cX]),_j8)}),F_fs=new HSFun("F_fs",2,function(_5,_6){var c92=exprEval(_5);return function(_cU,_cV){var c93=exprEval(_cV);switch((c93)._t){case 3:return function(_cW,_cX){var c94=exprEval(_cW);switch((c94).valueOf()){case 39:return(F_gf)._b((F_dl)._b(F_c8,_cU,F_fp),new HSFun("F_fr",0,function(){return(F_fr)._ap([_cU,_cX])}),_6);default:return _6};throw ('X ('+this._n+') '+c94.toSource())}((c93)._f[0],(c93)._f[1]);default:return _6};throw ('X ('+this._n+') '+c93.toSource())}((c92)._f[0],(c92)._f[1])}),F_ft="eE",F_fu="+-",F_fv=new HSFun("F_fv",4,function(_cZ,_c1,_bl,_bm){var c95=exprEval(_bl);return function(_c3,_c4){return new HSCons(new HSData((-7),[new HSCons(_cZ,new HSCons(_c1,_c3)),_c4]),_bm)}((c95)._f[0],(c95)._f[1])}),F_fw=new HSFun("F_fw",3,function(_cZ,_bj,_bk){var c96=exprEval(_bj);switch((c96)._t){case 3:return function(_c1,_c2){return(F_gf)._b(((F_gm)._b(F_c8,_c1))._ap([F_fu]),new HSFun("F_gg",0,function(){return(F_gg)._ap([new HSFun("F_fv",0,function(){return(F_fv)._ap([_cZ,_c1])}),(F_cx)._ap([_c2])])}),_bk)}((c96)._f[0],(c96)._f[1]);default:return _bk};throw ('X ('+this._n+') '+c96.toSource())}),F_fx=new HSFun("F_fx",3,function(_cZ,_bn,_bo){var c97=exprEval(_bn);return function(_c5,_c6){return new HSCons(new HSData((-7),[new HSCons(_cZ,_c5),_c6]),_bo)}((c97)._f[0],(c97)._f[1])}),F_fy="",F_fz=new HSFun("F_fz",3,function(_dd,_bh,_bi){var c98=exprEval(_bh);return function(_df,_dg){return new HSCons(new HSData((-7),[new HSCons(mkChar(46),(F_cG)._b(_dd,_df)),_dg]),_bi)}((c98)._f[0],(c98)._f[1])}),F_fA=new HSFun("F_fA",2,function(_bf,_bg){var c99=exprEval(_bf);return function(_dd,_de){return(F_gg)._b(new HSFun("F_fz",0,function(){return(F_fz)._ap([_dd])}),(F_er)._ap([_de]),_bg)}((c99)._f[0],(c99)._f[1])}),F_fB="_\'",F_fC="!@#$%&*+./<=>\u003f\\^|:-~",F_fD=",;()[]{}`",F_fE=new HSFun("F_fE",3,function(_cC,_bp,_bq){var c100=exprEval(_bp);return function(_dl,_dm){return new HSCons(new HSData((-7),[new HSCons(_cC,_dl),_dm]),_bq)}((c100)._f[0],(c100)._f[1])}),F_fF=new HSFun("F_fF",3,function(_cC,_br,_bs){var c101=exprEval(_br);return function(_dn,_do){return new HSCons(new HSData((-7),[new HSCons(_cC,_dn),_do]),_bs)}((c101)._f[0],(c101)._f[1])}),F_fG=new HSFun("F_fG",4,function(_cC,_dp,_bv,_bw){var c102=exprEval(_bv);return function(_dr,_ds){return new HSCons(new HSData((-7),[new HSCons(_cC,(F_cG)._b(_dp,_dr)),_ds]),_bw)}((c102)._f[0],(c102)._f[1])}),F_fH=new HSFun("F_fH",3,function(_cC,_bt,_bu){var c103=exprEval(_bt);return function(_dp,_dq){return(F_gg)._b(new HSFun("F_fG",0,function(){return(F_fG)._ap([_cC,_dp])}),(F_eq)._ap([_dq]),_bu)}((c103)._f[0],(c103)._f[1])}),F_fI="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 1664:1-1701:35.",F_fJ=new HSFun("F_fJ",3,function(_dB,_bF,_bG){var c104=exprEval(_bF);return function(_dD,_dE){var c105=exprEval(_dD);switch((c105)._t){case 3:return function(_dF,_dG){var c106=exprEval(_dF);switch((c106).valueOf()){case 41:var c107=exprEval(_dG);switch((c107)._t){case 2:return new HSCons(new HSData((-7),[_dB,_dE]),_bG);default:return _bG};throw ('X ('+this._n+') '+c107.toSource());default:return _bG};throw ('X ('+this._n+') '+c106.toSource())}((c105)._f[0],(c105)._f[1]);default:return _bG};throw ('X ('+this._n+') '+c105.toSource())}((c104)._f[0],(c104)._f[1])}),F_fK=new HSFun("F_fK",2,function(_bD,_bE){var c108=exprEval(_bD);return function(_dB,_dC){return(F_gg)._b(new HSFun("F_fJ",0,function(){return(F_fJ)._ap([_dB])}),(F_gz)._b(_dC),_bE)}((c108)._f[0],(c108)._f[1])}),F_fL=new HSFun("F_fL",3,function(_du,_bB,_bC){var c109=exprEval(_bB);return function(_dx,_dy){var c110=exprEval(_dx);switch((c110)._t){case 3:return function(_dz,_dA){var c111=exprEval(_dz);switch((c111).valueOf()){case 40:var c112=exprEval(_dA);switch((c112)._t){case 2:return(F_gg)._b(F_fK,((F_es)._ap([_du]))._ap([_dy]),_bC);default:return _bC};throw ('X ('+this._n+') '+c112.toSource());default:return _bC};throw ('X ('+this._n+') '+c111.toSource())}((c110)._f[0],(c110)._f[1]);default:return _bC};throw ('X ('+this._n+') '+c110.toSource())}((c109)._f[0],(c109)._f[1])}),F_fM=new HSFun("F_fM",2,function(_lm,_ln){var c113=exprEval(_lm);return function(_dM,_dN){var c114=exprEval(_dM);switch((c114)._t){case 3:return function(_dO,_dP){var c115=exprEval(_dO);switch((c115).valueOf()){case 93:var c116=exprEval(_dP);switch((c116)._t){case 2:return new HSCons(new HSData((-7),[new HSEOL(),_dN]),_ln);default:return _ln};throw ('X ('+this._n+') '+c116.toSource());default:return _ln};throw ('X ('+this._n+') '+c115.toSource())}((c114)._f[0],(c114)._f[1]);default:return _ln};throw ('X ('+this._n+') '+c114.toSource())}((c113)._f[0],(c113)._f[1])}),F_fN=new HSFun("F_fN",3,function(_dU,_ls,_lt){var c117=exprEval(_ls);return function(_dW,_dX){return new HSCons(new HSData((-7),[new HSCons(_dU,_dW),_dX]),_lt)}((c117)._f[0],(c117)._f[1])}),F_fO=new HSFun("F_fO",3,function(_dK,_lq,_lr){var c118=exprEval(_lq);return function(_dU,_dV){return(F_gg)._b(new HSFun("F_fN",0,function(){return(F_fN)._ap([_dU])}),(F_ew)._ap([_dK,_dV]),_lr)}((c118)._f[0],(c118)._f[1])}),F_fP=new HSFun("F_fP",3,function(_dK,_lo,_lp){var c119=exprEval(_lo);return function(_dQ,_dR){var c120=exprEval(_dQ);switch((c120)._t){case 3:return function(_dS,_dT){var c121=exprEval(_dS);switch((c121).valueOf()){case 44:var c122=exprEval(_dT);switch((c122)._t){case 2:return(F_gg)._b(new HSFun("F_fO",0,function(){return(F_fO)._ap([_dK])}),((exprEval(_dK))._f[0])._ap([0,_dR]),_lp);default:return _lp};throw ('X ('+this._n+') '+c122.toSource());default:return _lp};throw ('X ('+this._n+') '+c121.toSource())}((c120)._f[0],(c120)._f[1]);default:return _lp};throw ('X ('+this._n+') '+c120.toSource())}((c119)._f[0],(c119)._f[1])}),F_fQ=new HSFun("F_fQ",2,function(_lg,_lh){var c123=exprEval(_lg);return function(_d0,_d1){var c124=exprEval(_d0);switch((c124)._t){case 3:return function(_d2,_d3){var c125=exprEval(_d2);switch((c125).valueOf()){case 93:var c126=exprEval(_d3);switch((c126)._t){case 2:return new HSCons(new HSData((-7),[new HSEOL(),_d1]),_lh);default:return _lh};throw ('X ('+this._n+') '+c126.toSource());default:return _lh};throw ('X ('+this._n+') '+c125.toSource())}((c124)._f[0],(c124)._f[1]);default:return _lh};throw ('X ('+this._n+') '+c124.toSource())}((c123)._f[0],(c123)._f[1])}),F_fR=new HSFun("F_fR",3,function(_d4,_lk,_ll){var c127=exprEval(_lk);return function(_d6,_d7){return new HSCons(new HSData((-7),[new HSCons(_d4,_d6),_d7]),_ll)}((c127)._f[0],(c127)._f[1])}),F_fS=new HSFun("F_fS",3,function(_dY,_li,_lj){var c128=exprEval(_li);return function(_d4,_d5){return(F_gg)._b(new HSFun("F_fR",0,function(){return(F_fR)._ap([_d4])}),(F_ew)._ap([_dY,_d5]),_lj)}((c128)._f[0],(c128)._f[1])}),F_fT=new HSFun("F_fT",2,function(_lx,_ly){return new HSCons(_lx,_ly)}),F_fU=new HSFun("F_fU",3,function(_dJ,_lv,_lw){var c129=exprEval(_lv);return function(_d8,_d9){var c130=exprEval(_d8);switch((c130)._t){case 3:return function(_ea,_eb){var c131=exprEval(_ea);switch((c131).valueOf()){case 91:var c132=exprEval(_eb);switch((c132)._t){case 2:return(F_gg)._b(F_fT,(F_ev)._ap([_dJ,_d9]),_lw);default:return _lw};throw ('X ('+this._n+') '+c132.toSource());default:return _lw};throw ('X ('+this._n+') '+c131.toSource())}((c130)._f[0],(c130)._f[1]);default:return _lw};throw ('X ('+this._n+') '+c130.toSource())}((c129)._f[0],(c129)._f[1])}),F_fV=new HSFun("F_fV",2,function(_dJ,_lu){return(F_gg)._b(new HSFun("F_fU",0,function(){return(F_fU)._ap([_dJ])}),(F_gz)._b(_lu),new HSEOL())}),F_fW=new HSFun("F_fW",2,function(_ka,_j9){return new HSCons(_ka,_j9)}),F_fX="[]",F_fY=",",F_fZ="",F_f0="Prelude.gcd: gcd 0 0 is undefined.",F_f1=new HSFun("F_f1",3,function(_eO,_bz,_bA){var c133=exprEval(_bz);return function(_eQ,_eR){var c134=exprEval(_eQ);switch((c134)._t){case 2:var c135=exprEval(_eR);switch((c135)._t){case 2:return new HSCons(_eO,_bA);default:return _bA};throw ('X ('+this._n+') '+c135.toSource());default:return _bA};throw ('X ('+this._n+') '+c134.toSource())}((c133)._f[0],(c133)._f[1])}),F_f2=new HSFun("F_f2",2,function(_bx,_by){var c136=exprEval(_bx);return function(_eO,_eP){return(F_gg)._b(new HSFun("F_f1",0,function(){return(F_f1)._ap([_eO])}),(F_gz)._b(_eP),_by)}((c136)._f[0],(c136)._f[1])}),F_f3="Prelude.read: no parse",F_f4="Prelude.read: ambiguous parse",F_f5="Integer",F_f6=new HSFun("F_f6",1,function(_i){return(exprEval(_i))._f[0]}),F_f7=new HSFun("F_f7",1,function(_i){return(exprEval(_i))._f[1]}),F_f8=new HSFun("F_f8",2,function(_hg,_hj){var c137=exprEval(_hj);return function(_hk,_hl){return new HSData((-7),[((exprEval(_hg))._f[7])._ap([_hk]),_hl])}((c137)._f[0],(c137)._f[1])}),F_f9=new HSFun("F_f9",2,function(_hf,_ki){return(F_ez)._ap([F_dF,_hf,_ki])}),F_ga="Int",F_gb=new HSFun("F_gb",2,function(_kc,_kb){return new HSCons(_kc,_kb)}),F_gc="PreludeList.foldl1: empty list",F_gd=new HSFun("F_gd",4,function(_fv,_fw,_fx,_fy){var c138=exprEval((F_d9)._b(_fw,_fy));switch((c138)._t){case 17:return new HSEOL();case 13:return new HSCons(((exprEval(_fv))._f[4])._ap([_fw]),new HSEOL());case 15:return new HSCons(((exprEval(_fv))._f[4])._ap([_fw]),(F_gd)._b(_fv,(exprEval(_fw))+(exprEval(_fx)),_fx,_fy))};throw ('X ('+this._n+') '+c138.toSource())}),F_ge=new HSFun("F_ge",4,function(_fr,_fs,_ft,_fu){var c139=exprEval((F_d9)._b(_fs,_fu));switch((c139)._t){case 17:return new HSCons(((exprEval(_fr))._f[4])._ap([_fs]),(F_ge)._b(_fr,(exprEval(_fs))+(exprEval(_ft)),_ft,_fu));case 13:return new HSCons(((exprEval(_fr))._f[4])._ap([_fs]),new HSEOL());case 15:return new HSEOL()};throw ('X ('+this._n+') '+c139.toSource())}),F_gf=new HSFun("F_gf",3,function(_b6,_b7,_b8){var c140=exprEval(_b6);switch((c140)._t){case true:return(_b7)._ap([_b8]);case false:return _b8};throw ('X ('+this._n+') '+c140.toSource())}),F_gg=new HSFun("F_gg",3,function(_bX,_bY,_bZ){var c141=exprEval(_bY);switch((c141)._t){case 2:return _bZ;case 3:return function(_b0,_b1){return(_bX)._ap([_b0,new HSFun("F_gg",0,function(){return(F_gg)._b(_bX,_b1,_bZ)})])}((c141)._f[0],(c141)._f[1])};throw ('X ('+this._n+') '+c141.toSource())}),F_gh=new HSFun("F_gh",1,function(_jI){return(exprEval(_jI))._f[8]}),F_gi=new HSFun("F_gi",1,function(_cm){return(F_fc)._ap([new HSFun("F_gB",0,function(){return(F_gB)._ap([_cm])}),F_gE])}),F_gj=new HSFun("F_gj",1,function(_jr){return(exprEval(_jr))._f[5]}),F_gk=new HSFun("F_gk",1,function(_jY){return(exprEval(_jY))._f[2]}),F_gl=new HSFun("F_gl",2,function(_b2,_b3){var c142=exprEval(_b3);switch((c142)._t){case 2:return new HSEOL();case 3:return function(_b4,_b5){var c143=exprEval((_b2)._ap([_b4]));switch((c143)._t){case true:return(F_gl)._b(_b2,_b5);case false:var c144=exprEval(F_gF);switch((c144)._t){case true:return _b3;case false:return(F_gn)._b(F_fb)};throw ('X ('+this._n+') '+c144.toSource())};throw ('X ('+this._n+') '+c143.toSource())}((c142)._f[0],(c142)._f[1])};throw ('X ('+this._n+') '+c142.toSource())}),F_gm=new HSFun("F_gm",2,function(_cn,_co){return(F_gi)._b(((exprEval(_cn))._f[1])._ap([_co]))}),F_gn=new HSFun("F_gn",1,function(a){throw ('E '+exprEval(a).toString());return undefined}),F_go=new HSFun("F_go",3,function(_eH,_eI,_eJ){return(_eH)._ap([_eJ,_eI])}),F_gp=new HSFun("F_gp",3,function(_ij,_ik,_il){var c145=exprEval(_il);switch((c145)._t){case 2:return _ik;case 3:return function(_im,_in){return(F_gp)._b(_ij,(_ij)._ap([_ik,_im]),_in)}((c145)._f[0],(c145)._f[1])};throw ('X ('+this._n+') '+c145.toSource())}),F_gq=new HSFun("F_gq",2,function(_ip,_iq){var c146=exprEval(_iq);switch((c146)._t){case 2:return(F_gn)._b(F_gc);case 3:return function(_ir,_is){return(F_gp)._b(_ip,_ir,_is)}((c146)._f[0],(c146)._f[1])};throw ('X ('+this._n+') '+c146.toSource())}),F_gr=new HSFun("F_gr",3,function(_cb,_cc,_cd){var c147=exprEval(_cd);switch((c147)._t){case 2:return _cc;case 3:return function(_ce,_cf){return(_cb)._ap([_ce,new HSFun("F_gr",0,function(){return(F_gr)._b(_cb,_cc,_cf)})])}((c147)._f[0],(c147)._f[1])};throw ('X ('+this._n+') '+c147.toSource())}),F_gs=new HSFun("F_gs",1,function(_i0){return(exprEval(_i0))._f[3]}),F_gt=new HSFun("F_gt",1,function(_jH){return(exprEval(_jH))._f[7]}),F_gu=new HSFun("F_gu",2,function(_eZ,_e0){return(F_fc)._ap([new HSFun("F_g0",0,function(){return(exprEval(_eZ))._f[6]}),(exprEval(_e0))._f[7]])}),F_gv=new HSFun("F_gv",1,function(_eu){return(exprEval(_eu))._f[0]}),F_gw=new HSFun("F_gw",3,function(_eA,_eB,_eC){var c148=exprEval(((exprEval((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eB,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c148)._t){case true:var c149=exprEval(((exprEval((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eC,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c149)._t){case true:return(F_gn)._b(F_f0);case false:return(F_eu)._ap([_eA,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eB]),((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eC])])};throw ('X ('+this._n+') '+c149.toSource());case false:return(F_eu)._ap([_eA,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eB]),((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eC])])};throw ('X ('+this._n+') '+c148.toSource())}),F_gx=new HSFun("F_gx",1,function(_eG){return _eG}),F_gy=new HSFun("F_gy",1,function(_iA){var c150=exprEval(_iA);switch((c150)._t){case 2:return 0;case 3:return function(_iB,_iC){return(F_ey)._ap([1,_iC])}((c150)._f[0],(c150)._f[1])};throw ('X ('+this._n+') '+c150.toSource())}),F_gz=new HSFun("F_gz",1,function(_cB){var c151=exprEval(_cB);switch((c151)._t){case 2:return new HSCons(new HSData((-7),[F_fg,F_fh]),new HSEOL());case 3:return function(_cC,_cD){var c152=exprEval((F_Z)._b(_cC));switch((c152)._t){case true:return(F_gz)._b((F_gl)._b(F_Z,_cD));case false:var c153=exprEval(_cC);switch((c153).valueOf()){case 34:return(F_gg)._b(F_fo,(F_ek)._ap([_cD]),new HSEOL());case 39:return(F_gg)._b(F_fs,(F_1)._b(_cD),new HSEOL());default:var c154=exprEval((F_em)._ap([_cC]));switch((c154)._t){case true:return new HSCons(new HSData((-7),[new HSCons(_cC,new HSEOL()),_cD]),new HSEOL());case false:var c155=exprEval((F_en)._ap([_cC]));switch((c155)._t){case true:return(F_gg)._b(new HSFun("F_fE",0,function(){return(F_fE)._ap([_cC])}),new HSCons((F_gX)._b(F_en,_cD),new HSEOL()),new HSEOL());case false:var c156=exprEval((F_eo)._ap([_cC]));switch((c156)._t){case true:return(F_gg)._b(new HSFun("F_fF",0,function(){return(F_fF)._ap([_cC])}),new HSCons((F_gX)._b(F_ep,_cD),new HSEOL()),new HSEOL());case false:var c157=exprEval((F_bg)._b(_cC));switch((c157)._t){case true:return(F_gg)._b(new HSFun("F_fH",0,function(){return(F_fH)._ap([_cC])}),new HSCons((F_gX)._b(F_bg,_cD),new HSEOL()),new HSEOL());case false:var c158=exprEval(F_gF);switch((c158)._t){case true:return new HSEOL();case false:return(F_gn)._b(F_fI)};throw ('X ('+this._n+') '+c158.toSource())};throw ('X ('+this._n+') '+c157.toSource())};throw ('X ('+this._n+') '+c156.toSource())};throw ('X ('+this._n+') '+c155.toSource())};throw ('X ('+this._n+') '+c154.toSource())};throw ('X ('+this._n+') '+c153.toSource())};throw ('X ('+this._n+') '+c152.toSource())}((c151)._f[0],(c151)._f[1])};throw ('X ('+this._n+') '+c151.toSource())}),F_gA=new HSFun("F_gA",3,function(_it,_iu,_iv){var c159=exprEval(_iv);switch((c159)._t){case 2:return new HSData(18,[]);case 3:return function(_iw,_ix){var c160=exprEval(_iw);return function(_iy,_iz){var c161=exprEval(((exprEval(_it))._f[1])._ap([_iu,_iy]));switch((c161)._t){case true:return new HSData(16,[_iz]);case false:return(F_gA)._b(_it,_iu,_ix)};throw ('X ('+this._n+') '+c161.toSource())}((c160)._f[0],(c160)._f[1])}((c159)._f[0],(c159)._f[1])};throw ('X ('+this._n+') '+c159.toSource())}),F_gB=new HSFun("F_gB",2,function(_ci,_cj){var c162=exprEval(_cj);switch((c162)._t){case 2:return new HSEOL();case 3:return function(_ck,_cl){return new HSCons((_ci)._ap([_ck]),(F_gB)._b(_ci,_cl))}((c162)._f[0],(c162)._f[1])};throw ('X ('+this._n+') '+c162.toSource())}),F_gC=new HSFun("F_gC",1,function(_jF){return(exprEval(_jF))._f[5]}),F_gD=new HSFun("F_gD",1,function(_eX){var c163=exprEval(_eX);switch((c163)._t){case true:return false;case false:return true};throw ('X ('+this._n+') '+c163.toSource())}),F_gE=new HSFun("F_gE",0,function(){return(F_gr)._ap([F_g1,false])}),F_gF=new HSFun("F_gF",0,function(){return true}),F_gG=new HSFun("F_gG",1,function(_j2){return(exprEval(_j2))._f[7]}),F_gH=new HSFun("F_gH",1,function(_jZ){return(exprEval(_jZ))._f[4]}),F_gI=new HSFun("F_gI",2,function(_eM,_eN){var c164=exprEval((F_gg)._b(F_f2,((F_gK)._b(_eM))._ap([_eN]),new HSEOL()));switch((c164)._t){case 2:return(F_gn)._b(F_f3);case 3:return function(_eS,_eT){var c165=exprEval(_eT);switch((c165)._t){case 2:return _eS;default:return(F_gn)._b(F_f4)};throw ('X ('+this._n+') '+c165.toSource())}((c164)._f[0],(c164)._f[1])};throw ('X ('+this._n+') '+c164.toSource())}),F_gJ=new HSFun("F_gJ",2,function(_dt,_du){var c166=exprEval(_dt);switch((c166)._t){case true:return(F_et)._ap([_du]);case false:return(F_es)._ap([_du])};throw ('X ('+this._n+') '+c166.toSource())}),F_gK=new HSFun("F_gK",1,function(_dH){return((exprEval(_dH))._f[0])._ap([0])}),F_gL=new HSFun("F_gL",1,function(_i4){return(exprEval(_i4))._f[0]}),F_gM=new HSFun("F_gM",1,function(_j0){return(exprEval(_j0))._f[5]}),F_gN=new HSFun("F_gN",1,function(_j7){return(exprEval(_j7))._f[3]}),F_gO=new HSFun("F_gO",0,function(){return(F_gp)._ap([new HSFun("F_go",0,function(){return(F_go)._ap([F_gb])}),new HSEOL()])}),F_gP=new HSFun("F_gP",2,function(a,b){exprEval(a);return b}),F_gQ=new HSFun("F_gQ",1,function(_ja){return(exprEval(_ja))._f[3]}),F_gR=new HSFun("F_gR",0,function(){return F_fW}),F_gS=new HSFun("F_gS",2,function(_eU,_eV){var c167=exprEval(_eU);switch((c167)._t){case true:return(F_fc)._ap([(F_fc)._ap([(F_fW)._ap([mkChar(41)]),_eV]),(F_fW)._ap([mkChar(40)])]);case false:return _eV};throw ('X ('+this._n+') '+c167.toSource())}),F_gT=new HSFun("F_gT",0,function(){return F_cG}),F_gU=new HSFun("F_gU",1,function(_i9){return(exprEval(_i9))._f[0]}),F_gV=new HSFun("F_gV",1,function(_jG){return(exprEval(_jG))._f[6]}),F_gW=new HSFun("F_gW",1,function(_ex){return(exprEval(_ex))._f[1]}),F_gX=new HSFun("F_gX",2,function(_ct,_cu){var c168=exprEval(_cu);switch((c168)._t){case 2:return new HSData((-7),[new HSEOL(),new HSEOL()]);case 3:return function(_cv,_cw){var c169=exprEval((_ct)._ap([_cv]));switch((c169)._t){case true:var _j=new HSFun("_j",0,function(){return(F_gX)._b(_ct,_cw)}),_v=new HSFun("_v",0,function(){return(exprEval(_j))._f[0]}),_w=new HSFun("_w",0,function(){return(exprEval(_j))._f[1]});return new HSData((-7),[new HSCons(_cv,_v),_w]);case false:var c170=exprEval(F_gF);switch((c170)._t){case true:return new HSData((-7),[new HSEOL(),_cu]);case false:return(F_gn)._b(F_ff)};throw ('X ('+this._n+') '+c170.toSource())};throw ('X ('+this._n+') '+c169.toSource())}((c168)._f[0],(c168)._f[1])};throw ('X ('+this._n+') '+c168.toSource())}),F_gY=new HSFun("F_gY",1,function(_eW){return(F_go)._ap([(exprEval(_eW))._f[4]])}),F_gZ=new HSFun("F_gZ",1,function(_i1){return(exprEval(_i1))._f[4]}),F_g0=new HSFun("F_g0",1,function(_j1){return(exprEval(_j1))._f[6]}),F_g1=new HSFun("F_g1",2,function(_cg,_ch){var c171=exprEval(_cg);switch((c171)._t){case true:return true;case false:return _ch};throw ('X ('+this._n+') '+c171.toSource())}),F_g2=new HSFun("F_g2",2,function(_y,_lb){return(F_5)._b(((exprEval(_lb))._f[7])._ap([0]),(F_gA)._b(F_c8,_y,(F_hc)._b(_lb)))}),F_g3=new HSFun("F_g3",2,function(_kR,_kS){var c172=exprEval(_kS);switch((c172)._t){case 2:return((exprEval(_kR))._f[7])._ap([0]);case 3:return function(_kT,_kU){return((exprEval(_kR))._f[3])._ap([((exprEval(_kR))._f[7])._ap([1]),(F_g3)._ap([_kR,_kU])])}((c172)._f[0],(c172)._f[1])};throw ('X ('+this._n+') '+c172.toSource())}),F_g4=new HSFun("F_g4",1,function(_x){return(exprEval(_x))._f[0]}),F_g5=new HSFun("F_g5",1,function(_x){return(exprEval(_x))._f[1]}),F_g6="Roman: Pattern match failure in function at 54:1-56:16.",F_g7="Roman: Pattern match failure in function at 38:1-43:55.",F_g8="",F_g9=new HSFun("F_g9",4,function(_kZ,_k0,_k1,_k2){var c173=exprEval(((exprEval(_k0))._f[1])._ap([_k1,_k2]));switch((c173)._t){case true:return((exprEval(_kZ))._f[4])._ap([_k2,_k1]);case false:var c174=exprEval(((exprEval(_k0))._f[4])._ap([_k1,_k2]));switch((c174)._t){case true:return((exprEval(_kZ))._f[3])._ap([_k2,_k1]);case false:return(F_gn)._b(F_g6)};throw ('X ('+this._n+') '+c174.toSource())};throw ('X ('+this._n+') '+c173.toSource())}),F_ha=new HSFun("F_ha",0,function(){return(F_fc)._ap([(F_fc)._ap([new HSFun("F_gB",0,function(){return(F_gB)._ap([F_2])}),new HSFun("F_hb",0,function(){return(F_hb)._ap([F_dF])})]),new HSFun("F_gr",0,function(){return(F_gr)._ap([new HSFun("F_g9",0,function(){return(F_g9)._ap([F_dF,F_d4])}),0])})])}),F_hb=new HSFun("F_hb",2,function(_kN,_kO){var c175=exprEval(_kO);switch((c175)._t){case 2:return new HSEOL();case 3:return function(_kP,_kQ){var _x=new HSFun("_x",0,function(){return(F_gX)._b(new HSFun("F_da",0,function(){return(F_da)._ap([_kP])}),_kO)}),_z=new HSFun("_z",0,function(){return(exprEval(_x))._f[0]}),_A=new HSFun("_A",0,function(){return(exprEval(_x))._f[1]});return new HSCons(((exprEval(_kN))._f[2])._ap([new HSFun("F_4",0,function(){return(F_4)._b((F_gA)._b(F_c8,_kP,(F_hc)._b(_kN)))}),(F_g3)._ap([_kN,_z])]),(F_hb)._b(_kN,_A))}((c175)._f[0],(c175)._f[1])};throw ('X ('+this._n+') '+c175.toSource())}),F_hc=new HSFun("F_hc",1,function(_kM){return new HSCons(new HSData((-7),[mkChar(73),((exprEval(_kM))._f[7])._ap([1])]),new HSCons(new HSData((-7),[mkChar(86),((exprEval(_kM))._f[7])._ap([5])]),new HSCons(new HSData((-7),[mkChar(88),((exprEval(_kM))._f[7])._ap([10])]),new HSCons(new HSData((-7),[mkChar(76),((exprEval(_kM))._f[7])._ap([50])]),new HSCons(new HSData((-7),[mkChar(67),((exprEval(_kM))._f[7])._ap([100])]),new HSCons(new HSData((-7),[mkChar(68),((exprEval(_kM))._f[7])._ap([500])]),new HSCons(new HSData((-7),[mkChar(77),((exprEval(_kM))._f[7])._ap([1000])]),new HSEOL())))))))}),F_hd=new HSFun("F_hd",0,function(){return new HSCons(new HSData((-7),[mkChar(86),mkChar(73)]),new HSCons(new HSData((-7),[mkChar(88),mkChar(73)]),new HSCons(new HSData((-7),[mkChar(76),mkChar(88)]),new HSCons(new HSData((-7),[mkChar(67),mkChar(88)]),new HSCons(new HSData((-7),[mkChar(68),mkChar(67)]),new HSCons(new HSData((-7),[mkChar(77),mkChar(67)]),new HSEOL()))))))}),F_he=new HSFun("F_he",4,function(_k3,_k4,_k5,_k6){var c176=exprEval(_k5);return function(_k7,_k8){var c177=exprEval(_k6);return function(_k9,_la){var _y=new HSFun("_y",0,function(){return(F_5)._b(mkChar(0),(F_gA)._b(F_c8,_k7,F_hd))}),c178=exprEval(((exprEval(_k4))._f[3])._ap([_k9,_k8]));switch((c178)._t){case true:return(F_he)._b(_k3,_k4,_k5,new HSData((-7),[((exprEval(_k3))._f[4])._ap([_k9,_k8]),new HSCons(_k7,_la)]));case false:var c179=exprEval(((exprEval(_k4))._f[3])._ap([((exprEval(_k3))._f[3])._ap([_k9,((F_g2)._ap([_y]))._ap([_k3])]),_k8]));switch((c179)._t){case true:return new HSData((-7),[((exprEval(_k3))._f[3])._ap([((exprEval(_k3))._f[4])._ap([_k9,_k8]),((F_g2)._ap([_y]))._ap([_k3])]),new HSCons(_k7,new HSCons(_y,_la))]);case false:var c180=exprEval(F_gF);switch((c180)._t){case true:return new HSData((-7),[_k9,_la]);case false:return(F_gn)._b(F_g7)};throw ('X ('+this._n+') '+c180.toSource())};throw ('X ('+this._n+') '+c179.toSource())};throw ('X ('+this._n+') '+c178.toSource())}((c177)._f[0],(c177)._f[1])}((c176)._f[0],(c176)._f[1])}),F_hf=new HSFun("F_hf",1,function(_lc){return((F_fc)._ap([F_gW,F_gO]))._ap([new HSFun("F_gr",0,function(){return(F_gr)._b(new HSFun("F_he",0,function(){return(F_he)._ap([F_dF,F_d4])}),new HSData((-7),[_lc,F_g8]),(F_hc)._b(F_dF))})])}),F_hg=new HSFun("F_hg",1,function(a){return Number(exprEval(a)).toString()}),F_hh=new HSFun("F_hh",2,function(_kq,_kr){return(F_cG)._b((F_hg)._ap([_kq]),_kr)}),F_hi="return Number(exprEval(a)).toString();",F_hj="return 0 - Number(exprEval(a));",F_hk="var ea = exprEval(a); if (ea>0) return 1; else if (ea<0) return -1; else return 0;",F_hl="return Math.abs(exprEval(a));",F_hm="return a;",F_hn="return a;",F_ho="return Number(exprEval(a)) < Number(exprEval(b));",F_hp="return Number(exprEval(a)) <= Number(exprEval(b));",F_hq="return Number(exprEval(a)) > Number(exprEval(b));",F_hr="return Number(exprEval(a)) >= Number(exprEval(b));",F_hs="return Number(exprEval(a)) !== Number(exprEval(b));",F_ht="return Number(exprEval(a)) === Number(exprEval(b));",F_hu="return 0 - Number(exprEval(a));",F_hv="return exprEval(a) * exprEval(b);",F_hw="return exprEval(a) - exprEval(b);",F_hx="return exprEval(a) + exprEval(b);",F_hy="return exprEval(a) % exprEval(b);",F_hz="(function(x,y){return (x - (x % y))/y;})(exprEval(a),exprEval(b));",F_hA="exprEval(a); return b;",F_hB="throw(\'E \' + exprEval(a).toString()); return undefined;",F_hC=new HSFun("F_hC",1,function(a){return Math.abs(exprEval(a))}),F_hD=new HSFun("F_hD",1,function(a){return a}),F_hE=new HSFun("F_hE",1,function(a){var ea=exprEval(a);if(ea>0){return 1}else if(ea<0){return -1}else return 0}),F_hF=new HSFun("F_hF",2,function(a,b){return exprEval(a)+exprEval(b)}),F_hG=new HSFun("F_hG",2,function(a,b){return Number(exprEval(a))===Number(exprEval(b))}),F_hH=new HSFun("F_hH",1,function(a){return a}),F_hI=new HSFun("F_hI",2,function(a,b){return Number(exprEval(a))>=Number(exprEval(b))}),F_hJ=new HSFun("F_hJ",2,function(a,b){return Number(exprEval(a))>Number(exprEval(b))}),F_hK=new HSFun("F_hK",2,function(a,b){return Number(exprEval(a))<=Number(exprEval(b))}),F_hL=new HSFun("F_hL",2,function(a,b){return Number(exprEval(a))<Number(exprEval(b))}),F_hM=new HSFun("F_hM",2,function(a,b){return exprEval(a)*exprEval(b)}),F_hN=new HSFun("F_hN",2,function(a,b){return Number(exprEval(a))!==Number(exprEval(b))}),F_hO=new HSFun("F_hO",1,function(a){return 0-Number(exprEval(a))}),F_hP=new HSFun("F_hP",2,function(a,b){(function(x,y){return(x-(x%y))/y})(exprEval(a),exprEval(b))}),F_hQ=new HSFun("F_hQ",2,function(_kF,_kG){var _C=new HSFun("_C",0,function(){return(F_hR)._b(_kF,_kG)}),_B=new HSFun("_B",0,function(){return(F_hP)._b(_kF,_kG)});return new HSData((-7),[_B,_C])}),F_hR=new HSFun("F_hR",2,function(a,b){return exprEval(a)%exprEval(b)}),F_hS=new HSFun("F_hS",2,function(a,b){return exprEval(a)-exprEval(b)});funIdx["Echo.main"]=F_cj-*/
− test/pminified/130s.js
@@ -1,2 +0,0 @@-Parse error: Missing function identifier in file 'foo' on line 3-
− test/pminified/14_labelled_stmts.js
@@ -1,1 +0,0 @@-i=0;bob:i=0;i=0;bob:if(x);{do{t}while(t);t};if(t){do{t}while(t);t};switch(i){case"x":case LEFT_CURLY:if(t){do{t}while(t);t}}
− test/pminified/15_literals.js
@@ -1,1 +0,0 @@-const GLOBAL=this;var tokens=["END","\n",";"],opTypeNames={'\n':"NEWLINE",';':"SEMICOLON",',':"COMMA"},assignOps=['|','^','&','<<','>>','>>>','+','-','*','/','%']
− test/pminified/16_literals.js
@@ -1,3 +0,0 @@-const GLOBAL=this;var tokens=["END","\n",";"],opTypeNames={'\n':"NEWLINE",';':"SEMICOLON",',':"COMMA"},assignOps=['|','^','&','<<','>>','>>>','+','-','*','/','%']-function eval(s){a=-1};var global={NaN:NaN,Infinity:Infinity,undefined:undefined,snarf:snarf,evaluate:evaluate,load:function load(s){if(typeof s!="string")return s;evaluate(snarf(s),s,1)},print:print,version:null}-function eval(s){}
− test/pminified/1_simple.js
@@ -1,1 +0,0 @@-"abfnrtv\\\"\'"
− test/pminified/20_statements.js
@@ -1,2 +0,0 @@-t=1+b;t?'1':'b';if(getValue){execute}else execute;for(i=0;i<=5;i++)x+=i;for(var i=0;i<n;i++)this[i]=1+v;var sumOfDivisors=new ExprArray(n+1,1);for(var i=0;i<j;i++){if(i>0)consts+=", ";var t=tokens[i]};for(var i=0,j=tokens.length;i<j;i++){if(i>0)consts+=", ";var t=tokens[i]};for(i=0;;i++)x+=i;for(x in bob);-function f(){if(typeof s!="string")return;while(--n>=0)s+=t;var a,f,i,j,r,s,t,u,v;(x.stmtStack.length>1)?STATEMENT_FORM:DECLARED_FORM;n2=new Node(t);while(1){if(tt==DEFAULT){n.defaultIndex=n.cases.length}else n2.caseLabel=Expression(t,x,COLON);break;n=new Node(t);t.mustMatch(LEFT_PAREN);n.discriminant=Expression(t,x);t.mustMatch(RIGHT_PAREN);n.cases=[];n.defaultIndex=-1;x.stmtStack.push(n);t.mustMatch(LEFT_CURLY);while((tt=t.get())!=RIGHT_CURLY){switch(tt){case DEFAULT:if(n.defaultIndex>=0)throw t.newSyntaxError("More than one switch default");case CASE:n2=new Node(t);if(tt==DEFAULT){n.defaultIndex=n.cases.length}else n2.caseLabel=Expression(t,x,COLON);break;default:throw t.newSyntaxError("Invalid switch case")};t.mustMatch(COLON);n2.statements=new Node(t,BLOCK);while((tt=t.peek())!=CASE&&tt!=DEFAULT&&tt!=RIGHT_CURLY)n2.statements.push(Statement(t,x));n.cases.push(n2)};x.stmtStack.pop();return n;do{try{execute(n.body,x)}catch(e if e==BREAK&&x.target==n){break}catch(e if e==CONTINUE&&x.target==n){continue}}while(getValue(execute(n.condition,x)));break}}
− test/pminified/25_trycatch.js
@@ -1,1 +0,0 @@-try{print("hello")}catch(bob){};try{}finally{};try{}catch(bob){};try{}catch(bob if 1==0){};try{adddlert("Welcome guest!")}catch(err){txt="There was an error on this page.\n\n";txt+="Error description: "+err.description+"\n\n";txt+="Click OK to continue.\n\n";alert(txt)};try{execute(parse(s),x2)}catch(e if e==THROW){x.result=x2.result;throw e}finally{ExecutionContext.current=x};while(1)try{execute(n.body,x)}catch(e if e==BREAK&&x.target==n){break}catch(e if e==CONTINUE&&x.target==n){continue};n.update&&getValue(execute(n.update,x))
− test/pminified/40_functions.js
@@ -1,6 +0,0 @@-function bob(){}-function bob(a,b){}-function bob(a,b){a=1}-function ExprArray(n,v){for(var i=0;i<n;i++)this[i]=""+v}-function Hello(){ExprArray(1,1)};Reference.prototype.toString=function(){return this.node.getSource()}-function getValue(v){if(v instanceof Reference){if(!v.base)throw new ReferenceError(v.propertyName+" is not defined",v.node.filename,v.node.lineno);return v.base[v.propertyName]};return v}
− test/pminified/41_functions.js
@@ -1,2 +0,0 @@-Parse error: Missing function identifier in file 'foo' on line 1-
− test/pminified/5_comments.js
@@ -1,3 +0,0 @@-function bob(){}-function bill(){i=2-function mary(){var currentConstructor=this.constructor,methodName=null}}
− test/pminified/67_bob.js
@@ -1,1 +0,0 @@-function x(){var token;while(this.lookahead){--this.lookahead;this.tokenIndex=(this.tokenIndex+1)&3;token=this.tokens[this.tokenIndex];if(token.type!=NEWLINE||this.scanNewlines)return token.type};for(;;){var input=this.input,match=(this.scanNewlines?/^[ \t]+/:/^\s+/)(input);if(match){var spaces=match[0];this.cursor+=spaces.length;var newlines=spaces.match(/\n/g);if(newlines)this.lineno+=newlines.length;input=this.input};if(!(match=/^\/(?:\*(?:.|\n)*?\*\/|\/.*)/(input)))break;var comment=match[0];this.cursor+=comment.length;newlines=comment.match(/\n/g);if(newlines)this.lineno+=newlines.length};this.tokenIndex=(this.tokenIndex+1)&3;token=this.tokens[this.tokenIndex];if(!token)this.tokens[this.tokenIndex]=token={};if(!input)return token.type=END;if((match=fpRegExp(input))){token.type=NUMBER;token.value=parseFloat(match[0])}else if((match=/^0[xX][\da-fA-F]+|^0[0-7]*|^\d+/(input))){token.type=NUMBER;token.value=parseInt(match[0])}else if((match=/^\w+/(input))){var id=match[0];token.type=keywords[id]||IDENTIFIER;token.value=id}else if((match=/^"(?:\\.|[^"])*"|^'(?:[^']|\\.)*'/(input))){token.type=STRING;token.value=eval(match[0])};if(this.scanOperand&&(match=/^\/((?:\\.|[^\/])+)\/([gi]*)/(input))){token.type=REGEXP;token.value=new RegExp(match[1],match[2])};token.start=this.cursor;this.cursor+=match[0].length;token.end=this.cursor;token.lineno=this.lineno;return token.type}
− test/pminified/errorline13.js
@@ -1,2 +0,0 @@-Parse error: Missing operand in file 'foo' on line 13-
− test/pminified/fn.js
@@ -1,1 +0,0 @@-var global={NaN:NaN,Infinity:Infinity,undefined:undefined,eval:function eval(s){a=-1}}
+ test/test-cli.hs view
@@ -0,0 +1,57 @@+{-# LANGUAGE MultiWayIf #-}++import Control.Monad (foldM, forM)+import Control.Monad.Extra (concatMapM)++import System.Directory (canonicalizePath, getCurrentDirectory, listDirectory)+import System.Environment (setEnv)+import System.FilePath (takeFileName, (</>))+import System.Exit (ExitCode (..), exitFailure, exitSuccess)+import System.Posix.Files (getFileStatus, isDirectory, isRegularFile)+import System.Process (rawSystem)+import System.IO (BufferMode (..))+import qualified System.IO as IO++main :: IO ()+main = do+ IO.hSetBuffering IO.stdout LineBuffering+ IO.hSetBuffering IO.stderr LineBuffering++ cwd <- getCurrentDirectory+ topdir <- canonicalizePath $ cwd </> "dist-newstyle"++ -- Set an environment variable for all the exectuables we want to test.+ setExecutableEnvVar "HJSMIN" topdir "hjsmin"++ tests <- filter (`notElem` ["core", "data"]) <$> listDirectory "test/cli/"+ res <- forM tests $ \ t -> rawSystem ("test/cli/" ++ t ++ "/run") []+ if all (== ExitSuccess) res+ then exitSuccess+ else exitFailure+++setExecutableEnvVar :: String -> FilePath -> FilePath -> IO ()+setExecutableEnvVar envName startDir target = do+ xs <- listDirectoryRecursive startDir+ case filter match xs of+ [] -> error "Unable to find hjsmin binary"+ [x] -> setEnv envName x+ _ -> error $ "Multiple binaries: " ++ show xs+ where+ match :: FilePath -> Bool+ match fp = takeFileName fp == target++listDirectoryRecursive :: FilePath -> IO [FilePath]+listDirectoryRecursive fpath = do+ xs <- fmap (fpath </>) <$> listDirectory fpath+ (files, dirs) <- foldM partitioner ([], []) xs+ rest <- concatMapM listDirectoryRecursive (dirs :: [FilePath])+ pure $ files ++ rest+ where+ partitioner :: ([FilePath], [FilePath]) -> FilePath -> IO ([FilePath], [FilePath])+ partitioner (files, dirs) fp = do+ st <- getFileStatus fp+ if+ | isRegularFile st -> pure (fp : files, dirs)+ | isDirectory st -> pure (files, fp : dirs)+ | otherwise -> pure (files, dirs)