@@ -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+
280283COMP_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+
299306COMP_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
307314COMP_EXPR_MORE:
308315 COMP_EXPR_RIGHT COMP_EXPR_MORE
0 commit comments