diff options
Diffstat (limited to 'semantic.h')
-rw-r--r-- | semantic.h | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/semantic.h b/semantic.h new file mode 100644 index 0000000..6518dd4 --- /dev/null +++ b/semantic.h @@ -0,0 +1,121 @@ +/* $Id: semantic.h,v 1.1 2004-05-03 05:17:48 behdad Exp $ + * + * Declarations for semantic action routines + */ +#include "config.h" + +extern boolean is_typedef_name _(( + char *name + )); +void +new_decl_spec _(( +DeclSpec *decl_spec, +char *text, +int flags)); + +extern void join_decl_specs _(( + DeclSpec *result, + DeclSpec *a, + DeclSpec *b + )); +extern void free_decl_spec _(( + DeclSpec *decl_spec + )); +void +new_parameter _(( +Parameter *param, /* pointer to structure to be initialized */ +DeclSpec *decl_spec, /* declaration specifier structure */ +Declarator *declarator, /* declarator structure */ +char *comment_before, /* comment before the param */ +char *comment_after)); /* comment after the param */ + +extern void free_parameter _(( + Parameter *param + )); + +/* add a comment to the last parameter in the list */ +int +comment_last_parameter _((ParameterList *list, char *comment)); + +extern void new_param_list _(( + ParameterList *param_list, + Parameter *param + )); + +extern void add_param_list _(( + ParameterList *to, + ParameterList *from, + Parameter *param + )); +extern void free_param_list _(( + ParameterList *param_list + )); +extern void new_ident_list _(( + ParameterList *param_list + )); +extern void add_ident_list _(( + ParameterList *to, + ParameterList *from, + Identifier *ident + )); +extern Declarator * new_declarator _(( + char *text, + char *name + )); +extern void free_declarator _(( + Declarator *d + )); +extern void new_decl_list _(( + DeclaratorList *decl_list, + Declarator *declarator + )); +extern void add_decl_list _(( + DeclaratorList *to, + DeclaratorList *from, + Declarator *declarator + )); +extern void free_decl_list _(( + DeclaratorList *decl_list + )); +extern void set_param_types _(( + ParameterList *params, + DeclSpec *decl_spec, + DeclaratorList *declarators, + char *comment, + char *eolcomment + )); + +/* Output a function parameter.*/ +void output_parameter _((Parameter *p)); + +int +remember_declarations _(( +char *comment, /* comment associated */ +DeclSpec *decl_spec, /* declaration specifier */ +DeclaratorList *decl_list, /* list of declared variables */ +char *eolcomment)); /* eol comment after */ + +void +dyn_decl_spec _(( +DeclSpec *decl_spec, +char *text, +unsigned int flags)); + +void +new_enum_decl_spec _(( +DeclSpec *decl_spec, +char *text, +int flags, +EnumeratorList *enum_list)); + +void +output_decl_spec _((DeclSpec *decl_spec)); + +void +output_declarator _((Declarator *d, boolean format)); + +void parameter_error _((Parameter *param)); +void declarator_error _((Declarator *decl)); + +boolean has_parameters _((const Declarator *d)); +boolean is_function_declarator _((const Declarator *d)); |