[Oberon] Would this work for ETHO?

eas lab lab.eas at gmail.com
Sun Oct 4 08:22:40 CEST 2015


>Or perhaps 'Eco editing a composed program'
>http://soft-dev.org/pubs/html/diekmann_tratt__eco_a_language_composition_editor/

xplained reasons why <programmers don't like...& 70's versions weren't popular>
.

The following relates strongly to ETHO: which I'll show later.
But right now I've hit-some-thing-hot, while reviewing <wily's Tut>
   " <date replaces it with the current time."
He means: the selected text is replaced by <the date>,
 when MidMousing on the 5Char-token "<date" . Yes: quite spectacular.

Last month I exercised wily on this <recursive expand menu-token with text>;
eg. by kluxing "ProcDecl", you replace "ProcDecl" with eg:
"PROCEDURE ProcID;
 Decls
 BEGIN
  Blok
 END ProcID;"

BTW, I can't remember how it works & am just ad-libbing this now!

Since my directory is called "SIP": this reminds me that I used
<sed in place>.
NB. that's a further example of the *need for menus* :
I've forgotten how it works; but SIP reminds me of the essentials.

Looking at how wily handles "<date":
it would be far better than my <SIP system> if eg. "<ProcDecl" was
replaced by the corresponding text.

OK, now I remember: my SIP-system replaces/updates the FILE and
not the SCREEN. So one needs to re-load the updated-file on each
expansion cycle -- which is just a mouse-klik with ETHO & wily.

Let's see how/if to use wily's method.
Apparently MidMouse on: "<" <command which writes>
replaces the selection with <whatever the command writes>.

Let's try with <pwd
Wow: that's amazing.
OK, one problem: I was hoping for 1 mouse action, it needs 2:
1. select <pwd
2. MidMouse <pwd

Let's implement the proposed <expansion> right here [like you can do
with ETHO] right now!
Ie. write a script named "ProcDecl" which writes the above proposed
expansion.

echo "PROCEDURE ProcID;
 Decls
 BEGIN
  Blok
 END ProcID;"

And exercise/test it on: <ProcDecl
Which replaces "<ProcDecl" with the 5 lines:--
PROCEDURE ProcID;
 Decls
 BEGIN
  Blok
 END ProcID;

Wow !!
Now let's replace "Decls" with "<Decls".
BTW it's nice that "<" indicates an EXPANDABLE token.

Script: ProcDecl ==
echo "PROCEDURE ProcID;
 <Decls
 BEGIN
  Blok
 END ProcID;"
=================== starting from <ProcDecl  [from my
ad-lib example, instead of from: "MODULE <ModID"]
3 wipe-kliks give me [from the 2 toy-scripts above]:==
PROCEDURE ProcID;
 CONST A = N, B = N;
VAR VarID: Type;
PROCEDURE ProcID;
 <Decls
 BEGIN
  Blok
 END ProcID;


 BEGIN
  Blok
 END ProcID;
================> Yes ETHO can do this too!
Now just to paste this from wily to the crappy
web-based gmail.

Can't someone explain HOW2 access gmail [TLS ..etc]
via LEO ?!


More information about the Oberon mailing list