úÎ,‡&Mt      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs experimental ZJoel Bjornson joel.bjornson@gmail.com Niklas Broberg nibro@cs.chalmers.se xArray representation Class for JBool expressions Class for JFloat expressions Class for JInt expressions Class for JString expressions $Class for representing expressions. M First parameter is the expression, second a TBool for variable or constant. & Third parameter represents the type. ?Class for derefable data types, used to allow the creation of D dereferencing objects. Examples: Math.random() or document.write() BClass for binding objects with constructors. E.g. o = new Date(); 9Args represents types that can be passed as arguments to  JavaScript functions. tKJFormal params represents parameters passed to a function along with their  corresponding types. 2Class for parameter types to JavaScript functions  !"#$%&'Binary Operator ()*+,-./012345!Class for expression that may be plussed.  Examples: 1 + 2, ha + skell. 6Assign Operator 789:;<=>%Post or Pre prefix , i.e. --x or x++ ?@A>Allows values to be compared to JNull. E.g. for checking that - an object is instantiated or is accessible. B%Class that represents showable types CD"Class for representing JavaScript features, e.g. names of ( objects or functions. Example: window  hasFeature alert uEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkJavaScript types nopqrGenerates a Block from a Stmt. sGet the value of a variable. v#Instanses for tuples,triples etc.. w8All JString values along with all objects can be nulll. x#Any string value can be a feature. y Show for Exp t  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstkLdcba`_^]\[ZYXWVUTSRQPONMejihgf&%$#"!  6=<;:987'43210/.-,+*)(5>@?ADBCKJIHGFE  srlmnopqr   &%$#"!  !"#$%&' 43210/.-,+*)(()*+,-./0123456=<;:987789:;<=>@??@ABCCDEFGHIJKLdcba`_^]\[ZYXWVUTSRQPONMMNOPQRSTUVWXYZ[\]^_`abcdejihgffghijknopqrsz      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMCNOPQRSTUVWXYZ[\]^_`KJILabcdefghijklmnopqrstuvHJavaScript-0.4Language.HJavaScript.SyntaxArrayIsJBooltoJBoolIsJFloattoJFloatIsJInttoJInt IsJString toJStringIsExptoExpIsDerefHasConstructorIsClassArgs FormalParams mkFParams showsFParams ParamTypeBlockSequence EmptyBlockElsesNoElseElseElseifStmtIfReturnContinueBreakForDoWhileWhileExpStmt VarAssign VarDeclAssignVarDeclBinOpLEThanGEThanLThanGThan NotEqualsEqualsOrAndModDivTimesMinusPlus PlusOpTypeAssignOpOrAssign AndAssign ModAssign DivAssign TimesAssign MinusAssign PlusAssignPostPrePrePst IsNullableJShowjshow IsFeatureJArrayJObjectJVoidJFloatJBoolJStringJIntExpJIsImplJValueOf JCastObjectJNullJBlockJThis JFunctionJDerefJNewJCallJIfOp JDecrement JIncrementJBinOpJNotJNeg JAssignWithJAssignJConstVar JArrayIndex JDerefVarJMemberJParamJVarJTypederefderefVar methodCallvoidMethodCallmethodCallNoArgsvoidMethodCallNoArgstoBlockval showsArgs showsFeature $fParamType()$fIsNullable[] $fIsFeature[] $fShowExp