
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: pl1/bruneliere/extracted
Source used for this grammar: Hugo Brunelière, PL/1 0.1, PL1.ecore, 2005/08/11
PLIClassifier, PLISimpleType, PLINamedType, PLIComposedType, PLIAlias, PLIAttribute, PLIComputationalType, PLINonComputationalType, PLIElement, PLIElementInitialValue, PLISourceText, PLIArray, PLIFixedBoundArray, PLIFixedLboundArray, PLIHBoundArray, PLIVariableBoundArray, String, Integer), 0 root (—), 0 top (—), 0 bottom (—).[name] 3, [typedElements] 2, [alias] 3, [elements], [type], [contains], [level], [sharedType], [group], [initial], [source] 2, [array], [initialValue], [fileName], [arrayOf], [IBound] 2, [uBound] 2, [referredTo] 4, [uBoundToAllocate], [IBoundToAllocate] 2, [hBoundToAllocate].PLIClassifier ::= PLISimpleType
PLIClassifier ::= PLINamedType
PLIClassifier ::= PLIComposedType
PLIClassifier ::=
[name]::String [typedElements]::PLIElementPLISimpleType ::= PLIComputationalType
PLISimpleType ::= PLINonComputationalType
PLISimpleType ::= [alias]::PLIAlias
PLINamedType ::=
[name]::String [typedElements]::PLIElementPLIComposedType ::=
[elements]::PLIElementPLIAlias ::=
[type]::PLISimpleType [contains]::PLIAttributePLIAttribute ::= ε
PLIComputationalType ::= [alias]::PLIAlias
PLINonComputationalType ::= [alias]::PLIAlias
PLIElement ::= [level]::String [name]::String [sharedType]::PLIClassifier [group]::PLIComposedType [initial]::PLIElementInitialValue [source]::PLISourceText [array]::PLIArray
PLIElementInitialValue ::= [initialValue]::String
PLISourceText ::= [source]::String [fileName]::String
PLIArray ::= PLIFixedBoundArray
PLIArray ::= PLIFixedLboundArray
PLIArray ::= PLIHBoundArray
PLIArray ::= PLIVariableBoundArray
PLIArray ::= [arrayOf]::PLIElement
PLIFixedBoundArray ::= [IBound]::Integer [uBound]::Integer [referredTo]::PLIElement
PLIFixedLboundArray ::= [IBound]::Integer [uBoundToAllocate]::String [referredTo]::PLIElement
PLIHBoundArray ::= [uBound]::Integer [IBoundToAllocate]::String [referredTo]::PLIElement
PLIVariableBoundArray ::= [IBoundToAllocate]::String [hBoundToAllocate]::String [referredTo]::PLIElement
String ::= string
Integer ::= integer