mc      !"#$%&'()*+,-./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: Octal Integer SLiteral: Hexadecimal Integer TLiteral: Decimal U Identifier. VWhite space, for preservation. WSingle line comment. ^Produce a string from a token containing detailed information. Mainly intended for debugging. ]  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^]  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^%WVUTSRPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  XYZXYZXYZXYZXYZXYZXYQZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXZXZXZXZXZXZXZXZXZXZXZXYZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZ[^]\  Safe-Infered  ghc experimental Safe-Inferedthe previous token the previous comment, if any  Safe-Infered_`abcd^  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ_`abcd,WVUTSRPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  XYZXYZXYZXYZXYZXYZXYQZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXZXZXZXZXZXZXZXZXZXZXZXYZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZ`a_dcb_`abcd  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-Infered-fwith,lb,expr,rb,stmt list gwhile,lb,expr,rb,stmt hvar|const, decl, autosemi i!identifier, optional initializer jtype, operator ktry,block,rest l throw val mswitch,lb,expr,rb,caseblock nsource elements 9 | JSStatementBlock JSNode JSNode JSNode -- ^lb,block,rb  | JSStatementList [JSNode] -- ^statements o$return,optional expression,autosemi  | JSSourceElements [JSNode] -- ^source elements pname, colon, value q'(get|set), name, lb, params, rb, block ropnode slbrace contents rbrace tfirstpart, lb, expr, rb ufirstpart, dot, name videntifier,colon,stmt wif,(,expr,),stmt,optional rest xfn,[name],lb, parameter list,rb,block` y$fn,name, lb,parameter list,rb,block  | JSFunctionBody [JSNode] -- ^body z#for,lb,var,vardecl,in,expr,rb,stmt {/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 e!. 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 5efghijklmnopqrstuvwxyz{|}~5efghijklmnopqrstuvwxyz{|}~5e~}|{zyxwvutsrqponmlkjihgfe0~}|{zyxwvutsrqponmlkjihgfNone 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-InferedB[\]^efghijklmnopqrstuvwxyz{|}~Be~}|{zyxwvutsrqponmlkjihgf[^]\                   ! " # $ % & ' ( ) * + , - . / 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 klmnopqrstuvwxyz{|}~         language-javascript-0.5.3Language.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_delimiter OctalTokenHexIntegerToken DecimalTokenIdentifierTokenWsToken CommentToken token_span token_literal token_commentCommentAnnotation NoComment WhiteSpaceCommentAAlexAlexPosnAlexPnrunAlex alexErrorlexContNodeJSWithJSWhile JSVariables JSVarDeclJSUnaryJSTryJSThrowJSSwitchJSSourceElementsTopJSReturnJSPropertyNameandValueJSPropertyAccessor JSOperatorJSObjectLiteralJSMemberSquare JSMemberDot JSLabelledJSIfJSFunctionExpression JSFunction JSForVarInJSForVarJSForInJSFor JSFinallyJSExpressionTernaryJSExpressionPostfixJSExpressionParenJSExpressionBinary JSExpression JSElision JSDoWhile JSDefault JSContinueJSCatchJSCaseJSCallExpressionJSBreakJSBlockJSArrayLiteral JSArgumentsJSRegExJSStringLiteralJSOctal JSHexInteger JSLiteral JSDecimal JSIdentifierJSNodeNTNN showStripped parseProgram parseLiteralparsePrimaryExpressionparseStatementfpparsereadJs parseFileshowStrippedMaybe parseUsingrenderJSrenderToStringunescapeStringunescapeRawString octalDigits hexDigitsdebugTokenString StartCode symbolTokenendOfFileTokenmkString decimalTokenhexIntegerToken octalToken assignToken regExToken stringToken commentTokenwsToken previousTokencomment AlexUserStatealexInitUserState$fFunctorAlexLastAcc $fMonadAlexStrErrorUnexpectedCharUnexpectedToken ParseError$fErrorParseError