Skip to content

Commit 3646f2b

Browse files
committed
Factorize parsing of comparisons, shorter parsing code.
1 parent 4da04c7 commit 3646f2b

1 file changed

Lines changed: 19 additions & 12 deletions

File tree

src/basic.syn

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -277,13 +277,16 @@ COMP_OR_BOOL:
277277
#@endif FASTBASIC_FP
278278
emit TOK_COMP_0
279279

280+
PUSH_INT_EXPR:
281+
emit TOK_PUSH INT_EXPR
282+
280283
COMP_EXPR_RIGHT: integer comparison operator
281-
"<=" emit TOK_PUSH INT_EXPR emit TOK_GT emit TOK_L_NOT
282-
">=" emit TOK_PUSH INT_EXPR emit TOK_LT emit TOK_L_NOT
283-
"<>" emit TOK_PUSH INT_EXPR emit TOK_NEQ
284-
"<" emit TOK_PUSH INT_EXPR emit TOK_LT
285-
">" emit TOK_PUSH INT_EXPR emit TOK_GT
286-
"=" emit TOK_PUSH INT_EXPR emit TOK_EQ
284+
"<=" PUSH_INT_EXPR emit TOK_GT emit TOK_L_NOT
285+
">=" PUSH_INT_EXPR emit TOK_LT emit TOK_L_NOT
286+
"<>" PUSH_INT_EXPR emit TOK_NEQ
287+
"<" PUSH_INT_EXPR emit TOK_LT
288+
">" PUSH_INT_EXPR emit TOK_GT
289+
"=" PUSH_INT_EXPR emit TOK_EQ
287290

288291
#@if FASTBASIC_FP
289292
# FP Comparisons:
@@ -296,13 +299,17 @@ COMP_FP_RIGHT: floating-point comparison operator
296299
"<" FP_EXPR emit TOK_FP_CMP emit TOK_LT
297300
#@endif FASTBASIC_FP
298301

302+
# Push and string expression
303+
PCMP_STR_EXPR:
304+
emit TOK_PUSH STR_EXPR emit TOK_CMP_STR
305+
299306
COMP_STR_RIGHT: comparison operator
300-
"=" emit TOK_PUSH STR_EXPR emit TOK_CMP_STR emit TOK_EQ
301-
">" emit TOK_PUSH STR_EXPR emit TOK_CMP_STR emit TOK_GT
302-
">=" emit TOK_PUSH STR_EXPR emit TOK_CMP_STR emit TOK_LT emit TOK_L_NOT
303-
"<>" emit TOK_PUSH STR_EXPR emit TOK_CMP_STR emit TOK_NEQ
304-
"<=" emit TOK_PUSH STR_EXPR emit TOK_CMP_STR emit TOK_GT emit TOK_L_NOT
305-
"<" emit TOK_PUSH STR_EXPR emit TOK_CMP_STR emit TOK_LT
307+
"=" PCMP_STR_EXPR emit TOK_EQ
308+
">" PCMP_STR_EXPR emit TOK_GT
309+
">=" PCMP_STR_EXPR emit TOK_LT emit TOK_L_NOT
310+
"<>" PCMP_STR_EXPR emit TOK_NEQ
311+
"<=" PCMP_STR_EXPR emit TOK_GT emit TOK_L_NOT
312+
"<" PCMP_STR_EXPR emit TOK_LT
306313

307314
COMP_EXPR_MORE:
308315
COMP_EXPR_RIGHT COMP_EXPR_MORE

0 commit comments

Comments
 (0)