Working with VAC/C++ 3.08 and the LPEX editor, I am asking myself
where I could find any documentation about all the LXnnn.DLL commands
that are delivered with the system:
LXAMATCH.DLL
LXBMATCH.DLL
LXBRS.DLL
LXCHKDLL.DLL
LXCLOSE.DLL
LXCMD.DLL
LXCUABS.DLL
LXCUADEL.DLL
LXCUSTOM.DLL
LXCUSTRS.DLL
LXDETAB.DLL
LXDRAW.DLL
LXEMSG.DLL
LXENTAB.DLL
LXFMATCH.DLL
LXGFC.DLL
LXHELPWD.DLL
LXKEYS.DLL
LXMATCH.DLL
LXMIN2.DLL
LXNAVIGD.DLL
LXNAVIGR.DLL
LXPRG.DLL
LXPRINT.DLL
LXPROTO.DLL
LXPRPAS.DLL
LXPRSASM.DLL
LXRCRDRC.DLL
LXRECORD.DLL
LXSHWFNT.DLL
LXWF.DLL
LXWFDDE.DLL
They would correspond to commands like amatch, bmatch, brs, ... which
are actually used in the different *.LX? (REXX) macro files. In many
cases I can make guesses about the functionality, but I do not find
any direct documentation about these obviously useful functions!
Any hints or tipps about them?
Thanks and greetings,
Cornelis Bockem=FChl
--
Cornelis Bockem=FChl, Basel, Switzerland
e-mail: cbockem AT tiscalinet DOT ch
(use this instead of antispam reply address)
|
|
0
|
|
|
|
Reply
|
no.spam672 (15)
|
12/27/2003 9:04:20 PM |
|
Hi,
I remember that you can find some docs in the \IBMCPP\HELP folder about the
navigator and other stuff like LXGFC (I think it's the LXNAVIG... stuff).
Just open one .HLP/.INF file after the other (.HLP can also be viewed with
view.exe) and look through all of them.
The navigator shows you all the includes of a c/c++ file as a list and
function definitions and allows you to open them by clicking on them in a
browser window.
I think I got it to work by looking into some .LX/.LXL/.LXS (don' t remember
anymore) files in the MACROS\EXTRAS directory that duplicate files in the
MACROS directory but that are slightly different from the files in MACROS
directory.
Unfortunately (as you have already suspected), not all of those DLLs are
LPEX macro dll's, for example, LXWF.DLL, LXWFDDE.DLL are for the DDE
communication between LPEX and the Workframe and I don't think you can make
any use of them through the LPEX command line/script macro files.
By examining the dll's via exehdr and looking at the entry points, you
should be able to determine which files are LPEX macros files and which are
not (I think all LPEX macro dll's have an entry point LPEXMAIN or so).
You already use LXPROTO, it has a shortcut that can be determined from the
..LX config files. It's the thing that generates code skeletons for the
if(...),while(...) stuff etc.
LXMATCH also has a shortcut and shows you the opening/closing bracket for a
closing/opening bracket under the cursor.
Looking at the .LX config files will give you some idea about those two.
Lars
"Cornelis Bockemuehl" <no.spam@no.spam.org> schrieb im Newsbeitrag
news:pobpxrzgvfpnyvargpu.hql4j80.pminews@news.tiscalinet.ch...
Working with VAC/C++ 3.08 and the LPEX editor, I am asking myself
where I could find any documentation about all the LXnnn.DLL commands
that are delivered with the system:
LXAMATCH.DLL
LXBMATCH.DLL
LXBRS.DLL
LXCHKDLL.DLL
LXCLOSE.DLL
LXCMD.DLL
LXCUABS.DLL
LXCUADEL.DLL
LXCUSTOM.DLL
LXCUSTRS.DLL
LXDETAB.DLL
LXDRAW.DLL
LXEMSG.DLL
LXENTAB.DLL
LXFMATCH.DLL
LXGFC.DLL
LXHELPWD.DLL
LXKEYS.DLL
LXMATCH.DLL
LXMIN2.DLL
LXNAVIGD.DLL
LXNAVIGR.DLL
LXPRG.DLL
LXPRINT.DLL
LXPROTO.DLL
LXPRPAS.DLL
LXPRSASM.DLL
LXRCRDRC.DLL
LXRECORD.DLL
LXSHWFNT.DLL
LXWF.DLL
LXWFDDE.DLL
They would correspond to commands like amatch, bmatch, brs, ... which
are actually used in the different *.LX? (REXX) macro files. In many
cases I can make guesses about the functionality, but I do not find
any direct documentation about these obviously useful functions!
Any hints or tipps about them?
Thanks and greetings,
Cornelis Bockem�hl
--
Cornelis Bockem�hl, Basel, Switzerland
e-mail: cbockem AT tiscalinet DOT ch
(use this instead of antispam reply address)
|
|
0
|
|
|
|
Reply
|
lars.erdmann (53)
|
12/28/2003 10:29:44 AM
|
|
On Sun, 28 Dec 2003 11:29:44 +0100, Lars Erdmann wrote:
>Looking at the .LX config files will give you some idea about those two=
..
Thanks for your hints: This is a bit what I suspected! I.e.: You can
use these macros as far as you can guess their functionality from the
different *.LX? files, and others are just for "internal use" of the
"Workframe".
Actually writing own macro DLLs doesn't seem difficult at all:
- Any DLLs starting with LX* in the LIBPATH are considered macros by
LPEX, and the 6 letters after the LX are the name.
- Every such DLL needs a function "lpexmain" or such (and possibly an
"lpexexit" or so): This is all well documented, and there are
skeleton programs provided for writing own macros, and also a set of
LPEX functions that can be called from such programs (DLLs).
- EXEHDR will probably not be of much use because it only shows the
"lpexmain" entry point, which is the same for all these macros.
So it remains to simply do a search through the *.LX? files for the
different macro names and try to guess their use from there! And if
something I want to do and do not find anywhere it would be probably
the easier way to just write a DLL myself...
Greetings,
Cornelis
--
Cornelis Bockem=FChl, Basel, Switzerland
e-mail: cbockem AT tiscalinet DOT ch
(use this instead of antispam reply address)
|
|
0
|
|
|
|
Reply
|
no.spam672 (15)
|
12/29/2003 10:30:36 AM
|
|
Hi,
Actually writing own macro DLLs doesn't seem difficult at all:
- Any DLLs starting with LX* in the LIBPATH are considered macros by
LPEX, and the 6 letters after the LX are the name.
- Every such DLL needs a function "lpexmain" or such (and possibly an
"lpexexit" or so): This is all well documented, and there are
skeleton programs provided for writing own macros, and also a set of
LPEX functions that can be called from such programs (DLLs).
- EXEHDR will probably not be of much use because it only shows the
"lpexmain" entry point, which is the same for all these macros.
I know but if LPEX cannot find entry point "lpexmain" it will not consider
the DLL to be an LPEX extension (or it will give an error, I don't know).
So it remains to simply do a search through the *.LX? files for the
different macro names and try to guess their use from there! And if
something I want to do and do not find anywhere it would be probably
the easier way to just write a DLL myself...
Do you really think so ? You can do almost anything with REXX and it's very
fast too.
The "extract" command will allow you to use the LPEX internal commands from
a REXX script (with .LX file extension).
Placing the REXX extension script in the MACROS directory will allow you to
call the macro from within LPEX as with any DLL macros.
For example, I have written a tiling macro to arrange the LPEX windows and
it is really fast in REXX. Also, parsing file content is easy (I wrote a
macro that parses for #include <...>,#include "..." to open included
headers) as well as manipulating it.
Lars
|
|
0
|
|
|
|
Reply
|
lars.erdmann (53)
|
12/29/2003 3:46:23 PM
|
|
>Do you really think so ? You can do almost anything with REXX and it's =
very
>fast too.
Of course you are right! I found that out as well.
But still: While trying to write a piece of REXX code that 1. runs my
"make" command and 2. puts all the errors into the source code as
"show only" messages - I found out that this functionality already
exists in a DLL that can be accessed via the "BUILD.LX" macro and the
corresponding DLL ;-)
If I had had a documentation I would have been faster still - but
obviously both ways are working...
Greetings,
Cornelis
PS: I have no problems with neither REXX nor C, and working with LPEX
for years already, but only now I am finding out how much more
powerful it can be once I use the macro facilities! Ok, until some
months ago I was using also the Workframe that does a lot of things
automatically, until I was definitely bored by the fact that you
cannot move "projects" from one system to the other: You ALWAYS need
to recreate them more or less (with a few tricks to facilitate this
procedure, but not much...).
--
Cornelis Bockem=FChl, Basel, Switzerland
e-mail: cbockem AT tiscalinet DOT ch
(use this instead of antispam reply address)
|
|
0
|
|
|
|
Reply
|
no.spam672 (15)
|
12/29/2003 4:33:58 PM
|
|
On Mon, 29 Dec 2003 16:33:58 UTC, "Cornelis Bockemuehl"
<no.spam@no.spam.org> wrote:
> >Do you really think so ? You can do almost anything with REXX and it's very
> >fast too.
>
> Of course you are right! I found that out as well.
>
> But still: While trying to write a piece of REXX code that 1. runs my
> "make" command and 2. puts all the errors into the source code as
> "show only" messages - I found out that this functionality already
> exists in a DLL that can be accessed via the "BUILD.LX" macro and the
> corresponding DLL ;-)
>
> If I had had a documentation I would have been faster still - but
> obviously both ways are working...
If you are talking C or C++, pipe the output to a file with the
extension MFO (for Make File Output). Opening that in LPEX will add
options to the "View" and "Actions" menu to do the above actions in
the source file. Or, simply double click on a compiler error to go to
the source line. Don't ask me how I know as I've been doing this for
at least ten years.
>
> PS: I have no problems with neither REXX nor C, and working with LPEX
> for years already, but only now I am finding out how much more
> powerful it can be once I use the macro facilities! Ok, until some
> months ago I was using also the Workframe that does a lot of things
> automatically, until I was definitely bored by the fact that you
> cannot move "projects" from one system to the other: You ALWAYS need
> to recreate them more or less (with a few tricks to facilitate this
> procedure, but not much...).
LPEX is a great editor, and I've always been surprised at how rarely
it's mentioned. The ease that parsers can be added is great. Many
years ago while working at IBM and before LPEX was release to the
public, I wrote a parser for the configuration files for another
internal product called CMMouse (allowed the use of the mouse with
Communications Manager terminal screens). It was surprisingly easy,
and improved the maintainability of these files a lot.
But, the parser that I really miss from the internal version of LPEX
is the Bookmaster/GML/Script/IPF parser. This really showed the power
of LPEX as it gave a basic WYSIWYG view. If it was available, it
would be easy to modify the data files so it could be used with HTML.
--
David Forrester
davidfor at internode dot on dot net
http://www.os2world.com/djfos2
|
|
0
|
|
|
|
Reply
|
davidfor_NOSPAM_ (48)
|
12/31/2003 11:10:24 AM
|
|
On 31 Dec 2003 22:00:24 +1050, David Forrester wrote:
>If you are talking C or C++, pipe the output to a file with the
>extension MFO (for Make File Output). Opening that in LPEX will add
>options to the "View" and "Actions" menu to do the above actions in
>the source file. Or, simply double click on a compiler error to go to
>the source line. Don't ask me how I know as I've been doing this for
>at least ten years.
What I saw is that if you create an editor window as type "SHL" (for
"shell" probably) it calls also MFO.LXL, so the whole "type MFO
functionality" is included in "shells". From the "shell" you can call
the editor or "make" in the first place. With the "build" macros
(from LXBUILD.DLL, called in BUILD.LX) you can create a "SHL" that
even has menu entries allowing you to select all/some of the error
messages and then "inject" these into the corresponding sources all
at once as "messages". All this I learned just by trying to read LX
files, guessing etc...
>But, the parser that I really miss from the internal version of LPEX
>is the Bookmaster/GML/Script/IPF parser. This really showed the power
>of LPEX as it gave a basic WYSIWYG view. If it was available, it
>would be easy to modify the data files so it could be used with HTML.
....and you probably do not have a direct link to the "hightest
ranges" at IBM so you could convince them to release LPEX and these
internal parsers etc. to the interested OS/2 public...
Greetings,
Cornelis
--
Cornelis Bockem=FChl, Basel, Switzerland
e-mail: cbockem AT tiscalinet DOT ch
(use this instead of antispam reply address)
|
|
0
|
|
|
|
Reply
|
no.spam672 (15)
|
1/2/2004 12:21:36 PM
|
|
|
6 Replies
21 Views
(page loaded in 0.187 seconds)
|