src/expression.jsx

abstract class Expression

new Expression(token : Token)

new Expression(that : Expression)

abstract function clone() : Expression

abstract function serialize() : variant

function instantiate(instantiationContext : InstantiationContext) : boolean

function getToken() : Token

abstract function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

abstract function getType() : Type

function getHolderType() : Type

function isClassSpecifier() : boolean

function forEachExpression(cb : function (:Expression) : boolean) : boolean

abstract function forEachExpression(cb : function (:Expression, :function (:Expression) : void) : boolean) : boolean

function assertIsAssignable(context : AnalysisContext, token : Token, type : Type) : boolean

static function assertIsAssignable(context : AnalysisContext, token : Token, lhsType : Type, rhsType : Type) : boolean

static function getDefaultValueExpressionOf(type : Type) : Expression

abstract class LeafExpression extends Expression

new LeafExpression(token : Token)

override function forEachExpression(cb : function (:Expression, :function (:Expression) : void) : boolean) : boolean

abstract class OperatorExpression extends Expression

new OperatorExpression(token : Token)

new OperatorExpression(that : Expression)

function isConvertibleTo(context : AnalysisContext, expr : Expression, type : Type, mayUnbox : boolean) : boolean

function assertIsConvertibleTo(context : AnalysisContext, expr : Expression, type : Type, mayUnbox : boolean) : boolean

class LocalExpression extends LeafExpression

new LocalExpression(token : Token, local : LocalVariable)

override function clone() : LocalExpression

function getLocal() : LocalVariable

function setLocal(local : LocalVariable) : void

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

override function assertIsAssignable(context : AnalysisContext, token : Token, type : Type) : boolean

class ClassExpression extends LeafExpression

new ClassExpression(token : Token, parsedType : Type)

override function clone() : ClassExpression

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

function setType(type : Type) : void

override function isClassSpecifier() : boolean

override function assertIsAssignable(context : AnalysisContext, token : Token, type : Type) : boolean

class NullExpression extends LeafExpression

new NullExpression(token : Token, type : Type)

override function clone() : NullExpression

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

function setType(type : Type) : void

class BooleanLiteralExpression extends LeafExpression

new BooleanLiteralExpression(token : Token)

override function clone() : BooleanLiteralExpression

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class IntegerLiteralExpression extends LeafExpression

new IntegerLiteralExpression(token : Token)

override function clone() : IntegerLiteralExpression

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class NumberLiteralExpression extends LeafExpression

new NumberLiteralExpression(token : Token)

override function clone() : NumberLiteralExpression

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class StringLiteralExpression extends LeafExpression

new StringLiteralExpression(token : Token)

override function clone() : StringLiteralExpression

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class RegExpLiteralExpression extends LeafExpression

new RegExpLiteralExpression(token : Token)

new RegExpLiteralExpression(token : Token, type : Type)

override function clone() : RegExpLiteralExpression

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class ArrayLiteralExpression extends Expression

new ArrayLiteralExpression(token : Token, exprs : Array.<Expression>, type : Type)

override function clone() : ArrayLiteralExpression

function getExprs() : Array.<Expression>

override function getType() : Type

function setType(type : Type) : void

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function forEachExpression(cb : function (:Expression, :function (:Expression) : void) : boolean) : boolean

class MapLiteralElement

new MapLiteralElement(key : Token, expr : Expression)

function getKey() : Token

function getExpr() : Expression

function setExpr(expr : Expression) : void

function serialize() : variant

class MapLiteralExpression extends Expression

new MapLiteralExpression(token : Token, elements : Array.<MapLiteralElement>, type : Type)

override function clone() : MapLiteralExpression

function getElements() : Array.<MapLiteralElement>

override function getType() : Type

function setType(type : Type) : void

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function forEachExpression(cb : function (:Expression, :function (:Expression) : void) : boolean) : boolean

class ThisExpression extends Expression

new ThisExpression(token : Token, classDef : ClassDefinition)

