예제 #1
0
 public ContainerAccumulationYield(String variable, String unprefixedVariable, String variableType, String index, String unprefixedIndex, String indexType, String container, String unprefixedContainer, String containerType, Yielding[] statement)
 {
     Variable = variable;
     UnprefixedVariable = unprefixedVariable;
     VariableType = variableType;
     Index = index;
     UnprefixedIndex = unprefixedIndex;
     IndexType = indexType;
     Container = container;
     UnprefixedContainer = unprefixedContainer;
     ContainerType = containerType;
     Statements = statement;
 }
예제 #2
0
 public IteratedAccumulationYield(String variable, String unprefixedVariable, String iterated, Yielding[] statements)
 {
     Variable = variable;
     UnprefixedVariable = unprefixedVariable;
     Iterated = iterated;
     Statements = statements;
 }
예제 #3
0
 public override Yielding Copy(string renameSuffix)
 {
     Yielding[] statementsCopy = new Yielding[Statements.Length];
     for(int i = 0; i < Statements.Length; ++i)
         statementsCopy[i] = Statements[i].Copy(renameSuffix);
     return new IteratedAccumulationYield(Variable + renameSuffix, UnprefixedVariable + renameSuffix, Iterated, statementsCopy);
 }
예제 #4
0
 public override Yielding Copy(string renameSuffix)
 {
     Yielding[] statementsCopy = new Yielding[Statements.Length];
     for(int i = 0; i < Statements.Length; ++i)
         statementsCopy[i] = Statements[i].Copy(renameSuffix);
     return new ForIndexAccessEquality(IndexSetType, Index, Variable + renameSuffix, UnprefixedVariable + renameSuffix, VariableType, 
         Expr.Copy(renameSuffix), statementsCopy);
 }
예제 #5
0
 public override Yielding Copy(string renameSuffix)
 {
     Yielding[] statementsCopy = new Yielding[Statements.Length];
     for(int i = 0; i < Statements.Length; ++i)
         statementsCopy[i] = Statements[i].Copy(renameSuffix);
     return new MultiStatement(statementsCopy);
 }
예제 #6
0
 public override Yielding Copy(string renameSuffix)
 {
     Yielding[] statementsCopy = new Yielding[Statements.Length];
     for(int i = 0; i < Statements.Length; ++i)
         statementsCopy[i] = Statements[i].Copy(renameSuffix);
     return new IntegerRangeIterationYield(Variable + renameSuffix, UnprefixedVariable + renameSuffix, VariableType, Left, Right, statementsCopy);
 }
예제 #7
0
 public override Yielding Copy(string renameSuffix)
 {
     Yielding[] statementsCopy = new Yielding[Statements.Length];
     for(int i = 0; i < Statements.Length; ++i)
         statementsCopy[i] = Statements[i].Copy(renameSuffix);
     return new ForFunction(Variable + renameSuffix, UnprefixedVariable + renameSuffix, VariableType, Function.Copy(renameSuffix), statementsCopy);
 }
예제 #8
0
 public override Yielding Copy(string renameSuffix)
 {
     Yielding[] statementsCopy = new Yielding[Statements.Length];
     for(int i = 0; i < Statements.Length; ++i)
         statementsCopy[i] = Statements[i].Copy(renameSuffix);
     return new CaseStatement(CaseConstExpression!=null ? CaseConstExpression.Copy(renameSuffix) : null, statementsCopy);
 }
예제 #9
0
 public WhileStatement(Expression condition, Yielding[] loopedStatements)
 {
     Condition = condition;
     LoopedStatements = loopedStatements;
 }
예제 #10
0
 public override Yielding Copy(string renameSuffix)
 {
     Yielding[] trueCaseStatementsCopy = new Yielding[TrueCaseStatements.Length];
     for(int i = 0; i < TrueCaseStatements.Length; ++i)
         trueCaseStatementsCopy[i] = TrueCaseStatements[i].Copy(renameSuffix);
     Yielding[] falseCaseStatementsCopy = null;
     if(FalseCaseStatements != null)
     {
         falseCaseStatementsCopy = new Yielding[FalseCaseStatements.Length];
         for(int i = 0; i < FalseCaseStatements.Length; ++i)
             falseCaseStatementsCopy[i] = FalseCaseStatements[i].Copy(renameSuffix);
     }
     return new ConditionStatement(Condition.Copy(renameSuffix), trueCaseStatementsCopy, falseCaseStatementsCopy);
 }
예제 #11
0
 public CaseStatement(Expression switchExpression, Yielding[] statements)
 {
     CaseConstExpression = switchExpression;
     Statements = statements;
 }
예제 #12
0
 public ConditionStatement(Expression condition, Yielding[] trueCaseStatements, Yielding[] falseCaseStatements)
 {
     Condition = condition;
     TrueCaseStatements = trueCaseStatements;
     FalseCaseStatements = falseCaseStatements;
 }
예제 #13
0
 public override Yielding Copy(string renameSuffix)
 {
     Yielding[] statementsCopy = new Yielding[Statements.Length];
     for(int i = 0; i < Statements.Length; ++i)
         statementsCopy[i] = Statements[i].Copy(renameSuffix);
     return new ForIndexAccessOrdering(IndexSetType, Index, Variable + renameSuffix, UnprefixedVariable + renameSuffix, VariableType, 
         Ascending, IncludingFrom, IncludingTo, From!=null ? From.Copy(renameSuffix) : null, To!=null ? To.Copy(renameSuffix) : null, 
         statementsCopy);
 }
예제 #14
0
 public ForIndexAccessOrdering(String indexSetType, IndexDescription index, String variable, String unprefixedVariable, String variableType, 
     bool ascending, bool includingFrom, bool includingTo,
     Expression from, Expression to, Yielding[] statements)
 {
     IndexSetType = indexSetType;
     Index = index;
     Variable = variable;
     UnprefixedVariable = unprefixedVariable;
     VariableType = variableType;
     Ascending = ascending;
     IncludingFrom = includingFrom;
     IncludingTo = includingTo;
     From = from;
     To = to;
     Statements = statements;
 }
예제 #15
0
 public override Yielding Copy(string renameSuffix)
 {
     Yielding[] statementsCopy = new Yielding[Statements.Length];
     for(int i = 0; i < Statements.Length; ++i)
         statementsCopy[i] = Statements[i].Copy(renameSuffix);
     if(Index != null)
         return new ContainerAccumulationYield(Variable + renameSuffix, UnprefixedVariable + renameSuffix, VariableType, Index + renameSuffix, UnprefixedIndex + renameSuffix, IndexType, Container, UnprefixedContainer + renameSuffix, ContainerType, statementsCopy);
     else
         return new ContainerAccumulationYield(Variable + renameSuffix, UnprefixedVariable + renameSuffix, VariableType, Container, UnprefixedContainer + renameSuffix, ContainerType, statementsCopy);
 }
예제 #16
0
 public DoWhileStatement(Yielding[] loopedStatements, Expression condition)
 {
     LoopedStatements = loopedStatements;
     Condition = condition;
 }
예제 #17
0
 public IntegerRangeIterationYield(String variable, String unprefixedVariable, String variableType, 
     Expression left, Expression right, Yielding[] statements)
 {
     Variable = variable;
     UnprefixedVariable = unprefixedVariable;
     VariableType = variableType;
     Left = left;
     Right = right;
     Statements = statements;
 }
예제 #18
0
 public override Yielding Copy(string renameSuffix)
 {
     Yielding[] loopedStatementsCopy = new Yielding[LoopedStatements.Length];
     for(int i = 0; i < LoopedStatements.Length; ++i)
         loopedStatementsCopy[i] = LoopedStatements[i].Copy(renameSuffix);
     return new WhileStatement(Condition.Copy(renameSuffix), loopedStatementsCopy);
 }
예제 #19
0
 public ForFunction(String variable, String unprefixedVariable, String variableType, Expression function, Yielding[] statements)
 {
     Variable = variable;
     UnprefixedVariable = unprefixedVariable;
     VariableType = variableType;
     Function = function;
     Statements = statements;
 }
예제 #20
0
 public MultiStatement(Yielding[] statements)
 {
     Statements = statements;
 }
예제 #21
0
        ////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Constructs a PatternYielding object.
        /// </summary>
        /// <param name="name">The name of the yielding to execute.</param>
        /// <param name="elementaryYieldings">An array of elementary yieldings to execute.</param>
        /// <param name="neededNodes">An array of node names needed by this yielding.</param>
        /// <param name="neededEdges">An array of edge names needed by this yielding.</param>
        /// <param name="neededVariables">An array of variable names needed by this yielding.</param>
        /// <param name="neededVariableTypes">An array of variable types (corresponding to the variable names) needed by this yielding.</param>
        public PatternYielding(String name, Yielding[] elementaryYieldings,
            String[] neededNodes, String[] neededEdges, String[] neededVariables, VarType[] neededVariableTypes)
        {
            Name = name;
            ElementaryYieldings = elementaryYieldings;
            NeededNodes = neededNodes;
            NeededEdges = neededEdges;
            NeededVariables = neededVariables;
            NeededVariableTypes = neededVariableTypes;
        }
예제 #22
0
 public ForIndexAccessEquality(String indexSetType, IndexDescription index, String variable, String unprefixedVariable, String variableType, Expression expr, Yielding[] statements)
 {
     IndexSetType = indexSetType;
     Index = index;
     Variable = variable;
     UnprefixedVariable = unprefixedVariable;
     VariableType = variableType;
     Expr = expr;
     Statements = statements;
 }