PreviousUpNext

15.3.42  src/app/yacc/src/utils.api

#  Mythryl-Yacc Parser Generator (c) 1989 Andrew W. Appel, David R. Tarditi 

# Compiled by:
#     src/app/yacc/src/mythryl-yacc.lib



###            "Pointers are like jumps, leading wildly from
###             one part of the data package to another.
###
###            "Their introduction into high-level languages
###             has been a step backwards from which we may
###             never recover."
###
###                                       -- C.A.R. Hoare



api Set {

    Set;
    Element;

    exception SELECT_ARB;

    apply:  (Element -> Void) -> Set -> Void
       also card: Set -> Int
       also closure: (Set, (Element -> Set)) -> Set
       also difference: (Set, Set) -> Set
       also elem_eq: ((Element, Element) -> Bool)
       also elem_gt:  ((Element, Element) -> Bool)
       also empty: Set
       also exists: ((Element, Set)) -> Bool
       also find:  ((Element, Set))  ->  Null_Or( Element )
       also fold: (((Element, Y)) -> Y) -> Set -> Y -> Y
       also set: ((Element, Set)) -> Set
       also is_empty: Set -> Bool
       also make_list: Set -> List( Element )
       also make_set: ( List( Element ) -> Set)
       also partition: (Element -> Bool) -> (Set -> (Set, Set))
       also remove: ((Element, Set)) -> Set
       also revfold: (((Element, Y)) -> Y) -> Set -> Y -> Y
       also select_arb: Set -> Element
       also set_eq: ((Set, Set)) -> Bool
       also set_gt: ((Set, Set)) -> Bool
       also singleton: (Element -> Set)
       also union: (Set, Set) -> Set;
};

api Table {

    Table(X);
    Key;

    size:  Table(X) -> Int;
    empty: Table(X);
    exists: ((Key, Table(X))) -> Bool;
    find:  ((Key, Table(X)))  ->  Null_Or(X);
    set: ((((Key, X)), Table(X))) -> Table(X);
    make_table:   List ((Key, X) ) -> Table(X);
    make_list:  Table(X) ->  List ((Key, X));
    fold:  ((((Key, X)), Y) -> Y) -> Table(X) -> Y -> Y;
};

api Hash {

    Table;
    Element;

    size:    Table -> Int;
    add:     (Element, Table) -> Table;
    find:    (Element, Table) -> Null_Or( Int );
    exists:  (Element, Table) -> Bool;
    empty:   Table;
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext