!y      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe2language-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 experimentalghcSafe/.language-javascriptthe previous tokenlanguage-javascriptthe previous comment, if any Safe/y      NoneF1Flanguage-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=?|Ulanguage-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,autosemilanguage-javascriptif,(,expr,),stmtlanguage-javascriptif,(,expr,),stmt,else,rest language-javascriptidentifier,colon,stmt language-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, rb, autosemilanguage-javascript!body, autosemi | JSExportDefaultlanguage-javascriptNote that this data type is separate from ExportSpecifier because the grammar is slightly different (e.g. in handling of reserved words).language-javascriptidentlanguage-javascriptident, as, identlanguage-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 imports+language-javascriptBimports, module, semi | JSImportDeclarationBare -- ^ module, semi-language-javascript import,decl.language-javascript export,decl1language-javascript$source elements, trailing whitespace7language-javascript7Annotation: position and comment/whitespace information8language-javascriptA single space character9language-javascript No annotation:language-javascript5Show the AST elements stripped of their JSAnnot data.      !"#$%&'()*+,-./0123456789:;6789     012345,-./*+$%&'()"# !;:None=?Fhvlanguage-javascript lb, args, rblanguage-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 9 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=?QNoneqrst     01234567896789     012345qrstSafe=?                ! " # $ % & ' ( ) * + , - . / 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 { | } ~         !"#$$%&&''(()*+,-.//0123456789::;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=                         !3language-javascript-0.6.0.12-3BWAwNP8Tai3zHKVqqLk5w&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 RegExTokenAsToken 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 SpreadTokenDotTokenLeftBracketTokenRightBracketTokenLeftCurlyTokenRightCurlyTokenLeftParenTokenRightParenTokenCondcommentEndToken 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 JSBinOpAs JSBinOpBitAnd JSBinOpBitOr JSBinOpBitXor JSBinOpDivide JSBinOpEq JSBinOpGe JSBinOpGt JSBinOpInJSBinOpInstanceOf JSBinOpLe JSBinOpLsh JSBinOpLt JSBinOpMinus JSBinOpMod JSBinOpNeq JSBinOpOf JSBinOpOr JSBinOpPlus JSBinOpRshJSBinOpStrictEqJSBinOpStrictNeq JSBinOpTimes JSBinOpUrsh JSExpression JSIdentifier JSDecimal JSLiteral JSHexIntegerJSOctalJSStringLiteralJSRegExJSArrayLiteralJSAssignExpressionJSCallExpressionJSCallExpressionDotJSCallExpressionSquareJSCommaExpressionJSExpressionBinaryJSExpressionParenJSExpressionPostfixJSExpressionTernaryJSArrowExpressionJSFunctionExpression JSMemberDotJSMemberExpression JSMemberNewJSMemberSquareJSNewExpressionJSObjectLiteralJSSpreadExpressionJSUnaryExpressionJSVarInitExpression JSStatementJSStatementBlockJSBreakJSLet JSConstant JSContinue JSDoWhileJSForJSForInJSForVar JSForVarInJSForLet JSForLetIn JSForLetOfJSForOf JSForVarOf JSFunctionJSIfJSIfElse JSLabelledJSEmptyStatementJSExpressionStatementJSAssignStatement JSMethodCallJSReturnJSSwitchJSThrowJSTry JSVariableJSWhileJSWithJSExportLocalSpecifierJSExportLocalSpecifierAsJSExportDeclarationJSExportLocalsJSExportJSImportSpecifierJSImportSpecifierAsJSImportsNamedJSImportNameSpace 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$$fShowStrippedJSExportLocalSpecifier!$fShowStrippedJSExportDeclaration$fShowStrippedJSImportSpecifier$fShowStrippedJSImportsNamed$fShowStrippedJSImportNameSpace$fShowStrippedJSFromClause$fShowStrippedJSImportClause!$fShowStrippedJSImportDeclaration$fShowStrippedJSModuleItem$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$fDataJSExportLocalSpecifier$fEqJSExportLocalSpecifier$fShowJSExportLocalSpecifier$fDataJSImportSpecifier$fEqJSImportSpecifier$fShowJSImportSpecifier$fDataJSImportNameSpace$fEqJSImportNameSpace$fShowJSImportNameSpace$fDataJSCommaList$fEqJSCommaList$fShowJSCommaList$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 $fRenderJSJSExportLocalSpecifier$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$fRenderJSJSExpression$fRenderJSJSASTminifyJS$fMinifyJSJSVarInitializer$fMinifyJSMaybe$fMinifyJSJSIdent$fMinifyJSJSCommaTrailingList$fMinifyJSJSCommaList$fMinifyJSJSArrayElement$fMinifyJSJSAccessor$fMinifyJSJSPropertyName$fMinifyJSJSObjectProperty$fMinifyJSJSBlock$fMinifyJSJSTryFinally$fMinifyJSJSTryCatch $fMinifyJSJSExportLocalSpecifier$fMinifyJSJSExportDeclaration$fMinifyJSJSImportSpecifier$fMinifyJSJSImportsNamed$fMinifyJSJSImportNameSpace$fMinifyJSJSFromClause$fMinifyJSJSImportClause$fMinifyJSJSImportDeclaration$fMinifyJSJSModuleItem$fMinifyJSJSAssignOp$fMinifyJSJSUnaryOp$fMinifyJSJSBinOp$fMinifyJSJSExpressiondebugTokenString previousTokencomment AlexUserStatealexInitUserState StartCode symbolTokenmkString decimalTokenhexIntegerToken octalToken regExToken stringToken commentTokenwsToken utf8EncodenoMsgstrMsgUnexpectedTokenUnexpectedCharStrErrorError ParseError JSArgumentsmkUnarybaseGHC.Num+-HappyStk