aboutsummaryrefslogtreecommitdiffstats
path: root/rule_parser.go
diff options
context:
space:
mode:
authorFumitoshi Ukai <fumitoshi.ukai@gmail.com>2015-07-07 17:31:05 +0900
committerFumitoshi Ukai <fumitoshi.ukai@gmail.com>2015-07-07 17:31:05 +0900
commit201df42f5df5f6a7f943dbb9f775ba857b261053 (patch)
tree7a4f9c7dc7cfcc385253bd85716d871e6952149d /rule_parser.go
parent9a17717fd5df84ece411c9284c944bb65f742668 (diff)
downloadandroid_build_kati-201df42f5df5f6a7f943dbb9f775ba857b261053.tar.gz
android_build_kati-201df42f5df5f6a7f943dbb9f775ba857b261053.tar.bz2
android_build_kati-201df42f5df5f6a7f943dbb9f775ba857b261053.zip
fix equal_in_target.mk
Diffstat (limited to 'rule_parser.go')
-rw-r--r--rule_parser.go11
1 files changed, 9 insertions, 2 deletions
diff --git a/rule_parser.go b/rule_parser.go
index 983358a..3b03bab 100644
--- a/rule_parser.go
+++ b/rule_parser.go
@@ -133,8 +133,9 @@ func (r *rule) parseVar(s []byte, rhs expr) (*assignAST, error) {
// parse parses rule line.
// line is rule line until '=', or before ';'
-// rhs is not nil, if line ended with '=' (target specific var)
-func (r *rule) parse(line []byte, rhs expr) (*assignAST, error) {
+// assign is not nil, if line was known as target specific var '<xxx>: <v>=<val>'
+// rhs is not nil, if line ended with '=' (target specific var after evaluated)
+func (r *rule) parse(line []byte, assign *assignAST, rhs expr) (*assignAST, error) {
var removed bool
line, removed = removeComment(line)
if removed {
@@ -178,6 +179,12 @@ func (r *rule) parse(line []byte, rhs expr) (*assignAST, error) {
}
rest := line[index:]
+ if assign != nil {
+ if len(rest) > 0 {
+ panic(fmt.Sprintf("pattern specific var? line:%q", line))
+ }
+ return assign, nil
+ }
if rhs != nil {
assign, err := r.parseVar(rest, rhs)
if err != nil {