Support both import and export in same file
authorJohnTESlade <john@jtes.net>
Fri, 20 Sep 2013 15:44:20 +0000 (16:44 +0100)
committerJohnTESlade <john@jtes.net>
Fri, 20 Sep 2013 15:44:20 +0000 (16:44 +0100)
asn1ate/parser.py
testdata/import_export.asn [new file with mode: 0644]

index 3bab623..c4e65e0 100644 (file)
@@ -300,7 +300,8 @@ def _build_asn1_grammar():
     symbols_from_module = symbol_list + Suppress(FROM) + global_module_reference
     symbols_from_module_list = OneOrMore(symbols_from_module)
     symbols_imported = Optional(symbols_from_module_list)
-    imports = Optional( (IMPORTS ^ EXPORTS) + (symbol_list ^ symbols_imported) + Suppress(';'))
+    imports = Optional(EXPORTS + symbol_list + Suppress(Optional(';'))) + Optional(IMPORTS + symbols_imported + Suppress(Optional(';'))) 
+
 
     module_body = (imports + assignment_list) | empty
     module_defaults = Suppress(tag_default + extension_default)  # we don't want these in the AST
diff --git a/testdata/import_export.asn b/testdata/import_export.asn
new file mode 100644 (file)
index 0000000..ec9f81a
--- /dev/null
@@ -0,0 +1,14 @@
+MyASN1Module DEFINITIONS ::=
+
+BEGIN
+
+EXPORTS EVERYTHING
+
+IMPORTS DataType FROM OtherASN1Module
+
+MyType ::= INTEGER
+
+MySet ::= SET {MyType, BOOLEAN}
+
+END --MyASN1Module
+