summaryrefslogtreecommitdiff
path: root/semantic.h
diff options
context:
space:
mode:
Diffstat (limited to 'semantic.h')
-rw-r--r--semantic.h121
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));