Dependence on Programming Experts
Viktoras Didziulis
viktoras at ekoinf.net
Fri Jul 14 05:57:38 EDT 2006
Brian, this is definitely something usable! Many other programming
languages support alternative syntaxes through inlining the code without
tackling with the engine in any way. Such inline capabilities are ensured
solely by external modules. E.g. one can inline C or ASM into a Perl program
so that it even gets compiled and executed when high speed processing is
needed. Same can be said about other languages that can be inlined. If you
go to www.cpan.org then you will face the amount of modules implementing
diverse functionality in Perl. There are 401 inline modules alone
(http://search.cpan.org/search?query=inline&mode=all) ! So in Perl you just
write use Inline C and start writing in C... I am not advocating Perl here,
but this is something to grasp on as a good example of modularity and
flexibility:
1) having open and searchable repository of Revolution modules like www.cpan
org accessible by everyone, not just by owners of the product.
2) taking some time and creating externals for inlines and any other
additional functionality to put there for public use
With library this should be possible:
start using stack "MathLib"
x=field "x"
y=field "y"
z=x+y
answer z;
or automatically relate script variables with fields, so we could skip
assignement of field values and write
start using stack "MathLib"
z=x+y
answer z;
while MathLib would take care about translating x, y and z to corresponding
fields on the stack (field "x", field "y" and field "z")
Now compare:
the assembly
mov ax, 5
mov bx, 7
add ax, bx
and the transcript:
put 5 into x
put 7 into y
add y to x
So time ago this type of syntax lead to creation of high level languages
that could understand z=x+y directly. No wonder the same discussion starts
on this list from time to time ;-)
Just 2 cents from
Viktoras
-------Original Message-------
From: Brian Yennie
Date: 07/14/06 07:12:07
To: How to use Revolution
Subject: Re: Dependence on Programming Experts
For fun, try inserting this as a front script:
on returnInField
get offset(("field ""e&"script""e&" of card
""e&"revscript""e), the long name of the target)
if (it = 1) then
put word 2 of the selectedLine into lineNum
put line (lineNum) of fld "script" of card "revscript" into prevLine
if (token 2 of prevLine is "=") then
put ("put"&&(token 3 to -1 of prevLine)&&"into"&&(token 1 of
prevLine)) into line (lineNum) of fld "script" of card "revscript"
select empty
send "revFormatField lineNum,lineNum" to card "revscript"
select after line (lineNum) of fld "script" of card "revscript"
end if
end if
pass returnInField
end returnInField
Now edit any script and enter "x=5" or some other simple assignment on
a line by itself. Hit return. Voila, translation to "verbose" =)!
I'm sure there are various ways a plugin could use this sort of magic
to allow customized syntax, without needing changes to the Rev engine.
It would just become a script editor convenience. You could always trap
script editing messages to even hide the conversion rather than
converting it on the fly.
- Brian
_______________________________________________
use-revolution mailing list
use-revolution at lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution
More information about the use-livecode
mailing list