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:
toggle quoted message
Show quoted text
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.