PreviousUpNext

15.3.286  src/lib/compiler/toplevel/compiler-state/compiler-mapstack-set.api

## compiler-mapstack-set.api

# Compiled by:
#     src/lib/compiler/core.sublib



###           "You have enemies?  Good.  That means
###            that you've stood up for something,
###            sometime in your life."
###
###                              -- Winston Churchill


stipulate
    package syx = symbolmapstack;                               # symbolmapstack                        is from   src/lib/compiler/front/typer-stuff/symbolmapstack/symbolmapstack.pkg
herein

    api Compiler_Mapstack_Set {
        #
    #    Symbolmapstack;
        Linking_Mapstack;
        Inlining_Mapstack;

        Compiler_Mapstack_Set
             # = { symbolmapstack:   syx::Symbolmapstack,
             #     linking_mapstack:  Linking_Mapstack,
             #     inlining_mapstack: Inlining_Mapstack
             #   }
             ;

        Symbol #  = symbol::Symbol 
             ;

        null_compiler_mapstack_set: Compiler_Mapstack_Set;

        symbolmapstack_part:     Compiler_Mapstack_Set -> syx::Symbolmapstack;
        linking_part:            Compiler_Mapstack_Set -> Linking_Mapstack;
        inlining_part:           Compiler_Mapstack_Set -> Inlining_Mapstack;

        make_compiler_mapstack_set
                :
                {   symbolmapstack:    syx::Symbolmapstack,
                    linking_mapstack:  Linking_Mapstack,
                    inlining_mapstack: Inlining_Mapstack
                }
               ->
               Compiler_Mapstack_Set;

        layer_compiler_mapstack_sets:       (Compiler_Mapstack_Set, Compiler_Mapstack_Set) -> Compiler_Mapstack_Set;
        concatenate_compiler_mapstack_sets: (Compiler_Mapstack_Set, Compiler_Mapstack_Set) -> Compiler_Mapstack_Set;
        layer_symbolmapstack:              (syx::Symbolmapstack, syx::Symbolmapstack)   -> syx::Symbolmapstack;
        layer_inlining_mapstack:            (Inlining_Mapstack, Inlining_Mapstack) -> Inlining_Mapstack;
        filter_compiler_mapstack_set:       (Compiler_Mapstack_Set, List( symbol::Symbol )) -> Compiler_Mapstack_Set;

    #   my filterSymbolmapstack:             syx::Symbolmapstack * List( symbol::Symbol ) -> syx::Symbolmapstack

        consolidate_compiler_mapstack_set:   Compiler_Mapstack_Set -> Compiler_Mapstack_Set;
        consolidate_symbolmapstack:         syx::Symbolmapstack       -> syx::Symbolmapstack;
        consolidate_inlining_mapstack:       Inlining_Mapstack     -> Inlining_Mapstack;

        # Reduce linking and inlining part to what's actually needed:
        #
        trim_compiler_mapstack_set
            :
            Compiler_Mapstack_Set -> Compiler_Mapstack_Set;

        describe
            :
            syx::Symbolmapstack -> symbol::Symbol -> Void;

        base_types_and_ops_symbolmapstack:  syx::Symbolmapstack;

    };                                                  # api Compiler_Mapstack_Set 
end;



## Copyright 1989 by AT&T Bell Laboratories
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext