Class ASTExpr

  extended by com.veromodo.tempo.ast.ASTNode
      extended by com.veromodo.tempo.ast.ASTExpr
All Implemented Interfaces:
Describable, Locatable, Typeable
Direct Known Subclasses:
ASTBinary, ASTCall, ASTChoose, ASTCond, ASTDerefArray, ASTDerefField, ASTExprId, ASTExprLiteral, ASTMixCBraceOp, ASTQuantified, ASTSetof, ASTTupleConstructor, ASTTypeSelector, ASTUnary

public class ASTExpr
extends ASTNode
implements Typeable, Describable

Abstract class. The root of the expression sub-tree of the hierarchy of AST Nodes.

All the expression nodes carry extra information once the semantic analysis is completed. Namely, each node stores the set of potential types and the set of potential descriptors that this node could resolve too. Both are sets as the language support overloading and disambiguation in the semantic analysis must proceed with context information to lift ambiguities and select the correct type and correct descriptor from the respective sets of potential candidates.

At the end of the parsing, none of these sets (and descriptor/types) are defined (all are null). The semantic analysis performs the disambiguation and sets these fields accordingly. The semantics of these attributes is as follows: