コード例 #1
0
        public override void Visit(RelationalNode node)
        {
            node.LeftSide.Accept(this);
            if (node.RightSide != default && node.Operator != default)
            {
                node.RightSide.Accept(this);

                this.BinaryOperation(() =>
                {
                    this.Add("   cmp rax, rdi");
                    switch (node.Operator)
                    {
                    case Tokenizer.TokenKind.LESS:
                        this.Add("   setl al");
                        break;

                    case Tokenizer.TokenKind.LESS_EQUAL:
                        this.Add("   setle al");
                        break;
                    }
                    this.Add("   movzb rax, al");
                });
            }
        }
コード例 #2
0
 public abstract void Visit(RelationalNode node);