
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: markup/interface/uiml/touzet/extracted
Source used for this grammar: David Touzet, User Interface Markup Language, UIML-3.0.ecore, version 0.1,  2006/02/21 [Atlantic]
UIML, Header, MetaData, Peer, Presentation, Logic, DComponent, DClass, DProperty, DMethod, DParam, Script, Listener, UsedInTagKind, MapsTypeKind, ExtensibleElement, Source, LocalSource, RemoteSource, Interface, Structure, Part, Style, Property, Content, Behavior, Repeat, Constant, Reference, Rule, Condition, EventCondition, EqualCondition, OpCondition, Action, Action_1, Action_2, Call, Parameter, PropertyParameter, ReferenceParameter, CallParameter, OperationParameter, EventParameter, ConstantParameter, IteratorParameter, Iterator, ConstantIterator, PropertyIterator, CallIterator, TextIterator, Event, Equal, EqualToConstant, EqualToProperty, EqualToReference, EqualToOperation, Operation, Restructure, Branch, WhenTrue, WhenFalse, ByDefault, HowKind, ExportKind, WhereKind, String, Integer, Template, BehaviorTemplate, DClassTemplate, DComponentTemplate, ConstantTemplate, ContentTemplate, InterfaceTemplate, LogicTemplate, PartTemplate, PeerTemplate, PresentationTemplate, PropertyTemplate, RestructureTemplate, RuleTemplate, ScriptTemplate, StructureTemplate, StyleTemplate), 0 root (—), 4 top (UIML, UsedInTagKind, Branch, WhereKind), 0 bottom (—).[head], [templates], [interfaces], [peers], [metas], [name] 4, [content] 4, [id] 17, [how] 17, [export] 16, [source] 18, [presentations], [logics], [base], [dClasses], [dComponents], [mapsTo] 4, [location] 2, [dMethods] 3, [mapsType] 2, [dProperties], [events] 3, [listeners], [returnType] 2, [dParams] 2, [script] 2, [type] 2, [value] 4, [class] 3, [attacher], [event] 8, [listener], [part] 2, [attribute], [getMethod], [setMethod], [method], [structure] 2, [style] 3, [behavior] 3, [parts] 5, [wherePart] 2, [repeats], [properties] 8, [values], [constants] 4, [references] 2, [calls] 7, [iterators], [rules], [iterator] 2, [model], [constant] 5, [condition], [action], [equal] 5, [op] 7, [restructures], [whenTrue], [whenFalse], [byDefault], [params], [property] 4, [reference] 2, [call] 2, [ops], [atPart], [template], [restructure] 5, [append], [cascade], [replace], [union], [delete], [hidden], [optional], [required], [first], [last], [before], [after], [dClass], [dComponent], [interface], [logic], [peer], [presentation], [rule].UIML ::= [head]::Header [templates]::Template [interfaces]::Interface [peers]::Peer
Header ::=
	[metas]::MetaDataMetaData ::= [name]::String [content]::String
Peer ::= [id]::String [how]::HowKind [export]::ExportKind [source]::Source [presentations]::Presentation [logics]::Logic
Presentation ::=
	[id]::String [how]::HowKind [export]::ExportKind [base]::String [source]::Source [dClasses]::DClassLogic ::=
	[id]::String [how]::HowKind [export]::ExportKind [source]::Source [dComponents]::DComponentDComponent ::=
	[id]::String [how]::HowKind [export]::ExportKind [mapsTo]::String [location]::String [source]::Source [dMethods]::DMethodDClass ::= [id]::String [how]::HowKind [export]::ExportKind [mapsTo]::String [mapsType]::String [source]::Source [dMethods]::DMethod [dProperties]::DProperty [events]::Event [listeners]::Listener
DProperty ::= [id]::String [mapsType]::MapsTypeKind [mapsTo]::String [returnType]::String [dMethods]::DMethod [dParams]::DParam
DMethod ::=
	[id]::String [how]::HowKind [export]::ExportKind [mapsTo]::String [returnType]::String [source]::Source [dParams]::DParam [script]::ScriptDParam ::= [id]::String [type]::String [value]::String
Script ::= [id]::String [type]::String [how]::HowKind [export]::ExportKind [value]::String [source]::String
Listener ::= [class]::String [attacher]::String
UsedInTagKind ::= [event]::ε [listener]::ε [part]::ε
MapsTypeKind ::= [attribute]::ε [getMethod]::ε [setMethod]::ε [method]::ε
ExtensibleElement ::= Peer
ExtensibleElement ::= Presentation
ExtensibleElement ::= Logic
ExtensibleElement ::= DComponent
ExtensibleElement ::= DClass
ExtensibleElement ::= DMethod
ExtensibleElement ::= Script
ExtensibleElement ::= Interface
ExtensibleElement ::= Structure
ExtensibleElement ::= Part
ExtensibleElement ::= Style
ExtensibleElement ::= Property
ExtensibleElement ::= Content
ExtensibleElement ::= Behavior
ExtensibleElement ::= Constant
ExtensibleElement ::= Rule
ExtensibleElement ::= Restructure
Source ::= LocalSource
Source ::= RemoteSource
LocalSource ::= [source]::ExtensibleElement
RemoteSource ::= [location]::String
Interface ::= [id]::String [how]::HowKind [export]::ExportKind [source]::Source [structure]::Structure [style]::Style [content]::Content [behavior]::Behavior
Structure ::=
	[id]::String [how]::HowKind [export]::ExportKind [source]::Source [parts]::PartPart ::= [id]::String [how]::HowKind [export]::ExportKind [class]::String [wherePart]::String [source]::Source [style]::Style [content]::Content [behavior]::Behavior [parts]::Part [repeats]::Repeat
