Browsable BPMN (Business Process Model and Notation) Grammar

CC-BY

Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: dsl/business/bpmn/jouault/extracted
Source used for this grammar: Frédéric Jouault, BPMN 1.1, BPMN.ecore, 2007/03/06

Summary

Syntax

Boolean ::=
	"true"
	"false"
Integer ::=
	integer
String ::=
	string
Activity ::=
	SubProcess
Activity ::=
	[orderedMessages]::MessagingEdge+ [incomingMessages]::MessagingEdge+ [outgoingMessages]::MessagingEdge+ [groups]::Group+ [activityType]::ActivityType [eventHandlerFor]::SubProcess [lane]::Lane [looping]::Boolean
ActivityType ::=
	[SubProcess]::ε
	[EventEndMultiple]::ε
	[EventEndMessage]::ε
	[EventIntermediateMessage]::ε
	[EventStartMultiple]::ε
	[EventIntermediateMultiple]::ε
	[GatewayParallel]::ε
	[EventStartTimer]::ε
	[EventStartEmpty]::ε
	[EventIntermediateCancel]::ε
	[EventEndError]::ε
	[EventStartRule]::ε
	[EventEndTerminate]::ε
	[EventStartLink]::ε
	[EventIntermediateLink]::ε
	[EventEndCancel]::ε
	[EventEndLink]::ε
	[EventIntermediateEmpty]::ε
	[EventIntermediateCompensation]::ε
	[Task]::ε
	[GatewayDataBasedExclusive]::ε
	[GatewayComplex]::ε
	[EventEndEmpty]::ε
	[EventIntermediateError]::ε
	[EventIntermediateTimer]::ε
	[EventEndCompensation]::ε
	[EventStartMessage]::ε
	[GatewayDataBasedInclusive]::ε
	[GatewayEventBasedExclusive]::ε
	[EventIntermediateRule]::ε
Artifact ::=
	DataObject
Artifact ::=
	Group
Artifact ::=
	TextAnnotation
Artifact ::=
	[associations]::Association+ [artifactsContainer]::ArtifactsContainer
ArtifactsContainer ::=
	BpmnDiagram
ArtifactsContainer ::=
	Graph
ArtifactsContainer ::=
	[artifacts]::Artifact+
Association ::=
	[direction]::DirectionType [source]::Artifact [target]::IdentifiableNode
BpmnDiagram ::=
	[pools]::Pool+ [messages]::MessagingEdge+ [author]::String [title]::String
DataObject ::=
	[associations]::Association+ [artifactsContainer]::ArtifactsContainer
DirectionType ::=
	[Both]::ε
	[From]::ε
	[To]::ε
	[None]::ε
Graph ::=
	Pool
Graph ::=
	SubProcess
Graph ::=
	[vertices]::Vertex+ [sequenceEdges]::SequenceEdge+
Group ::=
	[activities]::Activity+
Identifiable ::=
	IdentifiableNode
Identifiable ::=
	Artifact
Identifiable ::=
	BpmnDiagram
Identifiable ::=
	Lane
Identifiable ::=
	MessagingEdge
Identifiable ::=
	SequenceEdge
Identifiable ::=
	[iD]::ID
IdentifiableNode ::=
	Vertex
IdentifiableNode ::=
	Graph
IdentifiableNode ::=
	[associations]::Association+
Lane ::=
	[activities]::Activity+ [pool]::Pool
MessagingEdge ::=
	[bpmnDiagram]::BpmnDiagram [source]::Activity [target]::Activity
NamedBpmnObject ::=
	ArtifactsContainer
NamedBpmnObject ::=
	Activity
NamedBpmnObject ::=
	Artifact
NamedBpmnObject ::=
	Lane
NamedBpmnObject ::=
	MessagingEdge
NamedBpmnObject ::=
	Pool
NamedBpmnObject ::=
	SequenceEdge
NamedBpmnObject ::=
	[documentation]::String [name]::String [ncname]::String
Pool ::=
	[lanes]::Lane+ [bpmnDiagram]::BpmnDiagram
SequenceEdge ::=
	[graph]::Graph [isDefault]::Boolean [source]::Vertex [target]::Vertex
SubProcess ::=
	[eventHandlers]::Activity+ [isTransaction]::Boolean
TextAnnotation ::=
	[associations]::Association+ [artifactsContainer]::ArtifactsContainer
Vertex ::=
	Activity
Vertex ::=
	[outgoingEdges]::SequenceEdge+ [incomingEdges]::SequenceEdge+ [graph]::Graph

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