Progress on the ABAP Lisp interpreter
Since announcing the ABAP Lisp interpreter on SCN last week, I have made a few commits to the ABAP LispÂ repo. I was rather chuffed to get some positive response on the article, and it does provide a bit more motivation to keep working on it.
For a while, I was spending some time on an editor for ABAP Lisp, which I want to combine with my ABAP registry for storage and retrieval ofÂ scripts. This is proving to be a rather tedious task, as I was first messing about with the idea of using the Scintilla Text Editor, for which I found an ActiveX/OCX wrapper; the idea being that I could use the control framework to place it inside the ABAP GUI. That idea quickly gave way to using using the Ace editor inside a CL_GUI_HTML_VIEWER instance. AlthoughÂ it is more lightweight, it has posed problems of its own, so I am really not very far with it yet, especially not at the point of showing a screenshot. (One bonus is that it seems to work in the Platin/Java GUI). Oh yes, I decided not to use the code or text GUI control because I wanted some more features like highlighting and parens matching.
So after all of that, I decided to get back to the interpreter first, as that requires quite a lot of work. I have even started a specification document with which I am tracking ideas. After having added some features like string support, single quote syntax and Scheme function shorthand, I see that in order to make function calls practical (as that is what I am tackling first), there is a lot of work to be done in terms of integration to ABAP data and structures.
I don’t expectÂ that this is going to ever be enterprise-grade stuff, but apart from having fun doing it, I hope that at least developers will have some use for it. The main benefit I see from having this is the ability to have an interpreter with which to interact with an ABAP application server; i.e. being able to write scripts and applications without the need for compiling them, meaning that one could possibly use this for things such as data loads or running tests.
IÂ am working on a number of built-in types and functions to interact with ABAP data. It’s a bit early to show examples of how it will work, so I won’t give any examples yet.
The things that are kind of holding me back a little are that I am not an experienced Lisper, nor a computer scientist, although this is teaching me more about Lisp than I ever learned from puttering with it here and there. Also, it is a great way to learn aboutÂ interpreters and such.