Ejemplo n.º 1
0
    public SyntaxNode constructSyntaxNode(VisualNode e)
    {
        Debug.Log("Id of currentl constructing node is " + e.ID);
        SyntaxNode node = SyntaxNodeFactory.produce(e.ID);

        if (node is BlockNode)
        {
            if (node is IfNode)
            {
                //It should still retain while if is while
                IfNode ifBlock = (IfNode)node;
                BinaryOperationNode conditionalStatement = new BinaryOperationNode();

                //Set it's attributes with fields in the operationVisual
                BlockVisual           block     = (BlockVisual)e;
                BinaryOperationVisual condition = (BinaryOperationVisual)block.condition;

                if (condition == null)
                {
                    //Throw an exception
                }

                convertBinaryOperation((BinaryOperationNode)conditionalStatement, (BinaryOperationVisual)condition);
                ifBlock.SetCondition(conditionalStatement);
            }
        }
        else if (e is BinaryOperationVisual)
        {
            if (node is BinaryOperationNode)
            {
                convertBinaryOperation((BinaryOperationNode)node, (BinaryOperationVisual)e);
            }
        }


        //It should hold all it's changes.
        return(node);
    }
Ejemplo n.º 2
0
 private void convertBinaryOperation(BinaryOperationNode node, BinaryOperationVisual binaryOperationVisual)
 {
     node.FirstOperand  = binaryOperationVisual.firstOperand.text;
     node.SecondOperand = binaryOperationVisual.secondOperand.text;
     node.Operation     = binaryOperationVisual.operators.options[binaryOperationVisual.operators.value].text;
 }