aboutsummaryrefslogtreecommitdiff
path: root/nodes.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-02-10 00:50:46 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-02-10 00:50:46 +0200
commit45ecded01d814d0d0bf9b84c0dafa65575ab2bdd (patch)
treec65e38fb0455cc815ceddbe99f305fb8d0ebe7a8 /nodes.py
parentda2e9f6688ea9545ccc056195ea36421e3e019aa (diff)
downloadmeson-45ecded01d814d0d0bf9b84c0dafa65575ab2bdd.zip
meson-45ecded01d814d0d0bf9b84c0dafa65575ab2bdd.tar.gz
meson-45ecded01d814d0d0bf9b84c0dafa65575ab2bdd.tar.bz2
Started work on keyword arguments.
Diffstat (limited to 'nodes.py')
-rw-r--r--nodes.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/nodes.py b/nodes.py
index 72b1edd..b1d26ee 100644
--- a/nodes.py
+++ b/nodes.py
@@ -170,13 +170,26 @@ class Arguments(Statement):
def __init__(self, lineno):
Statement.__init__(self, lineno)
self.arguments = []
-
+ self.kwargs = {}
+ self.order_error = False
+
def prepend(self, statement):
self.arguments = [statement] + self.arguments
- def __len__(self):
+ def set_kwarg(self, name, value):
+ if self.num_args() > 0:
+ self.order_error = True
+ self.kwargs[name.get_value()] = value
+
+ def num_args(self):
return len(self.arguments)
+ def num_kwargs(self):
+ return len(self.kwargs)
+
+ def __len__(self):
+ return self.num_args() # Fixme
+
def statement_from_expression(expr):
if isinstance(expr, AtomExpression):
return AtomStatement(expr.value, expr.lineno())