diff --git a/Fichiers_Tests/progC b/Fichiers_Tests/progC index 32d6456..5f8bd14 100644 --- a/Fichiers_Tests/progC +++ b/Fichiers_Tests/progC @@ -1,10 +1,18 @@ -int fonction(int p){ - int y = p*3; - return y; +int g(int tab[]){ + tab[1] = 10; + printf(tab[0]); + stop(15); + return 2; +} + +int f(int p[]){ + p[0] = 1; + g(p); + return 1; } int main(){ - int a; - int c = fonction(3); - stop(3); + int a[5]; + f(a); + printf(a[1]); } diff --git a/Lex_Yacc/as.dot b/Lex_Yacc/as.dot index c36987e..3b64643 100644 --- a/Lex_Yacc/as.dot +++ b/Lex_Yacc/as.dot @@ -1,6 +1,6 @@ -// Produit par GNU Bison 3.5.1. +// Produit par GNU Bison 3.0.4. // Rapporter les bugs à . -// Page d'accueil: . +// Page d'accueil: . digraph "Lex_Yacc/as.y" { diff --git a/Lex_Yacc/as.y b/Lex_Yacc/as.y index 5977a02..5b2e13e 100644 --- a/Lex_Yacc/as.y +++ b/Lex_Yacc/as.y @@ -104,7 +104,7 @@ else{ $$ = push("0_TEMPORARY_RETURN", 0, fonc.return_type); }}; -Invocation : tPRINTF tOBRACE E tCBRACE{add_operation(PRI,$3,0,0); pop();}; +Invocation : tPRINTF tOBRACE E tCBRACE{add_operation(PRI,$3,0,0);}; Params : {$$ = 0; printf("Sans Params\n"); } ; Params : Param SuiteParams {$$ = $2 + 1;}; diff --git a/Tables/Fonctions/tab_fonctions.o b/Tables/Fonctions/tab_fonctions.o index 7f363b4..4dc1a8a 100644 Binary files a/Tables/Fonctions/tab_fonctions.o and b/Tables/Fonctions/tab_fonctions.o differ diff --git a/Tables/Symboles/table_symboles.c b/Tables/Symboles/table_symboles.c index a59cb27..b727087 100644 --- a/Tables/Symboles/table_symboles.c +++ b/Tables/Symboles/table_symboles.c @@ -34,7 +34,7 @@ Opérations possible : int last_addr = 0; int temp_addr = MAXADDR; -int taille_types[] = {-1, 4}; +int taille_types[] = {-1, 1}; int profondeur = 0; int last_temp_var_size; const struct type_t integer = {INT, 0, 1};