t      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./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 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 ExpressiondStuff between last JS and EOFe End of file]Produce a string from a token containing detailed information. Mainly intended for debugging.g  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklE  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhijkl (c) 2012 Alan Zimmerman BSD-style experimentalghcSafe*othe previous tokenthe previous comment, if any Safe* NoneD,NBEncode a Haskell String to a list of Word8 values, in UTF8 format.g  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghmnopqK  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfghfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhmqonpm None: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.Safe1;=SA:xlist, trailing commaylist{head, comma, a|single element (no comma))Accessors for JSObjectProperty is either get or set.&(get|set), name, lb, params, rb, blockname, colon, valueassignop, initializerexpr,colon,stmtlistcolon,stmtlistlbrace, stmts, rbrace finally,blockcatch,lb,ident,rb,blockcatch,lb,ident,if,expr,rb,block Terminalslb, contents, rblhs, assignop, rhsexpr, bl, args, rbexpr, dot, exprexpr, [, expr, ]expression components lhs, op, rhslb,expression,rbexpression, operatorcond, ?, trueval, :, falseval$fn,name,lb, parameter list,rb,block`firstpart, dot, namenew, name, lb, args, rbfirstpart, lb, expr, rb new, exprlbrace contents rbraceidentifier, initializerlbrace, stmts, rbrace, autosemi#break,optional identifier, autosemiconst, decl, autosemi&continue, optional identifier,autosemi!do,stmt,while,lb,expr,rb,autosemi'for,lb,expr,semi,expr,semi,expr,rb.stmtfor,lb,expr,in,expr,rb,stmt.for,lb,var,vardecl,semi,expr,semi,expr,rb,stmt"for,lb,var,vardecl,in,expr,rb,stmt,fn,name, lb,parameter list,rb,block,autosemiif,(,expr,),stmtif,(,expr,),stmt,else,restidentifier,colon,stmtlhs, assignop, rhs, autosemioptional expression,autosemi$switch,lb,expr,rb,caseblock,autosemithrow val autosemitry,block,catches,finallyvar|const, decl, autosemiwhile,lb,expr,rb,stmtwith,lb,expr,rb,stmt list#source elements, tailing whitespace 7Annotation: position and comment/whitespace information A single space character  No annotation 4Show the AST elements stipped of their JSAnnot data.wxyz{|}~        ~z{|}wxy  wxyz{|}~     None;=De]h lb, args, rbmkUnary : 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 NonenaParse 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.c{Parse the given file. For UTF-8 support, make sure your locale is set such that "System.IO.localeEncoding" returns "utf8"dNParse the given file, explicitly setting the encoding to UTF8 when reading itgParse 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.a*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.gThe 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.abcdefgabcdgefNone;=oyhijhijNoneoijkl   abcdefhijabcdef   ijklhijSafe;=t{               ! " # $ % & ' ( ) * + , - . / 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 yz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                z       3language-javascript-0.6.0.11-6ruEuMeTqz6A39vEJ8aIdX&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.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 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 StrictEqTokenEqTokenTimesAssignTokenDivideAssignTokenModAssignTokenPlusAssignTokenMinusAssignTokenLshAssignTokenRshAssignTokenUrshAssignTokenAndAssignTokenXorAssignToken OrAssignTokenSimpleAssignToken StrictNeTokenNeTokenLshTokenLeTokenLtToken UrshTokenRshTokenGeTokenGtTokenIncrementTokenDecrementToken PlusToken MinusTokenMulTokenDivTokenModTokenNotTokenBitwiseNotTokenDotTokenLeftBracketTokenRightBracketTokenLeftCurlyTokenRightCurlyTokenLeftParenTokenRightParenTokenCondcommentEndToken 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 JSBinOpOr JSBinOpPlus JSBinOpRshJSBinOpStrictEqJSBinOpStrictNeq JSBinOpTimes JSBinOpUrsh JSExpression JSIdentifier JSDecimal JSLiteral JSHexIntegerJSOctalJSStringLiteralJSRegExJSArrayLiteralJSAssignExpressionJSCallExpressionJSCallExpressionDotJSCallExpressionSquareJSCommaExpressionJSExpressionBinaryJSExpressionParenJSExpressionPostfixJSExpressionTernaryJSFunctionExpression JSMemberDotJSMemberExpression JSMemberNewJSMemberSquareJSNewExpressionJSObjectLiteralJSUnaryExpressionJSVarInitExpression JSStatementJSStatementBlockJSBreak JSConstant JSContinue JSDoWhileJSForJSForInJSForVar JSForVarIn JSFunctionJSIfJSIfElse JSLabelledJSEmptyStatementJSExpressionStatementJSAssignStatement JSMethodCallJSReturnJSSwitchJSThrowJSTry JSVariableJSWhileJSWithJSAST JSAstProgramJSAstStatementJSAstExpression JSAstLiteralJSAnnot JSAnnotSpace JSNoAnnot showStrippedbinOpEq$fShowStripped[]!$fShowStrippedJSCommaTrailingList$fShowStrippedJSCommaList$fShowStrippedJSArrayElement$fShowStrippedJSSemi$fShowStrippedJSVarInitializer$fShowStrippedJSAssignOp$fShowStrippedJSUnaryOp$fShowStrippedJSBinOp$fShowStrippedJSSwitchParts$fShowStrippedJSBlock$fShowStrippedJSAccessor$fShowStrippedJSPropertyName$fShowStrippedJSObjectProperty$fShowStrippedJSIdent$fShowStrippedJSTryFinally$fShowStrippedJSTryCatch$fShowStrippedJSExpression$fShowStrippedJSStatement $fDataJSAnnot $fEqJSAnnot $fShowJSAnnot $fDataJSBinOp $fEqJSBinOp $fShowJSBinOp$fDataJSUnaryOp $fEqJSUnaryOp$fShowJSUnaryOp $fDataJSSemi $fEqJSSemi $fShowJSSemi$fDataJSAssignOp$fEqJSAssignOp$fShowJSAssignOp$fDataJSPropertyName$fEqJSPropertyName$fShowJSPropertyName$fDataJSAccessor$fEqJSAccessor$fShowJSAccessor $fDataJSIdent $fEqJSIdent $fShowJSIdent$fDataJSCommaList$fEqJSCommaList$fShowJSCommaList$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 $fDataJSAST $fEqJSAST $fShowJSAST parseProgram parseLiteralparseExpressionparseStatementparsereadJs parseFile parseFileUtf8showStrippedMaybe parseUsingrenderJSrenderToString renderToText$fRenderJSJSVarInitializer$fRenderJSMaybe$fRenderJSJSIdent$fRenderJSJSCommaTrailingList$fRenderJSJSCommaList $fRenderJS[]$fRenderJSJSArrayElement$fRenderJSJSAccessor$fRenderJSJSPropertyName$fRenderJSJSObjectProperty$fRenderJSJSBlock $fRenderJS[]0$fRenderJSJSStatement $fRenderJS[]1$fRenderJSJSSwitchParts$fRenderJSJSTryFinally $fRenderJS[]2$fRenderJSJSTryCatch$fRenderJSJSSemi$fRenderJSJSAssignOp$fRenderJSJSUnaryOp$fRenderJSJSBinOp $fRenderJS[]3$fRenderJSCommentAnnotation $fRenderJS[]4$fRenderJSTokenPosn $fRenderJS[]5$fRenderJSJSAnnot$fRenderJSJSExpression$fRenderJSJSASTminifyJS$fMinifyJSJSVarInitializer$fMinifyJSMaybe$fMinifyJSJSIdent$fMinifyJSJSCommaTrailingList$fMinifyJSJSCommaList$fMinifyJSJSArrayElement$fMinifyJSJSAccessor$fMinifyJSJSPropertyName$fMinifyJSJSObjectProperty$fMinifyJSJSBlock$fMinifyJSJSTryFinally$fMinifyJSJSTryCatch$fMinifyJSJSAssignOp$fMinifyJSJSUnaryOp$fMinifyJSJSBinOp$fMinifyJSJSExpressiondebugTokenString previousTokencomment AlexUserStatealexInitUserState StartCode symbolTokenmkString decimalTokenhexIntegerToken octalToken regExToken stringToken commentTokenwsToken utf8EncodeAlexAcc AlexAccNone AlexAccSkip AlexLastAccAlexNone AlexLastSkip AlexReturnAlexEOF AlexErrorAlexSkip AlexTokenAlexAddrAlexA#unAlex AlexStatealex_posalex_inpalex_chr alex_bytesalex_scdalex_ustAlexPosnAlexPnnoMsgstrMsgUnexpectedTokenUnexpectedCharStrErrorError ParseError ShowStrippedss JSArgumentsmkUnarybaseGHC.Num+- HappyAddrHappyA#HappyStk Happy_IntList HappyCons HappyAbsSynRenderJS|>PosAccumMinifyJSfix