Support more syntax in linkerscripts (#1752)

* No need to use `locale`s

* Implement octal numbers, `_` digit separators, and `0x/0b/0o` prefixes in linkerscripts

* Refactor some functions out of `yylex`

* Support `\0` in linkerscripts
This commit is contained in:
Rangi
2025-07-16 15:00:02 -04:00
committed by GitHub
parent cf6e5fec63
commit 7f24d46d44
7 changed files with 209 additions and 109 deletions

View File

@@ -1,5 +1,9 @@
ROM0
org 42
org %101010
org $2A
org 4_2
org %10_10_10
org &52_
org $2A_
org 0b101_010
org 0o5_2
org 0x2_A
org 41 ; Error!

View File

@@ -1,2 +1,2 @@
error: script-num-fmt.link(5): Cannot decrease the current address (from $002a to $0029)
error: script-num-fmt.link(9): Cannot decrease the current address (from $002a to $0029)
Linking failed with 1 error

View File

@@ -0,0 +1,8 @@
ROM0
"ROM0"
"\\\"\'\n\r\t\0"
ROMX 1
"ROM1"
ROMX 2
"ROM2 1K"
"ROM2 1"

View File

View File

@@ -7,3 +7,4 @@ SECTION "ROM2 1K", ROMX,BANK[2]
ds $1000
SECTION "ROM2 1", ROMX,BANK[2]
ds 1
SECTION "\\\"\'\n\r\t\0", ROM0