ion
Version:
ion language ========================
51 lines (49 loc) • 2.07 kB
Plain Text
X ActivateStatement // converted to ExpressionStatement in compiler
X ForOfStatement
left: VariableDeclaration can have 2 declarations, second is index
X ForInStatement // ion "for of"
left: VariableDeclaration can have 2 declarations, second is value
X ForOfStatement / ForInStatement
if: Expression / null
next: ForOfStatement / ForInStatement
X ArrayExpression // Could have used Mozilla structure "ComprehensionExpression"
+comprehension: ForInStatement/ForOfStatement // no body
+value:Expression
X Function
+bound: true / false
X MemberExpression
+existential: true / undefined
X ObjectExpression
+objectType: Expression
properties: Property / Statement
+create: true / false / undefined // false means we don't need to assign an empty object first
X +Property // compatible with ObjectExpression.properties type
key: Literal / Identifier / Expression
value: Expression
kind: "init"
+computed: true / false
+output: Identifier // used while converting typed ObjectExpressions to imperative code
+add: true / undefined // if true then we also add this property value to the parent
+define: true / undefined // if true then this is a property definition
X ExpressionStatement
+output: Identifier // used while converting typed ObjectExpressions to imperative code
X +UndoStatement
callee // function that is called when a statement is deactivated.
X +ExportDeclaration
name: null / Expression
value: Variable / Expression
X +ImportExpression
name: Expression
X +ClassDeclaration
export: true / false
name: Identifier
extends: [Identifier*]
properties: [Property*]
X +AssertStatement
expression: Expression
+SpreadExpression
expression: Expression
+JavascriptExpression
text: String
All Statements
order: String // used for ordering inserted objects