úÎl bKĽ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ą˘Ł¤ ghc experimentalbjpop@csse.unimelb.edu.au Safe-InferedĽ-Convert escaped sequences of characters into real' characters in a normal Python string. Ś-Convert escaped sequences of characters into real$ characters in a raw Python string. [ Note: despite their name, Python raw strings do allow a small set of character escapings, Q namely the single and double quote characters and the line continuation marker. §)The set of valid octal digits in Python. ¨'The set of valid hex digits in Python. ĽŚ§¨ĽŚ§¨ĽŚ§¨ Safe-InferedB records the location of a token in the input text. It has three M fields: the address (number of characters preceding the token), line number ( and column of a token within the file. > Note: The lexer assumes the usual eight character tab stops.  ghc experimentalbjpop@csse.unimelb.edu.au Safe-Infered Lexical tokens. V Each may be annotated with any comment occuring between the prior token and this one  End of file Stuff between last JS and EOF OLiteral: Regular Expression P=Literal: string, delimited by either single or double quotes RLiteral: Hexadecimal Integer SLiteral: Decimal T Identifier. UWhite space, for preservation. VSingle line comment. Š^Produce a string from a token containing detailed information. Mainly intended for debugging. \  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]Š\  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]Š˙!VUTSRPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  WXYWXYWXYWXYWXYWXQYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWYWYWYWYWYWYWYWYWYWYWYWXYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYZ]\[Š  Safe-Infered ŞŤŹ­ŽŻ°ą˛ł´ ŞŤŹ­ŽŻ°ą˛ł´ ŞŤŹ­ŽŻ°ą˛ł´ ghc experimental Safe-Inferedľthe previous token śthe previous comment, if any ˇ¸ľśšˇ¸ľśšˇ¸ľśš Safe-Infered^_`abcşť]  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY^_`abc˙(VUTSRPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  WXYWXYWXYWXYWXYWXQYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWYWYWYWYWYWYWYWYWYWYWYWXYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWY_`^cba^_`abcşť  Safe-InferedźAA generic error containing a string message. No source location. ˝AAn error from the lexer. Character found where it should not be. ž>An error from the parser. Token found where it should not be. / Note: tokens contain their own source span. żź˝žŔżź˝žżž˝źŔ Safe-Infered-ewith,lb,expr,rb,stmt list fwhile,lb,expr,rb,stmt gvar|const, decl, autosemi h!identifier, optional initializer itype, operator jtry,block,rest k throw val lswitch,lb,expr,rb,caseblock msource elements 9 | JSStatementBlock JSNode JSNode JSNode -- ^lb,block,rb  | JSStatementList [JSNode] -- ^statements n$return,optional expression,autosemi  | JSSourceElements [JSNode] -- ^source elements oname, colon, value p'(get|set), name, lb, params, rb, block qopnode rlbrace contents rbrace sfirstpart, lb, expr, rb tfirstpart, dot, name uidentifier,colon,stmt vif,(,expr,),stmt,optional rest wfn,[name],lb, parameter list,rb,block` x$fn,name, lb,parameter list,rb,block  | JSFunctionBody [JSNode] -- ^body y#for,lb,var,vardecl,in,expr,rb,stmt z/for,lb,var,vardecl,semi,expr,semi,expr,rb,stmt {for,lb,expr,in,expr,rb,stmt |(for,lb,expr,semi,expr,semi,expr,rb.stmt }finally,block ~cond, ?, trueval, :, falseval type, expression, operator €lb,expression,rb what, lhs, op, rhs ‚expression components ƒcomma „"do,stmt,while,lb,expr,rb,autosemi …default,colon,stmtlist †&continue,optional identifier,autosemi ‡catch,lb,ident,[if,expr] ,rb,block ˆcase,expr,colon,stmtlist ‰type : ., (), []$; opening [ or ., contents, closing Š%break, optional identifier, autosemi ‹2optional lb,optional block statements,optional rb Œlb, contents, rb  lb, args, rb “ Terminals ”-The JSNode is the building block of the AST.  Each has a syntactic part d!. In addition, the leaf elements  (terminals) have a position ", as well as an array of comments  and/0or whitespace that was collected while parsing. •-Terminal node, including position and comment/whitespace information –ENon Terminal node, does not have any position or comment information 4defghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—4defghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—4d“’‘ŽŒ‹Š‰ˆ‡†…„ƒ‚€~}|{zyxwvutsrqponmlkjihgfe”–•—d/“’‘ŽŒ‹Š‰ˆ‡†…„ƒ‚€~}|{zyxwvutsrqponmlkjihgfe”–•—None˜™š›œ˜™š›œ˜™š›œ˜™š›œ Safe-InferedBParse one compound statement, or a sequence of simple statements. X Generally used for interactive input, such as from the command line of an interpreter. 7 Return comments in addition to the parsed statements. ˘BParse one compound statement, or a sequence of simple statements. X Generally used for interactive input, such as from the command line of an interpreter. 7 Return comments in addition to the parsed statements. +The input stream (Javascript source code). >The name of the Javascript source (filename or input device). 9An error or maybe the abstract syntax tree (AST) of zero / or more Javascript statements, plus comments. žŸ Ą˘The parser to be used +The input stream (Javascript source code). >The name of the Javascript source (filename or input device). 9An error or maybe the abstract syntax tree (AST) of zero / or more Javascript statements, plus comments. žŸ Ą˘žŸ˘ ĄžŸ Ą˘ Safe-Infered٤٤٤٤ Safe-InferedAZ[\]defghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–žŸ ĄŁ¤AžŸ Ą”–•d“’‘ŽŒ‹Š‰ˆ‡†…„ƒ‚€~}|{zyxwvutsrqponmlkjihgfeZ]\[٤Á                   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i jklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ą˘Ł¤ĽŚ§¨ŠŞŤŹ¤­ŽŻ°ą˛ł´ ľ ś ˇ ¸ š ş ť ź ˝ ž ż Ŕ Á  Ă Ă ÄĹĆ Ç Č É Ę ËĚlanguage-javascript-0.5.1Language.JavaScript.Parser Language.JavaScript.Parser.LexerLanguage.JavaScript.Parser.AST#Language.JavaScript.Parser.Grammar5!Language.JavaScript.Parser.Parser"Language.JavaScript.Pretty.Printer'Language.JavaScript.Parser.StringEscape&Language.JavaScript.Parser.SrcLocation Language.JavaScript.Parser.Token%Language.JavaScript.Parser.LexerUtils&Language.JavaScript.Parser.ParserMonad%Language.JavaScript.Parser.ParseError TokenPosnTokenPntokenPosnEmptyTokenEOFToken TailTokenCondcommentEndTokenRightParenTokenLeftParenTokenRightCurlyTokenLeftCurlyTokenRightBracketTokenLeftBracketTokenDotTokenBitwiseNotTokenNotTokenModTokenDivTokenMulToken MinusToken PlusTokenDecrementTokenIncrementTokenGtTokenGeTokenRshToken UrshTokenLtTokenLeTokenLshTokenNeToken StrictNeTokenSimpleAssignToken AssignTokenEqToken StrictEqTokenBitwiseAndTokenBitwiseXorTokenBitwiseOrTokenAndTokenOrToken ColonToken HookToken CommaTokenSemiColonTokenSetTokenGetToken FutureToken WithToken WhileToken VoidTokenVarToken TypeofTokenTryToken TrueToken ThrowToken ThisToken SwitchToken ReturnToken NullTokenNewTokenInstanceofTokenInTokenIfToken FunctionTokenForToken FinallyToken FalseToken EnumToken ElseTokenDoToken DeleteToken DefaultToken DebuggerToken ContinueToken ConstToken CatchToken CaseToken BreakToken RegExToken StringTokentoken_delimiterHexIntegerToken DecimalTokenIdentifierTokenWsToken CommentToken token_span token_literal token_commentCommentAnnotation NoComment WhiteSpaceCommentAAlexAlexPosnAlexPnrunAlex alexErrorlexContNodeJSWithJSWhile JSVariables JSVarDeclJSUnaryJSTryJSThrowJSSwitchJSSourceElementsTopJSReturnJSPropertyNameandValueJSPropertyAccessor JSOperatorJSObjectLiteralJSMemberSquare JSMemberDot JSLabelledJSIfJSFunctionExpression JSFunction JSForVarInJSForVarJSForInJSFor JSFinallyJSExpressionTernaryJSExpressionPostfixJSExpressionParenJSExpressionBinary JSExpression JSElision JSDoWhile JSDefault JSContinueJSCatchJSCaseJSCallExpressionJSBreakJSBlockJSArrayLiteral JSArgumentsJSRegExJSStringLiteral JSHexInteger JSLiteral JSDecimal JSIdentifierJSNodeNTNN showStripped parseProgram parseLiteralparsePrimaryExpressionparseStatementfpparsereadJs parseFileshowStrippedMaybe parseUsingrenderJSrenderToStringunescapeStringunescapeRawString octalDigits hexDigitsdebugTokenString StartCode symbolTokenendOfFileTokenmkString decimalTokenhexIntegerToken assignToken regExToken stringToken commentTokenwsToken previousTokencomment AlexUserStatealexInitUserState$fFunctorAlexLastAcc $fMonadAlexStrErrorUnexpectedCharUnexpectedToken ParseError$fErrorParseError