The StaDyn Programming Language
Source code documentation of StaDyn, a hybrid static and dynamic typing language.
MoveStatement.cs
Go to the documentation of this file.
1 // -------------------------------------------------------------------------- //
3 // Project rROTOR //
4 // -------------------------------------------------------------------------- //
5 // File: MoveStatement.cs //
6 // Author: Cristina Gonzalez Muņoz - cristi.gm@gmail.com //
7 // Description: //
8 // Encapsulates a Move instruction to use in SSA algorithm. //
9 // Inheritance: Statement. //
10 // Implements Composite pattern [Composite]. //
11 // Implements Visitor pattern [Concrete Element]. //
12 // -------------------------------------------------------------------------- //
13 // Create date: 06-04-2007 //
14 // Modification date: 30-07-2007 //
16 
17 using System;
18 using System.Collections.Generic;
19 using System.Text;
20 
21 using Tools;
22 using ErrorManagement;
23 
24 namespace AST
25 {
34  public class MoveStatement : Statement
35  {
36  #region Fields
37 
41  private SingleIdentifierExpression leftExp;
42 
46  private SingleIdentifierExpression rightExp;
47 
51  private MoveStatement moveStatement;
52 
53  #endregion
54 
55  #region Properties
56 
61  {
62  get { return this.leftExp; }
63  }
64 
69  {
70  get { return this.rightExp; }
71  }
72 
76  public MoveStatement MoveStat
77  {
78  get { return this.moveStatement; }
79  set { this.moveStatement = value; }
80  }
81 
82  #endregion
83 
84  #region Constructor
85 
93  public MoveStatement(SingleIdentifierExpression leftExpression, SingleIdentifierExpression rightExpression, string fileName, int line)
94  : base(new Location(fileName, line, 0))
95  {
96  this.leftExp = leftExpression;
97  this.rightExp = rightExpression;
98  this.moveStatement = null;
99  }
100 
101  #endregion
102 
103  #region Accept()
104 
111  public override Object Accept(Visitor v, Object o)
112  {
113  return v.Visit(this, o);
114  }
115 
116  #endregion
117  }
118 }
Abstract class to define different visits over the abstract syntax tree.
Definition: Visitor.cs:29
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.
Definition: Location.cs:24
Abstract class represents a programming language statement.
Definition: Statement.cs:30
override Object Accept(Visitor v, Object o)
Accept method of a concrete visitor.
SingleIdentifierExpression RightExp
Gets the right expression
Encapsulates a identifier expression of our programming language.
MoveStatement MoveStat
Gets or sets a move statement associated to the current move statement.
SingleIdentifierExpression LeftExp
Gets the left expression
MoveStatement(SingleIdentifierExpression leftExpression, SingleIdentifierExpression rightExpression, string fileName, int line)
Constructor of MoveStatement
Encapsulates a Move instruction to use in SSA algorithm