Browsable PL/I Grammar

CC-BY

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

Summary

Syntax

PLIClassifier ::=
	PLISimpleType
PLIClassifier ::=
	PLINamedType
PLIClassifier ::=
	PLIComposedType
PLIClassifier ::=
	[name]::String [typedElements]::PLIElement+
PLISimpleType ::=
	PLIComputationalType
PLISimpleType ::=
	PLINonComputationalType
PLISimpleType ::=
	[alias]::PLIAlias
PLINamedType ::=
	[name]::String [typedElements]::PLIElement+
PLIComposedType ::=
	[elements]::PLIElement+
PLIAlias ::=
	[type]::PLISimpleType [contains]::PLIAttribute+
PLIAttribute ::=
	ε
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

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