Beispiel #1
0
        private Node ParseAnd()
        {
            Node lhs = ParseEqualsNotEquals();

            while (true)
            {
                switch (Tokens.CurrentToken)
                {
                case TokenType.And:
                {
                    Tokens.ReadNext();
                    Node rhs = ParseEqualsNotEquals();
                    lhs = new NodeAnd(lhs, rhs);
                    continue;
                }

                case TokenType.ConditionalAnd:
                {
                    Tokens.ReadNext();
                    Node rhs = ParseEqualsNotEquals();
                    lhs = new NodeConditionalAnd(lhs, rhs);
                    continue;
                }

                default:
                    return(lhs);
                }
            }
        }
Beispiel #2
0
 void ASTVisitor.Accept(NodeAnd value)
 {
     Accept(value);
 }
Beispiel #3
0
 internal void Accept(NodeAnd and)
 {
     and.left.Visit(this);
     uint fail = builder.OpAnd(0);
     and.right.Visit(this);
     builder.SetOpC(fail, builder.InsnCount);
 }