Style ::=
	[id]::String [how]::HowKind [export]::ExportKind [source]::Source [properties]::PropertyProperty ::= [name]::String [how]::HowKind [export]::ExportKind [values]::String [parts]::Part [events]::Event [source]::Source [constants]::Constant [properties]::Property [references]::Reference [calls]::Call [iterators]::Iterator
Content ::=
	[id]::String [how]::HowKind [export]::ExportKind [source]::Source [constants]::ConstantBehavior ::=
	[id]::String [how]::HowKind [export]::ExportKind [source]::Source [rules]::RuleRepeat ::=
	[iterator]::Iterator [parts]::PartConstant ::=
	[id]::String [how]::HowKind [export]::ExportKind [model]::String [value]::String [source]::Source [constants]::ConstantReference ::= [constant]::Constant
Rule ::= [id]::String [how]::HowKind [export]::ExportKind [source]::Source [condition]::Condition [action]::Action
Condition ::= EventCondition
Condition ::= EqualCondition
Condition ::= OpCondition
EventCondition ::= [event]::Event
EqualCondition ::= [equal]::Equal
OpCondition ::= [op]::Operation
Action ::= Action_1
Action ::= Action_2
Action ::= Action_1 Action_2
Action_1 ::= [event]::Event [properties]::Property [calls]::Call [restructures]::Restructure
Action_2 ::= [whenTrue]::WhenTrue [whenFalse]::WhenFalse [byDefault]::ByDefault
Call ::=
	[name]::String [params]::ParameterParameter ::= PropertyParameter
Parameter ::= ReferenceParameter
Parameter ::= CallParameter
Parameter ::= OperationParameter
Parameter ::= EventParameter
Parameter ::= ConstantParameter
Parameter ::= IteratorParameter
PropertyParameter ::= [property]::Property
ReferenceParameter ::= [reference]::Reference
CallParameter ::= [call]::Call
OperationParameter ::= [op]::Operation
EventParameter ::= [event]::Event
ConstantParameter ::= [constant]::Constant
IteratorParameter ::= [iterator]::Iterator
Iterator ::= ConstantIterator
Iterator ::= PropertyIterator
Iterator ::= CallIterator
Iterator ::= TextIterator
ConstantIterator ::= [constant]::Constant
PropertyIterator ::= [property]::Property
CallIterator ::= [call]::Call
TextIterator ::= [value]::Integer
Event ::=
	[class]::String [parts]::PartEqual ::= EqualToConstant
Equal ::= EqualToProperty
Equal ::= EqualToReference
Equal ::= EqualToOperation
EqualToConstant ::= [constant]::Constant
EqualToProperty ::= [property]::Property
EqualToReference ::= [reference]::Reference
EqualToOperation ::= [op]::Operation
Operation ::= [name]::String [constants]::Constant [properties]::Property [references]::Reference [calls]::Call [ops]::Operation [events]::Event
Restructure ::= [how]::HowKind [atPart]::Part [wherePart]::Part [source]::Source [template]::Template
Branch ::= WhenTrue
Branch ::= WhenFalse
Branch ::= ByDefault
Branch ::= [properties]::Property [calls]::Call [restructure]::Restructure [op]::Operation [equal]::Equal [event]::Event
WhenTrue ::= [properties]::Property [calls]::Call [restructure]::Restructure [op]::Operation [equal]::Equal [event]::Event
WhenFalse ::= [properties]::Property [calls]::Call [restructure]::Restructure [op]::Operation [equal]::Equal [event]::Event
ByDefault ::= [properties]::Property [calls]::Call [restructure]::Restructure [op]::Operation [equal]::Equal [event]::Event
HowKind ::= [append]::ε [cascade]::ε [replace]::ε [union]::ε [delete]::ε
ExportKind ::= [hidden]::ε [optional]::ε [required]::ε
WhereKind ::= [first]::ε [last]::ε [before]::ε [after]::ε
String ::= string
Integer ::= integer
Template ::= BehaviorTemplate
Template ::= DClassTemplate
Template ::= DComponentTemplate
Template ::= ConstantTemplate
Template ::= ContentTemplate
Template ::= InterfaceTemplate
Template ::= LogicTemplate
Template ::= PartTemplate
Template ::= PeerTemplate
Template ::= PresentationTemplate
Template ::= PropertyTemplate
Template ::= RestructureTemplate
Template ::= RuleTemplate
Template ::= ScriptTemplate
Template ::= StructureTemplate
Template ::= StyleTemplate
BehaviorTemplate ::= [behavior]::Behavior
DClassTemplate ::= [dClass]::DClass
DComponentTemplate ::= [dComponent]::DComponent
ConstantTemplate ::= [constant]::Constant
ContentTemplate ::= [content]::Content
InterfaceTemplate ::= [interface]::Interface
LogicTemplate ::= [logic]::Logic
PartTemplate ::= [part]::Part
PeerTemplate ::= [peer]::Peer
PresentationTemplate ::= [presentation]::Presentation
PropertyTemplate ::= [property]::Property
RestructureTemplate ::= [restructure]::Restructure
RuleTemplate ::= [rule]::Rule
ScriptTemplate ::= [script]::Script
StructureTemplate ::= [structure]::Structure
StyleTemplate ::= [style]::Style