j\`S      !"#$%&'()*+,-./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:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY\  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY!VUTSRPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  WXYWXYWXYWXYWXYWXQYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWYWYWYWYWYWYWYWYWYWYWYWXYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWY  Safe-Infered  ghc experimental Safe-Inferedthe previous token the previous comment, if any  Safe-InferedZ[\]^_]  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_(VUTSRPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  WXYWXYWXYWXYWXYWXQYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWXYWYWYWYWYWYWYWYWYWYWYWYWXYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWYWY[\Z_^]Z[\]^_  Safe-InferedAA 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-Infered1awith,lb,expr,rb,stmt list bwhile,lb,expr,rb,stmt cvar|const, decl, autosemi d!identifier, optional initializer etype, operator ftry,block,rest g throw val hswitch,lb,expr,rb,stmt i statements j lb,block,rb ksource elements lsource elements m$return,optional expression,autosemi nname, colon, value o6(get|set), name, lb, params, rb, lb, functionbody, rb popnode qlbrace contents rbrace rfirstpart, lb, expr, rb sfirstpart, dot, name tidentifier,colon,stmt uif,(,expr,),stmt,optional rest vfn,[name]#,lb, parameter list,rb,lb, body,rb wbody x)fn,name, lb,parameter list,rb,lb,body,rb 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 optional lb,block,optional rb lb, contents, rb  lb, args, rb  Terminals -The JSNode is the building block of the AST.  Each has a syntactic part `!. 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 8`abcdefghijklmnopqrstuvwxyz{|}~8`abcdefghijklmnopqrstuvwxyz{|}~8`~}|{zyxwvutsrqponmlkjihgfedcba`3~}|{zyxwvutsrqponmlkjihgfedcbaNone Safe-InferedBParse 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-InferedA`abcdefghijklmnopqrstuvwxyz{|}~A`~}|{zyxwvutsrqponmlkjihgfedcba                   ! " # $ % & ' ( ) * + , - . / 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 fghijklmnopqrstuvwxyz{|}~             language-javascript-0.5.0Language.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_commentAlexAlexPosnAlexPnrunAlex alexErrorlexContNodeJSWithJSWhile JSVariables JSVarDeclJSUnaryJSTryJSThrowJSSwitchJSStatementListJSStatementBlockJSSourceElementsTopJSSourceElementsJSReturnJSPropertyNameandValueJSPropertyAccessor JSOperatorJSObjectLiteralJSMemberSquare JSMemberDot JSLabelledJSIfJSFunctionExpressionJSFunctionBody JSFunction JSForVarInJSForVarJSForInJSFor JSFinallyJSExpressionTernaryJSExpressionPostfixJSExpressionParenJSExpressionBinary JSExpression JSElision JSDoWhile JSDefault JSContinueJSCatchJSCaseJSCallExpressionJSBreakJSBlockJSArrayLiteral JSArgumentsJSRegExJSStringLiteral JSHexInteger JSLiteral JSDecimal JSIdentifierJSNodeNTNN showStripped parseProgram parseLiteralparsePrimaryExpressionparseStatementfpparsereadJs parseFileshowStrippedMaybe parseUsingrenderJSrenderToStringunescapeStringunescapeRawString octalDigits hexDigitsdebugTokenStringCommentAnnotation NoComment WhiteSpaceCommentA StartCode symbolTokenendOfFileTokenmkString decimalTokenhexIntegerToken assignToken regExToken stringToken commentTokenwsToken previousTokencomment AlexUserStatealexInitUserState$fFunctorAlexLastAcc $fMonadAlexStrErrorUnexpectedCharUnexpectedToken ParseError$fErrorParseError