Modula-2 Reloaded

A Modern Typesafe & Literate Programming Notation

Site Menu

Project

Specification

Implementation

Recommendations

Reference

Needs Updating

Work in Progress

Wastebasket

Wiki Manual

edit SideBar

OO Stack

Spec.OOStack History

Hide minor edits - Show changes to markup

2010-01-11 10:51 by benjk -
Added lines 13-22:

(* or should this be something like ...

    Stack = RECORD
        (* field declarations *)
    END;

   or perhaps ...

    Stack = OPAQUE RECORD; *)
2010-01-11 07:28 by benjk -
Changed lines 14-24 from:

PROCEDURE ( self : Stack ) new ( initialSize : LONGCARD; VAR status : Status ) : Stack;

PROCEDURE ( self : Stack ) push ( stack : Stack; value : Collection Data?; VAR status : Status );

PROCEDURE ( self : Stack ) pop ( stack : Stack; VAR status : Status ) : Collection Data?;

PROCEDURE ( self : Stack ) capacity ( stack : Stack) : LONGCARD;

PROCEDURE ( self : Stack ) numberOfEntries ( stack : Stack ) : LONGCARD;

PROCEDURE ( self : Stack ) dispose ( VAR stack : Stack );

to:

PROCEDURE ( self : Stack ) New ( initialSize : LONGCARD; VAR status : Status ) : Stack;

PROCEDURE ( self : Stack ) Push ( value : Collection Data?; VAR status : Status );

PROCEDURE ( self : Stack ) Pop ( VAR status : Status ) : Collection Data?;

PROCEDURE ( self : Stack ) Capacity : LONGCARD;

PROCEDURE ( self : Stack ) Number Of Entries? : LONGCARD;

PROCEDURE ( self : Stack ) Dispose;

2010-01-11 07:02 by benjk - object oriented version of Stack
Added lines 1-26:
DEFINITION MODULE Stack;

(* Object oriented version of Stack *)

FROM Collections IMPORT CollectionData, Status;

CONST
    defaultSize = <implementation defined>;
    maximumSize = <implementation defined>;

TYPE
    Stack = OPAQUE;

PROCEDURE ( self : Stack ) new ( initialSize : LONGCARD; VAR status : Status ) : Stack;

PROCEDURE ( self : Stack ) push ( stack : Stack; value : CollectionData; VAR status : Status );

PROCEDURE ( self : Stack ) pop ( stack : Stack; VAR status : Status ) : CollectionData;

PROCEDURE ( self : Stack ) capacity ( stack : Stack) : LONGCARD;

PROCEDURE ( self : Stack ) numberOfEntries ( stack : Stack ) : LONGCARD;

PROCEDURE ( self : Stack ) dispose ( VAR stack : Stack );

END Stack.