%%% $Id: Modules.sdf 17765 2006-02-13 12:54:52Z jurgenv $ module languages/sdf2/syntax/Modules imports languages/sdf2/syntax/Kernel languages/sdf2/syntax/Renaming hiddens sorts ModuleWord exports context-free start-symbols Module sorts ModuleId ModuleName Import Imports Section Sections Module Definition ImpSection lexical syntax letters:[A-Za-z0-9\_\-]+ -> ModuleWord {cons("word")} ModuleWord -> ModuleId {cons("leaf")} sep:"/" basename:ModuleId -> ModuleId {cons("root")} dirname:ModuleWord sep:"/" basename:ModuleId -> ModuleId {cons("path")} context-free syntax list:Module* -> Definition "module" ModuleName list:ImpSection* Sections -> Module {cons("module")} "exports" Grammar -> Section {cons("exports")} "hiddens" Grammar -> Section {cons("hiddens")} list:Section* -> Sections ModuleId -> ModuleName {cons("unparameterized")} ModuleId "[" params:Symbols "]" -> ModuleName {cons("parameterized")} "id" "(" ModuleName ")" -> Attribute {cons("id")} "imports" list:Imports -> ImpSection {cons("imports")} ImpSection -> Grammar {cons("imp-section")} list:Import* -> Imports ModuleName -> Import {cons("module")} ModuleName Renamings -> Import {cons("renamed-module")} "(" Import ")" -> Import {bracket} lexical restrictions ModuleWord -/- [A-Za-z0-9\_\-] ModuleId -/- [\/]