adW      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Infered     Safe-InferedvStatements, spec 12. function f(x, y, z) {...} , spec 13  var x, y=42; , spec 12.2  with (o) stmt , spec 12.10  return expr; , spec 12.9  throw expr; , spec 12.13 #try stmt catch(x) stmt finally stmt , spec 12.14 !"ForStmt a init test increment body, for (init; test,  increment) body , spec 12.6 "for (x in o) stmt , spec 12.6 # lab: stmt , spec 12.12 $ continue lab; , spec 12.7 % break lab; , spec 12.8 &do stmt while (e); , spec 12.6 'while (e) do stmt , spec 12.6 (switch (e) clauses , spec 12.11 )if (e) stmt1 else stmt2 , spec 12.5 * if (e) stmt , spec 12.5 +expr; , spec 12.4 ,; , spec 12.3 -{stmts} , spec 12.1 .for..in initializer, spec 12.6 /foo.baz, foo[bar], z 0 var x1for initializer, spec 12.6 2 expr3  var x, y=424empty 5"A variable declaration, spec 12.2 6  var x = e;7Catch clause, spec 12.14 8 catch (x) {...}9Case clauses, spec 12.11 : default: stmts;; case e: stmts;<Expressions, see spec 11 =function f (x,y,z) {...}, spec 11.2.5, 13 >f(x,y,z), spec 11.2.3 funcexprs are optionally named ?e1, e2 , spec 11.14 @(e), spec 11.1.6 Ae1 @=e2 , spec 11.13 B e1 ? e2 : e3 , spec 11.12 Ce1@e22, spec 11.5, 11.6, 11.7, 11.8, 11.9, 11.10, 11.11 D++x, x--! etc., spec 11.3, 11.4.4, 11.4.5 E@e(, spec 11.4 (excluding 11.4.4, 111.4.5) F new foo(bar), spec 11.2.2 Gfoo[bar, spec 11.2.1 Hfoo.bar, spec 11.2.1 Ifoo, spec 11.1.2 Jthis, spec 11.1.1 K{foo:"bar" , baz: 42}, spec 11.1.5 L[1,2,3], spec 11.1.4 Mnull, spec 11.1.3, 7.8 Ntrue, spec 11.1.3, 7.8 O42, spec 11.1.3, 7.8 P41.99999, spec 11.1.3, 7.8 Q-RegexpLit a regexp global? case_insensitive? -- regular " expression, see spec 11.1.3, 7.8 R"foo", spec 11.1.3, 7.8 S*Left-hand side expressions: see spec 11.2 T foo[bar]U foo.barVvariable reference, foo W9Property names in an object initializer: see spec 11.1.5 Xproperty name is an integer, 42 Yproperty name is a string, "foo" Z property name is an identifier, foo [;Prefix operators: see spec 11.4 (excluding 11.4.4, 11.4.5) \ delete] void^ typeof_ -` +a ~b !c:Unary assignment operators: see spec 11.3, 11.4.4, 11.4.5 d x--e x++f --xg ++xh%Assignment operators: see spec 11.13 i |=j ^=k &=l >>>=m >>=n <<=o %=p /=q *=r -=s +=tsimple assignment, = u%Infix operators: see spec 11.5-11.11 v +w |x ^y &z >>>{ >>| <<} -~ % / * || && !=== === != ==  instanceof in >= > <= < A script in <script> ... </script> tags. +extracts statements from a JavaScript type Returns  if the statement is an IterationStatement  according to spec 12.6. | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~{ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~{-,+*)('&%$#"! 9;:781432.0/56<RQPONMLKJIHGFEDCBA@?>=u~}|{zyxwvhtsrqponmlkji[ba`_^]\WZYXcgfedSVUT-,+*)('&%$#"! .0/143256789;:<RQPONMLKJIHGFEDCBA@?>=SVUTWZYX[ba`_^]\cgfedh tsrqponmlkjiu~}|{zyxwv Safe-Infered"Renders a list of statements as a  "Renders a list of statements as a  ARenders a JavaScript program as a document, the show instance of  $ will pretty-print it automatically  Safe-Infered/Returns the annotation of the root of the tree  Removes annotations from a tree >Changes all the labels in the tree to another one, given by a  function. @add an extra field to the AST labels (the label would look like   (a, b) ) remove an extra field BAssigns unique numeric (Int) ids to each node in the AST. Returns $ a pair: the tree annotated with UID's and the last ID that was  assigned.  starting id  tree root   Safe-InferedParse from a stream; same as   ?Read a JavaScript program from file an parse it into a list of  statements )Parse a JavaScript program from a string ;Parse a JavaScript source string into a list of statements The parser to use Name of the source file the stream to parse, usually a   file name source file name JavaScript source to parse JavaScript source  Safe-InferedFThe statically-determinate lexical structure of a JavaScript program. browser/testing environment  Safe-Infered+Labels are either strings (identifiers) or empty (see 12.12 of  the spec) 9Annotates statements with their label sets; example use: +let jsa = reannotate (\a -> (a, Set.empty))Iin annotateLabelSets jsa snd (\labs (a, ls) -> (a, labs `Set.union` ls))annotation read function annotation write function the script to annotate   Safe-Infered !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   !"#$%&'()*+,-./0123456789:;<=>?@ABBCCDEDFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ language-ecmascript-0.9Language.ECMAScript3.SyntaxLanguage.ECMAScript3.Lexer Language.ECMAScript3.PrettyPrint'Language.ECMAScript3.Syntax.AnnotationsLanguage.ECMAScript3.Parser)Language.ECMAScript3.Analysis.Environment'Language.ECMAScript3.Analysis.LabelSets Text.ParsecparseLanguage.ECMAScript3 parsec-3.1.3Text.Parsec.Pos SourcePosidentifierStart identifierreservedoperator reservedOp charLiteral stringLiteralnaturalintegerfloatnaturalOrFloatdecimal hexadecimaloctalsymbol whiteSpaceparensbracessquaressemicommacolondotbracketslexeme Statement FunctionStmt VarDeclStmtWithStmt ReturnStmt ThrowStmtTryStmtForStmt ForInStmt LabelledStmt ContinueStmt BreakStmt DoWhileStmt WhileStmt SwitchStmt IfSingleStmtIfStmtExprStmt EmptyStmt BlockStmt ForInInit ForInLValForInVarForInitExprInitVarInitNoInitVarDecl CatchClause CaseClause CaseDefault ExpressionFuncExprCallExprListExpr ParenExpr AssignExprCondExpr InfixExprUnaryAssignExpr PrefixExprNewExpr BracketRefDotRefVarRefThisRef ObjectLitArrayLitNullLitBoolLitIntLitNumLit RegexpLit StringLitLValueLBracketLDotLVarPropPropNum PropStringPropIdPrefixOp PrefixDelete PrefixVoid PrefixTypeof PrefixMinus PrefixPlus PrefixBNot PrefixLNot UnaryAssignOp PostfixDec PostfixInc PrefixDec PrefixIncAssignOp OpAssignBOr OpAssignBXor OpAssignBAndOpAssignZfRShiftOpAssignSpRShiftOpAssignLShift OpAssignMod OpAssignDiv OpAssignMul OpAssignSub OpAssignAddOpAssignInfixOpOpAddOpBOrOpBXorOpBAnd OpZfRShift OpSpRShiftOpLShiftOpSubOpModOpDivOpMulOpLOrOpLAnd OpStrictNEq OpStrictEqOpNEqOpEq OpInstanceofOpInOpGEqOpGTOpLEqOpLTId JavaScriptScript unJavaScriptunIdisIterationStmtrenderStatementsrenderExpression javaScript HasAnnotation getAnnotationremoveAnnotations reannotateaddExtraAnnotationFieldremoveExtraAnnotationFieldassignUniqueIdsExpressionParserStatementParserParsedExpressionParsedStatementparseBlockStmtparseStatementparseSimpleExpr' assignExprparseExpression parseScriptparseJavaScriptFromFileparseScriptFromString parseStringEnvTreeenv localVarsLabel EmptyLabelannotateLabelSetsghc-prim GHC.TypesTrue$fDefaultSourcePos$fDefaultJavaScriptbaseGHC.BaseStringpretty-1.1.1.0Text.PrettyPrint.HughesPJDoc$fHasAnnotationCatchClause$fHasAnnotationCaseClause$fHasAnnotationProp$fHasAnnotationVarDecl$fHasAnnotationLValue$fHasAnnotationStatement$fHasAnnotationExpression