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

Verification Of Operator Bindings

WiP.VerificationOfOperatorBindings History

Hide minor edits - Show changes to markup

2015-09-16 14:00 by trijezdci -
Added lines 1-2:

=== This page is now out of date ===

2010-04-22 10:53 by benjk -
Added lines 49-50:
  • [NEW] constructor
  • [DISPOSE] destructor
2010-04-22 10:52 by benjk -
Changed lines 3-5 from:

For a library defined type to define bindings to operators and pervasive functions it must be declared as a subset of one of five semantic superset types:

  • the S-Type, semantic superset of all character string types
to:

For a library defined type to define bindings to operators and pervasive functions it must be declared as a subset of one of six semantic superset types:

  • the A-Type, semantic superset of all dynamic array and set types
  • the S-Type, semantic superset of all dynamic character string types
Changed lines 18-19 from:

semanticType :

    '"' ( "S-Type" | "Z-Type" | "R-Type" | "C-Type" | "V-Type" ) '"' ;
to:

opaquePointerType :

    OPAQUE ( '(' semanticType ')' )?;

semanticType : string ; // "A-Type" and "S-Type" for opaque pointers // "Z-Type", "R-Type", "C-Type", "V-Type" for records

Changed lines 30-31 from:

S-Type Bindings

to:

A-Type Bindings

Added lines 33-48:
  • [NIL] null key value
  • [NEW] constructor
  • [DISPOSE] destructor
  • [COUNT] number of entries
  • [FOR] iterator
  • [IN] membership test
  • [.] entry accessor
  • [!] entry mutator
  • [-] entry removal

Example: SampleCollection

S-Type Bindings

The following bindings are permitted:

Deleted lines 133-147:

Collection Bindings

The following bindings are permitted:

  • [NIL] null key value
  • [NEW] constructor
  • [DISPOSE] destructor
  • [COUNT] number of entries
  • [FOR] iterator
  • [IN] membership test
  • [.] entry accessor
  • [!] entry mutator
  • [-] entry removal

Example: SampleCollection

2010-04-14 23:55 by benjk -
Deleted lines 110-112:

Pending review/removal:

  • [{}] enable value constructors
2010-04-14 05:18 by benjk -
Deleted line 160:
  {}yes
2010-04-14 05:16 by benjk -
Deleted line 106:
  • [{}] literal assignment
Changed lines 112-115 from:

Example: SampleVector

to:

Pending review/removal:

  • [{}] enable value constructors

Example: SampleVector and SampleTuple

2010-04-13 04:32 by benjk -
Deleted lines 110-111:
  • [*] multiplication
  • [/] division
2010-04-12 13:03 by benjk -
Changed lines 143-172 from:
 TMINyesyes
 TMAXyesyes
 HIGHyes
 LENGTHyes
 COUNTyes
 ABSyesyesyesyes
 NEGyesyesyesyes
 ODDyes
 DIVyes
 MODyes
 NILyes
 NEWyes
 DISPOSEyes
 FORyes
 INyes
 TOyesyes
 FROMyesyes
 ::yesyesyesyes
 {}yes
 :=yesyesyes
 .yesyes
 !yesyes
 +yesyesyesyesyes
 -yesyesyesyesyes
 *yesyesyes
 /yesyes
 =yesyesyesyesyes
 <yesyesyes
 >yesyesyes
to:
  TMINyesyes
  TMAXyesyes
  HIGHyes
  LENGTHyes
  COUNTyes
  ABSyesyesyesyes
  NEGyesyesyesyes
  ODDyes
  DIVyes
  MODyes
  NILyes
  NEWyes
  DISPOSEyes
  FORyes
  INyes
  TOyesyes
  FROMyesyes
  ::yesyesyesyes
  {}yes
  :=yesyesyes
  .yesyes
  !yesyes
  +yesyesyesyesyes
  -yesyesyesyesyes
  *yesyesyes
  /yesyes
  =yesyesyesyesyes
  <yesyesyes
  >yesyesyes
2010-04-12 12:57 by benjk -
Changed line 167 from:
 *yesyesyesyes
to:
 *yesyesyes
2010-04-12 12:46 by benjk -
Changed lines 160-171 from:
::yesyesyesyes
{}yes
:=yesyesyes
.yesyes
!yesyes
+yesyesyesyesyes
-yesyesyesyesyes
*yesyesyesyes
/yesyes
=yesyesyesyesyes
<yesyesyes
>yesyesyes
to:
 ::yesyesyesyes
 {}yes
 :=yesyesyes
 .yesyes
 !yesyes
 +yesyesyesyesyes
 -yesyesyesyesyes
 *yesyesyesyes
 /yesyes
 =yesyesyesyesyes
 <yesyesyes
 >yesyesyes
