Ejemplo n.º 1
0
        void Imperative_logicalexpr(out Node node)
        {
            node = null;
            Imperative_RangeExpr(out node);
            while (StartOf(14)) {
            Operator op;
            Imperative_relop(out op);
            DesignScript.Parser.Imperative.IDEHelpNode operatorPos = new DesignScript.Parser.Imperative.IDEHelpNode() { Col = t.col, Line = t.line, Value = t.val, Type = DesignScript.Parser.Imperative.IDEHelpNode.HelpNodeType.PunctuationNode };
            Node rhsNode = null;
            Imperative_RangeExpr(out rhsNode);
            DesignScript.Parser.Imperative.BinaryExpressionNode bNode = new DesignScript.Parser.Imperative.BinaryExpressionNode();
            bNode.LeftNode = node;
            bNode.RightNode = rhsNode;
            bNode.Optr = op;
            bNode.Col = node.Col;
            bNode.Line = node.Line;
            bNode.OperatorPos = operatorPos;
            node = bNode;

            }
        }
Ejemplo n.º 2
0
        void Imperative_term(out Node node)
        {
            node = null;
            Imperative_interimfactor(out node);
            while (la.kind == 58 || la.kind == 59 || la.kind == 60) {
            Operator op;
            Imperative_mulop(out op);
            DesignScript.Parser.Imperative.IDEHelpNode operatorPos = new DesignScript.Parser.Imperative.IDEHelpNode() { Col = t.col, Line = t.line, Value = t.val, Type = DesignScript.Parser.Imperative.IDEHelpNode.HelpNodeType.PunctuationNode };
            Node rhsNode = null;
            Imperative_interimfactor(out rhsNode);
            DesignScript.Parser.Imperative.BinaryExpressionNode bNode = new DesignScript.Parser.Imperative.BinaryExpressionNode();
            bNode.LeftNode = node;
            bNode.RightNode = rhsNode;
            bNode.Optr = op;
            bNode.Col = node.Col;
            bNode.Line = node.Line;
            bNode.OperatorPos = operatorPos;
            node = bNode;

            }
        }
Ejemplo n.º 3
0
        void Imperative_assignstmt(out Node node)
        {
            node = null;
            Node lhsNode = null;
            isLeft = true;
            Imperative_DecoratedIdentifier(out lhsNode);
            node = lhsNode;
            isLeft = false;
            if (!(lhsNode is DesignScript.Parser.Imperative.PostFixNode)) {
            DesignScript.Parser.Imperative.IDEHelpNode operatorPos = null;
            Expect(53);
            if (t.val == "=") operatorPos = new DesignScript.Parser.Imperative.IDEHelpNode() { Col = t.col, Line = t.line, Value = t.val, Type = DesignScript.Parser.Imperative.IDEHelpNode.HelpNodeType.PunctuationNode };
            DesignScript.Parser.Imperative.IDEHelpNode endline = null;
            Node rhsNode = null;
            if (la.val == "[") {
            Imperative_languageblock(out rhsNode);
            } else if (HasMoreAssignmentStatements()) {
            Imperative_assignstmt(out rhsNode);
            } else if (StartOf(18)) {
            Imperative_expr(out rhsNode);
            Expect(20);
            if (t.kind == _endline) endline = new DesignScript.Parser.Imperative.IDEHelpNode() { Col = t.col, Line = t.line, Value = t.val, Type = DesignScript.Parser.Imperative.IDEHelpNode.HelpNodeType.PunctuationNode };
            } else SynErr(112);
            DesignScript.Parser.Imperative.BinaryExpressionNode bNode = new DesignScript.Parser.Imperative.BinaryExpressionNode();
            bNode.LeftNode = lhsNode;
            bNode.RightNode = rhsNode;
            bNode.Optr = Operator.assign;
            bNode.OperatorPos = operatorPos;
            bNode.Col = lhsNode.Col;
            bNode.Line = lhsNode.Line;
            bNode.EndlinePos = endline;
            node = bNode;

            }
        }