Browsable KDM 1.0 Grammar

CC-BY

Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: ontoware/kdm/v1.0/atlas/extracted
Source used for this grammar: ATLAS Group, KM3 version auto-generated using ATL by the ATLAS Group (INRIA & LINA) from the Ecore version provided within the KDM Eclipse Plugin (KDM Analytics, Inc), KDM 1.0, KDM.ecore, 2007/05/09

Summary

Syntax

ActionElement ::=
	[kind]::core/String [codeElement]::code/AbstractCodeElement+ [actionRelation]::action/AbstractActionRelationship+
ControlFlow ::=
	[to]::action/ActionElement [from]::action/ActionElement
Calls ::=
	[to]::code/ControlElement [from]::action/ActionElement
Creates ::=
	[to]::code/Datatype [from]::action/ActionElement
Reads ::=
	[to]::code/DataElement [from]::action/ActionElement
Writes ::=
	[to]::code/DataElement [from]::action/ActionElement
CompliesTo ::=
	[to]::code/CodeItem [from]::action/ActionElement
Flow ::=
	ε
TrueFlow ::=
	ε
FalseFlow ::=
	ε
GuardedFlow ::=
	ε
UsesType ::=
	[to]::code/Datatype [from]::action/ActionElement
Addresses ::=
	[to]::code/ComputationalObject [from]::action/ActionElement
ActionRelationship ::=
	[to]::core/KDMEntity [from]::action/ActionElement
Throws ::=
	[to]::code/DataElement [from]::action/ActionElement
Dispatches ::=
	[to]::code/DataElement [from]::action/ActionElement
EntryFlow ::=
	[to]::action/ActionElement [from]::code/ControlElement
BlockUnit ::=
	ε
ExceptionUnit ::=
	ε
TryUnit ::=
	ε
FinallyUnit ::=
	ε
CatchUnit ::=
	ε
ExitFlow ::=
	[to]::action/ActionElement [from]::action/ActionElement
ExceptionFlow ::=
	[to]::action/ActionElement [from]::action/ActionElement
BuildResource ::=
	[implementation]::core/KDMEntity+ [groupedBuild]::build/AbstractBuildElement+ [buildElement]::build/AbstractBuildElement+
BuildDescription ::=
	[source]::source/SourceRef+ [text]::core/String
SymbolicLink ::=
	ε
LinksTo ::=
	[to]::build/AbstractBuildElement [from]::build/SymbolicLink
Consumes ::=
	[to]::build/AbstractBuildElement [from]::build/BuildStep
BuildModel ::=
	[buildElement]::build/AbstractBuildElement+
BuildComponent ::=
	ε
Supplier ::=
	ε
Tool ::=
	ε
BuildElement ::=
	ε
BuildRelationship ::=
	[to]::core/KDMEntity [from]::build/AbstractBuildElement
SuppliedBy ::=
	[to]::build/Supplier [from]::build/AbstractBuildElement
Library ::=
	ε
BuildStep ::=
	ε
Produces ::=
	[to]::build/AbstractBuildElement [from]::build/BuildStep
SupportedBy ::=
	[to]::build/Tool [from]::build/BuildStep
BuildProduct ::=
	ε
DescribedBy ::=
	[to]::build/BuildDescription [from]::build/BuildStep
ControlElement ::=
	[type]::code/Datatype [entryFlow]::action/EntryFlow+ [codeElement]::code/AbstractCodeElement+
MethodUnit ::=
	[kind]::code/MethodKind [export]::code/ExportKind
Module ::=
	[codeElement]::code/AbstractCodeElement+
CodeAssembly ::=
	ε
CallableUnit ::=
	[kind]::code/CallableKind
TemplateUnit ::=
	[codeElement]::code/CodeItem+
TemplateParameter ::=
	ε
InstanceOf ::=
	[to]::code/TemplateUnit [from]::code/AbstractCodeElement
CompilationUnit ::=
	ε
CodeModel ::=
	[codeElement]::code/AbstractCodeElement+
DerivedType ::=
	[itemUnit]::code/ItemUnit
ArrayType ::=
	[size]::core/Integer [indexUnit]::code/IndexUnit
PrimitiveType ::=
	ε
BooleanType ::=
	ε
CharType ::=
	ε
ClassUnit ::=
	[isAbstract]::core/Boolean [codeElement]::code/CodeItem+
CompositeType ::=
	[itemUnit]::code/ItemUnit+
RecordType ::=
	ε
EnumeratedType ::=
	[value]::code/Value+
Extends ::=
	[to]::code/Datatype [from]::code/Datatype
ScaledType ::=
	ε
FloatType ::=
	ε