override function clone() : ThisExpression

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

override function forEachExpression(cb : function (:Expression, :function (:Expression) : void) : boolean) : boolean

class FunctionExpression extends Expression

new FunctionExpression(token : Token, funcDef : MemberFunctionDefinition)

override function clone() : FunctionExpression

function getFuncDef() : MemberFunctionDefinition

function setFuncDef(funcDef : MemberFunctionDefinition) : void

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

function argumentTypesAreIdentified() : boolean

function typesAreIdentified() : boolean

function deductTypeIfUnknown(context : AnalysisContext, type : ResolvedFunctionType) : boolean

override function forEachExpression(cb : function (:Expression, :function (:Expression) : void) : boolean) : boolean

abstract class UnaryExpression extends OperatorExpression

new UnaryExpression(operatorToken : Token, expr : Expression)

function getExpr() : Expression

function setExpr(expr : Expression) : void

override function serialize() : variant

override function forEachExpression(cb : function (:Expression, :function (:Expression) : void) : boolean) : boolean

class BitwiseNotExpression extends UnaryExpression

new BitwiseNotExpression(operatorToken : Token, expr : Expression)

override function clone() : BitwiseNotExpression

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class InstanceofExpression extends UnaryExpression

new InstanceofExpression(operatorToken : Token, expr : Expression, expectedType : Type)

override function clone() : InstanceofExpression

function getExpectedType() : Type

function setExpectedType(type : Type) : void

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class AsExpression extends UnaryExpression

new AsExpression(operatorToken : Token, expr : Expression, type : Type)

override function clone() : AsExpression

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

function setType(type : Type) : void

class AsNoConvertExpression extends UnaryExpression

new AsNoConvertExpression(operatorToken : Token, expr : Expression, type : Type)

override function clone() : AsNoConvertExpression

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

function setType(type : Type) : void

class LogicalNotExpression extends UnaryExpression

new LogicalNotExpression(operatorToken : Token, expr : Expression)

override function clone() : LogicalNotExpression

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

abstract class IncrementExpression extends UnaryExpression

new IncrementExpression(operatorToken : Token, expr : Expression)

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class PostIncrementExpression extends IncrementExpression

new PostIncrementExpression(operatorToken : Token, expr : Expression)

override function clone() : PostIncrementExpression

class PreIncrementExpression extends IncrementExpression

new PreIncrementExpression(operatorToken : Token, expr : Expression)

override function clone() : PreIncrementExpression

class PropertyExpression extends UnaryExpression

new PropertyExpression(operatorToken : Token, expr1 : Expression, identifierToken : Token, typeArgs : Array.<Type>)

new PropertyExpression(operatorToken : Token, expr1 : Expression, identifierToken : Token, typeArgs : Array.<Type>, type : Type)

override function clone() : PropertyExpression

function getIdentifierToken() : Token

function getTypeArguments() : Array.<Type>

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

override function getHolderType() : Type

override function isClassSpecifier() : boolean

override function assertIsAssignable(context : AnalysisContext, token : Token, type : Type) : boolean

function deduceByArgumentTypes(context : AnalysisContext, operatorToken : Token, argTypes : Array.<Type>, isStatic : boolean) : ResolvedFunctionType

class TypeofExpression extends UnaryExpression

new TypeofExpression(operatorToken : Token, expr : Expression)

override function clone() : TypeofExpression

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class SignExpression extends UnaryExpression

new SignExpression(operatorToken : Token, expr : Expression)

override function clone() : SignExpression

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

abstract class BinaryExpression extends OperatorExpression

new BinaryExpression(operatorToken : Token, expr1 : Expression, expr2 : Expression)

function getFirstExpr() : Expression

function setFirstExpr(expr : Expression) : void

function getSecondExpr() : Expression

function setSecondExpr(expr : Expression) : void

override function serialize() : variant

override function forEachExpression(cb : function (:Expression, :function (:Expression) : void) : boolean) : boolean

