Especificação da Linguagem Mini-Pascal
Esta página descreve formalmente a sintaxe e as regras da linguagem Mini-Pascal que será implementada no projeto da disciplina.
Estrutura Geral do Programa
Um programa em Mini-Pascal segue a estrutura básica:
program NomeDoPrograma;
var
x, y: integer;
flag: boolean;
begin
x := 10;
y := 20;
if x < y then
writeln('Menor');
end.Gramática Simplificada (EBNF)
Declarações
program;var(<id_list>:<type>;)+type:integer|boolean|string
Comandos
- Atribuição:
<id>:=<expression>; - Condicional:
if<expression>then<command>[else<command>] - Repetição (While):
while<expression>do<command> - Repetição (Repeat):
repeat<command_list>until<expression> - Bloco:
begin<command_list>end - Entrada/Saída:
readln(<id>)|writeln(<expression>)
Expressões
- Operadores Aritméticos:
+,-,*,/ - Operadores Relacionais:
=,<>,<,>,<=,>= - Operadores Lógicos:
and,or,not
Tipos de Dados
- integer: Valores numéricos inteiros de 32 bits (mapeados para
intna JVM). - boolean: Valores lógicos
trueefalse. - string: Sequência de caracteres delimitada por aspas simples
'.
Comentários
- Comentários são delimitados por chaves
{ ... }ou por(* ... *).
[!TIP] Use esta especificação como base para o seu Analisador Léxico (Etapa 2) e para definir a sua gramática no ANTLR4 (Etapa 4).