[Oberon] Oberon usage

Jörg Straube joerg.straube at iaeth.ch
Mon Jul 12 01:10:57 MEST 2010


Hi Denis

> - no practicle output routine (write, or any other clear and praticle solution)

Did you have a look at the modules Out, Strings and/or Texts. What are you missing?

> - no possible code organisation !!! (*)

Would you give a real life example, what you miss?

> * live type info (no solution) (**)

A word on "type info". You surely know that in Oberon you can write:
TYPE
  UpdateMsg = RECORD
    (Display.FrameMsg)
    id*: INTEGER;
    board*: Board
  END;
  SelectionMsg = RECORD
    (Display.FrameMsg)
    time: LONGINT;
    text: Texts.Text;
    beg, end: LONGINT;
  END;

VAR M: Display.FrameMsg; (* M's static type *)

(* get an event M and check for M's dynamic type *)
IF M IS UpdateMsg  THEN (* e.g. update the screen *)
ELSIF M IS SelectionMsg THEN (* e.g. copy the selection *)
END

Is there something in addition you are looking for?

Joerg



More information about the Oberon mailing list