class AdditiveExpression extends BinaryExpression

new AdditiveExpression(operatorToken : Token, expr1 : Expression, expr2 : Expression)

override function clone() : AdditiveExpression

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class ArrayExpression extends BinaryExpression

new ArrayExpression(operatorToken : Token, expr1 : Expression, expr2 : Expression)

override function clone() : ArrayExpression

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

override function assertIsAssignable(context : AnalysisContext, token : Token, type : Type) : boolean

class AssignmentExpression extends BinaryExpression

new AssignmentExpression(operatorToken : Token, expr1 : Expression, expr2 : Expression)

override function clone() : AssignmentExpression

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class BinaryNumberExpression extends BinaryExpression

new BinaryNumberExpression(operatorToken : Token, expr1 : Expression, expr2 : Expression)

override function clone() : BinaryNumberExpression

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class EqualityExpression extends BinaryExpression

new EqualityExpression(operatorToken : Token, expr1 : Expression, expr2 : Expression)

override function clone() : EqualityExpression

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class InExpression extends BinaryExpression

new InExpression(operatorToken : Token, expr1 : Expression, expr2 : Expression)

override function clone() : InExpression

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class LogicalExpression extends BinaryExpression

new LogicalExpression(operatorToken : Token, expr1 : Expression, expr2 : Expression)

override function clone() : LogicalExpression

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class ShiftExpression extends BinaryExpression

new ShiftExpression(operatorToken : Token, expr1 : Expression, expr2 : Expression)

override function clone() : ShiftExpression

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

class ConditionalExpression extends OperatorExpression

new ConditionalExpression(operatorToken : Token, condExpr : Expression, ifTrueExpr : Expression, ifFalseExpr : Expression)

new ConditionalExpression(operatorToken : Token, condExpr : Expression, ifTrueExpr : Expression, ifFalseExpr : Expression, type : Type)

override function clone() : ConditionalExpression

function getCondExpr() : Expression

function setCondExpr(expr : Expression) : void

function getIfTrueExpr() : Expression

function getIfFalseExpr() : Expression

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

override function forEachExpression(cb : function (:Expression, :function (:Expression) : void) : boolean) : boolean

class CallExpression extends OperatorExpression

new CallExpression(token : Token, expr : Expression, args : Array.<Expression>)

new CallExpression(that : CallExpression)

override function clone() : CallExpression

function getExpr() : Expression

function setExpr(expr : Expression) : void

function getArguments() : Array.<Expression>

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

override function forEachExpression(cb : function (:Expression, :function (:Expression) : void) : boolean) : boolean

class SuperExpression extends OperatorExpression

new SuperExpression(token : Token, name : Token, args : Array.<Expression>)

new SuperExpression(that : SuperExpression)

override function clone() : SuperExpression

function getName() : Token

function getArguments() : Array.<Expression>

function getFunctionType() : MemberFunctionType

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

override function forEachExpression(cb : function (:Expression, :function (:Expression) : void) : boolean) : boolean

class NewExpression extends OperatorExpression

new NewExpression(token : Token, type : Type, args : Array.<Expression>)

new NewExpression(that : NewExpression)

override function clone() : NewExpression

function getQualifiedName() : QualifiedName

function getArguments() : Array.<Expression>

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

function setType(type : Type) : void

function getConstructor() : ResolvedFunctionType

override function forEachExpression(cb : function (:Expression, :function (:Expression) : void) : boolean) : boolean

class CommaExpression extends Expression

new CommaExpression(token : Token, expr1 : Expression, expr2 : Expression)

override function clone() : CommaExpression

function getFirstExpr() : Expression

function getSecondExpr() : Expression

override function serialize() : variant

override function analyze(context : AnalysisContext, parentExpr : Expression) : boolean

override function getType() : Type

override function forEachExpression(cb : function (:Expression, :function (:Expression) : void) : boolean) : boolean