@@ -209,24 +209,28 @@ func parseLogicalAndExpr(ctx ILogicalAndExprContext) Expr {
209209
210210// parseEqualityExpr converts an EqualityExprContext into an Expr.
211211func parseEqualityExpr (ctx IEqualityExprContext ) Expr {
212+ left := parseRelationalExpr (ctx .RelationalExpr (0 ))
213+
212214 var op antlr.TerminalNode
213215 if ctx .EQUAL () != nil {
214216 op = ctx .EQUAL ()
215217 } else if ctx .NOT_EQUAL () != nil {
216218 op = ctx .NOT_EQUAL ()
219+ } else {
220+ return left
217221 }
218- if op != nil {
219- return BinaryExpr {
220- Left : parseRelationalExpr (ctx .RelationalExpr (0 )),
221- Op : op .GetText (),
222- Right : parseRelationalExpr (ctx .RelationalExpr (1 )),
223- }
222+
223+ return BinaryExpr {
224+ Left : left ,
225+ Op : op .GetText (),
226+ Right : parseRelationalExpr (ctx .RelationalExpr (1 )),
224227 }
225- return parseRelationalExpr (ctx .RelationalExpr (0 ))
226228}
227229
228230// parseRelationalExpr converts a RelationalExprContext into an Expr.
229231func parseRelationalExpr (ctx IRelationalExprContext ) Expr {
232+ left := parseUnaryExpr (ctx .UnaryExpr (0 ))
233+
230234 var op antlr.TerminalNode
231235 if ctx .LESS_THAN () != nil {
232236 op = ctx .LESS_THAN ()
@@ -236,15 +240,15 @@ func parseRelationalExpr(ctx IRelationalExprContext) Expr {
236240 op = ctx .GREATER_THAN ()
237241 } else if ctx .GREATER_OR_EQUAL () != nil {
238242 op = ctx .GREATER_OR_EQUAL ()
243+ } else {
244+ return left
239245 }
240- if op != nil {
241- return BinaryExpr {
242- Left : parseUnaryExpr (ctx .UnaryExpr (0 )),
243- Op : op .GetText (),
244- Right : parseUnaryExpr (ctx .UnaryExpr (1 )),
245- }
246+
247+ return BinaryExpr {
248+ Left : left ,
249+ Op : op .GetText (),
250+ Right : parseUnaryExpr (ctx .UnaryExpr (1 )),
246251 }
247- return parseUnaryExpr (ctx .UnaryExpr (0 ))
248252}
249253
250254// parseUnaryExpr converts a UnaryExprContext into an Expr.
0 commit comments