ARCH-SPEC-DEFN ::= arch spec ARCH-SPEC-NAME = ARCH-SPEC end/
ARCH-SPEC ::= BASIC-ARCH-SPEC
| ARCH-SPEC-NAME
BASIC-ARCH-SPEC ::= unit/units UNIT-DECL-DEFN ;...; UNIT-DECL-DEFN ;/
result UNIT-EXPRESSION ;/
UNIT-DECL-DEFN ::= UNIT-DECL | UNIT-DEFN
UNIT-DECL ::= UNIT-NAME : UNIT-SPEC given UNIT-TERM ,..., UNIT-TERM
| UNIT-NAME : UNIT-SPEC
UNIT-DEFN ::= UNIT-NAME = UNIT-EXPRESSION
UNIT-SPEC-DEFN ::= unit spec UNIT-SPEC-NAME = UNIT-SPEC end/
UNIT-SPEC ::= UNIT-SPEC-NAME
| SPEC
| SPEC *...* SPEC -> SPEC
| arch spec ARCH-SPEC
UNIT-EXPRESSION ::= lambda UNIT-BINDING ;...; UNIT-BINDING "." UNIT-TERM
| UNIT-TERM
UNIT-BINDING ::= UNIT-NAME : UNIT-SPEC
UNIT-TERM ::= UNIT-TERM RENAMING
| UNIT-TERM RESTRICTION
| UNIT-TERM and...and UNIT-TERM
| local UNIT-DEFN ;...; UNIT-DEFN ;/ within UNIT-TERM
| UNIT-NAME [ FIT-ARG-UNIT ]...[ FIT-ARG-UNIT ]
| UNIT-NAME
FIT-ARG-UNIT ::= UNIT-TERM
| UNIT-TERM fit SYMB-MAP-ITEMS ,..., SYMB-MAP-ITEMS
ARCH-SPEC-NAME ::= SIMPLE-ID
UNIT-SPEC-NAME ::= SIMPLE-ID
UNIT-NAME ::= SIMPLE-ID