hi,

i've gotten bored so i've been working on an ASN.1 compiler based on the 97 
specifications. actually, it was going pretty well until i realized that i 
had mistyped the SymbolsImported productions. anyway, i ran into a problem 
and had some feedback or could propose an alternative syntax...

it seems that the way that the SymbolsFromModuleList is constructed, you can 
run into a number of shift/reduce conflicts. if AssignedIdentifier attached 
to the GlobalModuleReference is a DefinedValue it conflicts with the first 
Symbol in the next SymbolList for multiple imports - if the first symbol is 
an abstract value (as opposed to type). if i'm just looking at this all 
wrong, let me know (like if its changed in a future version).

otherwise, here's an alternative syntax that i'd propose (and implement)

Exports ::=
        EXPORTS "(" SymbolList ")" ";" |
        empty

and

SymbolsFromModule ::=
        "(" SymbolList ")" FROM GlobalModuleReference

that gets rid of any shift/reduce conflicts and gives the syntax a nice 
"mathematical-like" list structure.

there are others that i've run into like the OctetStringValue/BitStringValue 
reduce/reduce conflict, but that can be worked around by making an OCTET 
STRING capable of containing a BitStringValue... no big deal there.

thoughts, comments, etc?

Andrew Sutton
[EMAIL PROTECTED]

Reply via email to