On Fri, 25 Jun 2021, at 02:37, David Crayford wrote:
> On 24/06/2021 9:44 pm, Jeremy Nicoll wrote:
> > On Thu, 24 Jun 2021, at 01:57, David Crayford wrote:
> >
> >> For example, to create and ISPF in Lua you instantiate and ISPF object
> >> and then communicate with it by calling methods
> >> https://lua4z.github.io/Lua4z/modules/ispf.html.
> > That shows eg that you can invoke ispf edit via lua.  But can you use lua
> > to tell ispf edit to run a macro (written in lua) and can that macro issue
> > ispf editor commands, and also display ispf panels (eg to find out what
> > the macro should do or display its results) and issue tso commands?
> 
> Yes to all. Here's an example. The 'ispf.bind' function uses VDEFINE to 
> map ISPF variables to the vars table.

Thanks for the example.  
 
> local ispexec = ispf.ispexec

Is the righthand part of that specifying the ispexec 'method' of an 'ispf'
class (or however lua names such concepts)?

> local isredit = function (cmd) return ispexec("ISREDIT " .. cmd) end

... and that says that in the code below that: isredit <string> returns 
whatever  ispexec "ISREDIT" || <string>      would yield ... which is 
presumably (perhaps) an action, and a return code?

> isredit "(LRECL) = LRECL"
> local lrecl = ispf.vcopy("LRECL")

Would that place the current file's lrecl in the ispf variable named 
LRECL then copy that value to the lua program's same-named 
variable?

If so, this is a lot more like writing an ispf application in assembler 
than rexx - it may work, but it's a lot more cumbersome having to 
move stuff between one's own local storage and the ispf variable
pools.  REXX may well (must?) be doing that under the covers in its 
address ispexec (etc) envronments but freeing the programmer 
from having to do it makes things easy in REXX. 

It also means that the lua code presumably has to do some initial 
allocation of memory to hold variables whose maximum length
a REXX programmer needn't worry about -- like your ispf.bind 
vdefine-ing   "line",   as   "charbuf"   of length  lrecl ... which also 
shows that you need to specify "charbuf" or "char" or whatever 
else makes sense in lua - something else the REXX programmer 
needn't think about.


> > How about replacing REXX in eg Netview?
> 
> Does Netview support C/C++?

I don't know.

-- 
Jeremy Nicoll - my opinions are my own.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to