diff options
author | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-06-27 06:10:18 +0900 |
---|---|---|
committer | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-06-29 12:26:47 +0900 |
commit | 4d77b840fc3df39ad7f7a97f23e520255e05c794 (patch) | |
tree | 9592ff6dac3e3f8575eea7223d1e832ef4c05177 /value.cc | |
parent | d9533329dc5e6a969882a89349fa8c69927774e0 (diff) | |
download | android_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.cc | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -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; |