Пример #1
0
        public UnaryOperandNode VisitUnaryExpression(UnaryExpressionNode uen)
        {
            int    temp   = this.depth;
            string spaces = IncreaseDepth();

            this.io.WriteLine($"{spaces}UnaryExpression: (");
            uen.Left.Visit(this);
            this.io.WriteLine($"{spaces})");
            this.depth = temp;
            return(new UnaryOperandNode("", SymbolType.Invalid));
        }
Пример #2
0
        private Expression Expression()
        {
            // <expr> ::= <opnd> <op> <opnd> | <opnd>
            Operand    left;
            Expression e;

            left = Operand();
            e    = new UnaryExpressionNode(left);
            if (this.token.SymbolType == SymbolType.Operator || this.token.SymbolType == SymbolType.Minus)
            {
                string op = this.token.Value;
                this.token = this.scanner.NextToken();
                Operand right = Operand();
                e = new BinaryExpressionNode(left, op, right);
            }
            return(e);
        }
Пример #3
0
 public UnaryOperandNode VisitUnaryExpression(UnaryExpressionNode uen)
 {
     return(uen.Left.Visit(this));
 }