## inlining-junk.api
## (C) 2001 Lucent Technologies, Bell Labs
# Compiled by:
#
src/lib/compiler/core.sublib### "In my eyes it is never a crime to steal knowledge.
### It is a good theft. The pirate of knowledge is a
### good pirate."
###
### -- Michel Serres
stipulate
package hbo = highcode_baseops; # highcode_baseops is from
src/lib/compiler/back/top/highcode/highcode-baseops.pkg package tdt = type_declaration_types; # type_declaration_types is from
src/lib/compiler/front/typer-stuff/types/type-declaration-types.pkgherein
api Inlining_Junk {
#
Inlining_Data;
# inline_baseop: (hbo::Baseop, tdt::Typoid) -> Inlining_Data;
# inline_list: List( Inlining_Data ) -> Inlining_Data;
# inline_nil: Inlining_Data;
print_inlining_data: Inlining_Data -> String;
select_inlining_data: (Inlining_Data, Int) -> Inlining_Data;
is_baseop_info: Inlining_Data -> Bool;
is_callcc_baseop: Inlining_Data -> Bool;
is_pure_baseop: Inlining_Data -> Bool;
make_baseop_inlining_data: (hbo::Baseop, tdt::Typoid) -> Inlining_Data;
make_inlining_data_list: List(Inlining_Data) -> Inlining_Data;
#
# These two wrap-and-return the supplied info.
# They are used (only) in:
src/lib/compiler/front/semantic/symbolmapstack/base-types-and-ops.pkg null_inlining_data: Inlining_Data;
# This one essentially unwraps information wrapped by one
# of the above two make_*_inlining_data funs and then does
# a 'case' statement based on that information:
#
case_inlining_data
:
Inlining_Data
->
{ do_inline_baseop: (hbo::Baseop, tdt::Typoid) -> X,
do_inline_list: List( Inlining_Data ) -> X,
do_inline_nil: Void -> X
}
->
X;
get_inlining_data_for_prettyprinting: Inlining_Data -> (String, tdt::Typoid); # We return baseop as string to allow use where hbo package is not visible.
};
end;