summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Min Yun <min.yun@lge.com> 2024-02-23 23:16:14 +0900
committer Min Yun <min.yun@lge.com> 2024-02-24 08:08:08 +0900
commit53ca8b2512dd9f4bd78d5b70d43d37e6dea5771d (patch)
tree296102cdadba661f9c9610ed173a96160eca7cd0
parentf8c004263a41265708da3553d0fff2910faaea59 (diff)
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
-rw-r--r--androidmk/parser/parser.go3
-rw-r--r--androidmk/parser/parser_test.go16
2 files changed, 19 insertions, 0 deletions
diff --git a/androidmk/parser/parser.go b/androidmk/parser/parser.go
index fb6be38e9..8a20bb052 100644
--- a/androidmk/parser/parser.go
+++ b/androidmk/parser/parser.go
@@ -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
diff --git a/androidmk/parser/parser_test.go b/androidmk/parser/parser_test.go
index 9efebf8e1..db3313d27 100644
--- a/androidmk/parser/parser_test.go
+++ b/androidmk/parser/parser_test.go
@@ -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) {