aboutsummaryrefslogtreecommitdiffstats
path: root/value.cc
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-06-27 06:10:18 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-06-29 12:26:47 +0900
commit4d77b840fc3df39ad7f7a97f23e520255e05c794 (patch)
tree9592ff6dac3e3f8575eea7223d1e832ef4c05177 /value.cc
parentd9533329dc5e6a969882a89349fa8c69927774e0 (diff)
downloadandroid_build_kati-4d77b840fc3df39ad7f7a97f23e520255e05c794.tar.gz
android_build_kati-4d77b840fc3df39ad7f7a97f23e520255e05c794.tar.bz2
android_build_kati-4d77b840fc3df39ad7f7a97f23e520255e05c794.zip
[C++] Fix unmatched_paren.mk
Diffstat (limited to 'value.cc')
-rw-r--r--value.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/value.cc b/value.cc
index acff0b1..5337e4f 100644
--- a/value.cc
+++ b/value.cc
@@ -250,6 +250,10 @@ static size_t SkipSpaces(StringPiece s, const char* terms) {
return s.size();
}
+bool ShouldHandleComments(ParseExprOpt opt) {
+ return opt != ParseExprOpt::DEFINE && opt != ParseExprOpt::COMMAND;
+}
+
Value* ParseFunc(const Loc& loc,
Func* f, StringPiece s, size_t i, char* terms,
size_t* index_out) {
@@ -274,7 +278,7 @@ Value* ParseFunc(const Loc& loc,
const bool trim_right_space = (f->trim_space() ||
(nargs == 1 && f->trim_right_space_1st()));
size_t n;
- Value* v = ParseExprImpl(loc, s.substr(i), terms, ParseExprOpt::NORMAL,
+ Value* v = ParseExprImpl(loc, s.substr(i), terms, ParseExprOpt::FUNC,
&n, trim_right_space);
// TODO: concatLine???
f->AddArg(v);
@@ -398,7 +402,7 @@ Value* ParseExprImpl(const Loc& loc,
}
// Handle a comment.
- if (!terms && c == '#' && opt == ParseExprOpt::NORMAL) {
+ if (!terms && c == '#' && ShouldHandleComments(opt)) {
if (i > b)
r->AddValue(new Literal(s.substr(b, i-b)));
bool was_backslash = false;
@@ -438,7 +442,7 @@ Value* ParseExprImpl(const Loc& loc,
continue;
}
- if (c == '(' || c == '{') {
+ if ((c == '(' || c == '{') && opt == ParseExprOpt::FUNC) {
char cp = CloseParen(c);
if (terms && terms[0] == cp) {
paren_depth++;
@@ -464,7 +468,7 @@ Value* ParseExprImpl(const Loc& loc,
i++;
continue;
}
- if (n == '#' && opt == ParseExprOpt::NORMAL) {
+ if (n == '#' && ShouldHandleComments(opt)) {
r->AddValue(new Literal(s.substr(b, i-b)));
i++;
b = i;