mirror of
https://github.com/gbdev/rgbds.git
synced 2026-05-08 10:59:36 +00:00
Consistently lex local labels after keywords, even when skipping/capturing
This commit is contained in:
+1
-1
@@ -2166,7 +2166,7 @@ static Token skipToLeadingKeyword() {
|
||||
} else if (isLetter(c)) {
|
||||
shiftChar();
|
||||
std::string keyword(1, c);
|
||||
for (c = peek(); continuesIdentifier(c) && c != '.'; c = nextChar()) {
|
||||
for (c = peek(); continuesIdentifier(c); c = nextChar()) {
|
||||
keyword += c;
|
||||
}
|
||||
if (auto search = keywords.find(keyword); search != keywords.end()) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
section "test", ROM0
|
||||
Global:
|
||||
Global: ; none of the `end*.local_*` identifiers below should get treated as keywords
|
||||
|
||||
if 0
|
||||
println "no"
|
||||
|
||||
@@ -1,14 +1,2 @@
|
||||
error: syntax error, unexpected local label, expecting end of line or end of buffer or end of fragment literal
|
||||
at local-after-end.asm(6)
|
||||
error: Identifier "endc.local_yes" begins with a keyword; did you mean to put a space between them?
|
||||
at local-after-end.asm(9)
|
||||
error: syntax error, unexpected local label, expecting end of line or end of buffer or end of fragment literal
|
||||
at local-after-end.asm(13)
|
||||
error: syntax error, unexpected local label, expecting end of line or end of buffer or end of fragment literal
|
||||
at local-after-end.asm(16)
|
||||
error: syntax error, unexpected local label, expecting end of line or end of buffer or end of fragment literal
|
||||
at local-after-end.asm(20)
|
||||
error: Undefined macro `mac`
|
||||
at local-after-end.asm(21)
|
||||
FATAL: Ended block with 2 unterminated conditionals (`IF`/`ELIF`/`ELSE` blocks)
|
||||
at local-after-end.asm(22)
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
yes
|
||||
Reference in New Issue
Block a user