aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/mparser.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-11-20 02:59:08 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2016-11-20 03:11:58 +0200
commitf111a0b82601ae4ed01e49069030eabeb2c5c008 (patch)
tree7382135a1cbddf5dba46802f207fdf9e3a237187 /mesonbuild/mparser.py
parent805847c4a0b081779fc376930f16c0c51032d9ce (diff)
downloadmeson-f111a0b82601ae4ed01e49069030eabeb2c5c008.zip
meson-f111a0b82601ae4ed01e49069030eabeb2c5c008.tar.gz
meson-f111a0b82601ae4ed01e49069030eabeb2c5c008.tar.bz2
Track comma spans in arguments.
Diffstat (limited to 'mesonbuild/mparser.py')
-rw-r--r--mesonbuild/mparser.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/mesonbuild/mparser.py b/mesonbuild/mparser.py
index ec5778d..51ba9a6 100644
--- a/mesonbuild/mparser.py
+++ b/mesonbuild/mparser.py
@@ -301,6 +301,7 @@ class ArgumentNode():
self.lineno = token.lineno
self.colno = token.colno
self.arguments = []
+ self.commas = []
self.kwargs = {}
self.order_error = False
@@ -520,15 +521,19 @@ class Parser:
a = ArgumentNode(s)
while not isinstance(s, EmptyNode):
+ potential = self.current
if self.accept('comma'):
+ a.commas.append(potential)
a.append(s)
elif self.accept('colon'):
if not isinstance(s, IdNode):
raise ParseException('Keyword argument must be a plain identifier.',
s.lineno, s.colno)
a.set_kwarg(s.value, self.statement())
+ potential = self.current
if not self.accept('comma'):
return a
+ a.commas.append(potential)
else:
a.append(s)
return a