úÎuûh+»      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º Safe1 §ô records the location of a token in the input text. It has three 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.(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafeß»-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, 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.»¼½¾ (c) 2009 Bernie Pope BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe1µ fLexical tokens. Each may be annotated with any comment occurring between the prior token and this oneSingle line comment. White space, for preservation.  Identifier. Literal: Decimal Literal: Hexadecimal Integer Literal: Octal Integer<Literal: string, delimited by either single or double quotesLiteral: Regular ExpressionZStuff between last JS and EOF[ End of file¿]Produce a string from a token containing detailed information. Mainly intended for debugging.^  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc¿ÿ)  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^\]^\]^\]^\]^\]^\]_^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\^\^\^\^\^\^\^\^\^\^\^\]^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^`abc (c) 2012 Alan Zimmerman BSD-style experimentalghcSafe&¬Àthe previous tokenÁthe previous comment, if anyÂÃÀÁÄÂÃÀÁ Safe' ÅÆÇÈÉÊËÌÍÎÏÐNoneD(“ÑBEncode a Haskell String to a list of Word8 values, in UTF8 format.`  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_defghijÿ1  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^\]^\]^\]^\]^\]^\]_^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\]^\^\^\^\^\^\^\^\^\^\^\^\]^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^efdjhgiÒÓÔÕÖרÙÚÛÜÝÞßàdáâãäåæçèéêef None5ÝëGCreates an exception without a message. The default implementation is ì "".ìDCreates an exception with a message. The default implementation of ì s is ë.ílAn error from the parser. Token found where it should not be. Note: tokens contain their own source span.î@An error from the lexer. Character found where it should not be.ï@A generic error containing a string message. No source location.ðíîïñëìðíîïSafe1PÚ-q Terminalsx lb, args, rbylb, contents, rbz1optional lb,optional block statements,optional rb{$break, optional identifier, autosemi|3type : ., (), []; opening [ or ., contents, closing}case,expr,colon,stmtlist~!catch,lb,ident,[if,expr],rb,block%continue,optional identifier,autosemi€default,colon,stmtlist!do,stmt,while,lb,expr,rb,autosemi‚commaƒexpression components„what, lhs, op, rhs…lb,expression,rb†type, expression, operator‡cond, ?, trueval, :, falsevalˆ finally,block‰'for,lb,expr,semi,expr,semi,expr,rb.stmtŠfor,lb,expr,in,expr,rb,stmt‹.for,lb,var,vardecl,semi,expr,semi,expr,rb,stmtŒ"for,lb,var,vardecl,in,expr,rb,stmtGfn,name, lb,parameter list,rb,block | JSFunctionBody [JSNode] -- ^bodyŽ&fn,[name],lb, parameter list,rb,block`if,(,expr,),stmt,optional restidentifier,colon,stmt‘firstpart, dot, name’firstpart, lb, expr, rb“lbrace contents rbrace”opnode•&(get|set), name, lb, params, rb, block–name, colon, value—Treturn,optional expression,autosemi | JSSourceElements [JSNode] -- ^source elements˜ssource elements | JSStatementBlock JSNode JSNode JSNode -- ^lb,block,rb | JSStatementList [JSNode] -- ^statements™switch,lb,expr,rb,caseblockš throw val›try,block,restœtype, operator identifier, optional initializeržvar|const, decl, autosemiŸwhile,lb,expr,rb,stmt with,lb,expr,rb,stmt list¡HThe JSNode is the building block of the AST. Each has a syntactic part p>. In addition, the leaf elements (terminals) have a position V, as well as an array of comments and/or whitespace that was collected while parsing.¢DNon Terminal node, does not have any position or comment information£DTerminal node, including position and comment/whitespace information5pqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤5pqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤p0qrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£None;=DeS¼­®¯°±­®¯°±òóôõö÷øùô9 õ9 NoneeL²ÐParse one compound statement, or a sequence of simple statements. Generally used for interactive input, such as from the command line of an interpreter. Return comments in addition to the parsed statements.´{Parse the given file. For UTF-8 support, make sure your locale is set such that "System.IO.localeEncoding" returns "utf8"µNParse the given file, explicitly setting the encoding to UTF8 when reading it¸ÐParse one compound statement, or a sequence of simple statements. Generally used for interactive input, such as from the command line of an interpreter. Return comments in addition to the parsed statements.²*The input stream (Javascript source code).=The name of the Javascript source (filename or input device).gAn 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).gAn error or maybe the abstract syntax tree (AST) of zero or more Javascript statements, plus comments.²³´µ¶·¸²³´µ¸¶·Nonee¼¹º¹ºúûNonef C`abcpqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£²³´µ¶·¹ºC²³´µ¶·¡¢£pqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ `abc¹ºü               ! " # $ % & ' ( ) * + , - . / 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 j k l m n o pqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁ±ÃÄÅÆÇÈÉÊ Ë Ì Í Î Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú ÛÜÝÞÝßàáàâãäåæçèéqêëëìíîïðñ ò ó ô õ ö ÷ øùúûûüýþþÿÿ3language-javascript-0.5.14.8-8tPEn6MMQEoHBgiDVHWbyE&Language.JavaScript.Parser.SrcLocation Language.JavaScript.Parser.LexerLanguage.JavaScript.ParserLanguage.JavaScript.Parser.AST#Language.JavaScript.Parser.Grammar5!Language.JavaScript.Parser.Parser"Language.JavaScript.Pretty.Printer'Language.JavaScript.Parser.StringEscape Language.JavaScript.Parser.Token&Language.JavaScript.Parser.ParserMonad%Language.JavaScript.Parser.LexerUtils%Language.JavaScript.Parser.ParseError TokenPosnTokenPntokenPosnEmpty $fEqTokenPosn$fShowTokenPosn$fReadTokenPosn$fDataTokenPosnToken CommentTokenWsTokenIdentifierToken DecimalTokenHexIntegerToken OctalToken StringToken RegExToken BreakToken CaseToken CatchToken ConstToken ContinueToken DebuggerToken DefaultToken DeleteTokenDoToken ElseToken EnumToken FalseToken FinallyTokenForToken FunctionTokenIfTokenInTokenInstanceofTokenNewToken NullToken ReturnToken SwitchToken ThisToken ThrowToken TrueTokenTryToken TypeofTokenVarToken VoidToken WhileToken WithToken FutureTokenGetTokenSetToken AutoSemiTokenSemiColonToken CommaToken HookToken ColonTokenOrTokenAndTokenBitwiseOrTokenBitwiseXorTokenBitwiseAndToken StrictEqTokenEqToken AssignTokenSimpleAssignToken StrictNeTokenNeTokenLshTokenLeTokenLtToken UrshTokenRshTokenGeTokenGtTokenIncrementTokenDecrementToken PlusToken MinusTokenMulTokenDivTokenModTokenNotTokenBitwiseNotTokenDotTokenLeftBracketTokenRightBracketTokenLeftCurlyTokenRightCurlyTokenLeftParenTokenRightParenTokenCondcommentEndToken TailTokenEOFToken tokenSpan tokenLiteral tokenCommenttoken_delimiterCommentAnnotationCommentA WhiteSpace NoCommentAlexAlexPosnAlexPnrunAlex alexErroralexTestTokeniserlexCont $fMonadAlex$fApplicativeAlex $fFunctorAlex $fEqAlexPosn$fShowAlexPosnNode JSIdentifier JSDecimal JSLiteral JSHexIntegerJSOctalJSStringLiteralJSRegEx JSArgumentsJSArrayLiteralJSBlockJSBreakJSCallExpressionJSCaseJSCatch JSContinue JSDefault JSDoWhile JSElision JSExpressionJSExpressionBinaryJSExpressionParenJSExpressionPostfixJSExpressionTernary JSFinallyJSForJSForInJSForVar JSForVarIn JSFunctionJSFunctionExpressionJSIf JSLabelled JSMemberDotJSMemberSquareJSObjectLiteral JSOperatorJSPropertyAccessorJSPropertyNameandValueJSReturnJSSourceElementsTopJSSwitchJSThrowJSTryJSUnary JSVarDecl JSVariablesJSWhileJSWithJSNodeNNNT showStripped $fShowNode$fEqNode $fReadNode $fDataNode $fShowJSNode $fEqJSNode $fReadJSNode $fDataJSNode parseProgram parseLiteralparsePrimaryExpressionparseStatementfpparsereadJs parseFile parseFileUtf8showStrippedMaybe parseUsingrenderJSrenderToStringunescapeStringunescapeRawString octalDigits hexDigitsdebugTokenString previousTokencomment AlexUserStatealexInitUserState StartCode symbolTokenendOfFileTokenmkString decimalTokenhexIntegerToken octalToken assignToken regExToken stringToken commentTokenwsToken utf8EncodeAlexAcc AlexAccNone AlexAccSkip AlexLastAccAlexNone AlexLastSkip AlexReturnAlexEOF AlexErrorAlexSkip AlexTokenAlexAddrAlexA#unAlex AlexStatealex_posalex_inpalex_chr alex_bytesalex_scdalex_ustnoMsgstrMsgUnexpectedTokenUnexpectedCharStrError ParseErrorError HappyAddrHappyA#HappyStk Happy_IntList HappyCons HappyAbsSynFoo