public override IAstNode VisitRexprBinop(MicroCParser.RexprBinopContext context) { IAExpr left = Visit(context.left) as IAExpr; IAExpr right = Visit(context.right) as IAExpr; RBinOperator op = context.rop.Text switch { "<" => RBinOperator.LessThan, ">" => RBinOperator.GreaterThan, "<=" => RBinOperator.LessThanEq, ">=" => RBinOperator.GreaterThanEq, "==" => RBinOperator.Eq, "!=" => RBinOperator.NotEq, _ => throw new ArgumentException("Invalid RBinOpOperator") }; return(new RBinOp(left, right, op)); }
public RBinOp(IAExpr left, IAExpr right, RBinOperator op) { Left = left; Right = right; Op = op; }