/* %Z%%M% %I% %E% */ /* * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995 by Wayne C. Gramlich. * All rights reserved. * * Permission to use, copy, modify, distribute, and sell this software * for any purpose is hereby granted without fee provided that the above * copyright notice and this permission are retained. The author makes * no representations about the suitability of this software for any purpose. * It is provided "as is" without express or implied warranty. */ /* This file contains declarations for routines to manipulate types: */ #ifndef TYPE_EXPORTS_H #define TYPE_EXPORTS_H #ifndef CALL_TYPES_H #include "call_types.h" #endif #ifndef GEN_TYPES_H #include "gen_types.h" #endif #ifndef HEAP_TYPES_H #include "heap_types.h" #endif #ifndef MODULE_TYPES_H #include "module_types.h" #endif #ifndef MSG_TYPES_H #include "msg_types.h" #endif #ifndef OBJECT_TYPES_H #include "object_types.h" #endif #ifndef PARSER_TYPES_H #include "parser_types.h" #endif #ifndef ROUTINE_TYPES_H #include "routine_types.h" #endif #ifndef STR_TYPES_H #include "str_types.h" #endif #ifndef TABLE_TYPES_H #include "table_types.h" #endif #ifndef TYPE_TYPES_H #include "type_types.h" #endif #ifndef UNIX_STDIO_H #include "unix_stdio.h" #endif #ifndef VECTOR_TYPES_H #include "vector_types.h" #endif /* Type_def routines: */ extern Type_def type_def_create(Str, int, Type_tables, Heap); extern void type_def_initial_object_gen(Type_def, Gen); extern Type_def type_def_parse(Vec(Routine), Module, Parser); extern void type_def_print(Type_def, Stdio); extern void type_def_routines_gen(Type_def, Gen); extern void type_def_structure_needed(Type_def); /* Type_def_table routines: */ extern Type_def_table type_def_table_create(Heap); extern int type_def_table_insert(Type_def_table, Type_def); extern Type_def type_def_table_lookup(Type_def_table, Str); /* Type_defs routines: */ extern void type_defs_convert(Type_defs, Convert); extern void type_defs_dump(Type_defs, Stdio); extern void type_defs_enumeration_gen(Type_defs, Gen); extern void type_defs_external_gen(Type_defs, Gen); extern void type_defs_initialization_gen(Type_defs, Gen); extern void type_defs_insert(Type_defs, Type_tables, Object_table, Msg, Heap); extern Type_defs type_defs_read(Stdio, Heap, Type_tables, int); extern void type_defs_routines_gen(Type_defs, Gen); extern void type_defs_structure_gen(Type_defs, Gen); extern void type_defs_typedef_gen(Type_defs, Gen); extern void type_defs_write(Type_defs, Stdio, Type_tables); /* Type_need routines: */ extern Type_need type_need_create(Type_ref, Str, Type_proto, Type_tables); extern void type_need_print(Type_need, int, Stdio); extern Type_need_table type_need_table_create(Type_ref_table, Heap); extern void type_need_table_dump(Type_need_table, Stdio); /* Type_needs routines: */ extern Type_needs type_needs_append(Type_needs, Type_need, Type_tables); extern Type_needs type_needs_empty_create(Type_tables); extern int type_needs_is_empty(Type_needs); extern Type_needs type_needs_parse(Parser); /* Type_proto routines: */ extern Type_proto type_proto_create(Type_proto_kind, Type_refs, Type_refs, Type_refs, Type_refs, Type_signals, Type_needs, int, Type_tables); extern Type_proto type_proto_from_type_ref(Type_ref, Type_tables); extern int type_proto_is_parameter(Type_proto, Type_ref); extern int type_proto_is_parameterized(Type_proto); extern void type_proto_needed(Type_proto, Type_tables); extern void type_proto_print(Type_proto, int, Stdio); extern Type_proto type_proto_read(Stdio, Heap, Type_tables); extern Type_proto type_proto_replace(Type_proto, Type_refs, Type_refs, Type_tables); extern void type_proto_write(Type_proto, Stdio, Type_tables); extern Type_proto_table type_proto_table_create(Type_ref_table, Heap); extern void type_proto_table_dump(Type_proto_table, Stdio); extern void type_proto_table_gen(Type_proto_table, Gen); /* Type_ref routines: */ extern int type_ref_contains_parameter(Type_ref); extern Type_ref type_ref_create(Str, Type_tables); extern int type_ref_equal(Type_ref, Type_ref); extern void type_ref_gen(Type_ref, Gen); extern int type_ref_hash(Type_ref); extern void type_ref_mangle(Type_ref, Stdio); extern int type_ref_is_parameter(Type_ref); extern int type_ref_is_parameterized(Type_ref); extern int type_ref_is_routine(Type_ref); extern Type_ref type_ref_parameters_create(Str, Type_refs, Type_tables); extern Type_ref type_ref_parse(Parser); extern void type_ref_print(Type_ref, Stdio); extern Type_ref type_ref_read(Stdio, Heap, Type_tables); extern Type_ref type_ref_replace(Type_ref, Type_refs, Type_refs, Type_tables); extern Str type_ref_string(Type_ref, Heap); extern void type_ref_write(Type_ref, Stdio, Type_tables); /* Type_refs routines: */ extern Type_refs type_refs_append(Type_refs, Type_ref, Type_tables); extern int type_refs_compare(Type_refs, Type_refs, int); extern Type_refs type_refs_concat(Type_refs, Type_refs, Type_tables); extern Type_refs type_refs_empty_create(Type_tables); extern int type_refs_equal(Type_refs, Type_refs); extern Type_ref type_refs_fetch(Type_refs, int); extern void type_refs_gen(Type_refs, Gen); extern int type_refs_hash(Type_refs); extern int type_refs_is_empty(Type_refs); extern void type_refs_keyword_print(Type_refs, Stdio, Str, int); extern Type_refs type_refs_lop(Type_refs, Type_tables); extern void type_refs_mangle(Type_refs, int, Stdio); extern void type_refs_multiple_gen(Type_tables, Gen); extern void type_refs_multiple_needed(Type_refs, Type_tables); extern Str type_refs_multiple_string(Type_refs, Heap); extern void type_refs_needed(Type_refs, Type_tables); extern Type_refs type_refs_parse(Parser); extern void type_refs_print(Type_refs, Stdio); extern Type_refs type_refs_read(Stdio, Heap, Type_tables); extern Type_refs type_refs_replace(Type_refs, Type_refs, Type_refs, Type_tables); extern int type_refs_size(Type_refs); extern void type_refs_write(Type_refs, Stdio, Type_tables); /* Type_signal routines: */ extern Type_signal type_signal_create(Str, Type_refs, Type_tables); extern Type_signal_table type_signal_table_create(Type_ref_table, Heap); extern void type_signal_table_dump(Type_signal_table, Stdio); /* Type_signals routines: */ extern Type_signals type_signals_append(Type_signals, Type_signal, Type_tables); extern Type_signals type_signals_empty_create(Type_tables); /* Type_tables routines: */ extern Type_tables type_tables_create(Heap); extern void type_tables_dump(Type_tables, Stdio); /* Other routines: */ extern Str type_translate(Str, Heap); extern Vec(Routine_type) routine_types_list_parse(Parser); extern void type_init_gen(Type_ref, Gen); #endif /* TYPE_EXPORTS_H */