2010-04-12 12:46 by benjk -
Changed lines 144-159 from:
TMAXyesyes
HIGHyes
LENGTHyes
COUNTyes
ABSyesyesyesyes
NEGyesyesyesyes
ODDyes
DIVyes
MODyes
NILyes
NEWyes
DISPOSEyes
FORyes
INyes
TOyesyes
FROMyesyes
to:
 TMAXyesyes
 HIGHyes
 LENGTHyes
 COUNTyes
 ABSyesyesyesyes
 NEGyesyesyesyes
 ODDyes
 DIVyes
 MODyes
 NILyes
 NEWyes
 DISPOSEyes
 FORyes
 INyes
 TOyesyes
 FROMyesyes
2010-04-12 12:44 by benjk -
Changed line 143 from:
TMINyesyes
to:
 TMINyesyes
2010-04-12 12:44 by benjk -
Changed lines 143-159 from:
TMINyesyes
TMAXyesyes
HIGHyes
LENGTHyes
COUNTyes
ABSyesyesyesyes
NEGyesyesyesyes
ODDyes
DIVyes
MODyes
NILyes
NEWyes
DISPOSEyes
FORyes
INyes
TOyesyes
FROMyesyes
to:
TMINyesyes
TMAXyesyes
HIGHyes
LENGTHyes
COUNTyes
ABSyesyesyesyes
NEGyesyesyesyes
ODDyes
DIVyes
MODyes
NILyes
NEWyes
DISPOSEyes
FORyes
INyes
TOyesyes
FROMyesyes
2010-04-12 12:42 by benjk -
Changed lines 143-159 from:
TMINyesyes
TMAXyesyes
HIGHyes
LENGTHyes
COUNTyes
ABSyesyesyesyes
NEGyesyesyesyes
ODDyes
DIVyes
MODyes
NILyes
NEWyes
DISPOSEyes
FORyes
INyes
TOyesyes
FROMyesyes
to:
TMINyesyes
TMAXyesyes
HIGHyes
LENGTHyes
COUNTyes
ABSyesyesyesyes
NEGyesyesyesyes
ODDyes
DIVyes
MODyes
NILyes
NEWyes
DISPOSEyes
FORyes
INyes
TOyesyes
FROMyesyes
2010-04-12 12:39 by benjk -
Changed lines 143-171 from:
TMINyesyes
TMAXyesyes
HIGHyes
LENGTHyes
COUNTyes
ABSyesyesyesyes
NEGyesyesyesyes
ODDyes
DIVyes
MODyes
NILyes
NEWyes
DISPOSEyes
FORyes
INyes
TOyesyes
FROMyesyes
::yesyesyesyes
{}yes
:=yesyesyes
.yesyes
!yesyes
+yesyesyesyesyes
-yesyesyesyesyes
*yesyesyesyes
/yesyes
=yesyesyesyesyes
<yesyesyes
>yesyesyes
to:
TMINyesyes
TMAXyesyes
HIGHyes
LENGTHyes
COUNTyes
ABSyesyesyesyes
NEGyesyesyesyes
ODDyes
DIVyes
MODyes
NILyes
NEWyes
DISPOSEyes
FORyes
INyes
TOyesyes
FROMyesyes
::yesyesyesyes
{}yes
:=yesyesyes
.yesyes
!yesyes
+yesyesyesyesyes
-yesyesyesyesyes
*yesyesyesyes
/yesyes
=yesyesyesyesyes
<yesyesyes
>yesyesyes
2010-04-12 12:33 by benjk -
Changed lines 145-146 from:
HIGH×
LENGTH×
to:
HIGHyes
LENGTHyes
2010-04-12 12:32 by benjk -
Changed line 165 from:
+yesyesyesyesyes
to:
+yesyesyesyesyes
2010-04-12 12:32 by benjk -
Changed lines 143-144 from:
TMINyes×
TMAX××
to:
TMINyesyes
TMAXyesyes
Changed lines 147-171 from:
COUNT×
ABS××××
NEG××××
ODD×
DIV×
MOD×
NIL×
NEW×
DISPOSE×
FOR×
IN×
TO××
FROM××
::××××
{}×
:=×××
.××
!××
+×××××
-×××××
*×××
/××
=×××××
<×××
>×××
to:
COUNTyes
ABSyesyesyesyes
NEGyesyesyesyes
ODDyes
DIVyes
MODyes
NILyes
NEWyes
DISPOSEyes
FORyes
INyes
TOyesyes
FROMyesyes
::yesyesyesyes
{}yes
:=yesyesyes
.yesyes
!yesyes
+yesyesyesyesyes
-yesyesyesyesyes
*yesyesyesyes
/yesyes
=yesyesyesyesyes
<yesyesyes
>yesyesyes
2010-04-12 12:27 by benjk -
Changed line 143 from:
TMIN'yes'×
to:
TMINyes×
2010-04-12 12:27 by benjk -
Changed line 143 from:
TMIN××
to:
TMIN'yes'×
2010-04-12 12:05 by benjk -
Changed line 141 from:
to: