25 #include "pips_config.h"
167 pips_assert(
"The current module statement is undefined",
169 pips_assert(
"The new module statement is not undefined",
182 pips_assert(
"The stacked_current module statement is undefined",
184 pips_assert(
"The new module statement is not undefined",
196 pips_assert(
"The current module statement is undefined",
210 pips_assert(
"The current module statement is defined",
struct _newgen_struct_statement_ * statement
void set_current_module_declarations(list l)
list get_current_module_declarations()
void reset_current_module_entity()
Reset the current module entity.
void reset_current_module_statement()
Reset the current module statement.
const char * get_current_module_name()
Get the name of the current module.
statement set_current_module_statement(statement s)
Set the current module statement.
void push_current_module_statement(statement s)
Set the statement of the current module and push the statement of the previous one on a stack.
statement get_current_module_statement()
Get the current module statement.
void reset_current_module_declarations()
entity set_current_module_entity(entity e)
Set the current module entity.
entity get_current_module_entity()
Get the entity of the current module.
void pop_current_module_statement(void)
Pop the current module statement stack and use it as the current module statement.
#define list_undefined
Undefined list definition :-)
hash_table hash_table_make(hash_key_type key_type, size_t size)
void * hash_get(const hash_table htp, const void *key)
this function retrieves in the hash table pointed to by htp the couple whose key is equal to key.
void hash_put(hash_table htp, const void *key, const void *val)
This functions stores a couple (key,val) in the hash table pointed to by htp.
void hash_table_free(hash_table htp)
this function deletes a hash table that is no longer useful.
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
#define HASH_UNDEFINED_VALUE
value returned by hash_get() when the key is not found; could also be called HASH_KEY_NOT_FOUND,...
#define hash_table_undefined
Value of an undefined hash_table.
bool stack_empty_p(const stack)
void * stack_head(const stack)
returns the item on top of stack s
void stack_push(void *, stack)
stack use
void stack_free(stack *)
type, bucket_size, policy
stack stack_make(int, int, int)
allocation
void * stack_pop(stack)
POPs one item from stack s.
#define stack_undefined_p(s)
const char * module_local_name(entity e)
Returns the module local user name.
bool entity_module_p(entity e)
#define statement_domain
newgen_sizeofexpression_domain_defined
#define entity_undefined_p(x)
#define statement_undefined_p(x)
#define statement_undefined
static int token_named_type
void free_keyword_typedef_table()
void error_reset_current_module_statement()
To be called by an error management routine only.
static entity current_module_entity
static variables and related access functions concerning the current module
static list current_module_declaration_list
static statement current_module_statement
used to retrieve the intraprocedural effects of the current module
statement pop_statement_global_stack(void)
void make_statement_global_stack()
_int is_c_keyword_typedef(char *s)
This function checks if s is a C keyword or typedef name and returns the token number thanks to the h...
static statement stacked_current_module_statement
void push_statement_on_statement_global_stack(statement st)
static stack statement_global_stack
bool statement_global_stack_defined_p()
void error_reset_current_module_entity()
To be called by an error management routine only.
hash_table keyword_typedef_table
Because of typedefs, the C lexers need help to decide if a character string such as toto is a type na...
void set_keyword_typedef_table(hash_table h)
void free_statement_global_stack()
void declare_new_typedef(const string tn)
void reset_keyword_typedef_table()
hash_table make_keyword_typedef_table(int tk)
statement get_current_statement_from_statement_global_stack()
The structure used to build lists in NewGen.