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 int na JVM).
  • boolean: Valores lógicos true e false.
  • 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).

Back to top