Attempt to recover from syntax errors with bison

Fixes #595
This commit is contained in:
Rangi
2021-01-21 09:36:10 -05:00
committed by Eldred Habert
parent a679e02246
commit e3d355d976
10 changed files with 72 additions and 4 deletions

View File

@@ -0,0 +1,11 @@
println "begin"
println 42, 1 2 3 4
for n, 5
println "start {d:n}"
println syntax error
println "finish {d:n}"
endr
println "end {d:n}"

View File

@@ -0,0 +1,5 @@
ERROR: error-recovery.asm(3):
syntax error, unexpected number
ERROR: error-recovery.asm(5) -> error-recovery.asm::REPT~1(7):
syntax error, unexpected identifier
error: Assembly aborted (2 errors)!

View File

@@ -0,0 +1,4 @@
begin
$2Astart 0
finish 0
end 0

View File

@@ -0,0 +1,5 @@
ERROR: error-recovery.asm(3):
syntax error
ERROR: error-recovery.asm(5) -> error-recovery.asm::REPT~1(7):
syntax error
error: Assembly aborted (2 errors)!

View File

@@ -1,4 +1,19 @@
ERROR: label-macro-arg.asm(38) -> label-macro-arg.asm::test_char(25):
syntax error, unexpected =
while expanding symbol "VAR_DEF"
error: Assembly aborted (1 errors)!
ERROR: label-macro-arg.asm(38) -> label-macro-arg.asm::test_char(29):
Interpolated symbol "sizeof_.something" does not exist
ERROR: label-macro-arg.asm(39) -> label-macro-arg.asm::test_char(25):
Label "sizeof_" created outside of a SECTION
while expanding symbol "VAR_DEF"
ERROR: label-macro-arg.asm(39) -> label-macro-arg.asm::test_char(25):
Macro "something" not defined
ERROR: label-macro-arg.asm(39) -> label-macro-arg.asm::test_char(26):
'sizeof_' already defined at label-macro-arg.asm(39) -> label-macro-arg.asm::test_char(25)
ERROR: label-macro-arg.asm(39) -> label-macro-arg.asm::test_char(26):
Macro "something" not defined
ERROR: label-macro-arg.asm(39) -> label-macro-arg.asm::test_char(29):
Invalid format spec 'sizeof_'
ERROR: label-macro-arg.asm(39) -> label-macro-arg.asm::test_char(29):
Interpolated symbol "something" does not exist
error: Assembly aborted (8 errors)!

View File

@@ -5,3 +5,5 @@ $8
sizeof__something equals $1
sizeof_@something equals $1
sizeof_#something equals $1
sizeof_.something equals
sizeof_:something equals

View File

@@ -4,4 +4,21 @@ while expanding symbol "VAR_DEF"
ERROR: label-macro-arg.asm(38) -> label-macro-arg.asm::test_char(25):
syntax error
while expanding symbol "VAR_DEF"
error: Assembly aborted (2 errors)!
ERROR: label-macro-arg.asm(38) -> label-macro-arg.asm::test_char(26):
Local label 'sizeof_.something' in main scope
ERROR: label-macro-arg.asm(38) -> label-macro-arg.asm::test_char(29):
Interpolated symbol "sizeof_.something" does not exist
ERROR: label-macro-arg.asm(39) -> label-macro-arg.asm::test_char(25):
Label "sizeof_" created outside of a SECTION
while expanding symbol "VAR_DEF"
ERROR: label-macro-arg.asm(39) -> label-macro-arg.asm::test_char(25):
Macro "something" not defined
ERROR: label-macro-arg.asm(39) -> label-macro-arg.asm::test_char(26):
'sizeof_' already defined at label-macro-arg.asm(39) -> label-macro-arg.asm::test_char(25)
ERROR: label-macro-arg.asm(39) -> label-macro-arg.asm::test_char(26):
Macro "something" not defined
ERROR: label-macro-arg.asm(39) -> label-macro-arg.asm::test_char(29):
Invalid format spec 'sizeof_'
ERROR: label-macro-arg.asm(39) -> label-macro-arg.asm::test_char(29):
Interpolated symbol "something" does not exist
error: Assembly aborted (10 errors)!