O projeto da disciplina de compiladores consiste em (adivinha só) construir um compilador! :)
- Desenvolvimento do lexer
- Desenvolvimento do parser
- Desenvolvimento da semântica da linguagem
- Desenvolvimento do sistema de tipos
A etapa 1 foi feita por meio do programa flex
, que gera código C que
implementa um autômato capaz de identificar os tokens da linguagem.
A etapa 2 foi feita por meio do programa bison
, que é responsável por
definir a sintaxe da linguagem e implementar as regras semânticas que são
aplicáveis (etapa 3).
o bison gera código C capaz de reconhecer linguagens livres de contexto (CFG)
Recursos fora do escopo desse parser:
- struct
- enum
- union
- pointer
- for
- operador modulo (%)
Dicionário de termos usados no arquivo de configuração do bison (parser/parser.y
)
palavra | definição |
---|---|
declarator | declaracao de recursos que armazenam estado (variaveis e funcoes) |
stmt | comandos 'builtin' da linguagem (if, while, ...) + chamada de funcoes |
block | o bloco de definição de uma função, que pode ter stmts e declarators para variaveis |