aboutsummaryrefslogtreecommitdiff
path: root/nodes.py
diff options
context:
space:
mode:
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())