!ǀ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      Safe2qlanguage-javascript 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 experimentalghcSafe2+ language-javascriptfLexical tokens. Each may be annotated with any comment occurring between the prior token and this onelanguage-javascriptSingle line comment. language-javascriptWhite space, for preservation. language-javascript Identifier. language-javascriptLiteral: Decimal language-javascriptLiteral: Hexadecimal Integer language-javascriptLiteral: Octal Integerlanguage-javascript<Literal: string, delimited by either single or double quoteslanguage-javascriptLiteral: Regular Expressionllanguage-javascriptStuff between last JS and EOFmlanguage-javascript End of filelanguage-javascript]Produce a string from a token containing detailed information. Mainly intended for debugging.o  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst (c) 2012 Alan Zimmerman BSD-style experimentalghcSafe0 language-javascriptthe previous tokenlanguage-javascriptthe previous comment, if any Safe0V  !"NoneF2##language-javascriptBEncode a Haskell String to a list of Word8 values, in UTF8 format.o  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopuvwxyo  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopuywvx None=$language-javascriptGCreates an exception without a message. The default implementation is % "".%language-javascriptDCreates an exception with a message. The default implementation of % s is $.&language-javascriptlAn error from the parser. Token found where it should not be. Note: tokens contain their own source span.'language-javascript@An error from the lexer. Character found where it should not be.(language-javascript@A generic error containing a string message. No source location.)%$*&'(Safe2=?~Wlanguage-javascriptlist, trailing commalanguage-javascriptlistlanguage-javascripthead, comma, alanguage-javascriptsingle element (no comma)language-javascript)Accessors for JSObjectProperty is either get or set.language-javascript&(get|set), name, lb, params, rb, blocklanguage-javascriptname, colon, valuelanguage-javascriptassignop, initializerlanguage-javascriptexpr,colon,stmtlistlanguage-javascriptcolon,stmtlistlanguage-javascriptlbrace, stmts, rbracelanguage-javascript finally,blocklanguage-javascriptcatch,lb,ident,rb,blocklanguage-javascriptcatch,lb,ident,if,expr,rb,blocklanguage-javascript Terminalslanguage-javascriptlb, contents, rblanguage-javascriptlhs, assignop, rhslanguage-javascriptexpr, bl, args, rblanguage-javascriptexpr, dot, exprlanguage-javascriptexpr, [, expr, ]language-javascriptexpression componentslanguage-javascript lhs, op, rhslanguage-javascriptlb,expression,rblanguage-javascriptexpression, operatorlanguage-javascriptcond, ?, trueval, :, falsevallanguage-javascriptparameter list,arrow,block`language-javascript$fn,name,lb, parameter list,rb,block`language-javascriptfirstpart, dot, namelanguage-javascriptnew, name, lb, args, rblanguage-javascriptfirstpart, lb, expr, rblanguage-javascript new, exprlanguage-javascriptlbrace contents rbracelanguage-javascriptidentifier, initializerlanguage-javascriptlbrace, stmts, rbrace, autosemilanguage-javascript#break,optional identifier, autosemilanguage-javascriptconst, decl, autosemilanguage-javascriptconst, decl, autosemilanguage-javascript&continue, optional identifier,autosemilanguage-javascript!do,stmt,while,lb,expr,rb,autosemilanguage-javascript'for,lb,expr,semi,expr,semi,expr,rb.stmtlanguage-javascriptfor,lb,expr,in,expr,rb,stmtlanguage-javascript.for,lb,var,vardecl,semi,expr,semi,expr,rb,stmtlanguage-javascript"for,lb,var,vardecl,in,expr,rb,stmtlanguage-javascript.for,lb,var,vardecl,semi,expr,semi,expr,rb,stmtlanguage-javascript"for,lb,var,vardecl,in,expr,rb,stmtlanguage-javascript"for,lb,var,vardecl,in,expr,rb,stmtlanguage-javascriptfor,lb,expr,in,expr,rb,stmtlanguage-javascript"for,lb,var,vardecl,in,expr,rb,stmtlanguage-javascript,fn,name, lb,parameter list,rb,block,autosemi language-javascriptif,(,expr,),stmt language-javascriptif,(,expr,),stmt,else,rest language-javascriptidentifier,colon,stmtlanguage-javascriptlhs, assignop, rhs, autosemilanguage-javascriptoptional expression,autosemilanguage-javascript$switch,lb,expr,rb,caseblock,autosemilanguage-javascriptthrow val autosemilanguage-javascripttry,block,catches,finallylanguage-javascriptvar, decl, autosemilanguage-javascriptwhile,lb,expr,rb,stmtlanguage-javascriptwith,lb,expr,rb,stmt listlanguage-javascriptidentlanguage-javascriptident1, as, ident2language-javascriptlb, specifiers, rblanguage-javascriptexports, module, semilanguage-javascriptexports, autosemilanguage-javascript!body, autosemi | JSExportDefault language-javascriptNote that this data type is separate from ExportSpecifier because the grammar is slightly different (e.g. in handling of reserved words).!language-javascriptident"language-javascriptident, as, ident#language-javascript/Named imports, e.g. '{ foo, bar, baz as quux }'$language-javascriptlb, specifiers, rb%language-javascript&Import namespace, e.g. '* as whatever'&language-javascript , as, ident(language-javascript-from, string literal, string literal contents*language-javascriptdefault+language-javascript namespace,language-javascript named imports-language-javascriptdefault, comma, namespace.language-javascriptdefault, comma, named imports0language-javascriptBimports, module, semi | JSImportDeclarationBare -- ^ module, semi2language-javascript import,decl3language-javascript export,decl6language-javascript$source elements, trailing whitespace<language-javascript7Annotation: position and comment/whitespace information=language-javascriptA single space character>language-javascript No annotation?language-javascript5Show the AST elements stripped of their JSAnnot data.      !"#$%&'()*+,-./0123456789:;<=>?@;<=>     56789:1234/0)*+,-.'(%&#$ !"@?None=?Fh+language-javascript lb, args, rb,language-javascriptmkUnary : The parser detects - and .p as the binary version of these operator. This function converts from the binary version to the unary version./9 09 Nonelanguage-javascriptParse JavaScript Program (Script) 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.language-javascriptParse JavaScript modulelanguage-javascript{Parse the given file. For UTF-8 support, make sure your locale is set such that "System.IO.localeEncoding" returns "utf8"language-javascriptNParse the given file, explicitly setting the encoding to UTF8 when reading itlanguage-javascriptParse 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.language-javascript*The input stream (Javascript source code).language-javascript=The name of the Javascript source (filename or input device).language-javascriptgAn error or maybe the abstract syntax tree (AST) of zero or more Javascript statements, plus comments.language-javascript*The input stream (JavaScript source code).language-javascript=The name of the JavaScript source (filename or input device).language-javascriptgAn error or maybe the abstract syntax tree (AST) of zero or more JavaScript statements, plus comments.language-javascriptThe parser to be usedlanguage-javascript*The input stream (Javascript source code).language-javascript=The name of the Javascript source (filename or input device).language-javascriptgAn error or maybe the abstract syntax tree (AST) of zero or more Javascript statements, plus comments.  None=?rNoneqrst     56789:;<=>̖;<=>     56789:qrstSafe=?1               ! " # $ % & ' ( ) * + , - . / 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 p q r s t u v w x y z { | } ~         !!"##$%&'(()**++,,-./01233456789:;<=>>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~A                     !" # $ % & ' ( )*+,-.,-/0013language-javascript-0.6.0.13-DSMIRkWBppk9ZanMe3coGW&Language.JavaScript.Parser.SrcLocation Language.JavaScript.Parser.LexerLanguage.JavaScript.ParserLanguage.JavaScript.Parser.AST#Language.JavaScript.Parser.Grammar7!Language.JavaScript.Parser.Parser"Language.JavaScript.Pretty.Printer"Language.JavaScript.Process.Minify 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 ConstTokenLetToken ContinueToken DebuggerToken DefaultToken DeleteTokenDoToken ElseToken EnumToken FalseToken FinallyTokenForToken FunctionToken FromTokenIfTokenInTokenInstanceofTokenNewToken NullTokenOfToken ReturnToken SwitchToken ThisToken ThrowToken TrueTokenTryToken TypeofTokenVarToken VoidToken WhileToken ImportToken WithToken ExportToken FutureTokenGetTokenSetToken AutoSemiTokenSemiColonToken CommaToken HookToken ColonTokenOrTokenAndTokenBitwiseOrTokenBitwiseXorTokenBitwiseAndToken StrictEqTokenEqTokenTimesAssignTokenDivideAssignTokenModAssignTokenPlusAssignTokenMinusAssignTokenLshAssignTokenRshAssignTokenUrshAssignTokenAndAssignTokenXorAssignToken OrAssignTokenSimpleAssignToken StrictNeTokenNeTokenLshTokenLeTokenLtToken UrshTokenRshTokenGeTokenGtTokenIncrementTokenDecrementToken PlusToken MinusTokenMulTokenDivTokenModTokenNotTokenBitwiseNotToken ArrowToken SpreadTokenDotTokenLeftBracketTokenRightBracketTokenLeftCurlyTokenRightCurlyTokenLeftParenTokenRightParenTokenCondcommentEndTokenAsToken TailTokenEOFToken tokenSpan tokenLiteral tokenCommentCommentAnnotationCommentA WhiteSpace NoCommentAlexrunAlex alexErroralexTestTokeniserlexCont $fMonadAlex$fApplicativeAlex $fFunctorAlex $fEqAlexPosn$fShowAlexPosnJSCommaTrailingList JSCTLComma JSCTLNone JSCommaListJSLConsJSLOneJSLNilJSArrayElement JSArrayCommaJSIdent JSIdentName JSIdentNone JSAccessor JSAccessorGet JSAccessorSetJSObjectPropertyListJSPropertyNameJSPropertyIdentJSPropertyStringJSPropertyNumberJSObjectPropertyJSPropertyAccessorJSPropertyNameandValueJSVarInitializer JSVarInit JSVarInitNone JSSwitchPartsJSCase JSDefaultJSBlock JSTryFinally JSFinally JSNoFinally JSTryCatchJSCatch JSCatchIf JSAssignOpJSAssign JSTimesAssignJSDivideAssign JSModAssign JSPlusAssign JSMinusAssign JSLshAssign JSRshAssign JSUrshAssign JSBwAndAssign JSBwXorAssign JSBwOrAssignJSSemi JSSemiAuto JSUnaryOp JSUnaryOpDecrJSUnaryOpDelete JSUnaryOpIncrJSUnaryOpMinus JSUnaryOpNot JSUnaryOpPlusJSUnaryOpTildeJSUnaryOpTypeof JSUnaryOpVoidJSBinOp JSBinOpAnd JSBinOpBitAnd JSBinOpBitOr JSBinOpBitXor JSBinOpDivide JSBinOpEq JSBinOpGe JSBinOpGt JSBinOpInJSBinOpInstanceOf JSBinOpLe JSBinOpLsh JSBinOpLt JSBinOpMinus JSBinOpMod JSBinOpNeq JSBinOpOf JSBinOpOr JSBinOpPlus JSBinOpRshJSBinOpStrictEqJSBinOpStrictNeq JSBinOpTimes JSBinOpUrshJSArrowParameterListJSUnparenthesizedArrowParameter!JSParenthesizedArrowParameterList JSExpression JSIdentifier JSDecimal JSLiteral JSHexIntegerJSOctalJSStringLiteralJSRegExJSArrayLiteralJSAssignExpressionJSCallExpressionJSCallExpressionDotJSCallExpressionSquareJSCommaExpressionJSExpressionBinaryJSExpressionParenJSExpressionPostfixJSExpressionTernaryJSArrowExpressionJSFunctionExpression JSMemberDotJSMemberExpression JSMemberNewJSMemberSquareJSNewExpressionJSObjectLiteralJSSpreadExpressionJSUnaryExpressionJSVarInitExpression JSStatementJSStatementBlockJSBreakJSLet JSConstant JSContinue JSDoWhileJSForJSForInJSForVar JSForVarInJSForLet JSForLetIn JSForLetOfJSForOf JSForVarOf JSFunctionJSIfJSIfElse JSLabelledJSEmptyStatementJSExpressionStatementJSAssignStatement JSMethodCallJSReturnJSSwitchJSThrowJSTry JSVariableJSWhileJSWithJSExportSpecifierJSExportSpecifierAsJSExportClauseJSExportDeclaration JSExportFromJSExportLocalsJSExportJSImportSpecifierJSImportSpecifierAsJSImportsNamedJSImportNameSpace JSFromClauseJSImportClauseJSImportClauseDefaultJSImportClauseNameSpaceJSImportClauseNamedJSImportClauseDefaultNameSpaceJSImportClauseDefaultNamedJSImportDeclaration JSModuleItemJSModuleImportDeclarationJSModuleExportDeclarationJSModuleStatementListItemJSAST JSAstProgram JSAstModuleJSAstStatementJSAstExpression JSAstLiteralJSAnnot JSAnnotSpace JSNoAnnot showStrippedbinOpEq$fShowStripped[]!$fShowStrippedJSCommaTrailingList$fShowStrippedJSCommaList$fShowStrippedJSArrayElement$fShowStrippedJSSemi$fShowStrippedJSVarInitializer$fShowStrippedJSAssignOp$fShowStrippedJSUnaryOp$fShowStrippedJSBinOp$fShowStrippedJSSwitchParts$fShowStrippedJSBlock$fShowStrippedJSAccessor$fShowStrippedJSPropertyName$fShowStrippedJSObjectProperty$fShowStrippedJSIdent$fShowStrippedJSTryFinally$fShowStrippedJSTryCatch$fShowStrippedJSExportSpecifier$fShowStrippedJSExportClause!$fShowStrippedJSExportDeclaration$fShowStrippedJSImportSpecifier$fShowStrippedJSImportsNamed$fShowStrippedJSImportNameSpace$fShowStrippedJSFromClause$fShowStrippedJSImportClause!$fShowStrippedJSImportDeclaration$fShowStrippedJSModuleItem"$fShowStrippedJSArrowParameterList$fShowStrippedJSExpression$fShowStrippedJSStatement $fDataJSAnnot $fEqJSAnnot $fShowJSAnnot$fDataJSFromClause$fEqJSFromClause$fShowJSFromClause $fDataJSBinOp $fEqJSBinOp $fShowJSBinOp$fDataJSUnaryOp $fEqJSUnaryOp$fShowJSUnaryOp $fDataJSSemi $fEqJSSemi $fShowJSSemi$fDataJSAssignOp$fEqJSAssignOp$fShowJSAssignOp$fDataJSPropertyName$fEqJSPropertyName$fShowJSPropertyName$fDataJSAccessor$fEqJSAccessor$fShowJSAccessor $fDataJSIdent $fEqJSIdent $fShowJSIdent$fDataJSExportSpecifier$fEqJSExportSpecifier$fShowJSExportSpecifier$fDataJSImportSpecifier$fEqJSImportSpecifier$fShowJSImportSpecifier$fDataJSImportNameSpace$fEqJSImportNameSpace$fShowJSImportNameSpace$fDataJSCommaList$fEqJSCommaList$fShowJSCommaList$fDataJSArrowParameterList$fEqJSArrowParameterList$fShowJSArrowParameterList$fDataJSExportClause$fEqJSExportClause$fShowJSExportClause$fDataJSImportsNamed$fEqJSImportsNamed$fShowJSImportsNamed$fDataJSImportClause$fEqJSImportClause$fShowJSImportClause$fDataJSImportDeclaration$fEqJSImportDeclaration$fShowJSImportDeclaration$fDataJSCommaTrailingList$fEqJSCommaTrailingList$fShowJSCommaTrailingList$fDataJSObjectProperty$fEqJSObjectProperty$fShowJSObjectProperty $fDataJSBlock $fEqJSBlock $fShowJSBlock$fDataJSStatement$fEqJSStatement$fShowJSStatement$fDataJSSwitchParts$fEqJSSwitchParts$fShowJSSwitchParts$fDataJSExpression$fEqJSExpression$fShowJSExpression$fDataJSArrayElement$fEqJSArrayElement$fShowJSArrayElement$fDataJSVarInitializer$fEqJSVarInitializer$fShowJSVarInitializer$fDataJSTryFinally$fEqJSTryFinally$fShowJSTryFinally$fDataJSTryCatch$fEqJSTryCatch$fShowJSTryCatch$fDataJSExportDeclaration$fEqJSExportDeclaration$fShowJSExportDeclaration$fDataJSModuleItem$fEqJSModuleItem$fShowJSModuleItem $fDataJSAST $fEqJSAST $fShowJSAST parseProgram parseModule parseLiteralparseExpressionparseStatementparsereadJs readJsModule parseFile parseFileUtf8showStrippedMaybe parseUsingrenderJSrenderToString renderToText$fRenderJSJSVarInitializer$fRenderJSMaybe$fRenderJSJSIdent$fRenderJSJSCommaTrailingList$fRenderJSJSCommaList$fRenderJSJSExportSpecifier$fRenderJSJSExportClause$fRenderJSJSExportDeclaration$fRenderJSJSImportSpecifier$fRenderJSJSImportsNamed$fRenderJSJSImportNameSpace$fRenderJSJSFromClause$fRenderJSJSImportClause$fRenderJSJSImportDeclaration $fRenderJS[]$fRenderJSJSArrayElement$fRenderJSJSAccessor$fRenderJSJSPropertyName$fRenderJSJSObjectProperty$fRenderJSJSBlock$fRenderJSJSModuleItem $fRenderJS[]0 $fRenderJS[]1$fRenderJSJSStatement $fRenderJS[]2$fRenderJSJSSwitchParts$fRenderJSJSTryFinally $fRenderJS[]3$fRenderJSJSTryCatch$fRenderJSJSSemi$fRenderJSJSAssignOp$fRenderJSJSUnaryOp$fRenderJSJSBinOp $fRenderJS[]4$fRenderJSCommentAnnotation $fRenderJS[]5$fRenderJSTokenPosn $fRenderJS[]6$fRenderJSJSAnnot$fRenderJSJSArrowParameterList$fRenderJSJSExpression$fRenderJSJSASTminifyJS$fMinifyJSJSVarInitializer$fMinifyJSMaybe$fMinifyJSJSIdent$fMinifyJSJSCommaTrailingList$fMinifyJSJSCommaList$fMinifyJSJSArrayElement$fMinifyJSJSAccessor$fMinifyJSJSPropertyName$fMinifyJSJSObjectProperty$fMinifyJSJSBlock$fMinifyJSJSTryFinally$fMinifyJSJSTryCatch$fMinifyJSJSExportSpecifier$fMinifyJSJSExportClause$fMinifyJSJSExportDeclaration$fMinifyJSJSImportSpecifier$fMinifyJSJSImportsNamed$fMinifyJSJSImportNameSpace$fMinifyJSJSFromClause$fMinifyJSJSImportClause$fMinifyJSJSImportDeclaration$fMinifyJSJSModuleItem$fMinifyJSJSAssignOp$fMinifyJSJSUnaryOp$fMinifyJSJSBinOp$fMinifyJSJSArrowParameterList$fMinifyJSJSExpressiondebugTokenString previousTokencomment AlexUserStatealexInitUserState StartCode symbolTokenmkString decimalTokenhexIntegerToken octalToken regExToken stringToken commentTokenwsToken utf8EncodenoMsgstrMsgUnexpectedTokenUnexpectedCharStrErrorError ParseError JSArgumentsmkUnarybaseGHC.Num+-HappyStk