aboutsummaryrefslogtreecommitdiff
path: root/mparser.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2014-05-26 22:56:12 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2014-05-26 22:56:12 +0300
commit17ba9bccd0e32fb85df924dc7d2b87b6ec0691c0 (patch)
tree167b32fbc318cb977b302518cb1790e8a40c0961 /mparser.py
parent371e747ca455851ae4597e0071abc90f040ae448 (diff)
downloadmeson-17ba9bccd0e32fb85df924dc7d2b87b6ec0691c0.zip
meson-17ba9bccd0e32fb85df924dc7d2b87b6ec0691c0.tar.gz
meson-17ba9bccd0e32fb85df924dc7d2b87b6ec0691c0.tar.bz2
Parse function and method calls properly.
Diffstat (limited to 'mparser.py')
-rw-r--r--mparser.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/mparser.py b/mparser.py
index 7796dd8..b80a46d 100644
--- a/mparser.py
+++ b/mparser.py
@@ -343,15 +343,15 @@ class Parser:
def e6(self):
left = self.e7()
- if self.accept('dot'):
- return self.method_call(left)
- elif self.accept('lparen'):
+ if self.accept('lparen'):
args = self.args()
self.expect('rparen')
if not isinstance(left, IdNode):
raise ParseException('Function call must be applied to plain id',
left.lineno, left.colno)
- return FunctionNode(left.lineno, left.colno, left.value, args)
+ left = FunctionNode(left.lineno, left.colno, left.value, args)
+ while self.accept('dot'):
+ left = self.method_call(left)
return left
def e7(self):