Gramática e Diagramas Sintáticos do Pascal Simplificado
Vers˜o corrigida para o texto: a T. Kowaltowski Implementa¸ao de Linguagens de Programa¸ao. c˜ c˜
Guanabara Dois, 1983.
Gram´tica a Nota¸˜o: ca [ ... ]
{ ... }
{ ... }+
...
...
r´tulos := o vers˜o estendida de Pascal a :=
:=
rotina :=
{ lista-de-identificadores : tipo ; }+ procedimento function identificador parˆmetros-formais : identificador ; bloco ; a procedimento
tipo :=
var
{ identificador = tipo ; }+
fun¸˜o ca :=
{ identificador = constante ; }+
const type vari´veis := a corpo :=
program identificador ; bloco .
label lista-de-n´meros ; u constantes
fun¸˜o ca repeti¸˜o, pelo menos uma vez ca [ r´tulos ] [ constantes ] [ ♣ tipos ] [ vari´veis ] { rotina } corpo o a
bloco :=
♣ tipos
repeti¸˜o, possivelmente zero vezes ca alternativa
♣ programa :=
opcional
:=
procedure identificador parˆmetros-formais ; bloco ; a begin comando
♣ constante .. constante
identificador
parˆmetros-formais a :=
parˆmetro-formal := a { ; comando } end
( parˆmetro-formal a parˆmetro-express˜o a a
♣ array [ tipo
{ , tipo } ] of tipo
{ ; parˆmetro-formal } ) a ♣ parˆmetro-fun¸˜o a ca
()
♣ parˆmetro-procedimento a parˆmetro-express˜o a a
:=
[ var ] lista-de-identificadores : identificador
♣ parˆmetro-fun¸˜o a ca
:=
function identificador parˆmetros-formais : identificador a ♣ parˆmetro-procedimento a :=
procedure identificador parˆmetros-formais a 2
[ n´mero : ] comando-sem-r´tulo u o
:=
comando
vari´vel := a {♣
identificador
:=
comando-sem-r´tulo o atribui¸˜o := ca atribui¸˜o ca composto
:=
identificador ( lista-de-express˜es ) o identificador ()
goto n´mero u :=
composto
chamada-de-procedimento desvio condicional repetitivo vazio