Skip to content

Commit

Permalink
Fix import llvm-c/
Browse files Browse the repository at this point in the history
  • Loading branch information
DanielVenturini committed Dec 7, 2018
1 parent db159f5 commit 93a4fd3
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 7 deletions.
5 changes: 2 additions & 3 deletions codegenerator/geracao.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#include "geracao.h"

int main() {

return 0;
void geraCodigo(TreeNode *programa, TabSimb *tabela) {
// do somenthing
}
3 changes: 3 additions & 0 deletions codegenerator/geracao.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
#include "../tree/tree.h"
#include "../semantic/tabsimb.h"

/*-----------------------------*
* BIBLIOTECAS DO LLVM E CLANG *
*-----------------------------*/
#include <llvm-c/BitWriter.h>
#include <llvm-c/Core.h>

Expand Down
10 changes: 10 additions & 0 deletions main.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ typedef TokenRecord TR; // apenas para economizar espaços na linha
char **arquivos; // este ponteiro conterá todos os arquivo passados por parâmetros
char flags[8]; // cada posição se refere a um tipo de flag
// flags: [0] = -tk; [1] = -ax; [2] = -at; [3] = -sx; [4] = -st; [5] = -ts; [6] = -h; [7] = -v;

// inves de incluir a biblioteca geracao.h
void geraCodigo(TreeNode *, TabSimb *);

char *version = "4.2.1";

void qualFlag(char *flag) {
Expand Down Expand Up @@ -167,6 +171,12 @@ int main(int argc, char *argv[]) {

if(flags[5])
printEscopo(tabela, 0);

/*******************\
* geração de código *
\*******************/
geraCodigo(ast, tabela);

i ++;
}

Expand Down
20 changes: 16 additions & 4 deletions makefile
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
all: main # compila todos os arquivos
install: main clean move xdot codeinstall highlight # instala o vcc

main: varredura parse semantic # parse já inclui a árvore
gcc main.c lexical/varredura.o tree/tree.o syntactic/parse.o desacerto.o tree/stack.o semantic/poda.o semantic/tabsimb.o semantic/semantico.o -o vcc
# configurações para compilar geracao.c
CC = clang-3.5
CXX = clang++-3.5
LLVMCFG = llvm-config-3.5
OPT = opt-3.5
CFLAGS = -Wall `$(LLVMCFG) --cflags`
LDFLAGS = -Wall `$(LLVMCFG) --libs core --system-libs` `$(LLVMCFG) --ldflags`

# regras do make
# gera todos os arquivos .o e depois linka tudo
main: varredura parse semantic geracao # parse já inclui a árvore
gcc main.c lexical/varredura.o tree/tree.o syntactic/parse.o desacerto.o tree/stack.o semantic/poda.o semantic/tabsimb.o semantic/semantico.o codegenerator/geracao.o -o vcc
make clean

varredura:
Expand Down Expand Up @@ -30,7 +40,7 @@ poda:
gcc -c semantic/poda.c -o semantic/poda.o

geracao:
gcc codegenerator/geracao.c -o codegenerator/geracao.o
gcc -c codegenerator/geracao.c -o codegenerator/geracao.o $(CFLAGS)

clean: # apaga os arquivos objetos de compilação
rm lexical/varredura.o -f
Expand All @@ -41,12 +51,14 @@ clean: # apaga os arquivos objetos de compilação
rm semantic/poda.o -f
rm semantic/tabsimb.o -f
rm semantic/semantico.o -f
rm codegenerator/geracao.o -f

xdot: # instala o xdot
apt-get install xdot --allow-unauthenticated -y

codeinstall: # instala llvm e clang, todos na versão 3.5
codeinstall: # instala llvm e clang, todos na versão 3.5; biblioteca necessária para o -ledit
apt-get install clang-3.5 --allow-unauthenticated -y
sudo apt-get install libedit-dev --allow-unauthenticated -y

move: # move o executavel para a pasta /bin/
mv vcc /usr/bin/
Expand Down

0 comments on commit 93a4fd3

Please sign in to comment.