
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: dsl/architecture/mdws/conceptual/extracted
Source used for this grammar: Julien Baudry, Web applications: Conceptual Model, WebApplications_ConceptualModel.ecore,  2006/07/10
HyperLink, ClientPage, ClientPageModule, LogicInterface, DesignElement, ServerPage, ServerPageModule, DesignModule, LogicModule, Link, BeginUseCase, UseCase, LogicElement, Alternative, UserDecision, ServerDecision, Processor, Renderer, Data, Boolean, Integer, String), 0 root (—), 21 top (ClientPage, ClientPageModule, LogicInterface, DesignElement, ServerPage, ServerPageModule, DesignModule, LogicModule, Link, BeginUseCase, UseCase, LogicElement, Alternative, UserDecision, ServerDecision, Processor, Renderer, Data, Boolean, Integer, String), 12 bottom (Server/ServerPage 3, Server/LogicModule, Client/ClientPage 2, Server/Data 5, Server/DesignModule 2, Server/ServerPageModule 2, Server/LogicElement 4, Server/Link, Server/Processor 4, Server/Renderer 2, Server/UseCase 3, Server/Alternative).[server], [hyperlink], [consistsOf], [representsSMP], [represents] 2, [generatedBy] 2, [link] 2, [generates], [module], [contains], [containsModule], [useCase] 2, [logicElement], [page], [posts], [logicElem], [uses] 2, [next], [allows], [evaluatesResultOf], [persistentData], [inputData], [outputData], [renders], [renderer], [persist], [computes].HyperLink ::=
	[server]::Server/ServerPageClientPage ::= [hyperlink]::HyperLink
ClientPageModule ::= [consistsOf]::Client/ClientPage [representsSMP]::Server/ServerPageModule
LogicInterface ::= [represents]::Server/LogicModule [generatedBy]::Server/Renderer
DesignElement ::= [represents]::Server/DesignModule
ServerPage ::= [link]::HyperLink [generates]::Client/ClientPage [module]::Server/ServerPageModule
ServerPageModule ::=
	[contains]::Server/ServerPage [link]::Server/Link [containsModule]::Server/DesignModuleDesignModule ::= ε
LogicModule ::= [useCase]::Server/UseCase [logicElement]::Server/LogicElement
Link ::= [page]::Server/ServerPage [posts]::Server/Data
BeginUseCase ::= [useCase]::Server/UseCase
UseCase ::=
	[logicElem]::Server/LogicElementLogicElement ::=
	[uses]::Server/UseCase [generatedBy]::Server/LogicElement [next]::Server/LogicElementAlternative ::= ε
UserDecision ::=
	[allows]::Server/AlternativeServerDecision ::= [evaluatesResultOf]::Server/Processor
Processor ::= [persistentData]::Server/Data [inputData]::Server/Data [outputData]::Server/Data
Renderer ::=
	[renders]::Server/DataData ::= [renderer]::Server/Renderer [persist]::Server/Processor [uses]::Server/Processor [computes]::Server/Processor
Boolean ::= "true" "false"
Integer ::= integer
String ::= string