HasType ::=
	[to]::code/Datatype [from]::code/CodeItem
ImplementationOf ::=
	[to]::code/CodeItem [from]::code/CodeItem
Implements ::=
	[to]::code/CodeItem [from]::code/CodeItem
IntegerType ::=
	ε
InterfaceUnit ::=
	[codeElement]::code/CodeItem+
PointerType ::=
	ε
TypeUnit ::=
	ε
RangeType ::=
	[lower]::core/Integer [upper]::core/Integer
Signature ::=
	[parameterUnit]::code/ParameterUnit+
DataElement ::=
	[type]::code/Datatype [ext]::core/String [size]::core/Integer [codeElement]::code/Datatype+
StringType ::=
	ε
ChoiceType ::=
	ε
NamespaceUnit ::=
	[groupedCode]::code/CodeItem+
VisibleIn ::=
	[to]::code/CodeItem [from]::code/CodeItem
CommentUnit ::=
	[text]::core/String
SharedUnit ::=
	ε
DecimalType ::=
	ε
DateType ::=
	ε
TimeType ::=
	ε
MethodKind ::=
	[operator]::ε
	[destructor]::ε
	[method]::ε
	[abstract]::ε
	[virtual]::ε
	[unknown]::ε
	[constructor]::ε
VoidType ::=
	ε
Value ::=
	ε
ValueList ::=
	[valueElement]::code/ValueElement+
StorableUnit ::=
	[kind]::code/StorableKind
MemberUnit ::=
	[export]::code/ExportKind
ParameterUnit ::=
	[kind]::code/ParameterKind [pos]::core/Integer
ItemUnit ::=
	ε
IndexUnit ::=
	ε
SynonymType ::=
	ε
SequenceType ::=
	[size]::core/Integer
BagType ::=
	[size]::core/Integer
SetType ::=
	[size]::core/Integer
CodeElement ::=
	ε
CodeRelationship ::=
	[to]::core/KDMEntity [from]::code/CodeItem
ParameterKind ::=
	[byReference]::ε
	[unknown]::ε
	[exception]::ε
	[return]::ε
	[byValue]::ε
	[catchall]::ε
	[byName]::ε
	[throws]::ε
	[variadic]::ε
ExportKind ::=
	[private]::ε
	[unknown]::ε
	[public]::ε
	[protected]::ε
	[final]::ε
LanguageUnit ::=
	ε
OrdinalType ::=
	ε
BitstringType ::=
	ε
OctetType ::=
	ε
OctetstringType ::=
	ε
BitType ::=
	ε
StorableKind ::=
	[global]::ε
	[external]::ε
	[static]::ε
	[unknown]::ε
	[register]::ε
	[local]::ε
CallableKind ::=
	[external]::ε
	[regular]::ε
	[stored]::ε
	[operator]::ε
	[unknown]::ε
Imports ::=
	[to]::code/CodeItem [from]::code/CodeItem
Package ::=
	ε
ParameterTo ::=
	[to]::code/CodeItem [from]::code/AbstractCodeElement
TemplateType ::=
	ε
PreprocessorDirective ::=
	[codeElement]::code/AbstractCodeElement+
MacroDirective ::=
	ε
MacroUnit ::=
	[kind]::code/MacroKind
ConditionalDirective ::=
	ε
IncludeDirective ::=
	ε
MacroKind ::=
	[external]::ε
	[unknown]::ε
	[option]::ε
	[undefined]::ε
	[regular]::ε
VariantTo ::=
	[to]::code/PreprocessorDirective [from]::code/PreprocessorDirective
Expands ::=
	[to]::code/PreprocessorDirective [from]::code/PreprocessorDirective
Redefines ::=
	[to]::code/PreprocessorDirective [from]::code/PreprocessorDirective
GeneratedFrom ::=
	[to]::code/PreprocessorDirective [from]::code/AbstractCodeElement
Includes ::=
	[to]::code/AbstractCodeElement [from]::code/PreprocessorDirective
HasValue ::=
	[to]::code/CodeItem [from]::code/CodeItem
ConceptualModel ::=
	[conceptualElement]::conceptual/AbstractConceptualElement+
TermUnit ::=
	ε
ConceptualContainer ::=
	[conceptualElement]::conceptual/AbstractConceptualElement+
FactUnit ::=
	ε
ConceptualRelationship ::=
	[to]::core/KDMEntity [from]::conceptual/AbstractConceptualElement
BehaviorUnit ::=
	ε
RuleUnit ::=
	ε
ScenarioUnit ::=
	ε
ConceptualFlow ::=
	[to]::conceptual/ConceptualContainer [from]::conceptual/ConceptualContainer
