Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/brunbrunbrun/compilador-minijava
Compilador para o MiniJava, um subconjunto da linguagem Java.
https://github.com/brunbrunbrun/compilador-minijava
compiler minijava-compiler recursive-descent-parser
Last synced: 4 days ago
JSON representation
Compilador para o MiniJava, um subconjunto da linguagem Java.
- Host: GitHub
- URL: https://github.com/brunbrunbrun/compilador-minijava
- Owner: brunbrunbrun
- Created: 2024-01-31T04:18:12.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-03-15T04:30:33.000Z (8 months ago)
- Last Synced: 2024-05-21T08:24:02.880Z (6 months ago)
- Topics: compiler, minijava-compiler, recursive-descent-parser
- Language: C
- Homepage:
- Size: 313 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Compilador-MiniJava 🤏☕
## 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
```EBNF
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.