From aef5ef362d5f0934df44951d20028b64e5529384 Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Sun, 27 Jan 2013 22:18:40 +0200 Subject: Added support for numbers. --- nodes.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'nodes.py') diff --git a/nodes.py b/nodes.py index e141eba1e..72b1edd4d 100644 --- a/nodes.py +++ b/nodes.py @@ -49,12 +49,20 @@ class StringExpression(Expression): Expression.__init__(self, lineno) self.value = value +class IntExpression(Expression): + def __init__(self, value, lineno): + Expression.__init__(self, lineno) + self.value = value + + def get_value(self): + return self.value + class AtomStatement(Statement): def __init__(self, value, lineno): Statement.__init__(self, lineno) assert(type(value) == type('')) self.value = value - + def get_value(self): return self.value @@ -66,7 +74,16 @@ class BoolStatement(Statement): def get_value(self): return self.value - + +class IntStatement(Statement): + def __init__(self, value, lineno): + Statement.__init__(self, lineno) + assert(isinstance(value, int)) + self.value = value + + def get_value(self): + return self.value + class IfStatement(Statement): def __init__(self, clause, trueblock, falseblock, lineno): Statement.__init__(self, lineno) @@ -167,4 +184,6 @@ def statement_from_expression(expr): return StringStatement(expr.value, expr.lineno()) if isinstance(expr, BoolExpression): return BoolStatement(expr.value, expr.lineno()) + if isinstance(expr, IntExpression): + return IntStatement(expr.get_value(), expr.lineno()) raise RuntimeError('Can not convert unknown expression to a statement.') -- cgit v1.3