+Grammar:: = Declaration +/ ws
+
+Declaration = NonTerminal
+ | ^"#import" FileName /ws
+ | ^"#import" FileName "as" Word /ws
+
+FileName:: = (~[\r\n ] | escaped)+ -> [\r\n ]
+
+NonTerminal = NonTerminal:: Word ws "=" ws RHS
+ | DropNT:: Word "!" ws "=" ws RHS
+ | Colons:: Word "::" ws "=" ws RHS
+ | Word "*" ws ^"=" ws RHS
+ | Word "*/" Word ws ^"=" ws RHS
+
+RHS:: = ("|":: Sequence +/ (ws "|" ws)) +/ (ws ">" ws)
+
+Elements:: = e*/ws