aboutsummaryrefslogtreecommitdiff
path: root/rule.cc
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-06-23 14:29:32 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-06-23 14:29:32 +0900
commit784b99578e2a0b160721bebcbd0706bbf5e99f4c (patch)
treeaad31d5e728ab27838976d95a037a585059bd49e /rule.cc
parentb74b890feb1a0248b6c3e421c656247741efba05 (diff)
[C++] Implement target specific variables
Diffstat (limited to 'rule.cc')
-rw-r--r--rule.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/rule.cc b/rule.cc
index 6ddd55a..023de0a 100644
--- a/rule.cc
+++ b/rule.cc
@@ -45,7 +45,7 @@ Rule::Rule()
cmd_lineno(0) {
}
-void ParseRule(Loc& loc, StringPiece line,
+void ParseRule(Loc& loc, StringPiece line, bool is_assign,
Rule** out_rule, RuleVar* rule_var) {
size_t index = line.find(':');
if (index == string::npos) {
@@ -77,7 +77,9 @@ void ParseRule(Loc& loc, StringPiece line,
StringPiece rest = line.substr(index);
size_t equal_index = rest.find('=');
- if (equal_index != string::npos) {
+ if (equal_index != string::npos || is_assign) {
+ if (equal_index == string::npos)
+ equal_index = rest.size();
rule_var->outputs.swap(outputs);
ParseAssignStatement(rest, equal_index,
&rule_var->lhs, &rule_var->rhs, &rule_var->op);