module languages/casl/syntax/Lib imports languages/casl/syntax/Arch exports sorts %%Item-Name Item-Name-Or-Map Lib-Defn Lib-Items %%Lib-Id Lib-Name Version context-free syntax %% Lib-Defn "library" Lib-Name Ann Lib-Items -> Lib-Defn Lib-Item+ -> Lib-Items %% Lib-Item Spec-Defn -> Lib-Item View-Defn -> Lib-Item Arch-Spec-Defn -> Lib-Item Unit-Spec-Defn -> Lib-Item "from" Lib-Name "get" {Item-Name-Or-Map ","}+ Opt-End -> Lib-Item %% Item-Name-Or-Map Item-Name -> Item-Name-Or-Map Item-Name "|->" Item-Name -> Item-Name-Or-Map %% Item-Name Simple-Id -> Item-Name %% Lib-Name Lib-Id -> Lib-Name Lib-Id Version -> Lib-Name %% Lib-Id Url -> Lib-Id Path -> Lib-Id %% Version "version" {Number "."}+ -> Version