Skip to content

Commit cd11901

Browse files
lvan100lianghuan
authored andcommitted
111
1 parent fe69bfe commit cd11901

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

lib/vidl/parser.go

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -209,24 +209,28 @@ func parseLogicalAndExpr(ctx ILogicalAndExprContext) Expr {
209209

210210
// parseEqualityExpr converts an EqualityExprContext into an Expr.
211211
func 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.
229231
func 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

Comments
 (0)