module Casl-Lib

%% written/changed by Bjarke Wedemeijer (January 1998)
%% adapted by Mark van den Brand (June 1999)
%% adapted by Mark van den Brand (November 2000)
%% adapted by Christian Maeder (January 2002)
%% adapted by Christian Maeder (February 2004)

imports Casl-Arch
exports
  sorts Lib-Defn Lib-Items
  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
