## build-ast.api
# Compiled by:
#
src/lib/c-kit/src/ast/ast.sublib### "It is hard not to feel guilty when
### I dash off a few lines of Mythryl to do something
### which I know some poor programmer somewhere
### is spending weeks trying to do in Java.
###
### "Fortunately, I am strong."
###
### -- Richard Hawkins
api Build_Raw_Syntax_Tree {
# Information returned by make_raw_syntax_tree:
Raw_Syntax_Tree_Bundle
=
{ raw_syntax_tree: raw_syntax::Raw_Syntax_Tree,
tidtab: tidtab::Uidtab( namings::Tid_Naming ),
error_count: Int,
warning_count: Int,
auxiliary_info: { aidtab: tables::Aidtab,
implicits: tables::Aidtab,
dictionary: state::Symtab }};
# Control of buildAst modes:
insert_explicit_coersions: Ref( Bool ); # Insert explicit casts at points where there are implicit type conversions?
insert_scaling: Ref( Bool ); # Insert scaling computations at pointer arithmetic?
reduce_sizeof: Ref( Bool ); # Replace sizeof expressions by integer constants?
reduce_assign_ops: Ref( Bool ); # Replace assignops by simple ops and assignments?
multi_file_mode_flag: Ref( Bool ); # Analysis mode -- allow repeated definitions?
local_externs_ok: Ref( Bool ); # Local declarations involving EXTERN are ok (usually FALSE)
default_signed_char: Ref( Bool ); # Is the type "char" implicitly regarded as signed?
multi_file_mode: Void -> Void;
compiler_mode: Void -> Void;
source_to_source_mode: Void -> Void;
# Convert a parse tree to an raw_syntax_tree
# and associated map from expression
# adornments to types
make_raw_syntax_tree:
(sizes::Sizes, state::State_Info, error::Error_State)
-> List( parse_tree::External_Decl )
-> Raw_Syntax_Tree_Bundle;
}; # Api BUILD_RAW_SYNTAX_TREE
## Copyright (c) 1998 by Lucent Technologies
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.