Skip to content

Compilador para o MiniJava, um subconjunto da linguagem Java.

Notifications You must be signed in to change notification settings

brunbrunbrun/Compilador-MiniJava

Repository files navigation

Compilador-MiniJava 🤏☕

Descrição da imagem

Especificação Léxica

  • Espaços em branco: [\n \t \r \f]

  • Identificadores: Uma letra [a-zA-Z]+, seguido de zero ou mais letras [0-9a-zA-Z]*, dígitos ou _

  • Numerais: Apenas números inteiros [0-9]

  • Operadores: = < == != + - * && !

  • Pontuação: ( ) [ ] { } ; . ,

  • Palavras reservadas: boolean class extends public static void main String return int if else while length true false this new null System.out.println

Gramatica

PROG 	= MAIN CLASSE
MAIN 	= 'class' 'id' '{' 'public' 'static' 'void' 'main' '(' 'String' '[' ']' 'id' ')' '{' CMD '}' '}'
CLASSE 	= 'class' 'id' '[' 'extends' 'id' ']' '{' VAR METODO '}'
VAR 	= TIPO 'id' ';'
METODO 	= 'public' TIPO 'id' '(' PARAMS ')' '{' VAR CMD 'return' REXP ';' '}'
PARAMS 	= TIPO 'id'
TIPO 	= 'boolean'
	| 'int'
CMD 	= 'if' '(' REXP ')' CMD
	| 'while' '(' REXP ')' CMD
	| 'System.out.println' '(' REXP ')' ';'
	| 'id' '=' REXP ';'
REXP 	= 'num' '<' 'num'

Analise Sintatica

Foi implementado um analisador sintático descendente recursivo.

Como usar

  • Colocar o codigo dentro do arquivo input.txt na raiz do diretorio.
  • rodar o script: ./run_Compilador.sh para Windows.
  • rodar o script: ./run_Compilador_unix.sh para UNIX.

About

Compilador para o MiniJava, um subconjunto da linguagem Java.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published