ConceptualElement ::=
	ε
ConceptualRole ::=
	[conceptualElement]::conceptual/AbstractConceptualElement
AggregatedRelationship ::=
	[from]::core/KDMEntity [to]::core/KDMEntity [relation]::core/KDMRelationship+ [density]::core/Integer
String ::=
	string
Integer ::=
	integer
Boolean ::=
	"true"
	"false"
DataModel ::=
	[dataElement]::data/AbstractDataElement+
DataResource ::=
	ε
IndexElement ::=
	[implementation]::code/ItemUnit+
UniqueKey ::=
	ε
Index ::=
	ε
KeyRelation ::=
	[to]::data/UniqueKey [from]::data/ReferenceKey
ReferenceKey ::=
	ε
DataContainer ::=
	[dataElement]::data/DataResource+
Catalog ::=
	ε
RelationalSchema ::=
	[codeElement]::code/CodeItem+
ColumnSet ::=
	[itemUnit]::code/ItemUnit+
RelationalTable ::=
	ε
RelationalView ::=
	ε
RecordFile ::=
	ε
DataEvent ::=
	[kind]::core/String
XMLSchema ::=
	[contentElement]::data/AbstractContentElement+
ComplexContentType ::=
	[contentElement]::data/AbstractContentElement+
AllContent ::=
	ε
SeqContent ::=
	ε
ChoiceContent ::=
	ε
ContentItem ::=
	[type]::data/ComplexContentType [contentElement]::data/AbstractContentElement+
GroupContent ::=
	ε
ContentRestriction ::=
	[kind]::core/String [value]::core/String
SimpleContentType ::=
	[type]::data/ComplexContentType+ [kind]::core/String
ExtendedDataElement ::=
	ε
DataRelationship ::=
	[to]::core/KDMEntity [from]::data/AbstractDataElement
MixedContent ::=
	ε
ContentReference ::=
	ε
DataAction ::=
	[kind]::core/String [implementation]::action/ActionElement+ [dataElement]::data/DataEvent+
ReadsColumnSet ::=
	[to]::data/ColumnSet [from]::action/ActionElement
ContentAttribute ::=
	ε
TypedBy ::=
	[to]::data/ComplexContentType [from]::data/ContentItem
ReferenceTo ::=
	[to]::data/ContentItem [from]::data/ContentItem
RestrictionOf ::=
	[to]::data/ComplexContentType [from]::data/ComplexContentType
ExtensionTo ::=
	[to]::data/ComplexContentType [from]::data/ComplexContentType
DatatypeOf ::=
	[to]::code/Datatype [from]::data/ComplexContentType
HasContent ::=
	[to]::data/AbstractDataElement [from]::action/ActionElement
WritesColumnSet ::=
	[to]::data/ColumnSet [from]::action/ActionElement
ProducesDataEvent ::=
	[to]::data/DataEvent [from]::action/ActionElement
DataSegment ::=
	ε
ContentElement ::=
	ε
ManagesData ::=
	[to]::data/AbstractDataElement [from]::action/ActionElement
EventModel ::=
	[eventElement]::event/AbstractEventElement+
Event ::=
	[kind]::core/String
EventRelationship ::=
	[to]::core/KDMEntity [from]::event/AbstractEventElement
EventResource ::=
	[eventElement]::event/AbstractEventElement+
State ::=
	ε
Transition ::=
	ε
OnEntry ::=
	ε
OnExit ::=
	ε
EventAction ::=
	[kind]::core/String [eventElement]::event/Event+
ReadsState ::=
	[to]::event/State [from]::action/ActionElement
ProducesEvent ::=
	[to]::event/Event [from]::action/ActionElement
ConsumesEvent ::=
	[to]::event/Event [from]::event/Transition
NextState ::=
	[to]::event/State [from]::event/Transition
InitialState ::=
	ε
EventElement ::=
	ε
HasState ::=
	[to]::event/AbstractEventElement [from]::action/ActionElement
SourceRef ::=
	[region]::source/SourceRegion+ [language]::core/String [snippet]::core/String
SourceRegion ::=
	[file]::source/SourceFile [startLine]::core/Integer [startPosition]::core/Integer [endLine]::core/Integer [endPosition]::core/Integer [language]::core/String [path]::core/String
InventoryModel ::=
	[inventoryElement]::source/AbstractInventoryElement+
InventoryItem ::=
	[version]::core/String [path]::core/String
SourceFile ::=
	[language]::core/String [encoding]::core/String
Image ::=
	ε
ResourceDescription ::=
	ε
Configuration ::=
	ε
