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"); }); } }
public abstract void Visit(RelationalNode node);