This section is taken from Note M-4.
ARCH-SPEC-DEFN ::= arch spec ARCH-SPEC-NAME = ARCH-SPEC
ARCH-SPEC ::= BASIC-ARCH-SPEC
| ARCH-SPEC-NAME
BASIC-ARCH-SPEC ::= unit/units UNIT-DECL-DEFN,...,UNIT-DECL-DEFN RESULT-UNIT
UNIT-DECL-DEFN ::= UNIT-DECL
| UNIT-DEFN
UNIT-DECL ::= UNIT-NAME : UNIT-IMPORT UNIT-SPEC
| UNIT-NAME : UNIT-SPEC
UNIT-IMPORT ::= use UNIT-TERM,...,UNIT-TERM within
UNIT-SPEC-DEFN ::= unit-spec UNIT-SPEC-NAME = UNIT-SPEC
UNIT-SPEC ::= UNIT-SPEC-NAME
| SPEC
| SPEC*...*SPEC -> SPEC
! | arch spec ARCH-SPEC
UNIT-DEFN ::= UNIT-NAME = UNIT-EXPRESSION
RESULT-UNIT ::= result UNIT-EXPRESSION
UNIT-EXPRESSION ::= lambda UNIT-BINDING;...;UNIT-BINDING . UNIT-TERM
| UNIT-TERM
UNIT-BINDING ::= UNIT-NAME : UNIT-SPEC
UNIT-TERM ::= UNIT-NAME ( FIT-ARG-UNIT,...,FIT-ARG-UNIT )
| UNIT-TERM RESTRICTION
| UNIT-TERM RENAMING
| UNIT-TERM and...and UNIT-TERM
| UNIT-TERM where UNIT-DEFN,...,UNIT-DEFN
FIT-ARG-UNIT ::= UNIT-TERM
! | UNIT-TERM fit SYMB-MAP,..,SYMB-MAP
! ARCH-SPEC-NAME ::= SIMPLE-ID
! UNIT-SPEC-NAME ::= SIMPLE-ID
! UNIT-NAME ::= SIMPLE-ID