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
--- /dev/null
+MyASN1Module DEFINITIONS ::=
+
+BEGIN
+
+EXPORTS EVERYTHING
+
+IMPORTS DataType FROM OtherASN1Module
+
+MyType ::= INTEGER
+
+MySet ::= SET {MyType, BOOLEAN}
+
+END --MyASN1Module
+