Skip to content

Commit

Permalink
Adicionando flag --version
Browse files Browse the repository at this point in the history
  • Loading branch information
DanielVenturini committed Dec 4, 2018
1 parent 3b9677b commit 37d5fce
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ cd vcc
sudo make install
```

Use ```vcc --version``` para verificar se o ```vcc``` foi compilado e instalado com sucesso junto com suas dependências.

O software ```xdot``` é instalado junto, pois é usado para exibir a árvore gerada na análise sintática. Porém, o ```vcc``` funcionará normalmente se este não for instalado. Para verificar se o ```xdot``` foi instalado, apenas execute ```xdot```.

Também na instalação, é copiado os arquivos necessários para o ```hithlight Syntax``` no ```Sublime Text 3```. As seguintes etapas devem ser realizadas para finalizar a instalação:
Expand Down
20 changes: 18 additions & 2 deletions main.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@
typedef TokenRecord TR; // apenas para economizar espaços na linha

char **arquivos; // este ponteiro conterá todos os arquivo passados por parâmetros
char flags[7]; // 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;
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;
char *version = "4.2.0";

void qualFlag(char *flag) {

Expand All @@ -28,6 +29,8 @@ void qualFlag(char *flag) {
flags[5] = 1;
else if(strcmp(flag, "-h") == 0 || strcmp(flag, "--help") == 0) // --help
flags[6] = 1;
else if(strcmp(flag, "-v") == 0 || strcmp(flag, "--version") == 0) // --help
flags[7] = 1;
else // flag desconhecida
printf("\n\e[38;5;184mvcc:\e[38;5;196m erro: flag desconhecida \e[38;5;255m\'%s\'.\n\n", flag);
}
Expand Down Expand Up @@ -83,6 +86,7 @@ void printHelp() {

printf("\u2502Flags: \u2502\n");
printf("\u2502 -h, --help exibe ajuda--------------------------------------------\u2502\n");
printf("\u2502 -v, --version exibe a versão atual do VCC----------------------------\u2502\n");
printf("\u2502 -tk, --tokens, exibe os tokens----------------------------------------\u2502\n");
printf("\u2502 -ax, --ast-x, exibe as árvores de análises sintáticas no xdot--------\u2502\n");
printf("\u2502 -at, --ast-t, exibe as árvores de análises sintáticas no terminal----\u2502\n");
Expand All @@ -93,6 +97,14 @@ void printHelp() {
desenhaLinha(2);
}

void printVersion() {
printf("Venturini Compiler Compiler\n");
printf("Release: %s\n", version);
printf("BuildOn: Linux 4.15.0-38-generic\n");
printf("LLVM, Clang and LLI: 3.8.0\n");
printf("VCC (https://github.com/danielventurini/vcc)\n");
}

int main(int argc, char *argv[]) {
if(argc < 2){
fprintf(stderr, "Use: vcc [flags] [arquivo1.tpp arquivo2.tpp ...]\n");
Expand Down Expand Up @@ -162,5 +174,9 @@ int main(int argc, char *argv[]) {
printHelp();
}

if(flags[7]) {
printVersion();
}

return 0;
}

0 comments on commit 37d5fce

Please sign in to comment.