Beruflich Dokumente
Kultur Dokumente
options {
language=Java;
@header{
package a.b.c;
program:
'program First'
'Begin'
(constant|variable|function|procedure)*
statement*
'endProgram'
constant:
variable:
type:
'Integer'
ifStatement
:
'if' expression 'then'+
statement +
'endIf'+
('else' statement+)?
'endIf'
statement:
assignmentStatement
| ifStatement
| loopStatement
| exitStatement
| procedureCallStatement
procedureCallStatement
actualParameters
assignmentStatement
loopStatement
exitStatement
returnStatement
procedure
(constant | variable)*
'begin'
statement
'end' IDENT
parameters
parameter
:
IDENT ':' type ('<-' expression)?
function
(constant | variable)*
(statement | returnStatement)
'endFunction'
term
IDENT
|'('expression ')'
|INTEGER
negation
'not' term
unary
mult
add
relation
expression
CONSTANT:
'constant'
BECOMES:
'<-'
COLON:
':'
SEMI:
';'
INTEGER
'0'..'9'+
;
IDENT
WS
COMENT
MULTILINE_COMENT