[Oberon] Syntax details.

peter at easthope.ca peter at easthope.ca
Sun Oct 21 17:42:23 CEST 2018


From:	Andreas Pirklbauer <andreas_pirklbauer at yahoo.com>
Date:	Sat, 20 Oct 2018 19:40:39 +0200
> PS: ...
>     v := Oberon.MarkedViewer(); F := v.dsc;
>     CASE F OF
>       TextFrames.Frame: Texts.OpenScanner(nameS, F.text, 0); Texts.Scan(nameS)
>     END ;

Good.  Thanks.

As A2 Oberon disallows CASE of types I used IF.

MODULE Test IN Oberon;
	IMPORT Display, Oberon, Texts, TextFrames, Documents, Out, Viewers;
	VAR
		nameS: Texts.Scanner;
	PROCEDURE Identify*;
		VAR
			v: Viewers.Viewer;
			F: Display.Frame;
	BEGIN
		IF Oberon.Pointer.on THEN
			IF Documents.MarkedDoc() # NIL THEN
				Out.String("Test.Identify(): Marked Document is named ");
				Out.String(Documents.MarkedDoc().name); Out.Char("."); Out.Ln;
				IF Oberon.MarkedViewer() # NIL THEN
					Out.String("    Test.Identify(): Oberon.MarkedViewer() # NIL.  ?"); Out.Ln
				END
			ELSIF Oberon.MarkedViewer() # NIL THEN
				v := Oberon.MarkedViewer();
				F := v.dsc;
				IF F IS TextFrames.Frame THEN
					Texts.OpenScanner(nameS, F(TextFrames.Frame).text, 0); Texts.Scan(nameS);
					Out.String("Test.Identify(): Marked Text viewer is named ");
					Out.String(nameS.s); Out.Char("."); Out.Ln
				END
			ELSE
				Out.String("Test.Identify(): Pointer is on but Test.Identify() failed."); Out.Ln
			END
		ELSE
			Out.String("Test.Identify(): pointer is off."); Out.Ln
		END
	END Identify;
BEGIN
END Test.

So I've managed to distinguish a Document from a Text viewer but 
not to distinguish Text in a document from an image, button, scoll bar
& etc.

This in Oberon.Documents.Mod is puzzling.

> (** Returns the marked document (with F1). NIL is returned when no document is marked. 
>     The visibility of the Oberon pointer is ignored. *)
> PROCEDURE MarkedDoc*(): Document;
> VAR M: LocateMsg; V: Display.Frame;
> BEGIN
> 	IF TRUE (* Oberon.Pointer.on *) THEN

There must be a requirement to retrieve the marked document whether  
the * is off or on; but a mark which isn't visible seems odd.  Ideas?

Thanks,                     ... Lyall E.

-- 
Message composed and transmitted by software designed to avoid the 
need, overhead and vulnerability of antivirus software.

123456789 123456789 123456789 123456789 123456789 123456789 123456789
Tel: +1 360 639 0202                                  +1 
http://easthope.ca/Peter.html              Bcc: peter at easthope. ca


More information about the Oberon mailing list