Menu

[641a72]: / spl.bnf  Maximize  Restore  History

Download this file

161 lines (160 with data), 5.2 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
$Punch
$
$ BNF for Student PL/I
$
$ Reverse engineered by: Daniel Weaver
$ February 2019
$
<PROGRAM> <STATEMENT LIST>
<STATEMENT LIST> <STATEMENT>
<STATEMENT LIST> <STATEMENT LIST> <STATEMENT>
<STATEMENT> <BASIC STATEMENT>
<STATEMENT> <CONDITIONAL STATEMENT>
<BASIC STATEMENT> <ASSIGNMENT STATEMENT> ;
<BASIC STATEMENT> <GO TO STATEMENT> ;
<BASIC STATEMENT> <RETURN STATEMENT> ;
<BASIC STATEMENT> <CALL STATEMENT> ;
<BASIC STATEMENT> <DECLARATION STATEMENT> ;
<BASIC STATEMENT> <BLOCK> ;
<BASIC STATEMENT> <GROUP> ;
<BASIC STATEMENT> <PROCEDURE DEFINITION> ;
<BASIC STATEMENT> <ALLOCATION STATEMENT> ;
<BASIC STATEMENT> <FREE STATEMENT> ;
<BASIC STATEMENT> ;
<BASIC STATEMENT> <LABEL DEFINITION> <BASIC STATEMENT>
<CONDITIONAL STATEMENT> <IF CLAUSE> THEN <STATEMENT>
<CONDITIONAL STATEMENT> <IF CLAUSE> THEN <BASIC STATEMENT> ELSE <STATEMENT>
<CONDITIONAL STATEMENT> <LABEL DEFINITION> <CONDITIONAL STATEMENT>
<IF CLAUSE> IF <EXPRESSION>
<BLOCK> <BLOCK HEAD> <STATEMENT LIST> <ENDING>
<BLOCK HEAD> BEGIN ;
<GROUP> <GROUP HEAD> <STATEMENT LIST> <ENDING>
<LABEL DEFINITION> <IDENTIFIER> :
<ENDING> END
<ENDING> END <IDENTIFIER>
<ENDING> <LABEL DEFINITION> <ENDING>
<PROCEDURE DEFINITION> <PROCEDURE HEAD> <STATEMENT LIST> <ENDING>
<PROCEDURE HEAD> <LABEL DEFINITION> PROCEDURE ;
<PROCEDURE HEAD> <LABEL DEFINITION> PROCEDURE <ATTRIBUTE LIST> ;
<PROCEDURE HEAD> <LABEL DEFINITION> PROCEDURE <FORMAL PARAMETERS> ;
<PROCEDURE HEAD> <LABEL DEFINITION> PROCEDURE <FORMAL PARAMETERS> <ATTRIBUTE LIST> ;
<FORMAL PARAMETERS> (1 <PARAMETER LIST> )
<PARAMETER LIST> <IDENTIFIER>
<PARAMETER LIST> <PARAMETER LIST> ,1 <IDENTIFIER>
<ATTRIBUTE LIST> <ATTRIBUTE>
<ATTRIBUTE LIST> <ATTRIBUTE LIST> <ATTRIBUTE>
<ATTRIBUTE> (2 <ASTERISK LIST> )
<ATTRIBUTE> <TYPE>
<ATTRIBUTE> ENTRY
<ATTRIBUTE> LABEL
<DECLARATION STATEMENT> DECLARE <DECLARATION LIST>
<DECLARATION LIST> <DECLARATION ELEMENT>
<DECLARATION LIST> <DECLARATION LIST> ,2 <DECLARATION ELEMENT>
<DECLARATION ELEMENT> <DECLARATION PRIMARY>
<DECLARATION ELEMENT> <DECLARATION PRIMARY> <ATTRIBUTE LIST>
<DECLARATION PRIMARY> <IDENTIFIER>
<DECLARATION PRIMARY> (5 <DECLARATION LIST> )
<ASTERISK LIST> *
<ASTERISK LIST> <ASTERISK LIST> ,3 *
<TYPE> BIT
<TYPE> FIXED
<TYPE> FLOAT
<TYPE> CHARACTER
<ASSIGNMENT STATEMENT> <VARIABLE> =1 <EXPRESSION>
<ASSIGNMENT STATEMENT> <VARIABLE> ,8 <ASSIGNMENT STATEMENT>
<GO TO STATEMENT> <GO TO> <VARIABLE>
<GO TO> GO TO
<GO TO> GOTO
<RETURN STATEMENT> RETURN
<RETURN STATEMENT> RETURN <EXPRESSION>
<CALL STATEMENT> CALL <VARIABLE>
<ALLOCATION STATEMENT> ALLOCATE <ALLOCATION LIST>
<ALLOCATION LIST> <ALLOCATION ELEMENT>
<ALLOCATION LIST> <ALLOCATION LIST> ,4 <ALLOCATION ELEMENT>
<ALLOCATION ELEMENT> <IDENTIFIER 1> (3 <BOUNDS LIST> )
<BOUNDS LIST> <BOUNDS>
<BOUNDS LIST> <BOUNDS LIST> ,5 <BOUNDS>
<BOUNDS> <EXPRESSION>
<BOUNDS> <EXPRESSION> : <EXPRESSION>
<FREE STATEMENT> FREE <FREE LIST>
<FREE LIST> <IDENTIFIER>
<FREE LIST> <FREE LIST> ,6 <IDENTIFIER>
<GROUP HEAD> <CONTROL CLAUSE> ;
<CONTROL CLAUSE> <REPETITION CONTROL>
<CONTROL CLAUSE> <CONTROL CLAUSE> <CASE SELECTOR>
<CASE SELECTOR> CASE <ARITHMETIC EXPRESSION>
<REPETITION CONTROL> <WHILE LIST>
<REPETITION CONTROL> <ITERATION LIST>
<WHILE CLAUSE> WHILE <EXPRESSION>
<WHILE LIST> DO
<WHILE LIST> <WHILE LIST> <WHILE CLAUSE>
<ITERATION LIST> <DO VARIABLE> =2 <ITERATION ELEMENT>
<ITERATION LIST> <ITERATION LIST> ,9 <ITERATION ELEMENT>
<DO VARIABLE> DO <VARIABLE>
<ITERATION ELEMENT> <ITERATION HEAD>
<ITERATION ELEMENT> <ITERATION HEAD> <INCREMENTATION CONTROL>
<ITERATION ELEMENT> <ITERATION ELEMENT> <WHILE CLAUSE>
<ITERATION HEAD> <EXPRESSION>
<INCREMENTATION CONTROL> TO <ARITHMETIC EXPRESSION>
<INCREMENTATION CONTROL> BY <ARITHMETIC EXPRESSION>
<INCREMENTATION CONTROL> TO <ARITHMETIC EXPRESSION> BY <ARITHMETIC EXPRESSION>
<INCREMENTATION CONTROL> BY <ARITHMETIC EXPRESSION> TO <ARITHMETIC EXPRESSION>
<EXPRESSION> <LOGICAL FACTOR>
<EXPRESSION> <EXPRESSION> | <LOGICAL FACTOR>
<LOGICAL FACTOR> <LOGICAL SECONDARY>
<LOGICAL FACTOR> <LOGICAL FACTOR> & <LOGICAL SECONDARY>
<LOGICAL SECONDARY> <LOGICAL PRIMARY>
<LOGICAL SECONDARY> ^ <LOGICAL SECONDARY>
<LOGICAL PRIMARY> <STRING EXPRESSION>
<LOGICAL PRIMARY> <STRING EXPRESSION> <RELATION> <STRING EXPRESSION>
<RELATION> <
<RELATION> >
<RELATION> =
<RELATION> < =
<RELATION> > =
<RELATION> ^ <
<RELATION> ^ >
<RELATION> ^ =
<STRING EXPRESSION> <ARITHMETIC EXPRESSION>
<STRING EXPRESSION> <STRING EXPRESSION> || <ARITHMETIC EXPRESSION>
<ARITHMETIC EXPRESSION> <TERM>
<ARITHMETIC EXPRESSION> <ARITHMETIC EXPRESSION> + <TERM>
<ARITHMETIC EXPRESSION> <ARITHMETIC EXPRESSION> - <TERM>
<TERM> <FACTOR>
<TERM> <TERM> * <FACTOR>
<TERM> <TERM> / <FACTOR>
<FACTOR> <PRIMARY>
<FACTOR> <PRIMARY> ** <FACTOR>
<FACTOR> <PREFIX +> <FACTOR>
<FACTOR> <PREFIX -> <FACTOR>
<PREFIX +> +
<PREFIX -> -
<PRIMARY> <CONSTANT>
<PRIMARY> <VARIABLE>
<PRIMARY> (6 <EXPRESSION> )
<PRIMARY> <TYPE> (6 <EXPRESSION> )
<VARIABLE> <IDENTIFIER>
<VARIABLE> <IDENTIFIER> (4 <SUBSCRIPT LIST> )
<SUBSCRIPT LIST> <SUBSCRIPT>
<SUBSCRIPT LIST> <SUBSCRIPT LIST> ,7 <SUBSCRIPT>
<SUBSCRIPT> <EXPRESSION>
<SUBSCRIPT> *
<IDENTIFIER 1> <IDENTIFIER>
=1 =
=2 =
(1 (
(2 (
(3 (
(4 (
(5 (
(6 (
,1 ,
,2 ,
,3 ,
,4 ,
,5 ,
,6 ,
,7 ,
,8 ,
,9 ,
$Iterate
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.