2 files changed, 9 insertions(+)
viff/sfdl/grammar.py | 3 +++
viff/test/sfdl/test_grammar.py | 6 ++++++
# HG changeset patch
# User Martin Geisler <[EMAIL PROTECTED]>
# Date 1227518457 -3600
# Node ID bc1b37d69c6193ea1b657675ec20a1c48dd168fa
# Parent 0763eaf0c1dd39d41795810bfeb29329c674cfff
Type declarations.
diff --git a/viff/sfdl/grammar.py b/viff/sfdl/grammar.py
--- a/viff/sfdl/grammar.py
+++ b/viff/sfdl/grammar.py
@@ -48,6 +48,9 @@
data_type << (known_type | ident) \
+ ZeroOrMore(Group('[' + const_expr + ']'))
+ self.type_dec = type_dec \
+ = Keyword("type") + ident + EQUAL + data_type + SCOLON
+
self.expr = expr = Forward()
self.qual_ident = qual_ident = ident \
diff --git a/viff/test/sfdl/test_grammar.py b/viff/test/sfdl/test_grammar.py
--- a/viff/test/sfdl/test_grammar.py
+++ b/viff/test/sfdl/test_grammar.py
@@ -128,6 +128,12 @@
self.assertParse(self.grammar.data_type, "Int<MAX>[MIN]",
['Int', '<', 'MAX', '>', ['[', 'MIN', ']']])
+ def test_type_dec(self):
+ self.assertParse(self.grammar.type_dec, "type x = Boolean;",
+ ['type', 'x', 'Boolean'])
+ self.assertParse(self.grammar.type_dec, "type x = AnotherType[4];",
+ ['type', 'x', 'AnotherType', ['[', '4', ']']])
+
def test_qual_ident(self):
self.assertParse(self.grammar.qual_ident, "x.y", ['x', '.', 'y'])
_______________________________________________
viff-patches mailing list
[email protected]
http://lists.viff.dk/listinfo.cgi/viff-patches-viff.dk