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]