Site Menu Project Specification Implementation Recommendations Reference Needs Updating Work in Progress Wastebasket Wiki Manual |
Operator Binding Example For Approach 2 S-TypeWiP.OperatorBindingExampleForApproach2S-Type HistoryHide minor edits - Show changes to output 2010-04-16 09:43
by -
Changed lines 9-13 from:
(* PROCEDURE [ to:
(* allocator *) PROCEDURE [NEW] new ( VAR s : String ); (* Allocates a new string and passes a reference to it back in s *) Added lines 32-42:
(* length *) PROCEDURE [LENGTH] length ( s : String ) : LONGCARD; (* destructor *) PROCEDURE [DISPOSE] dispose ( VAR s : String ); (* Deallocates string s and passes NIL back in s *) 2010-04-16 09:32
by -
Added lines 1-42:
[@ DEFINITION MODULE String; (* Example library for dynamic strings using operator bindings *) TYPE String = OPAQUE ("S-Type"); (* length *) PROCEDURE [LENGTH] length ( s : String ) : LONGCARD; (* literal assignment *) PROCEDURE [:=] assign ( VAR s : String; literal : ARRAY OF CHAR ); (* concatenation *) PROCEDURE [+] concatenate ( s1, s2 : String ) : String; (* relational operations *) PROCEDURE [=] isEqual ( s1, s2 : String ) : BOOLEAN; PROCEDURE [>] isGreater ( s1, s2 : String ) : BOOLEAN; PROCEDURE [<] isLess ( s1, s2 : String ) : BOOLEAN; (* IO procedures *) PROCEDURE Read ( f : File; VAR s : String ); PROCEDURE Write ( f : File; s : String ); PROCEDURE WriteF ( f : File; fmtStr : ARRAY OF CHAR; items : CARDINAL; VARIADIC v[items] OF s : String ); END String.@] |