public override IAstNode VisitBexprBinop(MicroCParser.BexprBinopContext context) { IBExpr left = Visit(context.left) as IBExpr; IBExpr right = Visit(context.right) as IBExpr; BBinOperator op = context.bop.Text switch { "&" => BBinOperator.And, "|" => BBinOperator.Or, _ => throw new ArgumentException("Invalid BBinOpOperator") }; return(new BBinOp(left, right, op)); }
public BBinOp(IBExpr left, IBExpr right, BBinOperator op) { Left = left; Right = right; Op = op; }