Îõ³h$&× ¹Œ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€‚ƒ„…†‡ˆ‰Š‹ Safe-Inferred‘’“NoneÇ  yi-mode-javascriptThe different tokens. yi-mode-javascriptHlState is 0 when outside of a multi-line comment and -1 when inside one. yi-mode-javascriptThe constructors for Operator0 have an apostrophe as a suffix because e.g. LT is already used by Prelude.-yi-mode-javascriptThe constructors for Reserved+ have an apostrophe as a suffix because Default" is already used. Also note that  Undefined'— is not intended as some sort of "backup" reserved word for things we don't care about -- it really means the "undefined" built-in in JavaScript.Lyi-mode-javascriptÂPrefix operators. NOTE: Add' is also a valid prefix operator, but since it's completely useless in the real world, we don't care about it here. Doing this makes parsing much, much easier.Myi-mode-javascriptPostfix operators.Nyi-mode-javascriptInfix operators.Pyi-mode-javascriptTakes a 7 and returns a style to be used for that type of token. TODO: The ”“ check is potentially unnecessarily slow. We could split the Const constructor into two different ones, one for builtins and one for others.Qyi-mode-javascript7Scan one token. Return (maybe) a token and a new state.Ò   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQÒOQPK  -./0123456789:;<=>?@ABCDEFGHIJ  !"#$%&'()*+, LNMGPL-2yi-devel@googlegroups.com experimentalportableNone37>À{(oyi-mode-javascriptÔRepresents either a variable name or a variable name assigned to an expression. AssBeg is a variable name maybe followed by an assignment. AssRst' is an equals sign and an expression. (AssBeg x (Just (AssRst '=' '5'))) means x = 5.yi-mode-javascript Instances of Failableð can represent failure. This is a useful class for future work, since then we can make stroking much easier.“yi-mode-javascript Instances of  Strokable/ are datatypes which can be syntax highlighted.•yi-mode-javascriptNormal stroker.–yi-mode-javascriptError stroker.˜yi-mode-javascriptÞGiven a new style and a stroke, return a stroke with the new style appended to the old one.™yi-mode-javascript,Given a list of tokens to check for errors (xs%) and a list of tokens to stroke (xs'), returns normal strokes for xs'Á if there were no errors. Otherwise returns error strokes for xs'.šyi-mode-javascriptGiven a list of TT, if any of them is an error, returns an error stroker, otherwise a normal stroker. Using e.g. existentials, we could make this more general and have support for heterogeneous lists of elements which implement Failable, but I haven't had the time to fix this.›yi-mode-javascriptGiven a TT , return a Stroke for it.œyi-mode-javascriptThe main stroking function.yi-mode-javascript Main parser.žyi-mode-javascriptÈParser for statements such as "return", "while", "do-while", "for", etc.Ÿyi-mode-javascriptÍParser for "blocks", i.e. a bunch of statements wrapped in curly brackets or just a single statement.ÂNote that this works for JavaScript 1.8 "lambda" style function bodies as well, e.g. "function hello() 5", since expressions are also statements and we don't require a trailing semi-colon.5TODO: function hello() var x; is not a valid program. yi-mode-javascript‡Parser for expressions which may be statements. In reality, any expression is also a valid statement, but this is a slight compromise to get rid of the massive performance loss which is introduced when allowing JavaScript objects to be valid statements.¡yi-mode-javascriptÀThe basic idea here is to parse "the rest" of expressions, e.g. + 3 in x + 3 or [i] in x[i]ù. Anything which is useful in such a scenario goes here. TODO: This accepts [], but shouldn't, since x[] is invalid.¢yi-mode-javascriptParser for expressions.£yi-mode-javascriptúParses both empty and non-empty arrays. Should probably be split up into further parts to allow for the separation of [] and  [1, 2, 3].¤yi-mode-javascript!Parses a semicolon if it's there.¥yi-mode-javascript3Parses a comma-separated list of valid identifiers.§yi-mode-javascriptParses a comment.¨yi-mode-javascriptParses a prefix operator.©yi-mode-javascriptParses a infix operator.ªyi-mode-javascriptParses a postfix operator.«yi-mode-javascriptParses any literal.¬yi-mode-javascriptParses any literal.­yi-mode-javascriptParses any string.®yi-mode-javascriptParses any valid number.¯yi-mode-javascriptParses any valid identifier.°yi-mode-javascriptParses any boolean.±yi-mode-javascriptParses a reserved word.²yi-mode-javascriptParses a special token.³yi-mode-javascriptParses an operator.´yi-mode-javascript!Expects a token x, recovers with ¼.µyi-mode-javascriptExpects a special token.¶yi-mode-javascriptExpects an expression.¸yi-mode-javascript0General recovery parser, inserts an error token.¹yi-mode-javascriptWeighted recovery.¾yi-mode-javascriptBetter name for •.¿yi-mode-javascriptBetter name for –.Êyi-mode-javascript?À°ôyi-mode-javascript0The main verifier which calls the sub-verifiers.õyi-mode-javascriptûGiven a list of function declarations, checks for multiple function declarations, including the functions' subfunctions.÷yi-mode-javascript Given two Tok t, compares the ts.úyi-mode-javascript3Returns a list of the functions in the given block.ûyi-mode-javascriptGiven a ‚*, returns the token representing the name.üyi-mode-javascriptGiven a ‚#, returns its inner body as a list.ýyi-mode-javascriptGiven a  ValidName* returns the string representing the name.þyi-mode-javascriptLike —+ but drops the first element in the result.íïîðñòóôõö÷øùúûüýþÿòóðñíïîôõö÷øùúûüýþÿGPL-2yi-devel@googlegroups.com experimentalportableNone 3Î ‹‡yi-mode-javascriptHooks for the JavaScript mode.†‡†‡None ±‹‹˜      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aabcdefghijklmnopqrstuvwxyyz{|}~€€‚‚ƒ„…†‡ˆ‰Š‹ŒŽg‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›™šœ–žŸ0yi-mode-javascript-0.19.0-CkgEXZvDtF58wR31kQ6fOPYi.Lexer.JavaScriptYi.Syntax.JavaScriptYi.Verifier.JavaScriptYi.Mode.JavaScript Yi.Config.Default.JavaScriptModePaths_yi_mode_javascriptTokenUnknownResStrRexOpSpecialNumber ValidNameCommentConstHlStateOperatorAdd' Subtract' Multiply'Divide'Modulo' Increment' Decrement'Assign' AddAssign'SubtractAssign'MultiplyAssign' DivideAssign' ModuloAssign'Equals' NotEquals'GT'GTE'LT'LTE' EqualsType'NotEqualsType'And'Or'Not'BitAnd'BitOr'BitXor' LeftShift' RightShift' RightShiftZ'BitNot'Qualify'ReservedBreak'Case'Catch' Continue'Default'Delete'Do'Else'Finally'For' Function'If'In' InstanceOf'New'Return'Switch'This'Throw'Try'TypeOf'Var'Void'While'With'True'False'Null' Undefined'TTprefixOperatorspostfixOperatorsinfixOperators initState tokenToStyle alexScanToken $fShowToken $fEqToken$fShowOperator $fEqOperator$fShowReserved $fEqReserved$fShowCommentType$fEqCommentTypeKeyValue KeyValueErrArrayArrContArrRestArrErrExprExprObj ExprPrefixExprNew ExprSimple ExprParen ExprAnonFun ExprTypeOf ExprFunCallOpExprExprCondExprArrPostExprExprErr VarDecAssAssBegAssRstAssErrBlockBlockOneBlockErr ForContent ForNormalForInForErrParExpr ParExprErr ParametersParErr StatementFunDeclVarDeclReturnWhileDoWhileForIfElseWithComm SemicolonTreeBListFailablestupid hasFailed Strokable toStrokesnormalerrorone modStrokenError failStroker tokenToStroke getStrokesparse statementblockstmtExpropExpr expressionarray semicolon parametersparExprcommentpreOpinOppostOpopTok simpleTokstrToknumToknamebooleanresspcoperplzTokplzSpcplzExprplzanythinghate fromBlockfirstTok errorTokenisErrortoTTfromTT$fStrokableTok$fStrokableParameters$fFailableParameters$fStrokableArray$fStrokableKeyValue$fStrokableParExpr$fStrokableExpr$fStrokableVarDecAss$fStrokableBlock$fStrokableForContent$fStrokableStatement$fFailableKeyValue$fFailableExpr$fFailableParExpr$fFailableVarDecAss$fFailableBlock$fFailableForContent$fIsTreeStatement$fShowKeyValue$fDataKeyValue$fFoldableKeyValue $fShowExpr $fDataExpr$fFoldableExpr $fShowArray $fDataArray$fFoldableArray $fShowBlock $fDataBlock$fFoldableBlock$fShowStatement$fDataStatement$fFoldableStatement$fShowVarDecAss$fDataVarDecAss$fFoldableVarDecAss$fShowForContent$fDataForContent$fFoldableForContent $fShowParExpr $fDataParExpr$fFoldableParExpr$fShowParameters$fDataParameters$fFoldableParametersReportErrWarnWarningUnreachableCodeErrorMultipleFunctionDeclarationverifycheckMultipleFunscheckUnreachablettEqsayisReturn findFunctionsfunNamefunBodynameOf dropWhile'dupsBy $fShowError $fShowWarning $fShowReport $fEqReport $fEqWarning $fEqErrorjavaScriptModehooks$fYiVariableJSBuffer$fDefaultJSBuffer$fBinaryJSBufferconfigureJavaScriptModeversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamebase Data.Foldableelem)yi-language-0.19.0-IdyJrIEoDq11Qjn5TopPkH Yi.Lexer.AlextokFromTtokTGHC.List dropWhile