Handles if a space is encountered while parsing the rule

kati and GNU make may have blank lines in the middle of commands declared in rules.
Add compatibility for this.

Change-Id: Iae03053c0cb901074c26420c0c6ac1c0e00d99de
This commit is contained in:
Min Yun
2024-02-23 23:16:14 +09:00
parent f8c004263a
commit 53ca8b2512
2 changed files with 19 additions and 0 deletions

View File

@@ -413,6 +413,9 @@ loop:
p.accept('\t')
newLine = false
continue loop
} else if p.tok == '\n' {
p.accept('\n')
continue loop
} else if p.parseDirective() {
newLine = false
continue

View File

@@ -84,6 +84,22 @@ endif`,
},
},
},
{
name: "Blank line in rule's command",
in: `all:
echo first line
echo second line`,
out: []Node{
&Rule{
Target: SimpleMakeString("all", NoPos),
RecipePos: NoPos,
Recipe: "echo first line\necho second line",
Prerequisites: SimpleMakeString("", NoPos),
},
},
},
}
func TestParse(t *testing.T) {