From f4b50368ba7a6eaebfa29cd71b97fa5e559b4288 Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Tue, 9 Apr 2024 22:35:30 +0200 Subject: [PATCH] fix grammar: if_xx with else part --- examples/test.p8 | 16 ++++++++++------ parser/antlr/Prog8ANTLR.g4 | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/examples/test.p8 b/examples/test.p8 index 1eb783641..c3e6af8d2 100644 --- a/examples/test.p8 +++ b/examples/test.p8 @@ -4,13 +4,17 @@ main { sub start() { - const ubyte x=0 + sys.clear_carry() + cx16.r0s=-42 - if x==3 { - txt.print("three") - } else if x==4 { - txt.print("four") - } + if_z + txt.print("zero") + else if_cs + txt.print("carry") + else if_neg + txt.print("negative") + else + txt.print("nothing") } } diff --git a/parser/antlr/Prog8ANTLR.g4 b/parser/antlr/Prog8ANTLR.g4 index 366d4f8f0..fee9e0060 100644 --- a/parser/antlr/Prog8ANTLR.g4 +++ b/parser/antlr/Prog8ANTLR.g4 @@ -296,7 +296,7 @@ if_stmt : 'if' expression EOL? (statement | statement_block) EOL? else_part? ; else_part : 'else' EOL? (statement | statement_block) ; // statement is constrained later -branch_stmt : branchcondition EOL? (statement | statement_block) EOL? else_part? EOL ; +branch_stmt : branchcondition EOL? (statement | statement_block) EOL? else_part? ; branchcondition: 'if_cs' | 'if_cc' | 'if_eq' | 'if_z' | 'if_ne' | 'if_nz' | 'if_pl' | 'if_pos' | 'if_mi' | 'if_neg' | 'if_vs' | 'if_vc' ;