Repositório destinado a Implementação do Trabalho de ILP 2018 utilizando a ferramenta antrl4.
Doc Online Compilada.: https://din-ilp2018.readthedocs.io/en/latest
Arg | Descrição |
---|---|
0 | Caminho absoluto do arquivo .grc |
-o | Ativar otimizações LLVM |
-a | Abortar geração de IR para módulos com warnings/erros |
-nd | Não mostrar o dump do IR |
O output das execuções é gerado em..: tests/assets/llvm/out.bc
- ANTLR4 Lex e Parser
$ gradle generateGrammarSource && gradle copyTokenFile
executar somente se o pacote uem.antlr estiver vazio
A build deste projeto assim como os testes unitários estão sendo executados na IDE InteliJ Community.
- Configurar como argumento de execução o arquivo de teste (colocar os arquivos de teste em unit/assets/(parser|lex))
- F6 para executar e gerar o assembly da linguagem
- No terminal, pode ser da própria IDE, execute:
$lli unit/assets/llvm/out.bc
Os arquivos .g4 (src/main/antlr) podem ser executados/ testados com a ferramenta antrl4 separadamente.
$ antlr4 *.g4
$ javac *.java
$ grun Grace command -tree
- Setar a pasta de
tests
comotest resource
na IDE. - Como a LLVM possui a maior parte dos métodos e builders estáticos, é necessário escrever cada teste em um XML separado.
- Insira uma nova entrada no array de arquivos de testes e em seguida insira a linha que referencia a entrada criada .
Abaixo é mostrado um exemplo de teste unitário do trabalho
Tag | Descrição |
---|---|
wanted | Valor esperado do output |
type | EQUALS ou NOT_EQUALS |
optimize | Utilizar Otimizações ( true / false) |
file | Caminho absoluto do arquivo de teste .grc |
<tests>
<test>
<wanted>0 1 1 2 3</wanted>
<type>EQUALS</type>
<optimize>true</optimize>
<file>CAMINHO_ABSOLUTO/test-fib.grc</file>
</test>
</tests>