18 using System.Collections.Generic;
23 using ErrorManagement;
24 using TypeSystem.Operations;
55 private bool typeInferredInVisitorTypeDefinition =
false;
66 get {
return this.expression; }
67 set { this.expression = value; }
75 get {
return this.field; }
82 get {
return typeInferredInVisitorTypeDefinition; }
83 set { typeInferredInVisitorTypeDefinition = value; }
92 get {
return this.frozenTypeExpression; }
93 set { this.frozenTypeExpression = value; }
110 this.expression = exp;
111 this.field = fieldName;
126 return v.Visit(
this, o);
131 #region Dispatcher AstOperation
140 return op.Exec(
this, arg);
bool TypeInferredInVisitorTypeDefinition
To know if the visitor type definition has already inferred a type
Abstract class encapsulate a programming language expression.
TypeExpression FrozenTypeExpression
WriteType variable may change its type's substitution (e.g., field type variables) This attribute sav...
Encapsulates the expression to access a field.
override Object Accept(Visitor v, Object o)
Accept method of a concrete visitor.
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.
FieldAccessExpression(Expression exp, SingleIdentifierExpression fieldName, Location location)
Constructor of FieldAccessExpression
This class represent the entry wnen sending a message to an operation object. derived from AstNode ...
Abstract class that represents all different types.
override object AcceptOperation(AstOperation op, object arg)
Dispatches expressions to the operation passed as argument. It provokes the execution of op...
Encapsulates a identifier expression of our programming language.
Location location
Location: Encapsulates in one object the line, column and filename
SingleIdentifierExpression FieldName
Gets the name to the field.