Пример #1
0
        //Создание бинарного оператора
        public BinaryOperatorNode(string Operation, AtomNode First, AtomNode Second, int numLine)
        {
            //Operator = Operation;
            Value         = Operation;
            FirstOperand  = First;
            SecondOperand = Second;
            IsUnary       = false;
            LineNumber    = numLine;
            if (Operations.ArithmeticOperations.Contains(Operation))
            {
                TypeOfNode = NodeType.ArithmeticOperator;
            }
            else if (Operations.BitOperations.Contains(Operation))
            {
                TypeOfNode = NodeType.BitOperator;
            }
            else if (Operations.ComparationOperations.Contains(Operation))
            {
                TypeOfNode = NodeType.ComparisonOperator;
            }
            else if (Operations.LogicalOperations.Contains(Operation))
            {
                TypeOfNode = NodeType.LogicalOperator;
            }

            //переменную, возможно, создавать не понадобится
        }
Пример #2
0
 public AssignmentOperator(VariableNode Var, string Operation, int numLine)//для ++ и --
 {
     AssignedVariable    = Var;
     RightPart           = null;
     TypeOfNode          = NodeType.AssignmentOperator;
     AssignmentOperation = Operation;
     LineNumber          = numLine;
 }
Пример #3
0
 public AtomNode RightPart;            //присваиваться может только для переменной
 public AssignmentOperator(VariableNode Var, AtomNode Expression, string Operation, int numLine)
 {
     AssignedVariable    = Var;
     RightPart           = Expression;
     TypeOfNode          = NodeType.AssignmentOperator;
     AssignmentOperation = Operation;
     LineNumber          = numLine;
 }
Пример #4
0
        public AtomNode Res;     //результирующая переменная

        public GetEdgeNode(VariableNode gr, AtomNode firstVert, AtomNode secondVert, int Line, AtomNode Result)
        {
            graph      = gr;
            first      = firstVert;
            second     = secondVert;
            LineNumber = Line;
            Res        = Result;
        }
Пример #5
0
 public CycleOperator(bool IsPred, AtomNode Cond, int numLine)//конструктор для цикла while
 {
     BeginningActivity = null;
     ContinueCondition = Cond;
     IterationActivity = null;
     IsPredCondition   = IsPred;
     Cond.SetParentBlock(this);
     TypeOfNode = NodeType.CycleOperator;
     LineNumber = numLine;
 }
Пример #6
0
 public ConditionalOperatorNode(AtomNode ConditionNode, int numLine, ConditionalBranchNode If) //создание узла без ветки else
 {
     Condition = ConditionNode;                                                                //ссылка на узел-условие (на переменную, константу или последнее действие выражения)
     ConditionNode.SetParentBlock(this);
     ChildrenOperators = new List <Node>();
     TypeOfNode        = NodeType.ConditionalOperator;
     LineNumber        = numLine;
     IfBranch          = If;
     ElseBranch        = null;
     If.SetParentBlock(this);
     ExistedElse = false;
 }
Пример #7
0
        public bool IsPredCondition;                                                            //true - c предусловием, false - с постусловием

        public CycleOperator(List <AtomNode> Beg, AtomNode Cond, AtomNode IterAct, int numLine) //конструктор для цикла for
        {
            BeginningActivity = Beg;
            ContinueCondition = Cond;
            IterationActivity = IterAct;
            IsPredCondition   = true;

            foreach (var oper in Beg)
            {
                oper.SetParentBlock(this);
            }
            Cond.SetParentBlock(this);
            IterAct.SetParentBlock(this);
            TypeOfNode = NodeType.CycleOperator;
            LineNumber = numLine;
        }
Пример #8
0
 //создание унарного оператора
 public BinaryOperatorNode(string Operation, AtomNode First, int numLine)
 {
     //Operator = Operation;
     Value         = Operation;
     FirstOperand  = First;
     SecondOperand = null;
     IsUnary       = true;
     LineNumber    = numLine;
     if (Operation == "-")
     {
         TypeOfNode = NodeType.ArithmeticOperator;
     }
     else
     {
         TypeOfNode = NodeType.LogicalOperator;
     }
 }
Пример #9
0
 public WriteOperator(AtomNode WriteVar, int numLine)
 {
     WriteVariable = WriteVar;
     TypeOfNode    = NodeType.WriteNode;
     LineNumber    = numLine;
 }
Пример #10
0
 public IsFullNode(VariableNode gr, AtomNode outVar, int Line)
 {
     graph       = gr;
     outVariable = outVar;
     LineNumber  = Line;
 }
Пример #11
0
 public CountEdgesNode(VariableNode gr, AtomNode outVar, int Line)
 {
     graph       = gr;
     outVariable = outVar;
     LineNumber  = Line;
 }
Пример #12
0
 public NumComponentsNode(VariableNode gr, AtomNode outVar, int Line)
 {
     graph       = gr;
     outVariable = outVar;
     LineNumber  = Line;
 }
Пример #13
0
 public FloydNode(VariableNode First, AtomNode Second, int Line)
 {
     outGraph   = First;
     inGraph    = Second;
     LineNumber = Line;
 }
Пример #14
0
 public CreatingGraphNode(VariableNode newGraph, AtomNode vertecies, int numLine)
 {
     graph      = newGraph;
     InputVar   = vertecies;
     LineNumber = numLine;
 }