Compilar com o comando
make && ./gocompiler [-l | -t | -s] < {nome_ficheiro}.dgo > {nome_ficheiro}.out
Usar o seguinte comando para comparar o output do compilador com um ficheiro
make && ./gocompiler [-l | -t | -s] < {nome_ficheiro}.dgo | diff {nome_ficheiro}.out -
- -l -> 1ª meta
- -t -> 2ª meta
- -s -> 3ª meta
- (sem flag) -> 4ª meta
-
Meta 1 - Tokens
- Tokens
- Reserved words
- Literals (decimal, hexadecimal, octal)
- Emitir SEMICOLON se estiver em falta, em situações específicas
- Erros
- linha e coluna do erro
- motivo do erro
- Tokens
-
Meta 2 - Abstract Syntax Tree
- Gramática
- Erros
- AST
-
Meta 3 - Semantic Analysis
- Tabela de símbolos
- Global
- Funções
- Anotações na AST
- Erros Semânticos
- Tabela de símbolos
-
Meta 4 - Code Generation