[Oberon] Null record fieldlists (was: Oberon Wiki)
chris at cfbsoftware.com
Mon Jan 10 00:00:59 CET 2011
>From: Frans-Pieter Vonck [mailto:fp at vonck.nl]
>Sent: Monday, 10 January 2011 7:56 AM
>To: oberon at lists.inf.ethz.ch
>Subject: [Oberon] Oberon Wiki ; what happend with WITH
>Is there anyone of the oberonlist maintaining the wiki page of
>I found the following flaw in the "Type binding" section
> Bird* = RECORD
> sound* : ARRAY 10 OF CHAR;
>The semicolon after CHAR is superfluous.
It is true that the additional semicolon is superfluous in Oberon-2 but it
is not an error. Oberon-2 allows null fieldlists (i.e. ";") similarly to the
way null statements are allowed.
>Actually the Oberon07 compiler of Astrobe rendered the following error.
> 5 36: ident missing
That error results because the compiler is expecting the start of another
fieldlist which is an 'ident'.
As well as some obvious syntax changes from Oberon to Oberon-07 there are
some much more subtle ones. This error report results from one of those.
Oberon-07 no longer allows null fieldlists in records. This is a consequence
of this syntax rule in the EBNF:
The EBNF for Oberon is:
FieldList = [IdentList : type]
Now in Oberon it is:
FieldList = IdentList : type
where the  in EBNF indicate that an item is optional.
I find issues like this easier to understand by following the trail through
syntax diagrams rather than EBNF. The syntax diagrams for Oberon-07 are on
my website at:
Astrobe v3.2: ARM Oberon-07 Development System
More information about the Oberon