PreviousUpNext

15.3.53  src/lib/c-kit/src/ast/build-ast.api

## 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.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext