[Oberon] Code check
mcintosh at vima.austin.tx.us
mcintosh at vima.austin.tx.us
Mon Jan 20 21:47:48 CET 2003
Perhaps I'm tired, but this code doesn't work as I expect it to.
Can someone look it over for a sanity check?
I am running on the May 22, 2002 Bluebottle system:
ETH Oberon / Aos 22.5.2002
Oberon Portable Compiler / nw, rc, nm, tk, prk
Oberon Parser (Active & X Extensions) / prk
The problem exists when the ":" character is passed to the routine. It passes
through the IF statement. When the source is changed so that the "#" character is in
the 5th call to the procedure, the command runs to completion, and the system state
becomes the one shown at the end of the listing.
MODULE AlmBug;
VAR t : ARRAY 8 OF CHAR; ix : LONGINT;
PROCEDURE ReadToken (ch : CHAR; VAR token: ARRAY OF CHAR);
VAR trash : CHAR;
BEGIN
IF (("A"<=ch) & (ch<="Z")) OR (("a"<=ch) & (ch<="z")) OR (("0"<=ch) & ("9"<=ch))
THEN
trash := "A";
ASSERT ((("A"<=ch) & (ch<="Z")) OR (("a"<=ch) & (ch<="z")) OR (("0"<=ch) & ("9"<=ch)));
trash := "B";
ASSERT ((ch#":") & (ch#"$"));
t [ix] := ch;
INC (ix)
END;
END ReadToken;
PROCEDURE Doit*;
BEGIN
ix := 0;
ReadToken ("A", t);
ReadToken ("b", t);
ReadToken ("$", t);
ReadToken ("C", t);
ReadToken (":", t);
ReadToken ("D", t)
END Doit;
END AlmBug.Doit
Compiler.Compile @
System.Free AlmBug ~
System.State AlmBug ~
AlmBug SB = 02B39F58H
@SELF = 02B39DB0H
SELF = 02B39DB0H
ix = 4
t = "AbCD"
Aubrey McIntosh <mcintosh at vima.austin.tx.us>
Assistant Professor of Chemistry
University of Minnesota, Morris
600 E. 4th St.
Morris, MN 56267-2134
More information about the Oberon
mailing list