PreviousUpNext

15.4.629  src/lib/compiler/front/typer/basics/base-typ-numbers.pkg

## base-typ-numbers.pkg
## (C) 2001 Lucent Technologies, Bell Labs

# Compiled by:
#     src/lib/compiler/front/typer/typer.sublib

# All base type-constructor numbers used in Mythryl.



api Basetype_Numbers {
    #
    include Core_Basetype_Numbers;                                              # Core_Basetype_Numbers is from   src/lib/compiler/front/typer-stuff/basics/core-basetype-numbers.pkg
    #
    basetype_number_tagged_int:         Int;
    basetype_number_int1:         Int;
    basetype_number_list:          Int;
    basetype_number_etag:          Int;
    basetype_number_fate:          Int;
    basetype_number_control_fate:  Int;
    basetype_number_option:        Int;
    basetype_number_boxed:         Int;
    basetype_number_tgd:           Int;
    basetype_number_utgd:          Int;
    basetype_number_tnsp:          Int;
    basetype_number_dyn:           Int;
    basetype_number_chunk:         Int;
    basetype_number_cfun:          Int;
    basetype_number_barray:        Int;
    basetype_number_rarray:        Int;
    basetype_number_slock:         Int;
    basetype_number_integer:        Int;
};



package   basetype_numbers
: (weak)  Basetype_Numbers                                                      # Basetype_Numbers              is from   src/lib/compiler/front/typer/basics/base-typ-numbers.pkg
{
    include core_basetype_numbers;                                              # core_basetype_numbers is from   src/lib/compiler/front/typer-stuff/basics/core-basetype-numbers.pkg
    #
    basetype_number_tagged_int = basetype_number_int;

    stipulate
        fun ptn i =   next_free_basetype_number + i;
    herein

        # These values appear to be referenced mainly in:
        #
        #     src/lib/compiler/front/typer/types/type-types.pkg
        #     src/lib/compiler/back/top/highcode/highcode-basetypes.pkg
        #
        basetype_number_int1    = ptn  0;
        basetype_number_list            = ptn  1;
        basetype_number_etag            = ptn  2;
        basetype_number_fate            = ptn  3;
        basetype_number_control_fate    = ptn  4;
        basetype_number_option  = ptn  5;
        basetype_number_boxed   = ptn  6;
        basetype_number_tgd             = ptn  7;       # "tagged"?
        basetype_number_utgd            = ptn  8;       # "untagged"?
        basetype_number_tnsp            = ptn  9;
        basetype_number_dyn             = ptn 10;
        basetype_number_chunk   = ptn 11;
        basetype_number_cfun            = ptn 12;
        basetype_number_barray       = ptn 13;  # byte rw vector
        basetype_number_rarray  = ptn 14;       # float64 rw vector
        basetype_number_slock   = ptn 15;       # spinlock (?)
        basetype_number_integer = ptn 16;       # indefinite-precision integer

        next_free_basetype_number
            =
            ptn 17;

    end;
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext