Browsable EXPRESS 0.2 Grammar

CC-BY

Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: §wip/atl/EXPRESSb/extracted
Source used for this grammar: Jim Steel, EXPRESS 0.2, EXPRESSb.ecore, 2010/07/23

Summary

Syntax

ONEOFConstraint ::=
	ε
SupertypeRule ::=
	[namedSupertype]::core/EntityType [constraints]::rules/SubtypeConstraint+ [assertsAbstract]::mof/Boolean
SubtypeConstraint ::=
	[constrainedSubtypes]::rules/Extent+ [equivalentRule]::core/Expression [collection]::rules/SupertypeRule
Extent ::=
	[constraints]::rules/SubtypeConstraint+ [content]::instances/EntityInstance+ [withinPopulation]::instances/Population [constraintRules]::rules/GlobalRule+ [forType]::core/EntityType [id]::core/ScopedId
TOTAL_OVERConstraint ::=
	ε
ANDConstraint ::=
	ε
GlobalRule ::=
	[supportingBody]::algorithms/Statement [constrainedExtents]::rules/Extent+ [containsRules]::rules/NamedRule+
NamedRule ::=
	[assertsExpression]::core/Expression [position]::mof/Integer
ProcedureCall ::=
	[invokes]::algorithms/Procedure [actualParameters]::expressions/ActualParameter+
SkipStatement ::=
	ε
AliasStatement ::=
	[bindsToReference]::statements/VARExpression [body]::algorithms/Statement [aliasVariable]::statements/AliasVariable
ControlVariable ::=
	[boundValue]::core/Expression [initialValue]::core/Expression [increment]::core/Expression
AliasVariable ::=
	[referent]::statements/VARExpression
VARCell ::=
	[refersTo]::algorithms/VARVariable [id]::core/Identifier
NullStatement ::=
	ε
AttributeCell ::=
	[refersTo]::core/ExplicitAttribute [baseEntity]::statements/VARExpression [id]::core/Identifier
StatementBlock ::=
	[bodyStatements_Statement]::algorithms/Statement+ [delimited]::mof/Boolean
CaseAction ::=
	[labelValue]::core/Expression+ [action]::algorithms/Statement [isDefault]::mof/Boolean
MemberCell ::=
	[indexValue]::core/Expression [baseAggregate]::statements/VARExpression
RepeatStatement ::=
	[whileExpression]::core/Expression [body]::algorithms/Statement [controlVariable]::statements/ControlVariable [untilExpression]::core/Expression
GroupCell ::=
	[baseEntity]::statements/VARExpression [refersTo]::core/SingleEntityType [id]::core/Identifier
VariableCell ::=
	[refersTo]::algorithms/Variable [id]::core/Identifier
CaseStatement ::=
	[cases]::statements/CaseAction+ [selectionExpression]::core/Expression
IfStatement ::=
	[ifCondition]::core/Expression [elseActions]::algorithms/Statement [thenActions]::algorithms/Statement
EscapeStatement ::=
	ε
ReturnStatement ::=
	[returnValue]::core/Expression
Assignment ::=
	[assignedValue]::core/Expression [variable]::statements/VARExpression
String ::=
	string
Integer ::=
	integer
Boolean ::=
	"true"
	"false"
RepeatCount ::=
	[derivation]::core/Expression
EnumItemRef ::=
	[refersTo]::instances/EnumerationItem [id]::core/Identifier
Literal ::=
	[refersTo]::instances/SimpleValue
BinaryIndex ::=
	[firstBit]::core/Expression [lastBit]::core/Expression
IndeterminateRef ::=
	[refersTo]::instances/Indeterminate
SELFRef ::=
	ε
BinaryOperation ::=
	[leftOperand]::core/Expression [rightOperand]::core/Expression [operator]::expressions/BinaryOperator
AggregateInitializer ::=
	[resultValue]::instances/GenericAggregate [bindings]::expressions/MemberBinding+
StringIndex ::=
	[firstCode]::core/Expression [lastCode]::core/Expression
PartialEntityConstructor ::=
	[resultValue]::instances/PartialEntityValue [attributeGroup]::core/SingleEntityType [bindings]::expressions/AttributeBinding+ [id]::core/Identifier
Coercion ::=
	[operand]::core/Expression [targetType]::core/VariableType
ActualParameter ::=
	[inProcedureCall]::statements/ProcedureCall [inFunctionCall]::expressions/FunctionCall [formalParameter]::algorithms/Parameter [actualReferent]::statements/VARExpression [actualValue]::core/Expression [position]::mof/Integer
ParameterRef ::=
	[refersTo]::algorithms/Parameter [id]::core/Identifier
AttributeRef ::=
	[refersTo]::core/Attribute [id]::core/Identifier
AggregateIndex ::=
	[indexValue]::core/Expression
GroupRef ::=
	[refersTo]::core/SingleEntityType [id]::core/Identifier
UnaryOperation ::=
	[unaryOperand]::core/Expression [operator]::expressions/UnaryOperator
UsedInRef ::=
	[inverseOf]::core/Attribute
ConstantRef ::=
	[refersTo]::instances/Constant [id]::core/Identifier
QueryExpression ::=
	[selectCondition]::core/Expression [queryVariable]::expressions/QueryVariable [aggregateOperand]::core/Expression
QueryVariable ::=
	ε
AttributeBinding ::=
	[attributeValue]::core/Expression [toValue]::instances/AttributeValue [attribute]::core/ExplicitAttribute [position]::mof/Integer
FunctionCall ::=
	[actualParameters]::expressions/ActualParameter+ [invokesFunction]::algorithms/Function [returnsResult]::algorithms/FunctionResult
MemberBinding ::=
	[repetition]::expressions/RepeatCount [toSlot]::instances/ListMember+ [memberValue]::core/Expression [position]::mof/Integer
ExtentRef ::=
	[refersTo]::core/NamedType [id]::core/Identifier
VariableRef ::=
	[refersTo]::algorithms/NamedVariable [id]::core/Identifier
SingleEntityType ::=
	[declaresExplicitAttribute]::core/ExplicitAttribute+ [declaresAttribute]::core/Attribute+ [declaredIn]::core/EntityType [equivalent]::core/PartialEntityType [id]::core/ScopedId
AGGREGATEType ::=
	[upperBound]::core/SizeConstraint [memberType]::core/ParameterType [constraint]::algorithms/ActualStructureConstraint [lowerBound]::core/SizeConstraint
GeneralBAGType ::=
	ε
DomainRule ::=
	[position]::mof/Integer
Expression ::=
	[evaluation]::core/Instance [interpretationContext]::core/Scope [dataType]::core/DataType [text]::core/ExpressText
InverseAttribute ::=
	[modelsRole]::core/DomainRole [explicit]::core/InvertibleAttribute [isUnique]::mof/Boolean
EnumerationType ::=
	[values]::instances/EnumerationItem+ [declaredItems]::instances/EnumerationItem+ [extension]::core/EnumerationType+ [base]::core/EnumerationType [isExtensible]::mof/Boolean
ArrayBound ::=
	[boundExpression]::core/Expression [bound]::mof/Integer
GeneralSETType ::=
	ε
LISTType ::=
	ε
Redeclaration ::=
	[derivation]::core/Expression [restrictedType]::core/AttributeType [refines]::core/Redeclaration [upperBound]::core/SizeConstraint [lowerBound]::core/SizeConstraint [scope]::core/EntityType [originalAttribute]::core/Attribute [refinedRole]::core/Role [position]::mof/Integer [isMandatory]::mof/Boolean [alias]::core/ScopedId
EntityType ::=
	[playsRole]::core/Role+ [redeclarations]::core/Redeclaration+ [attributes]::core/Attribute+ [playsRangeRole]::core/RangeRole+ [declares]::core/SingleEntityType [extension]::rules/Extent+ [invertibleAttributes]::core/InvertibleAttribute+ [playsDomainRole]::core/DomainRole+ [uniqueRules]::core/UniqueRule+ [usedIn]::core/InvertibleAttribute+ [subtypeOf]::core/EntityType+ [isAbstract]::mof/Boolean
PartialEntityType ::=
	[components]::core/SingleEntityType+
Schema ::=
	[documentation]::core/Remark+ [interfaces]::core/InterfacedElement+ [schemaElements]::core/SchemaElement+ [interfacedElements]::core/SchemaElement+ [name]::core/Identifier [version]::core/Identifier
InvertibleAttribute ::=
	[inverse]::core/InverseAttribute+ [rangeType]::core/EntityType+ [createsRelationship]::core/Relationship [referencingType]::core/EntityType+ [modelsRole]::core/RangeRole
InterfacedElement ::=
	[interfacingSchema]::core/Schema [refersTo]::core/SchemaElement [isUSE]::mof/Boolean [interfacedId]::core/ScopedId
NumericType ::=
	ε
UniqueRule ::=
	[domain]::core/EntityType [keyComponent]::core/Attribute+ [position]::mof/Integer
DomainRole ::=
	[rangeView]::core/InverseAttribute [domain]::core/EntityType [id]::core/ScopedId
GeneralLISTType ::=
	ε
BAGType ::=
	ε
RealType ::=
	[precision]::mof/Integer
LogicType ::=
	ε
GenericType ::=
	[constraint]::algorithms/ActualTypeConstraint [isEntity]::mof/Boolean
StringType ::=
	[stringLengthConstraint]::core/LengthConstraint
DerivedAttribute ::=
	[derivation]::core/Expression
RangeRole ::=
	[domainView]::core/InvertibleAttribute [range]::core/EntityType [id]::core/ScopedId
Remark ::=
	[describesSchema]::core/Schema+ [appearsIn]::core/Scope [describesElement]::core/NamedElement+ [isTagged]::mof/Boolean [isTail]::mof/Boolean [text]::core/ExpressText
SizeConstraint ::=
	[bound]::mof/Integer
SETType ::=
	ε
SpecializedType ::=
	[underlyingType]::core/ConcreteType
GeneralARRAYType ::=
	[hiIndex]::core/ArrayBound [loIndex]::core/ArrayBound [isOptional]::mof/Boolean
Relationship ::=
	[domain]::core/DomainRole [roles]::core/Role [basedOn]::core/InvertibleAttribute [range]::core/RangeRole
LengthConstraint ::=
	[maxLength]::mof/Integer [isFixed]::mof/Boolean
BinaryType ::=
	[binaryLengthConstraint]::core/LengthConstraint
ScopedId ::=
	[localName]::core/Identifier [definingScope]::core/Scope
SelectType ::=
	[allowedTypes]::core/NamedType+ [extension]::core/SelectType+ [base]::core/SelectType [selectList]::core/NamedType+ [isExtensible]::mof/Boolean [isEntity]::mof/Boolean
ExplicitAttribute ::=
	[isOptional]::mof/Boolean
ARRAYType ::=
	[loIndex]::core/ArrayBound [hiIndex]::core/ArrayBound [isOptional]::mof/Boolean
ActualTypeConstraint ::=
	[matchingType]::core/GenericType [requiredType]::algorithms/ActualDataType [label]::core/Identifier
FunctionResult ::=
	ε
Function ::=
	[result]::algorithms/FunctionResult
InParameter ::=
	[variable]::algorithms/InVariable
LocalVariable ::=
	[initialValue]::core/Expression
ActualStructure ::=
	ε
ActualGenericType ::=
	[refersTo]::algorithms/ActualDataType [isEntity]::mof/Boolean [label]::core/Identifier
Statement ::=
	[inBlock]::statements/StatementBlock [bodyStatementsSkipStatement]::statements/SkipStatement+ [bodyStatementsEscapeStatement]::statements/EscapeStatement+ [controlledBy]::statements/RepeatStatement [implements]::algorithms/Algorithm [text]::core/ExpressText
InVariable ::=
	[source]::algorithms/InParameter
Procedure ::=
	ε
ActualARRAYType ::=
	[hiIndex]::core/ArrayBound [loIndex]::core/ArrayBound [isOptional]::mof/Boolean
ActualSETType ::=
	ε
ActualAGGREGATEType ::=
	[upperBound]::core/SizeConstraint [refersTo]::algorithms/ActualStructure [memberType]::core/VariableType [lowerBound]::core/SizeConstraint [label]::core/Identifier
ActualStructureConstraint ::=
	[matchingStructure]::core/AGGREGATEType [requiredStructure]::algorithms/ActualStructure [label]::core/Identifier
ActualLISTType ::=
	ε
VARParameter ::=
	ε
ActualDataType ::=
	ε
ActualBAGType ::=
	ε
AttributeValue ::=
	[actualValue]::core/Instance [attribute]::core/ExplicitAttribute
ARRAYValue ::=
	[memberSlot]::instances/ArrayMember+
RoleName ::=
	[refersTo]::core/Attribute [represents]::core/ScopedId
EntityInstance ::=
	[state]::instances/EntityValue [instanceOf]::core/EntityType+ [id]::instances/EntityName
IntegerValue ::=
	ε
Constant ::=
	[valueExpression]::core/Expression [actualValue]::core/Instance [dataType]::core/InstantiableType
LogicalValue ::=
	ε
ListMember ::=
	[memberValue]::core/Instance [position]::mof/Integer
BagMember ::=
	[memberValue]::core/Instance [count]::mof/Integer
SingleEntityValue ::=
	[equivalent]::instances/PartialEntityValue [ofType]::core/SingleEntityType [properties]::instances/AttributeValue+
Indeterminate ::=
	ε
SingleLeafInstance ::=
	[characterizingType]::core/EntityType
GenericAggregate ::=
	ε
BinaryValue ::=
	ε
SpecializedValue ::=
	[fundamentalValue]::instances/ConcreteValue
BAGValue ::=
	[memberSlot]::instances/BagMember+
EnumerationItem ::=
	[declaredIn]::core/EnumerationType [position]::mof/Integer
EntityValue ::=
	[correspondsTo]::core/EntityType+ [describes]::instances/EntityInstance+
SETValue ::=
	[memberValue]::core/Instance+
ArrayMember ::=
	[memberValue]::core/Instance [index]::mof/Integer
Population ::=
	[compositionEntityInstance]::instances/EntityInstance+ [compositionInstance]::core/Instance+ [governingSchema]::core/Schema+
RealValue ::=
	ε
BooleanValue ::=
	ε
LISTValue ::=
	[memberSlot]::instances/ListMember+
StringValue ::=
	ε
TypeName ::=
	[refersTo]::core/NamedType [represents]::core/ScopedId
PartialEntityValue ::=
	[components]::instances/SingleEntityValue+
NumberValue ::=
	ε
MultiLeafInstance ::=
	ε

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