*      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  x !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ A script in  script ...  /script& tags. This may seem a little silly, F but the Flapjax analogue has an inline variant and attribute-inline  variant. x !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~x;QPONMLKJIHGFEDCBA@?>=<8:9,+*)('&%$#"! t~}|{zyxwvu6745gsrqponmlkjihZa`_^]\[VYXW0321-/.bfedcRUTSx,+*)('&%$#"!  !"#$%&'()*+,-/../03211234556778:99:;QPONMLKJIHGFEDCBA@?>=<<=>?@ABCDEFGHIJKLMNOPQRUTSSTUVYXWWXYZa`_^]\[[\]^_`abfedccdefg srqponmlkjihhijklmnopqrst~}|{zyxwvuuvwxyz{|}~0 FThe statically-determinate lexical structure of a JavaScript program. enclosing environment !local environment and references #environment and global definitions browser/testing environment  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;;<<=>=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ WebBits-2.0BrownPLT.JavaScript.LexerBrownPLT.JavaScript.SyntaxBrownPLT.JavaScript.ParserBrownPLT.JavaScript.PrettyPrintBrownPLT.JavaScript.EnvironmentBrownPLT.JavaScriptidentifierStart identifierreservedoperator reservedOp charLiteral stringLiteralnaturalintegerfloatnaturalOrFloatdecimal hexadecimaloctalsymbol whiteSpaceparensbracessquaressemicommacolondotbracketslexeme Statement FunctionStmt VarDeclStmtWithStmt ReturnStmt ThrowStmtTryStmtForStmt ForInStmt LabelledStmt ContinueStmt BreakStmt DoWhileStmt WhileStmt SwitchStmt IfSingleStmtIfStmtExprStmt EmptyStmt BlockStmt ForInInit ForInNoVarForInVarForInitExprInitVarInitNoInitVarDecl 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 JavaScriptScriptunIdExpressionParserStatementParserParsedExpressionParsedStatementparseBlockStmtparseStatementparseSimpleExpr' assignExprparseExpression parseScriptparseJavaScriptFromFileparseScriptFromStringemptyParsedJavaScript parseStringrenderStatementsrenderExpressionstmtexpr javaScriptEnvTreeenv localVars parseIfStmtparseSwitchStmtparseWhileStmtparseDoWhileStmtparseContinueStmtparseBreakStmtparseEmptyStmtparseLabelledStmtparseExpressionStmtparseForInStmt parseForStmt parseTryStmtparseThrowStmtparseReturnStmt parseWithStmtparseVarDeclStmtparseFunctionStmt parseThisRef parseNullLit parseBoolLit parseVarRef parseArrayLit allEscapesparseStringLitparseRegexpLitparseObjectLit mkDecimal parseNumLitparseParenExpr exprTableasLValuelvalueunaryAssignExprparseTernaryExpr'parseTernaryExprassignOpinBlockinParenssemiSepforInit forInInit caseClause catchClausevarDeclpropjsEscapemexprPartial partialLocalspartialReferences partialNestedemptyrefdeclnestunions javascript makeEnvTree