Merge "Parse else ifxxx statement" am: 725af86fe7 am: 4a062c1847 am: 94f19bccec
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1501162
Change-Id: Icf1c6d1d6ade7076b17424670e0bc05d640e7007
diff --git a/androidmk/parser/parser.go b/androidmk/parser/parser.go
index 86dabf9..e61241b 100644
--- a/androidmk/parser/parser.go
+++ b/androidmk/parser/parser.go
@@ -212,8 +212,21 @@
expression := SimpleMakeString("", pos)
switch d {
- case "endif", "endef", "else":
+ case "endif", "endef":
// Nothing
+ case "else":
+ p.ignoreSpaces()
+ if p.tok != '\n' {
+ d = p.scanner.TokenText()
+ p.accept(scanner.Ident)
+ if d == "ifdef" || d == "ifndef" || d == "ifeq" || d == "ifneq" {
+ d = "el" + d
+ p.ignoreSpaces()
+ expression = p.parseExpression()
+ } else {
+ p.errorf("expected ifdef/ifndef/ifeq/ifneq, found %s", d)
+ }
+ }
case "define":
expression, endPos = p.parseDefine()
default: