¿ªÔÆÌåÓý

Re: Possible bug in BREXX parse instruction


 

Hi Bernd,

On VMCE 1.1.2:


1. Logon MAINTC.
2. The tools for maintaining the GCC runtime are on the 19c at filemode 'T'.
3. Establish the brexx code search?order with the command 'BRXSRCH'
? ? a. 193 is the C compiler output TEXT files for BREXX
? ? b. 393 is the compiler source
? ? c. 394 is the H files provided by the? GCC compiler
? ? d. 194 is the GCCLIB?MACLIB need to compile BREXX
4. The compiler is built with these tools:
? ? a. BRXASM?compiles the assembler code on the 393 disk
? ? b. BRXCOMP compiles the C code on the 393 disk
? ? c. BRXGEN?creates the executable output file: BREXX TEXT and BREXX MAP
5. BREXX is integrated into CMS, so perform these steps to install it on MAINT.
? ? LOGON MAINT
? ? DEFINE STOR 16M
? ? IPL 190 CLEAR
? ? NEWBREXX
? ? IPL 190 CLEAR
? ? SAVESYS CMS
? ? DEFINE STOR 15M
? ? IPL CMS

There are HELP files on the MAINTC T disk for these commands.
Before using them, rename the HELP files with filetype?'HELPCMD' to have
filetype 'HELPCM$'.

Bob Bolch
? ??


On Sun, Oct 16, 2022, 5:20 PM Bernd Oppolzer via <berndoppolzer=[email protected]> wrote:

Hello Mark and Bob,

I would like to help you (if I can) with diagnosing the problem in BREXX.
Maybe we could switch this communication to private.

A list of all sources and includes (in C, AFAIK), which are needed to build BREXX,
would be very helpful. And the MDISK where it can be found (I guess it
is part of the VM distribution, or maybe Turnkey MVS - same version?).

Kind regards

Bernd


Am 16.10.2022 um 22:51 schrieb Bob Bolch:
Thanks, Mark.

I never found brexx debug to be very useful. I do remember that you put the BREXXD TEXT on your A-disk, renamed to BREXX TEXT, then IPL CMS.? Then the 'trace' statement, in an EXEC , turns the tracing on and off (I can't remember the exact operand.) The trace output shows you codepoints in the BREXX interpretor where the code flows. I will try to figure out the details and report back.
Bob

On Sun, Oct 16, 2022, 4:35 PM Mark A. Stevens via <marXtevens=[email protected]> wrote:
On Sun, Oct 16, 2022 at 10:36 AM, Bob Bolch wrote:
Which left parentheses?are you referring?to in that sentence?
?
Also, the WITH keyword is only valid in a parse of the form:
PARSE VALUE expression WITH template
The 'with' in Dave Mitchell's example is a variable name.
?
The correct result of the DAVEMTST?EXEC is the following:
Welcome back from your surgery.

Once again, I'm leaving out thoughts and not writing them down. Sorry.
I am referencing Mike's 2nd edition, also the ANSI X3J18-199X document. I will also eat my words about the parentheses. I was wrong. I had to walk away from this due to other challenges, and forgot.

From the ANSI document.

/* Note: The next section describes templates. */
template_list?????? := template | [template] ',' [template_list]
template??????????? := (trigger | target | Msg38.1)+
target????????????? := VAR_SYMBOL | '.'
trigger???????????? := pattern | positional
pattern???????????? := STRING | vrefp
vrefp?????????????? := '(' (VAR_SYMBOL | Msg19.7) (')' | Msg46.1)
positional????????? := absolute_positional | relative_positional
absolute_positional := NUMBER | '=' position
position??????????? := NUMBER | vrefp | Msg38.2
relative_positional := ('+' | '-') position

Concerning the use of 'WITH', I found I was misreading the code. You are correct.

address ??????????? := 'ADDRESS' [(taken_constant [expression]
??????????????????? | Msg19.1 | valueexp) [ 'WITH' connection]]
... and ...

parse_value???????? := 'VALUE' [expression] ('WITH' | Msg38.3)

I have been going through the C code to determine what is and is not happening. Not having a lot of luck, yet, as I get lost in the definitions of record constructs, and I don't understand why TEMPLATE C skips left paren while gathering symbols. Starting at line 35 and on.

/* ----------- vrefp --------- */
/* variable reference position */
static void
vrefp(void) {
??? Context *context = (Context *) CMSGetPG();
??? nextsymbol(); /* skip left parenthesis */

I also have not been able to activate the debug mode of bREXX, though I thought I followed the directions.

?... Mark S.
Boy, do I feel stupid today.

Join [email protected] to automatically receive all group messages.