41 #region Visit(SourceFile node, Object obj)
44 this.currentFile = node.Location.FileName;
46 foreach (
string key
in node.Namespacekeys) {
47 int count = node.GetNamespaceDefinitionCount(key);
48 for (
int i = 0; i < count; i++)
49 node.GetNamespaceDeclarationElement(key, i).Accept(
this, obj);
52 for (
int i = 0; i < node.DeclarationCount; i++)
53 node.GetDeclarationElement(i).Accept(
this, obj);
60 #region Visit(Namespace node, Object obj)
63 node.Identifier.Accept(
this, obj);
65 for (
int i = 0; i < node.NamespaceMembersCount; i++)
73 #region Visit(DeclarationSet node, Object obj)
76 for (
int i = 0; i < node.Count; i++)
84 #region Visit(FieldDeclarationSet node, Object obj)
92 #region Visit(IdDeclaration node, Object obj)
100 #region Visit(Definition node, Object obj)
103 return node.Init.Accept(
this, obj);
108 #region Visit(ConstantDefinition node, Object obj)
111 return node.Init.Accept(
this, obj);
116 #region Visit(PropertyDefinition node, Object obj)
120 node.GetBlock.Accept(
this, obj);
123 node.SetBlock.Accept(
this, obj);
130 #region Visit(ClassDefinition node, Object obj)
133 for (
int i = 0; i < node.MemberCount; i++)
141 #region Visit(InterfaceDefinition node, Object obj)
144 for (
int i = 0; i < node.MemberCount; i++)
152 #region Visit(ConstructorDefinition node, Object obj)
156 node.Initialization.Accept(
this, obj);
158 return node.Body.Accept(
this, obj);
163 #region Visit(FieldDeclaration node, Object obj)
172 #region Visit(FieldDefinition node, Object obj)
176 return node.Init.Accept(
this, obj);
181 #region Visit(ConstantFieldDefinition node, Object obj)
185 return node.Init.Accept(
this, obj);
190 #region Visit(MethodDeclaration node, Object obj)
199 #region Visit(MethodDefinition node, Object obj)
203 return node.Body.Accept(
this, obj);
209 #region Visit(ArgumentExpression node, Object obj)
213 return node.Argument.Accept(
this, obj);
218 #region Visit(ArithmeticExpression node, Object obj)
221 node.FirstOperand.Accept(
this, obj);
222 node.SecondOperand.Accept(
this, obj);
229 #region Visit(ArrayAccessExpression node, Object obj)
232 node.FirstOperand.Accept(
this, obj);
233 node.SecondOperand.Accept(
this, obj);
240 #region Visit(AssignmentExpression node, Object obj)
243 node.FirstOperand.Accept(
this, obj);
244 node.SecondOperand.Accept(
this, obj);
247 node.MoveStat.Accept(
this, obj);
254 #region Visit(BaseCallExpression node, Object obj)
258 return node.Arguments.Accept(
this, obj);
263 #region Visit(BaseExpression node, Object obj)
272 #region Visit(BinaryExpression node, Object obj)
275 node.FirstOperand.Accept(
this, obj);
276 node.SecondOperand.Accept(
this, obj);
283 #region Visit(BitwiseExpression node, Object obj)
286 node.FirstOperand.Accept(
this, obj);
287 node.SecondOperand.Accept(
this, obj);
294 #region Visit(BoolLiteralExpression node, Object obj)
303 #region Visit(CastExpression node, Object obj)
307 return node.Expression.Accept(
this, obj);
312 #region Visit(CharLiteralExpression node, Object obj)
321 #region Visit(CompoundExpression node, Object obj)
324 for (
int i = 0; i < node.ExpressionCount; i++)
332 #region Visit(DoubleLiteralExpression node, Object obj)
341 #region Visit(FieldAccessExpression node, Object obj)
344 node.Expression.Accept(
this, obj);
345 node.FieldName.Accept(
this, obj);
352 #region Visit(IntLiteralExpression node, Object obj)
361 #region Visit(InvocationExpression node, Object obj)
364 node.Identifier.Accept(
this, obj);
365 node.Arguments.Accept(
this, obj);
372 #region Visit(IsExpression node, Object obj)
376 return node.Expression.Accept(
this, obj);
381 #region Visit(LogicalExpression node, Object obj)
384 node.FirstOperand.Accept(
this, obj);
385 node.SecondOperand.Accept(
this, obj);
392 #region Visit(NewArrayExpression node, Object obj)
395 if (node.
Size != null)
396 node.Size.Accept(
this, obj);
398 if (node.
Init != null)
399 node.Init.Accept(
this, obj);
406 #region Visit(NewExpression node, Object obj)
410 return node.Arguments.Accept(
this, obj);
415 #region Visit(NullExpression node, Object obj)
424 #region Visit(QualifiedIdentifierExpression node, Object obj)
427 node.IdName.Accept(
this, obj);
428 node.IdExpression.Accept(
this, obj);
435 #region Visit(RelationalExpression node, Object obj)
438 node.FirstOperand.Accept(
this, obj);
439 node.SecondOperand.Accept(
this, obj);
446 #region Visit(SingleIdentifierExpression node, Object obj)
455 #region Visit(StringLiteralExpression node, Object obj)
464 #region Visit(TernaryExpression node, Object obj)
467 node.FirstOperand.Accept(
this, obj);
468 node.SecondOperand.Accept(
this, obj);
469 node.ThirdOperand.Accept(
this, obj);
476 #region Visit(ThisExpression node, Object obj)
485 #region Visit(UnaryExpression node, Object obj)
488 node.Operand.Accept(
this, obj);
497 #region Visit(AssertStatement node, Object obj)
500 node.Condition.Accept(
this, obj);
501 node.Expression.Accept(
this, obj);
508 #region Visit(BreakStatement node, Object obj)
517 #region Visit(CatchStatement node, Object obj)
520 node.Exception.Accept(
this, obj);
521 node.Statements.Accept(
this, obj);
528 #region Visit(Block node, Object obj)
531 for (
int i = 0; i < node.StatementCount; i++)
539 #region Visit(ContinueStatement node, Object obj)
548 #region Visit(DoStatement node, Object obj)
551 for (
int i = 0; i < node.InitDo.Count; i++)
552 node.
InitDo[i].Accept(
this, obj);
554 for (
int i = 0; i < node.BeforeBody.Count; i++)
557 node.Statements.Accept(
this, obj);
558 node.Condition.Accept(
this, obj);
565 #region Visit(ForeachStatement node, Object obj)
568 node.ForEachDeclaration.Accept(
this, obj);
569 node.ForeachExp.Accept(
this, obj);
570 node.ForeachBlock.Accept(
this, obj);
577 #region Visit(ForStatement node, Object obj)
580 for (
int i = 0; i < node.InitializerCount; i++)
583 for (
int i = 0; i < node.AfterInit.Count; i++)
586 for (
int i = 0; i < node.BeforeCondition.Count; i++)
589 node.Condition.Accept(
this, obj);
590 for (
int i = 0; i < node.AfterCondition.Count; i++)
593 node.Statements.Accept(
this, obj);
595 for (
int i = 0; i < node.IteratorCount; i++)
603 #region Visit(IfElseStatement node, Object obj)
606 node.Condition.Accept(
this, obj);
608 for (
int i = 0; i < node.AfterCondition.Count; i++)
611 node.TrueBranch.Accept(
this, obj);
612 node.FalseBranch.Accept(
this, obj);
614 for (
int i = 0; i < node.ThetaStatements.Count; i++)
622 #region Visit(ReturnStatement node, Object obj)
625 node.Assigns.Accept(
this, obj);
628 return node.ReturnExpression.Accept(
this, obj);
635 #region Visit(SwitchLabel node, Object obj)
639 node.Condition.Accept(
this, obj);
646 #region Visit(SwitchSection node, Object obj)
649 for (
int i = 0; i < node.LabelSection.Count; i++)
652 for (
int i = 0; i < node.SwitchBlock.StatementCount; i++)
660 #region Visit(SwitchStatement node, Object obj)
663 node.Condition.Accept(
this, obj);
665 for (
int i = 0; i < node.AfterCondition.Count; i++)
668 for (
int i = 0; i < node.SwitchBlockCount; i++)
671 for (
int i = 0; i < node.ThetaStatements.Count; i++)
679 #region Visit(ThrowStatement node, Object obj)
684 return node.ThrowExpression.Accept(
this, obj);
689 #region Visit(ExceptionManagementStatement node, Object obj)
692 node.TryBlock.Accept(
this, obj);
694 for (
int i = 0; i < node.CatchCount; i++)
698 node.FinallyBlock.Accept(
this, obj);
705 #region Visit(WhileStatement node, Object obj)
708 for (
int i = 0; i < node.InitWhile.Count; i++)
711 for (
int i = 0; i < node.BeforeCondition.Count; i++)
714 node.Condition.Accept(
this, obj);
716 for (
int i = 0; i < node.AfterCondition.Count; i++)
719 node.Statements.Accept(
this, obj);
726 #region Visit(MoveStatement node, Object obj)
729 node.LeftExp.Accept(
this, obj);
730 node.RightExp.Accept(
this, obj);
733 node.MoveStat.Accept(
this, obj);
740 #region Visit(ThetaStatement node, Object obj)
743 node.ThetaId.Accept(
this, obj);
745 for (
int i = 0; i < node.ThetaList.Count; i++)
Encapsulates a Return statement of our programming languages.
Encapsulates a 'base' expression.
Encapsulates a definition of a concrete method.
Encapsulates a Break statement of our programming languages.
Encapsulates a binary expression of our programming language.
Encapsulates the qualified name expression.
Encapsulates a Case statement of our programming languages.
List< ThetaStatement > BeforeBody
Gets or sets the statements before do body.
Statement GetBlock
Gets the statements associated to the get accessor.
Encapsulates a Do statement of our programming language.
Encapsulates a string literal expression.
Encapsulates the expression to access a field.
Encapsulates a block of statements.
Statement GetIteratorElement(int index)
Gets the element stored in the specified index.
Encapsulates a namespace definition.
List< MoveStatement > InitDo
Gets or sets the statements to use at the init of the do loop.
Encapsulates a Catch statement of our programming languages.
Encapsulates a logical binary expression.
Encapsulates a invocation expression.
Encapsulates a boolean literal expression.
Encapsulates a cast expression.
Encapsulates a definition of a concrete field.
SectionType SwitchSectionType
Gets the type of the Case statement (case or default)
List< MoveStatement > AfterCondition
Gets or sets the statements after condition.
MoveStatement MoveStat
Gets or sets a move statement associated to the assignment expression.
Encapsulates a constant field definition.
Encapsulates a definition.
Encapsulates arithmetic binary expressions.
CatchStatement GetCatchElement(int index)
Gets the element stored in the specified index.
SwitchSection GetSwitchSectionElement(int index)
Gets the element stored in the specified index.
Encapsulates a For statement of our programming languages.
Encapsulates a While statement of our programming languages.
Encapsulates a null expression.
Encapsulates a Is expression.
Encapsulates a definition of a concrete interface.
Encapsulates a Assert statement of our programming languages.
Block SwitchBlock
Gets the code block of Case statement.
Encapsulates a switch label (Case + condition or Default section).
Encapsulates a identifier expression of our programming language.
Encapsulates a statement with several declarations.
Encapsulates a declaration of a concrete method.
Encapsulates a set of expressions.
Encapsulates a Theta function to use in SSA algorithm.
Expression ThrowExpression
Gets the throw expression.
List< SwitchLabel > LabelSection
Gets the type of the Case statement (case or default)
Encapsulates a relational binary expression.
Encapsulates a bitwise binary expression.
List< ThetaStatement > ThetaStatements
Gets or sets the theta funcion statements
Encapsulates assignment binary expressions.
CompoundExpression Init
Gets or sets the array initialization
Encapsulates a ternary expression of our programming language.
Encapsulates a If-Else statement of our programming language.
Encapsulates a new array expression.
Encapsulates a definition of a concrete constructor.
Declaration GetMemberElement(int index)
Gets the element stored in the specified index.
List< ThetaStatement > BeforeCondition
Gets or sets the statements before condition.
MoveStatement MoveStat
Gets or sets a move statement associated to the current move statement.
Encapsulates the source code.
Declaration GetDeclarationElement(int index)
Gets the element stored in the specified index.
Expression GetExpressionElement(int index)
Gets the element stored in the specified index.
Encapsulates a Try-Catch-finally statement of our programming languages. As C# states catch blcok and...
Encapsulates a string literal expression.
List< ThetaStatement > ThetaStatements
Gets or sets the theta funcion statements
Encapsulates a declaration.
Encapsulates a argument expression of our programming language.
List< MoveStatement > AfterCondition
Gets or sets the statements after condition.
Encapsulates a 'this' expression.
List< MoveStatement > InitWhile
Gets or sets the statements to use at the init of the while loop.
Encapsulates a unary expression of our programming language.
List< SingleIdentifierExpression > ThetaList
Gets the parameter of theta funcion
Expression Size
Gets or sets the array size
InvocationExpression Initialization
Gets the base or this initialization of the constructor definition
Expression ReturnExpression
Gets the return expression.
SectionType
Indicates if it is a case statement or a default case.
Encapsulates a integer literal expression.
Encapsulates a set of field declarations.
Encapsulates a declaration of a concrete field.
Encapsulates a constant definition.
Encapsulates the array expression to access the concrete position.
List< MoveStatement > AfterCondition
Gets or sets the statements after condition.
Block FinallyBlock
Gets the statements executed in Finally block. if there is no finally statementes can be null ...
Encapsulates a Move instruction to use in SSA algorithm
List< ThetaStatement > BeforeCondition
Gets or sets the statements before condition.
Encapsulates a Continue statement of our programming languages.
Statement SetBlock
Gets the statements associated to the set accessor.
Encapsulates a Throw statement of our programming languages.
List< MoveStatement > AfterInit
Gets or sets the statements to use after initialization
Statement GetStatementElement(int index)
Gets the element stored in the specified index.
Encapsulates a Foreach statement of our programming languages.
List< MoveStatement > AfterCondition
Encapsulates a invocation expression to base class.
Encapsulates a new expression.
Encapsulates a property definition.
Encapsulates a definition of a concrete class.
Statement GetDeclarationElement(int index)
Gets the element stored in the specified index.
Encapsulates a Switch statement of our programming languages.
Statement GetInitializerElement(int index)
Gets the element stored in the specified index.