InventoryContainer ::=
	[inventoryElement]::source/AbstractInventoryElement+
Directory ::=
	[path]::core/String
Project ::=
	ε
BinaryFile ::=
	ε
ExecutableFile ::=
	ε
DependsOn ::=
	[to]::source/AbstractInventoryElement [from]::source/AbstractInventoryElement
InventoryElement ::=
	ε
InventoryRelationship ::=
	[to]::core/KDMEntity [from]::source/AbstractInventoryElement
PlatformModel ::=
	[platformElement]::platform/AbstractPlatformElement+
Requires ::=
	[to]::platform/AbstractPlatformElement [from]::platform/DeployedComponent
ResourceType ::=
	[platformElement]::platform/AbstractPlatformElement+
NamingResource ::=
	ε
MarshalledResource ::=
	ε
MessagingResource ::=
	ε
FileResource ::=
	ε
ExecutionResource ::=
	ε
PlatformAction ::=
	[kind]::core/String [platformElement]::platform/PlatformEvent+
ExternalActor ::=
	ε
DataManager ::=
	ε
BindsTo ::=
	[to]::platform/ResourceType [from]::platform/ResourceType
PlatformElement ::=
	ε
PlatformRelationship ::=
	[to]::core/KDMEntity [from]::platform/AbstractPlatformElement
PlatformEvent ::=
	[kind]::core/String
LockResource ::=
	ε
DeployedSoftwareSystem ::=
	[groupedComponent]::platform/DeployedComponent+
Machine ::=
	[deployedComponent]::platform/DeployedComponent+ [deployedResource]::platform/DeployedResource+
DeployedComponent ::=
	[groupedCode]::code/Module+
DeployedResource ::=
	[platformElement]::platform/ResourceType+
Loads ::=
	[to]::platform/DeployedComponent [from]::action/ActionElement
Spawns ::=
	[to]::platform/RuntimeResource [from]::action/ActionElement
RuntimeResource ::=
	ε
Thread ::=
	ε
Process ::=
	ε
ReadsResource ::=
	[to]::platform/ResourceType [from]::action/ActionElement
WritesResource ::=
	[to]::platform/ResourceType [from]::action/ActionElement
ManagesResource ::=
	[to]::platform/ResourceType [from]::action/ActionElement
DefinedBy ::=
	[to]::code/CodeItem [from]::action/ActionElement
StreamResource ::=
	ε
Subsystem ::=
	ε
Layer ::=
	ε
StructureModel ::=
	[structureElement]::structure/AbstractStructureElement+
Component ::=
	ε
SoftwareSystem ::=
	ε
StructureRelationship ::=
	[to]::core/KDMEntity [from]::structure/AbstractStructureElement
ArchitectureView ::=
	ε
StructureElement ::=
	ε
Audit ::=
	[description]::core/String [author]::core/String [date]::core/String
Segment ::=
	[segment]::kdm/Segment+ [model]::kdm/KDMModel+
Attribute ::=
	[tag]::core/String [value]::core/String
Annotation ::=
	[text]::core/String
TagDefinition ::=
	[tag]::core/String [type]::core/String
Stereotype ::=
	[tag]::kdm/TagDefinition+ [name]::core/String [type]::core/String
ExtensionFamily ::=
	[stereotype]::kdm/Stereotype+ [name]::core/String
TaggedRef ::=
	[reference]::core/ModelElement
TaggedValue ::=
	[value]::core/String
UIResource ::=
	[UIElement]::ui/AbstractUIElement+
UIDisplay ::=
	ε
Screen ::=
	ε
Report ::=
	ε
UIModel ::=
	[UIElement]::ui/AbstractUIElement+
UILayout ::=
	[to]::ui/UIResource [from]::ui/UIResource
UIField ::=
	ε
DisplaysImage ::=
	[to]::source/Image [from]::action/ActionElement
Displays ::=
	[to]::ui/UIResource [from]::action/ActionElement
UIFlow ::=
	[to]::ui/AbstractUIElement [from]::ui/AbstractUIElement
UIElement ::=
	ε
UIRelationship ::=
	[to]::core/KDMEntity [from]::ui/AbstractUIElement
UIAction ::=
	[kind]::core/String [UIElement]::ui/UIEvent+
UIEvent ::=
	[kind]::core/String
ReadsUI ::=
	[to]::ui/UIResource [from]::action/ActionElement
WritesUI ::=
	[to]::ui/UIResource [from]::action/ActionElement
ManagesUI ::=
	[to]::ui/UIResource [from]::action/ActionElement

GrammarLabMaintained by Dr. Vadim Zaytsev a.k.a. @grammarware. Last updated in September 2015. []