6 namespace AST.Operations {
11 public virtual object Exec(
AstNode a,
object arg) {
return ReportErrorSafe(
"AstNode", a); }
26 return ReportError(operation,
new Location());
27 return ReportError(operation, astNode.getText(), astNode.Location != null ? astNode.Location :
new Location());
Encapsulates a 'base' expression.
virtual object Exec(InvocationExpression i, object arg)
Abstract class encapsulate a programming language expression.
Encapsulates a name expression of our programming language.
virtual object Exec(BaseExpression b, object arg)
virtual object ReportError(String operation, Location location)
virtual object Exec(NewExpression n, object arg)
Encapsulates the expression to access a field.
virtual object ReportErrorSafe(String operation, AstNode astNode)
virtual object Exec(Definition d, object arg)
Encapsulates a invocation expression.
This class encapsulates a location in a specific file. Implements an Inmutable pattern. So it can be used in any context, that is his internal fields never change.
Abstract class represents a programming language statement.
Encapsulates a definition.
This class represent the entry wnen sending a message to an operation object. derived from AstNode ...
virtual object Exec(BaseCallExpression b, object arg)
Encapsulates a identifier expression of our programming language.
virtual object Exec(Statement s, object arg)
virtual object Exec(SingleIdentifierExpression s, object arg)
virtual object Exec(Expression e, object arg)
Abstract class for all nodes that compounds the abstract syntax tree.
Encapsulates a declaration of a concrete type.
Encapsulates a declaration.
virtual object ReportError(String operation, String element, Location location)
virtual object Exec(Declaration d, object arg)
virtual object Exec(FieldAccessExpression f, object arg)
virtual object Exec(IdentifierExpression i, object arg)
virtual object Exec(AstNode a, object arg)
Encapsulates a invocation expression to base class.
Encapsulates a new expression.