diff options
Diffstat (limited to 'lib/pile.c')
-rw-r--r-- | lib/pile.c | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -18,6 +18,8 @@ pile_elem result_pile[PILE_MAX]; unsigned int pile_ptr = 0; unsigned int result_pile_ptr = 0; +/* fonctions basiques sur la pile d operandes */ + void push_pile(char *st) { int valid1, valid2, valid3; @@ -140,6 +142,11 @@ void flush_pile(void) pile_ptr=0; } + + +/* fonctions basiques sur la pile de resultats */ + + void move_to_resultat_pile(void) { pile_elem temp; @@ -174,10 +181,26 @@ char * pop_resultat(void) return result; } + +polynome return_last(int *valid) +{ + if (!result_pile_ptr) { + *valid=0; + return NULL; + } else { + *valid=1; + return result_pile[result_pile_ptr--].poly; + } + +} + + int has_resultat(void) { return (result_pile_ptr ? 1 : 0); } +/* fonctions avancees sur la pile d operandes */ + char *affichage_level_1(void) { char *result = NULL; |