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

Reply via email to