예제 #1
0
 void Assoc_UnaryExpression(out Node node)
 {
     DesignScript.Parser.Associative.UnaryExpressionNode an = new DesignScript.Parser.Associative.UnaryExpressionNode();
     node = null;
     if (StartOf(15)) {
     Assoc_NegExpression(out an);
     } else if (StartOf(16)) {
     Assoc_BitUnaryExpression(out an);
     } else SynErr(98);
     node = an;
 }
예제 #2
0
 void Assoc_BitUnaryExpression(out DesignScript.Parser.Associative.UnaryExpressionNode node)
 {
     DesignScript.Parser.Associative.UnaryExpressionNode unary = new DesignScript.Parser.Associative.UnaryExpressionNode();
     DesignScript.Parser.Associative.IDEHelpNode IDEop = unary.op;
     Assoc_unaryop(out IDEop);
     Node exprNode = null;
     Assoc_Factor(out exprNode);
     unary.Expression = exprNode;
     unary.op = IDEop;
     node = unary;
 }
예제 #3
0
 void Assoc_NegExpression(out DesignScript.Parser.Associative.UnaryExpressionNode node)
 {
     node = new Associative.UnaryExpressionNode() ;
     DesignScript.Parser.Associative.IDEHelpNode op = node.op;
     Node exprNode = null;
     Assoc_negop(out op);
     if (la.kind == 1 || la.kind == 9 || la.kind == 50) {
     Assoc_IdentifierList(out exprNode);
     } else if (la.kind == 9) {
     Get();
     Assoc_Expression(out exprNode);
     Expect(10);
     } else SynErr(99);
     DesignScript.Parser.Associative.UnaryExpressionNode unary = new DesignScript.Parser.Associative.UnaryExpressionNode();
     unary.op = op;
     unary.Expression = exprNode;
     node = unary;
 }