You can subscribe to this list here.
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
(1) |
Dec
(2) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2020 |
Jan
|
Feb
|
Mar
(4) |
Apr
(3) |
May
(6) |
Jun
(7) |
Jul
(10) |
Aug
(9) |
Sep
(9) |
Oct
(1) |
Nov
(3) |
Dec
(5) |
2021 |
Jan
|
Feb
(1) |
Mar
(5) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(4) |
Sep
(3) |
Oct
(9) |
Nov
(1) |
Dec
(14) |
2022 |
Jan
(8) |
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(165) |
Jul
(8) |
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
(5) |
2023 |
Jan
(19) |
Feb
(14) |
Mar
(2) |
Apr
(3) |
May
|
Jun
(2) |
Jul
(10) |
Aug
(6) |
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
|
Feb
(10) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Jeff H. <Je...@Je...> - 2020-11-15 16:00:44
|
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <p>I am trying to run an example from Pipelines Quick Start (p 24), using the supplied file <font face="monospace">examples/calltest1.njp</font>. But I am getting stuck right at the beginning.</p> <div style="display:inline-block;white-space:pre;background-color:#012456;font-family:'Consolas',monospace;font-size:10pt;padding:4px;"><span style="color:#CCCCCC;background-color:#012456;">PS C:\Users\Jeff\documents\pipe tests> </span><span style="color:#F9F1A5;background-color:#012456;">pipc </span><span style="color:#CCCCCC;background-color:#012456;">calltest1 </span><div style="display:inline-block;white-space:pre;background-color:#012456;font-family:'Consolas',monospace;font-size:10pt;padding:4px;"><span style="color:#CCCCCC;background-color:#012456;">PS C:\Users\Jeff\documents\pipe tests> </span><span style="color:#F9F1A5;background-color:#012456;">java </span><span style="color:#CCCCCC;background-color:#012456;">calltest1 Error: Main method not found in class calltest1, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application</span></div> <span style="color:#CCCCCC;background-color:#012456;"></span></div> <p>Here is the file <br> </p> <blockquote> <p><font face="monospace">-- calltest1.njp<br> <br> pipe (callt1 debug 0 ) literal test | calltest1 10 | console<br> <br> import org.netrexx.njpipes.pipes.<br> class calltest1 extends stage final<br> <br> method run() public<br> <br> say '1 .. 10, test'<br> do<br> a = arg()<br> <br> callpipe (cp1 debug 0 ) gen {a} | *out0:<br> <br> loop forever<br> line = peekto()<br> output(line)<br> readto()<br> end<br> <br> catch StageError<br> rc = rc()<br> end<br> <br> exit(rc*(rc<>12))<br> </font></p> </blockquote> <p>I tried changing the top to:</p> <blockquote> <p><font face="monospace">-- calltest1.njp<br> <br> import org.netrexx.njpipes.pipes.<br> class calltest1 extends stage final<br> <br> method main()<br> pipe (callt1 debug 0 ) literal test | calltest1 10 | console</font></p> </blockquote> <p>but get the same error. I have also tried changing the file name to <font face="monospace">calltest1.nrx</font> to no avail.</p> <p>Anyone who can help would be greatly appreciated. (I have an idea for a new stage that would allow a web browser to be the output target of a stage like <font face="monospace">CONS</font> -- that leads to all kinds of interesting things with fonts and colors, etc --, but it needs to use <font face="monospace">callpipe</font>, which I have never yet used.) <br> </p> <p>Thanks,</p> <p>Jeff <br> </p> </body> </html> |
From: Jeff H. <Je...@Je...> - 2020-11-14 20:44:55
|
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <p>I have implemented the COLLATE stage. And added a SEParator option. It, 20 some tests, and the documentation have been loaded.<br> </p> <p><font face="monospace">/** collate<br> <br> +-NOPAD----+ +-RESPECTCASE-(1)-+<br> >>-COLLATE--+------------+-+----------+-+-----------------+--><br> +-STOP-ANYOF-+ +-PAD-xorc-+ +-| anycase |-----+<br> <br> +-MASTER-DETAIL---+<br> >--+---------------------------+--+-----------------+--><br> +-inputRange-+------------+-+ +-MASTER----------+<br> +-inputRange-+ +-DETAIL-+--------+<br> +-MASTER-+<br> <br> >--+----------------------------------+--><<br> +-SEParator-delimitedString-(1)(2)-+<br> <br> anycase:<br> <br> +-RESPECTCASE-(1)-+<br> |-+-----------------+-|<br> +-ANYcase---------+<br> +-CASEANY---------+<br> +-CASEIGNORE------+<br> +-CASELESS--------+<br> +-IGNORECASE------+<br> <br> (1) NetRexx Pipelines only.<br> (2) delimitedString record is put before each Master Record<br> (or after if DETAIL MASTER order) on the primary output stream.<br> <br> */ </font><br> </p> <p><br> </p> <p><br> </p> <p><br> </p> </body> </html> |
From: Jeff H. <Je...@Je...> - 2020-11-03 22:07:04
|
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <p>I have added two new options to CONSOLE (and aliases). PRfix and PRompt are aliases for the same thing. The operated differently depending on if the stage is the first in the pipe or is later.<br> </p> <p><img src="cid:par...@Je..." alt=""></p> <p>Jeff Hennick<br> </p> </body> </html> |
From: Jeff H. <Je...@Je...> - 2020-10-07 15:06:31
|
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <p>I have just committed a new <b>ChangeParse</b> stage.</p> <p>This is an upwardly compatible upgrade to and replacement for the <b>Parse</b> stage. The name change is to bring it into a rational set of <b>Change</b> and <b>ChangeRegex</b>.</p> <p>This is the first of several stages that I want to add <u>optional</u> keywords to to make them more Rexx like, that is, more readable. Here I have added <b>FROM</b> and <b>TO</b> in front of the two delimited strings. The short, Xedit like, versions still work as before.</p> <p>Also added as functional upgrades are a few more optional key word-delimited string pairs. These can be in any order so long as they are after the unadorned from and to strings. If the key words <b>FROM</b> and <b>TO</b> are used, all of the pairs can appear in any order.</p> <p>The big addition is the ability to use NetRexx statements in altering the data that is written, for example, adding up multiple fields in the record, or multiplying them, etc. It is possible to have "persistent variables" that stay between records, useful for spotting changes or summations. This key word is <b>BY</b>; the delimited string consisting of 0 or more semicolon separated NetRexx statements. These are interpreted each record between the <font face="monospace">peekto()</font> and the <font face="monospace">output()</font> statements. <br> </p> <p>There also a new keyword of <b>FINALLY</b>; its delimited string is like that of <b>TO</b>, a template for a final output record after the primary input stream's last record has been processed.</p> <p>And, since for the <b>BY</b> statements, there may need to be some setup prior to processing records, there is a <b>FIRST</b> keyword and delimited string of NetRexx statements.</p> <p><img src="cid:par...@Je..." alt=""></p> <p>Question: Is there a better keyword for the function that <b>BY</b>?</p> <p>It is my intention to remove the <b>PARSE</b> stage, in favor of this better named stage. Comments?</p> <p>And as always, ideas, comments, corrections, et al, are welcomed. (Oops, I see I left out a note in the documentation that this is NetRexx Pipelines only.)</p> <p>Jeff Hennick<br> </p> <p><br> </p> </body> </html> |
From: Jeff H. <je...@je...> - 2020-09-18 22:43:44
|
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <p>Glad we got it in for 3.09. We won't have much longer to do that.</p> <p>And, of course, another doughnut, virtual, for Colin. Thanks!<br> </p> <div class="moz-cite-prefix">On 9/18/2020 5:31 PM, René Jansen wrote:<br> </div> <blockquote type="cite" cite="mid:246...@xs..."> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> Hi Jeff, <div><br> </div> <div>Thank you, that is the right thing to do.<br> <br> <div dir="ltr">René.</div> <div dir="ltr"><br> <blockquote type="cite">On 18 Sep 2020, at 21:30, Jeff Hennick <a class="moz-txt-link-rfc2396E" href="mailto:Je...@je..."><Je...@je...></a> wrote:<br> <br> </blockquote> </div> <blockquote type="cite"> <div dir="ltr"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <p>René & Colin,</p> <p>I have just altered the compare stage so it does the type cast on its inputs.</p> <p>Jeff<br> </p> <div class="moz-cite-prefix">On 9/18/2020 1:29 PM, ColinK wrote:<br> </div> <blockquote type="cite" cite="mid:3bb...@im..."> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <font face="Century Gothic">Thanks Rene<br> <br> Turns out the problem was not in compare but in the stage prior to compare. It was outputting a java String response instead of a Rexx response. It is interesting that the prior stage (hostbyname, in this case) had always done this but only now did compare complain. I will get the updated version of hostbyname committed shortly.<br> <br> Cheers<br> Colin<br> </font><br> <div class="moz-cite-prefix">On 2020-09-17 16:07, René Jansen wrote:<br> </div> <blockquote type="cite" cite="mid:A23...@xs..."> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> Hi Colin, <div><br> </div> <div>You can put a Rexx in front of it; also, we need to look at sort to maybe convert it to Rexx only.<br> <br> <div dir="ltr">René.</div> <div dir="ltr"><br> <blockquote type="cite">On 18 Sep 2020, at 00:16, ColinK <a class="moz-txt-link-rfc2396E" href="mailto:ibm...@im..." moz-do-not-send="true"><ibm...@im...></a> wrote:<br> <br> </blockquote> </div> <blockquote type="cite"> <div dir="ltr"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> Hello<br> <br> I have been updating my hostbyname.nrx stage so that it sorts the IP addresses returned (as DNS does not guarantee the same order in response). This will hopefully get around some false negative unit testing issues. It appears to be working fine but I am now running into an issue with compare.<br> <br> ==> Without compare stage<br> <br> <tt>Z:\GIT\netrexx-dev\bin>pipc hbntest00</tt><tt><br> </tt><tt>pipe (hbntest00 ) literal dns.google example.com bogus.bogus one.one.one.one | split | hostbyname | console</tt><tt><br> </tt><tt><br> </tt><tt>Z:\GIT\netrexx-dev\bin>java hbntest00</tt><tt><br> </tt><tt>8.8.4.4 8.8.8.8</tt><tt><br> </tt><tt>93.184.216.34</tt><tt><br> </tt><tt># Input record 3: Unable to determine IP address for bogus.bogus #</tt><tt><br> </tt><tt>1.0.0.1 1.1.1.1</tt><br> <br> ==> With compare stage<br> <tt><br> </tt><tt>Z:\GIT\netrexx-dev\bin>pipc hbntest1</tt><tt><br> </tt><tt>pipe (hbntest1 ) literal dns.google | hostbyname | console | compare: compare equal /PASS/ notequal /FAIL/ | console ? literal 8.8.4.4 8.8.8.8 | compare:</tt><tt><br> </tt><tt><br> </tt><tt>Z:\GIT\netrexx-dev\bin>java hbntest1</tt><tt><br> </tt><tt>8.8.4.4 8.8.8.8</tt><tt><br> </tt><tt>java.lang.ClassCastException: java.lang.String cannot be cast to netrexx.lang.Rexx</tt><tt><br> </tt><tt> at org.netrexx.njpipes.stages.compare.run(<b>compare.java:128</b>)</tt><tt><br> </tt><tt> at org.netrexx.njpipes.pipes.ThreadPool.run(ThreadPool.java:60)</tt><tt><br> </tt><tt> at java.lang.Thread.run(Thread.java:748)</tt><tt><br> </tt><tt>Exiting due to uncaught Exception java.lang.String cannot be cast to netrexx.lang.Rexx</tt><br> <br> Looking at \build\classes\org\netrexx\njpipes\stages\compare.java I see the following around line 128<br> <br> <div><ojigobehihnhlgjj.png></div> <br> <br> The compare.nrx source around that spot is:<br> <br> <div><bifefgpdfoblncip.png></div> <br> <br> If I am reading this correctly the issue appears to be around the variables "key" or "ds". Since their type is not "pre-declared" I presume they would default to type Rexx. Is that a fair statement? I guess I am not seeing how java.lang.String is coming into the picture. <br> <br> Am I traveling down the right path here or am totally out-to-lunch? :-)<br> <br> Thanks<br> Colin<br> <br> <br> <span>_______________________________________________</span><br> <span>netrexx-pipelines mailing list</span><br> <span><a class="moz-txt-link-abbreviated" href="mailto:net...@li..." moz-do-not-send="true">net...@li...</a></span><br> <span><a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines" moz-do-not-send="true">https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines</a></span><br> </div> </blockquote> </div> </blockquote> <br> <br> <fieldset class="mimeAttachmentHeader"></fieldset> <br> <fieldset class="mimeAttachmentHeader"></fieldset> <pre class="moz-quote-pre" wrap="">_______________________________________________ netrexx-pipelines mailing list <a class="moz-txt-link-abbreviated" href="mailto:net...@li..." moz-do-not-send="true">net...@li...</a> <a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines" moz-do-not-send="true">https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines</a> </pre> </blockquote> <span>_______________________________________________</span><br> <span>netrexx-pipelines mailing list</span><br> <span><a class="moz-txt-link-abbreviated" href="mailto:net...@li...">net...@li...</a></span><br> <span><a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines">https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines</a></span><br> </div> </blockquote> </div> </blockquote> </body> </html> |
From: René J. <rvj...@xs...> - 2020-09-18 21:32:20
|
Hi Jeff, Thank you, that is the right thing to do. René. > On 18 Sep 2020, at 21:30, Jeff Hennick <Je...@je...> wrote: > > > René & Colin, > > I have just altered the compare stage so it does the type cast on its inputs. > > Jeff > >> On 9/18/2020 1:29 PM, ColinK wrote: >> Thanks Rene >> >> Turns out the problem was not in compare but in the stage prior to compare. It was outputting a java String response instead of a Rexx response. It is interesting that the prior stage (hostbyname, in this case) had always done this but only now did compare complain. I will get the updated version of hostbyname committed shortly. >> >> Cheers >> Colin >> >> On 2020-09-17 16:07, René Jansen wrote: >>> Hi Colin, >>> >>> You can put a Rexx in front of it; also, we need to look at sort to maybe convert it to Rexx only. >>> >>> René. >>> >>>> On 18 Sep 2020, at 00:16, ColinK <ibm...@im...> wrote: >>>> >>>> Hello >>>> >>>> I have been updating my hostbyname.nrx stage so that it sorts the IP addresses returned (as DNS does not guarantee the same order in response). This will hopefully get around some false negative unit testing issues. It appears to be working fine but I am now running into an issue with compare. >>>> >>>> ==> Without compare stage >>>> >>>> Z:\GIT\netrexx-dev\bin>pipc hbntest00 >>>> pipe (hbntest00 ) literal dns.google example.com bogus.bogus one.one.one.one | split | hostbyname | console >>>> >>>> Z:\GIT\netrexx-dev\bin>java hbntest00 >>>> 8.8.4.4 8.8.8.8 >>>> 93.184.216.34 >>>> # Input record 3: Unable to determine IP address for bogus.bogus # >>>> 1.0.0.1 1.1.1.1 >>>> >>>> ==> With compare stage >>>> >>>> Z:\GIT\netrexx-dev\bin>pipc hbntest1 >>>> pipe (hbntest1 ) literal dns.google | hostbyname | console | compare: compare equal /PASS/ notequal /FAIL/ | console ? literal 8.8.4.4 8.8.8.8 | compare: >>>> >>>> Z:\GIT\netrexx-dev\bin>java hbntest1 >>>> 8.8.4.4 8.8.8.8 >>>> java.lang.ClassCastException: java.lang.String cannot be cast to netrexx.lang.Rexx >>>> at org.netrexx.njpipes.stages.compare.run(compare.java:128) >>>> at org.netrexx.njpipes.pipes.ThreadPool.run(ThreadPool.java:60) >>>> at java.lang.Thread.run(Thread.java:748) >>>> Exiting due to uncaught Exception java.lang.String cannot be cast to netrexx.lang.Rexx >>>> >>>> Looking at \build\classes\org\netrexx\njpipes\stages\compare.java I see the following around line 128 >>>> >>>> <ojigobehihnhlgjj.png> >>>> >>>> >>>> The compare.nrx source around that spot is: >>>> >>>> <bifefgpdfoblncip.png> >>>> >>>> >>>> If I am reading this correctly the issue appears to be around the variables "key" or "ds". Since their type is not "pre-declared" I presume they would default to type Rexx. Is that a fair statement? I guess I am not seeing how java.lang.String is coming into the picture. >>>> >>>> Am I traveling down the right path here or am totally out-to-lunch? :-) >>>> >>>> Thanks >>>> Colin >>>> >>>> >>>> _______________________________________________ >>>> netrexx-pipelines mailing list >>>> net...@li... >>>> https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines >> >> >> >> >> _______________________________________________ >> netrexx-pipelines mailing list >> net...@li... >> https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines > _______________________________________________ > netrexx-pipelines mailing list > net...@li... > https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines |
From: Jeff H. <Je...@Je...> - 2020-09-18 19:30:40
|
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <p>René & Colin,</p> <p>I have just altered the compare stage so it does the type cast on its inputs.</p> <p>Jeff<br> </p> <div class="moz-cite-prefix">On 9/18/2020 1:29 PM, ColinK wrote:<br> </div> <blockquote type="cite" cite="mid:3bb...@im..."> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <font face="Century Gothic">Thanks Rene<br> <br> Turns out the problem was not in compare but in the stage prior to compare. It was outputting a java String response instead of a Rexx response. It is interesting that the prior stage (hostbyname, in this case) had always done this but only now did compare complain. I will get the updated version of hostbyname committed shortly.<br> <br> Cheers<br> Colin<br> </font><br> <div class="moz-cite-prefix">On 2020-09-17 16:07, René Jansen wrote:<br> </div> <blockquote type="cite" cite="mid:A23...@xs..."> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> Hi Colin, <div><br> </div> <div>You can put a Rexx in front of it; also, we need to look at sort to maybe convert it to Rexx only.<br> <br> <div dir="ltr">René.</div> <div dir="ltr"><br> <blockquote type="cite">On 18 Sep 2020, at 00:16, ColinK <a class="moz-txt-link-rfc2396E" href="mailto:ibm...@im..." moz-do-not-send="true"><ibm...@im...></a> wrote:<br> <br> </blockquote> </div> <blockquote type="cite"> <div dir="ltr"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> Hello<br> <br> I have been updating my hostbyname.nrx stage so that it sorts the IP addresses returned (as DNS does not guarantee the same order in response). This will hopefully get around some false negative unit testing issues. It appears to be working fine but I am now running into an issue with compare.<br> <br> ==> Without compare stage<br> <br> <tt>Z:\GIT\netrexx-dev\bin>pipc hbntest00</tt><tt><br> </tt><tt>pipe (hbntest00 ) literal dns.google example.com bogus.bogus one.one.one.one | split | hostbyname | console</tt><tt><br> </tt><tt><br> </tt><tt>Z:\GIT\netrexx-dev\bin>java hbntest00</tt><tt><br> </tt><tt>8.8.4.4 8.8.8.8</tt><tt><br> </tt><tt>93.184.216.34</tt><tt><br> </tt><tt># Input record 3: Unable to determine IP address for bogus.bogus #</tt><tt><br> </tt><tt>1.0.0.1 1.1.1.1</tt><br> <br> ==> With compare stage<br> <tt><br> </tt><tt>Z:\GIT\netrexx-dev\bin>pipc hbntest1</tt><tt><br> </tt><tt>pipe (hbntest1 ) literal dns.google | hostbyname | console | compare: compare equal /PASS/ notequal /FAIL/ | console ? literal 8.8.4.4 8.8.8.8 | compare:</tt><tt><br> </tt><tt><br> </tt><tt>Z:\GIT\netrexx-dev\bin>java hbntest1</tt><tt><br> </tt><tt>8.8.4.4 8.8.8.8</tt><tt><br> </tt><tt>java.lang.ClassCastException: java.lang.String cannot be cast to netrexx.lang.Rexx</tt><tt><br> </tt><tt> at org.netrexx.njpipes.stages.compare.run(<b>compare.java:128</b>)</tt><tt><br> </tt><tt> at org.netrexx.njpipes.pipes.ThreadPool.run(ThreadPool.java:60)</tt><tt><br> </tt><tt> at java.lang.Thread.run(Thread.java:748)</tt><tt><br> </tt><tt>Exiting due to uncaught Exception java.lang.String cannot be cast to netrexx.lang.Rexx</tt><br> <br> Looking at \build\classes\org\netrexx\njpipes\stages\compare.java I see the following around line 128<br> <br> <div><ojigobehihnhlgjj.png></div> <br> <br> The compare.nrx source around that spot is:<br> <br> <div><bifefgpdfoblncip.png></div> <br> <br> If I am reading this correctly the issue appears to be around the variables "key" or "ds". Since their type is not "pre-declared" I presume they would default to type Rexx. Is that a fair statement? I guess I am not seeing how java.lang.String is coming into the picture. <br> <br> Am I traveling down the right path here or am totally out-to-lunch? :-)<br> <br> Thanks<br> Colin<br> <br> <br> <span>_______________________________________________</span><br> <span>netrexx-pipelines mailing list</span><br> <span><a class="moz-txt-link-abbreviated" href="mailto:net...@li..." moz-do-not-send="true">net...@li...</a></span><br> <span><a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines" moz-do-not-send="true">https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines</a></span><br> </div> </blockquote> </div> </blockquote> <br> <br> <fieldset class="mimeAttachmentHeader"></fieldset> <br> <fieldset class="mimeAttachmentHeader"></fieldset> <pre class="moz-quote-pre" wrap="">_______________________________________________ netrexx-pipelines mailing list <a class="moz-txt-link-abbreviated" href="mailto:net...@li...">net...@li...</a> <a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines">https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines</a> </pre> </blockquote> </body> </html> |
From: ColinK <ibm...@im...> - 2020-09-18 17:29:37
|
Thanks Rene Turns out the problem was not in compare but in the stage prior to compare. It was outputting a java String response instead of a Rexx response. It is interesting that the prior stage (hostbyname, in this case) had always done this but only now did compare complain. I will get the updated version of hostbyname committed shortly. Cheers Colin On 2020-09-17 16:07, René Jansen wrote: > Hi Colin, > > You can put a Rexx in front of it; also, we need to look at sort to > maybe convert it to Rexx only. > > René. > >> On 18 Sep 2020, at 00:16, ColinK <ibm...@im...> wrote: >> >> Hello >> >> I have been updating my hostbyname.nrx stage so that it sorts the IP >> addresses returned (as DNS does not guarantee the same order in >> response). This will hopefully get around some false negative unit >> testing issues. It appears to be working fine but I am now running >> into an issue with compare. >> >> ==> Without compare stage >> >> Z:\GIT\netrexx-dev\bin>pipc hbntest00 >> pipe (hbntest00 ) literal dns.google example.com bogus.bogus >> one.one.one.one | split | hostbyname | console >> >> Z:\GIT\netrexx-dev\bin>java hbntest00 >> 8.8.4.4 8.8.8.8 >> 93.184.216.34 >> # Input record 3: Unable to determine IP address for bogus.bogus # >> 1.0.0.1 1.1.1.1 >> >> ==> With compare stage >> >> Z:\GIT\netrexx-dev\bin>pipc hbntest1 >> pipe (hbntest1 ) literal dns.google | hostbyname | console | compare: >> compare equal /PASS/ notequal /FAIL/ | console ? literal 8.8.4.4 >> 8.8.8.8 | compare: >> >> Z:\GIT\netrexx-dev\bin>java hbntest1 >> 8.8.4.4 8.8.8.8 >> java.lang.ClassCastException: java.lang.String cannot be cast to >> netrexx.lang.Rexx >> at org.netrexx.njpipes.stages.compare.run(*compare.java:128*) >> at org.netrexx.njpipes.pipes.ThreadPool.run(ThreadPool.java:60) >> at java.lang.Thread.run(Thread.java:748) >> Exiting due to uncaught Exception java.lang.String cannot be cast to >> netrexx.lang.Rexx >> >> Looking at \build\classes\org\netrexx\njpipes\stages\compare.java I >> see the following around line 128 >> >> <ojigobehihnhlgjj.png> >> >> >> The compare.nrx source around that spot is: >> >> <bifefgpdfoblncip.png> >> >> >> If I am reading this correctly the issue appears to be around the >> variables "key" or "ds". Since their type is not "pre-declared" I >> presume they would default to type Rexx. Is that a fair statement? >> I guess I am not seeing how java.lang.String is coming into the picture. >> >> Am I traveling down the right path here or am totally out-to-lunch? :-) >> >> Thanks >> Colin >> >> >> _______________________________________________ >> netrexx-pipelines mailing list >> net...@li... >> https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines |
From: Jeff H. <Je...@Je...> - 2020-09-18 16:14:08
|
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <p>I have updated the method <b>sortInsertInto(list, new[, strict])</b>, adding the third, optional, argument. There are a few stages where having a quick internal sort is useful.<br> </p> <p>/* Insert a new item into a sorted list in a Rexx indexed variable.<br> Returns the list with new inserted.<br> Indexed by integers from 1.<br> Index 0 is a count of the other values.<br> If strict = 1 or the first character is 'S' or 's', then strict<br> compare, <<, is used, otherwise normal compare, <, is used. */<br> </p> <p>And added a new method <b>getAnycase(argstr)</b> useful in scanning argument strings<br> </p> <p>/* Checks first word of argstr for ANYCASE or alias, uses caseless compare.<br> Returns 1 = found ANYCASE<br> 0 = not found<br> -1 = found RESPECTCASE */</p> <p>By scanning for and reporting <b>RESPECTCASE</b>, which is the currently unvoiced default in many stages, it opens the use of stating this option to add to the readability of the resulting code. Most stages would note it and ignore it as the default.</p> <p>Anticipated usage is like this</p> <font face="monospace">args = arg()</font><br> <font face="monospace">ac = getAnycase(args)</font><br> <font face="monospace">if ac <> 0 then args = args.subword(2) -- found a case option remove it</font><br> <font face="monospace">if ac < 0 then ac = 0 -- ignore RESPECTCASE if found</font><br> <font face="monospace">-- continued scanning of the arg string<br> </font><font face="monospace">...</font><br> <font face="monospace">if ac then xxxx.upper -- use the anycase option if selected</font> <p>Of course this finds all the acceptable aliases, ANYCASE ANYCAS ANYCA ANYC CASEANY CASEIGNORE CASELESS IGNORECASE. <br> </p> <p>Jeff<br> <font face="monospace"></font></p> <p><font face="monospace"><br> </font></p> <br> </body> </html> |
From: ColinK <ibm...@im...> - 2020-09-17 22:16:16
|
Hello I have been updating my hostbyname.nrx stage so that it sorts the IP addresses returned (as DNS does not guarantee the same order in response). This will hopefully get around some false negative unit testing issues. It appears to be working fine but I am now running into an issue with compare. ==> Without compare stage Z:\GIT\netrexx-dev\bin>pipc hbntest00 pipe (hbntest00 ) literal dns.google example.com bogus.bogus one.one.one.one | split | hostbyname | console Z:\GIT\netrexx-dev\bin>java hbntest00 8.8.4.4 8.8.8.8 93.184.216.34 # Input record 3: Unable to determine IP address for bogus.bogus # 1.0.0.1 1.1.1.1 ==> With compare stage Z:\GIT\netrexx-dev\bin>pipc hbntest1 pipe (hbntest1 ) literal dns.google | hostbyname | console | compare: compare equal /PASS/ notequal /FAIL/ | console ? literal 8.8.4.4 8.8.8.8 | compare: Z:\GIT\netrexx-dev\bin>java hbntest1 8.8.4.4 8.8.8.8 java.lang.ClassCastException: java.lang.String cannot be cast to netrexx.lang.Rexx at org.netrexx.njpipes.stages.compare.run(*compare.java:128*) at org.netrexx.njpipes.pipes.ThreadPool.run(ThreadPool.java:60) at java.lang.Thread.run(Thread.java:748) Exiting due to uncaught Exception java.lang.String cannot be cast to netrexx.lang.Rexx Looking at \build\classes\org\netrexx\njpipes\stages\compare.java I see the following around line 128 The compare.nrx source around that spot is: If I am reading this correctly the issue appears to be around the variables "key" or "ds". Since their type is not "pre-declared" I presume they would default to type Rexx. Is that a fair statement? I guess I am not seeing how java.lang.String is coming into the picture. Am I traveling down the right path here or am totally out-to-lunch? :-) Thanks Colin |
From: ColinK <ibm...@im...> - 2020-09-17 21:48:43
|
Hi, I am guessing that this is fixed now. I just did a git pull, clean and compile and split compiles successfully with no warning or errors. Colin K On 2020-09-17 08:19, René Jansen wrote: > Hi Jeff, > > there is something wrong with split.nrx - could you have a look. I guess you > must build from clean to see it, it has got to do with exception handling. > > best regards, > > René. > > _______________________________________________ > netrexx-pipelines mailing list > net...@li... > https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines |
From: René J. <rvj...@xs...> - 2020-09-17 15:19:38
|
Hi Jeff, there is something wrong with split.nrx - could you have a look. I guess you must build from clean to see it, it has got to do with exception handling. best regards, René. |
From: ColinK <ibm...@im...> - 2020-09-11 23:11:10
|
Hi Jeff I hear you on the strip stage. I had started taking a stab at writing a strip stage and got as far as parsing the myriad of possible option combinations but I had trouble scrounging time to take it to completion. I am glad to see that you have gotten further along than I. As to your problem I am not sure what I can contribute. I will do a git pull and see if I can replicate the error. Cheers Colin On 2020-09-11 12:02, Jeff Hennick wrote: > > I am again having an intermittent problem with Pipeline's *output()* > method. This is using the new 3.09 code. > > I have written a *strip* stage to compliment the CMS version. While > this has some hairy options processing, the main loop is as simple as > it can be. But, output() is triggering a stageError exception, > sometimes. I can work around this by simply retrying the same > statement. Since I can see no problems in this code, I suspect it may > be in the following stage in my test pipe, *compare*. But this same > pipe configuration works in hundreds of tests of other stages. > > Here is the loop, with the workaround. I intend to publish it like > this, with the *say*s commented out. (I wish there were a way to log > such errors.) > >> loop label Main forever >> record_in = Rexx peekto() >> record_out = pat.matcher(record_in).replaceAll('') >> do >> output(record_out) >> catch stageError >> >> /* 9/11/2020 I am having problems with this triggering. >> So will try a second time. That is working for me. >> I do not know why this is. I'm thinking it is >> in the COMPARE stage, which in my tests, follows >> this stage. But it works for all other stages. >> In my tests, I get lots of the first message, >> and none of the second. Jeff Hennick >> */ >> say '******* Output problem with' record_out', re-trying ********' >> do >> output(record_out) >> catch stageError >> say '********* Bad again,' record_out '*******' >> end >> end >> readto() >> catch stageError >> rc = rc() >> end Main >> Exit(rc*(rc<>12)) > > Any insight you have would be most welcome. > > Incidentally, using Java's Regular Expressions makes this loop easy, > in Rexx it would be excruciating, with all of the options that the > *strip* stage has. Even building the almost unreadable pattern from > the options, one step at a time, is straight forward. > > > > _______________________________________________ > Ibm-netrexx mailing list > Ibm...@hu... > Online Archive : http://ibm-netrexx.215625.n3.nabble.com/ > |
From: ColinK <ibm...@im...> - 2020-08-26 23:23:10
|
Wonderful !! Thank you for doing this! Cheers Colin On 2020-08-22 05:09, Jeff Hennick wrote: > > Thank you. > > Yes! Your wish is my command. The difficult we do immediately; the > impossible may take a little longer. For this one, "Abracadabra!", > now look at *methods.html* in the 3.09 documentation directory in the > Sourceforge. It has methods from *utils*, *stage*, *DString*, > *IRange*, *Link*, & *RingBuff*. It is now a first draft proof of > concept from 7/21/20. The pieces of the page, which are all in the > database, were hand sown together, there is not yet a pipe to generate > the whole. I did not even sort them. > > These are in a separate page as they are useful only to stage authors, > not the run of the mill plumber using pipe stages. > > All: Ideas, comments, suggestions (including where to go), are all > welcomed and requested. Thanks for your help in making it better. > > Jeff > > P.S. I am working on the *snake* stage. It should be ready later > today, with a, I hope, useful new option. > > On 8/22/2020 12:16 AM, ColinK wrote: >> Excellent work Jeff! >> >> Are there any plans to include some of the other NetRexx pipes >> related classes in the html output; for example, utils.nrx? >> >> Thanks >> Colin K >> >> On 2020-08-20 16:00, Jeff Hennick wrote: >>> >>> Just an update on work in process. >>> >>> This pipe generates the full page file, with all its colors and >>> controls, of all the stages. >>> >>> pipe (ct) >>> literal , >>> select * from stages_head;, >>> select * from stage_scripts; , >>> select * from stages_style; , >>> select "</head><body>"; , >>> select * from stages_top; , >>> select "<table>"; , >>> select * from stages_table; , >>> select '</table></body></html>' | >>> split ; | >>> sql (dbms sqlite db_name stages.db) | >>> > test.html ? >>> >>> I have also added a /3.09/flag for new stages. >>> >>> >>> _______________________________________________ >>> Ibm-netrexx mailing list >>> Ibm...@hu... >>> Online Archive :http://ibm-netrexx.215625.n3.nabble.com/ >>> >> >> >> _______________________________________________ >> Ibm-netrexx mailing list >> Ibm...@hu... >> Online Archive :http://ibm-netrexx.215625.n3.nabble.com/ >> > > _______________________________________________ > Ibm-netrexx mailing list > Ibm...@hu... > Online Archive : http://ibm-netrexx.215625.n3.nabble.com/ > |
From: Colin <net...@im...> - 2020-08-26 23:18:45
|
Hi Jeff I am being a bit nit-picky here but footnote (5) might read better as: (5): NetRexx Pipelines only. Does NOT read input stream. Uses current local date time. Any Inputrange is ignored. Any output format can be used. Thanks Colin On 2020-08-23 17:47, Jeff Hennick wrote: > > I have added a *NOW* option to the input formats in the *DATECONVERT* > stage. > > +-- 1-* ------------------------+ > >>--DATECONVert--+-------------------------------+---------------------------> > +-| Separator |--| Inputrange |-+ > > +-SHOrtdate ISOdate---------------------+ +-WINDOW -50------------+ > >---+---------------------------------------+--+-----------------------+------> > | +-ISOdate----------+ +-WINDOW--signednumber--+ > +-| Inputformat |-+--+------------------+ +-BASEYEAR--yearnumber--+ > +--*NOW*--(5)-------+ +-| Outputformat |-+ > > +--MIDNIGHT--(4)-+ > >--+-----------+--+----------------+---------------------------------------->> > +--TIMEOUT--+ +--NOON--(4)-----+ > > (5): NetRexx Pipelines only. Do NOT read input stream. Use current > local date time. > Any Inputrange is ignored. Any output format can b used. > > > > _______________________________________________ > netrexx-pipelines mailing list > net...@li... > https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines |
From: Jeff H. <Je...@Je...> - 2020-08-24 00:47:38
|
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <p>I have added a <b>NOW</b> option to the input formats in the <b>DATECONVERT</b> stage.</p> <p><tt> +-- 1-* ------------------------+<br> >>--DATECONVert--+-------------------------------+---------------------------><br> +-| Separator |--| Inputrange |-+<br> <br> +-SHOrtdate ISOdate---------------------+ +-WINDOW -50------------+<br> >---+---------------------------------------+--+-----------------------+------><br> | +-ISOdate----------+ +-WINDOW--signednumber--+<br> +-| Inputformat |-+--+------------------+ +-BASEYEAR--yearnumber--+<br> +--<b>NOW</b>--(5)-------+ +-| Outputformat |-+<br> <br> +--MIDNIGHT--(4)-+<br> >--+-----------+--+----------------+---------------------------------------->><br> +--TIMEOUT--+ +--NOON--(4)-----+ </tt><br> </p> <p><tt>(5): NetRexx Pipelines only. Do NOT read input stream. Use current local date time.</tt><tt><br> </tt><tt> Any Inputrange is ignored. Any output format can b used.<br> </tt></p> </body> </html> |
From: Jeff H. <Je...@Je...> - 2020-08-22 19:31:09
|
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <p>I have added this stage, along with tests and documentation in the HTML & DB:</p> <p><tt>/** snake</tt><tt><br> </tt><tt> >>--SNAKE--number_cols--+------------------------------------------------+--><</tt><tt><br> </tt><tt> +--number_rows--+-----------------------------+--+</tt><tt><br> </tt><tt> +--page_seperator_DString-(1)-+</tt><tt><br> </tt><tt><br> </tt><tt> (1) NetRexx Pipelines only. Appears first, last, and between pages.</tt><tt><br> </tt><tt> Avoid \ as escape terms maybe added in the future. \n for newline is OK.</tt><tt><br> </tt><tt> Your system may require \\n .</tt><tt><br> </tt><tt>*/</tt></p> <p><br> </p> </body> </html> |
From: Jeff H. <Je...@Je...> - 2020-08-16 19:12:23
|
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <p>I have committed a <b>sql</b> stage.</p> <p><tt>/** sql</tt><tt><br> </tt><tt><br> </tt><tt> +-;-+</tt><tt><br> </tt><tt>>>--SQL--+-----------------+--+-------------------------+-+---+--><</tt><tt><br> </tt><tt> +-(-| options |-)-+ +-sql_statement_string-(3)+</tt><tt><br> </tt><tt><br> </tt><tt>OPTIONS:</tt><tt><br> </tt><tt> +------------------------------------------------+</tt><tt><br> </tt><tt> |-v-+--------------------------------------------+-+-|</tt><tt><br> </tt><tt> | +-/sql.properties/-------+ |</tt><tt><br> </tt><tt> +-PROPERTIES-+-filename_Qword-(7)-----+-(5)+-+</tt><tt><br> </tt><tt> | +-NOHEADERS-+ |</tt><tt><br> </tt><tt> +-+ +-(5)(6)(9)------------------+</tt><tt><br> </tt><tt> | +-HEADERS---+ |</tt><tt><br> </tt><tt> +-URL-Qword-(7)----------------------------+</tt><tt><br> </tt><tt> +-JDBCDRIVER-Qword-(7)---------------------+</tt><tt><br> </tt><tt> +-DBMS-Qword-(7)(8)------------------------+</tt><tt><br> </tt><tt> +-DB_NAME-Qword-(7)(8)---------------------+</tt><tt><br> </tt><tt> +-USER-Qword-(7)(8)(10)--------------------+</tt><tt><br> </tt><tt> +-PASS-Qword-(7)(8)(10)--------------------+</tt><tt><br> </tt><tt><br> </tt><tt><br> </tt><tt> uses jdbc to select from any jdbc enabled dbms</tt><tt><br> </tt><tt><br> </tt><tt> properties file ("sqlselect.properties" default) is read to find jdbcdriver name and url</tt><tt><br> </tt><tt> sample properties file:</tt><tt><br> </tt><tt><br> </tt><tt> #JDBC driver name</tt><tt><br> </tt><tt> #Tue Feb 03 23:29:43 GMT+01:00 1998</tt><tt><br> </tt><tt> jdbcdriver=com.imaginary.sql.msql.MsqlDriver</tt><tt><br> </tt><tt> url=jdbc:msql://localhost:1114/TESTDB</tt><tt><br> </tt><tt> # the following are not needed for some DBMS, ex: SQLite</tt><tt><br> </tt><tt> user=db_user_name</tt><tt><br> </tt><tt> pass=password_for_db</tt><tt><br> </tt><tt><br> </tt><tt> if this file is not found default (compiled in) values are used</tt><tt><br> </tt><tt><br> </tt><tt> (1) when using a sql select * (all columns) from the commandline, quote the query</tt><tt><br> </tt><tt> as in java pipes.compiler (query) "sql select * from dept | console"</tt><tt><br> </tt><tt> (2) the netrexx/jdbc combination is extremely case sensitive for column and table names</tt><tt><br> </tt><tt> (3) this sql_select_string executed, then statements are read from the primary input stream.</tt><tt><br> </tt><tt> this is optional in NetRexx Pipelines only.</tt><tt><br> </tt><tt> (4) CMS does not use the stream input</tt><tt><br> </tt><tt> (5) NetRexx Pipelines only</tt><tt><br> </tt><tt> (6) CMS Pipelines is implied HEADERS only.</tt><tt><br> </tt><tt> (7) A Qword is an optionally quoted word. If it contains spaces, it must be quoted.</tt><tt><br> </tt><tt> (8) EXPERIMENTAL Subject to change. DBMS is the kind of database, e.g. SQLite.</tt><tt><br> </tt><tt> DB_name is the file name. These are used in place of URL and JDBCDRIVER.</tt><tt><br> </tt><tt> SQLite is the only one tested as of 8/15/20.</tt><tt><br> </tt><tt> (9) the SQLSELECT stage uses HEADERS as the default.</tt><tt><br> </tt><tt> (10) USER & PASS are needed for some DBMSs and not others, ex. SQLite.</tt><tt><br> </tt><tt><br> </tt><tt> Priority order for URL, JDBCDRIVER, DBMS, DB_NAME, USER, & PASS (first one found rules):</tt><tt><br> </tt><tt> 1. option in the SQL command string</tt><tt><br> </tt><tt> 2. from secondary input stream</tt><tt><br> </tt><tt> 3. from "sqlselect.properties" file</tt><tt><br> </tt><tt> or from file specified by PROPERTIES option</tt><tt><br> </tt><tt> 4. Builtin</tt><tt><br> </tt><tt>*/</tt><br> </p> <p>This adds the options of <b>DBMS</b> & <b>DB_NAME</b> and <b>USER</b> & <b>PASS</b>. These have also been added to the <b>sqlselect</b> stage.<br> </p> <p>It has handling for <b>DBMS SQLITE</b> and <b>MYSQL</b>. It works on my system for SQLite. But there are several dependencies and I don't know if it works on all systems, which of course must have SQLite installed where it can be found. And I have done no testing of MySQL, as I don't have it here.</p> <p>If anyone has a MySQL setup I could try creating a table, populating it, searching it, and deleting it, I would be very grateful. Please send me the logon credentials for my account to my personal email -- NOT on this open list! Or knows the JDBC credentials for any of the other databases. Thank you! <br> </p> <p>Incidentally, I have run this kind of test, in anticipation of a HELP facility:</p> <p><tt> pipe (ct)</tt></p> <p><tt> literal ,<br> select image from stages where stage = 'fanout'; ,<br> select note from stages where stage = 'fanout'; ,<br> |<br> split ; |<br> sql (dbms sqlite db_name "C:\\Users\\Jeff\\NetRexx-code\\documentation\\njpipes\\stages.db")|<br> cons ? </tt><br> </p> <div style="display:inline-block;white-space:pre;background-color:#012456;font-family:'Consolas',monospace;font-size:10pt;padding:4px;"><span style="color:#CCCCCC;background-color:#012456;">PS C:\Users\Jeff\documents\pipe tests> </span><span style="color:#F9F1A5;background-color:#012456;">java</span><span style="color:#CCCCCC;background-color:#012456;"> ct +-STOP--ALLEOF-----------+ >>--FANOUT--+------------------------+-------->< +-STOP--+-ANYEOF-------+-+ +-IMMEDIATe-(1)+ +-number-------+ <div class=p-note><ul><li> (1) CMS only </li></ul></div></span></div> <p>It works! The database needs some work before there is a HELP. Some of the diagrams, like this one, have the first line skewed left. And the current <b>note</b> has HTML tags in it, there will have to be a clear text field created. And, can I expect the database is in the "proper" location?</p> <p>Jeff<br> </p> <p><br> </p> <p><br> </p> </body> </html> |
From: Jeff H. <Je...@Je...> - 2020-08-03 20:58:38
|
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <p>In light of Colin's suggestions,</p> <p>I have added the <b>COUnt</b> option to the REGEX (alias GREP) stage.</p> <p>Also changed is the regex_string is now a regex_Delimited_string.</p> <p><tt>/** regex<br> <br> >>--+--REGEX--+--+--------------------------+--regex_Dstring-(1)---><<br> +--GREP---+ +-(--| options_string |--)-+<br> <br> options_string:<br> +----------------------------+<br> |--v-+------------------------+-+--|<br> +-Numbers----------------+ (2)<br> +-Before-+-1------+------+ (3)<br> | +-number-+ |<br> +-After-+-1------+-------+ (3)<br> | +-number-+ |<br> +-Context-+-1------+-----+ (4)<br> | +-number-+ |<br> +-NOSeparator------------+ (5)<br> +-Separator-+-/--/----+--+ (5)<br> | +-DString-+ |<br> +-Tertiary---------------+ (6)<br> +-COUnt------------------+ (7)<br> <br> NetRexx Pipelines only.<br> Records matching the RegEx are put out on primary output.<br> Records not matching are put out on secondary, if connected, or discarded.<br> <br> (1) Regex_Dstring is a Java RegEx expresion. Null string passes all records.<br> (2) Records are prefaced with records number, 10 characters, right justified.<br> (3) Number of records put out after a matching record.<br> (4) Number of records put out before and after a matching record.<br> (5) Inserted before a group of "before records" or the found record with "after records."<br> (6) Send all matching records (no numbers) to tertiary output stream, if connected.<br> (7) Only a count of matches is put out on the primary output stream. (Other options<br> probably should not be used with this.)<br> <br> */ <br> </tt></p> <p><tt>Jeff</tt><br> </p> </body> </html> |
From: Jeff H. <Je...@Je...> - 2020-08-03 20:37:00
|
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <p>A new stage that complements PARSE: PICKPARSE. This selects records by relations using Rexx's PARSE:</p> <p> <blockquote type="cite">/** pickparse<br> <tt><br> </tt><tt> +--ONE--+ +--(2)---------------------------+</tt><tt><br> </tt><tt>>>--PICKPARSE--+-------+--parse_template_Dstring--v--+--------------------------+--+--><</tt><tt><br> </tt><tt> +--ALL--+ +--logic_template_Dstring--+</tt><tt><br> </tt><tt> +--ELSE_Dstring-(1)--------+</tt><tt><br> </tt><br> Records are parsed via the parse_template_delimited_string.<br> Variables are named $n, where n is 1 to 9.<br> The values of the variables are put into the logic_template_delimited_string<br> replacing $n and evaluated. If TRUE, the record is put out on the stream<br> numbered by the dstring's position. The stream for a Dstring of ELSE is<br> used if no previous logic Dstring is TRUE. If there is no specific ELSE,<br> there is an implied one at the end; if that stream is not connected, the<br> record is discarded.<br> If ONE then the record is put out on, at most, one stream: the first one<br> matched. If ALL then the record is put out on all streams matched.<br> The parse_template and logic_template(s) follow normal NetRexx rules.<br> (1) Implied ELSE after last specified dstring.<br> (2) Up to 10 logic_Dstrings may be specified to go to up to 11 ouput streams<br> (including an implied ELSE).<br> <br> <br> Example:<br> <tt>pickparse /. $1 $2 +3 ./ /$1 = 'UNCLE'/ /$2 = 'SAM' & $1 = 'UNCLE'/</tt><br> <br> */<br> </blockquote> This completes the set of four stages featuring REGEX and PARSE to select or change records.</p> <p>Comments, ideas, etc. are requested. Thank you.<br> </p> </body> </html> |
From: Jeff H. <Je...@Je...> - 2020-08-02 12:38:12
|
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <p>Welcome back. Thank you for your thoughts.<br> </p> <p>Answers / thoughts interlaced below.<br> </p> <div class="moz-cite-prefix">On 8/2/2020 12:58 AM, Colin wrote:<br> </div> <blockquote type="cite" cite="mid:b53...@im..."> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <font face="Century Gothic">I've been away for a while and am just catching up on some old emails.<br> <br> If I read the diagram correctly I could say BEFORE <n> AFTER <m> to get the same effect as CONTEXT. Is that a fair statement or am I not misunderstanding the CONTEXT option?<br> </font></blockquote> <font face="Century Gothic">True, if m = n.</font><br> <blockquote type="cite" cite="mid:b53...@im..."><font face="Century Gothic"> <br> To your questions, here are my 2 cents worth if I am not too late to chime in. . . .</font><br> <ul> <li>Would it ever help to put matched records out on the tertiary stream without the context records? Unmatched ones are already on the secondary.</li> </ul> <p>Interesting idea. At the moment I don't think I have an opinion either way. As the number of streams increases does it increase the complexity and readability of a PIPE?<br> </p> </blockquote> This has been added as a <b>Tertiary</b> option. It does increase the complexity. I don't think it would be used often and certainly not casually. (I'd like an easier to read syntax for multiple pipes. Such as a distinction between labels for stage input and output. But that train left decades ago.)<br> <blockquote type="cite" cite="mid:b53...@im..."> <p> </p> <ul> <li>GREP has an option to just put out the COUNT of matched records. Do we have any use for this? ( REGEX string | COUNT LINES does the same.)</li> </ul> <p>Would there be a huge performance benefit to providing this functionality? If not, then my vote leans towards "no". REGEX string | COUNT LINES should suffice. <br> </p> </blockquote> Sure there would be some performance hit. These days, if fewer than a few thousand records probably wouldn't be noticeable. (Guess, not profiled.) But likely not difficult to add the option. I have a couple of things with higher priority.<br> <blockquote type="cite" cite="mid:b53...@im..."> <p> <br> </p> <ul> <li>Possibly the regex_string should be a delimited string. This because a potential REGEX_CHANGE stage would have two delimited strings.</li> </ul> <p>I would have thought that regex_string would have to a delimited string as wouldn't you need to handle the case of a blank in the middle of your regex_string? E.g. regex a b c vs regex / a b c/ find all strings (space)a(space)b(space)c<br> </p> </blockquote> Good thought, but it is the last thing, so spaces are ok. But for compatibility it may be a good idea. "Least surprise" principle. <br> <blockquote type="cite" cite="mid:b53...@im..."> <p> </p> <ul> <li>Should this be named GREP? Which term would be more or less familiar to our users? Both? with one an alias of the other?</li> </ul> <p>Personally my preference is for REGEX_MATCH and REGEX_CHANGE since it more closely matches (pun intended) how the matching takes place than GREP does. Having one the alias of the other works too.<br> </p> </blockquote> At the moment, it is <b>REGEX</b> with <b>GREP</b> as an alias. <br> <blockquote type="cite" cite="mid:b53...@im..."> <p> </p> <font face="Century Gothic">Just my thoughts from the rookie. :-)<br> </font></blockquote> <p><font face="Century Gothic">Thank you.</font></p> <p><font face="Century Gothic">Here is the current header documentation. Last change 7/1:</font></p> <p><font face="Century Gothic"> <blockquote type="cite"><tt>/** regex<br> <br> >>--+--REGEX--+--+--------------------------+--regex_string-(1)---><<br> +--GREP---+ +-(--| options_string |--)-+<br> <br> options_string:<br> +----------------------------+<br> |--v-+------------------------+-+--|<br> +-Numbers----------------+ (2)<br> +-Before-+-1------+------+ (3)<br> | +-number-+ |<br> +-After-+-1------+-------+ (3)<br> | +-number-+ |<br> +-Context-+-1------+-----+ (4)<br> | +-number-+ |<br> +-NOSeparator------------+ (5)<br> +-Separator-+-/--/----+--+ (5)<br> | +-DString-+ |<br> +-Tertiary---------------+ (6)<br> <br> NetRexx Pipelines only.<br> Records matching the RegEx are put out on primary output.<br> Records not matching are put out on secondary, if connected, or discarded.<br> <br> (1) Regex_string is a Java RegEx expresion. Null string passes all records.<br> (2) Records are prefaced with records number, 10 characters, right justified.<br> (3) Number of records put out after a matching record.<br> (4) Number of records put out before and after a matching record.<br> (5) Inserted before a group of "before records" or the found record with "after records."<br> (6) Send all matching records (no numbers) to tertiary output stream, if connected.<br> <br> */</tt></blockquote> <br> </font></p> <blockquote type="cite" cite="mid:b53...@im..."><font face="Century Gothic"> <br> Cheers<br> Colin K<br> <br> </font><br> <div class="moz-cite-prefix">On 2020-06-30 20:19, Jeff Hennick wrote:<br> </div> <blockquote type="cite" cite="mid:586...@Je..."> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <p>I have added the CONTEXT <i>number</i> option. This reports not only the matching record, but some before and after it also. Also added are BEFORE and AFTER to get contextual records in one direction. There is an optional SEPARATOR to set off the groups of records. It defaults to "--".</p> <p> </p> <blockquote type="cite"><tt>/** regex<br> <br> >>--<b>REGEX</b>--+--------------------------+--<i>regex_string</i>-(1)---><<br> +-(--| <i>options_string</i> |--)-+<br> <br> <b>options_string</b>:<br> +----------------------------+<br> |--v-+------------------------+-+--|<br> +-NUMBERS----------------+ (2)<br> +-BEFORE-+-<i>0</i>------+------+ (3)<br> | +-<i>number</i>-+ |<br> +-AFTER-+-<i>0</i>------+-------+ (3)<br> | +-<i>number</i>-+ |<br> +-CONTEXT-+-<i>0</i>------+-----+ (4)<br> | +-<i>number</i>-+ |<br> +-NOSEPARATOR------------+<br> +-SEPARATOR-+- -- ----+--+<br> | +-<i>DString</i>-+ |<br> <br> Records matching the RegEx are put out on primary output<br> Records not matching are put out on secondary, if connected, or discarded.<br> <br> (1) string is a Java RegEx expresion. null string passes all records.<br> (2) lines are prefaced with line number, 10 characters, right justified<br> (3) number of records put out after a matching record<br> (4) number of records put out before and after a matching record<br> <br> */<br> </tt></blockquote> <br> This brings it up, functionally, almost to GNU GREP 3.4 (minus all of its file input options). <p>A few things for discussion:</p> <ul> <li>Would it ever help to put matched records out on the tertiary stream without the context records? Unmatched ones are already on the secondary.</li> <li>GREP has an option to just put out the COUNT of matched records. Do we have any use for this? ( REGEX string | COUNT LINES does the same.)<br> </li> <li>Possibly the regex_string should be a delimited string. This because a potential REGEX_CHANGE stage would have two delimited strings.</li> <li>Should this be named GREP? Which term would be more or less familiar to our users? Both? with one an alias of the other?</li> </ul> (Oops, just spotted a bug: BEFORE, etc, without a number works if it is the last option, but not otherwise. Something for the morning fix.)<br> <p>Jeff<br> </p> <br> <fieldset class="mimeAttachmentHeader"></fieldset> <br> <fieldset class="mimeAttachmentHeader"></fieldset> <pre class="moz-quote-pre" wrap="">_______________________________________________ netrexx-pipelines mailing list <a class="moz-txt-link-abbreviated" href="mailto:net...@li..." moz-do-not-send="true">net...@li...</a> <a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines" moz-do-not-send="true">https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines</a> </pre> </blockquote> <br> <br> <fieldset class="mimeAttachmentHeader"></fieldset> <br> <fieldset class="mimeAttachmentHeader"></fieldset> <pre class="moz-quote-pre" wrap="">_______________________________________________ netrexx-pipelines mailing list <a class="moz-txt-link-abbreviated" href="mailto:net...@li...">net...@li...</a> <a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines">https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines</a> </pre> </blockquote> </body> </html> |
From: Colin <net...@im...> - 2020-08-02 05:13:21
|
I've been away for a while and am just catching up on some old emails. If I read the diagram correctly I could say BEFORE <n> AFTER <m> to get the same effect as CONTEXT. Is that a fair statement or am I not misunderstanding the CONTEXT option? To your questions, here are my 2 cents worth if I am not too late to chime in. . . . * Would it ever help to put matched records out on the tertiary stream without the context records? Unmatched ones are already on the secondary. Interesting idea. At the moment I don't think I have an opinion either way. As the number of streams increases does it increase the complexity and readability of a PIPE? * GREP has an option to just put out the COUNT of matched records. Do we have any use for this? ( REGEX string | COUNT LINES does the same.) Would there be a huge performance benefit to providing this functionality? If not, then my vote leans towards "no". REGEX string | COUNT LINES should suffice. * Possibly the regex_string should be a delimited string. This because a potential REGEX_CHANGE stage would have two delimited strings. I would have thought that regex_string would have to a delimited string as wouldn't you need to handle the case of a blank in the middle of your regex_string? E.g. regex a b c vs regex / a b c/ find all strings (space)a(space)b(space)c * Should this be named GREP? Which term would be more or less familiar to our users? Both? with one an alias of the other? Personally my preference is for REGEX_MATCH and REGEX_CHANGE since it more closely matches (pun intended) how the matching takes place than GREP does. Having one the alias of the other works too. Just my thoughts from the rookie. :-) Cheers Colin K On 2020-06-30 20:19, Jeff Hennick wrote: > > I have added the CONTEXT /number/ option. This reports not only the > matching record, but some before and after it also. Also added are > BEFORE and AFTER to get contextual records in one direction. There is > an optional SEPARATOR to set off the groups of records. It defaults > to "--". > >> /** regex >> >> >>--*REGEX*--+--------------------------+--/regex_string/-(1)--->< >> +-(--| /options_string/ |--)-+ >> >> *options_string*: >> +----------------------------+ >> |--v-+------------------------+-+--| >> +-NUMBERS----------------+ (2) >> +-BEFORE-+-/0/------+------+ (3) >> | +-/number/-+ | >> +-AFTER-+-/0/------+-------+ (3) >> | +-/number/-+ | >> +-CONTEXT-+-/0/------+-----+ (4) >> | +-/number/-+ | >> +-NOSEPARATOR------------+ >> +-SEPARATOR-+- -- ----+--+ >> | +-/DString/-+ | >> >> Records matching the RegEx are put out on primary output >> Records not matching are put out on secondary, if connected, or >> discarded. >> >> (1) string is a Java RegEx expresion. null string passes all records. >> (2) lines are prefaced with line number, 10 characters, right justified >> (3) number of records put out after a matching record >> (4) number of records put out before and after a matching record >> >> */ > > This brings it up, functionally, almost to GNU GREP 3.4 (minus all of > its file input options). > > A few things for discussion: > > * Would it ever help to put matched records out on the tertiary > stream without the context records? Unmatched ones are already on > the secondary. > * GREP has an option to just put out the COUNT of matched records. > Do we have any use for this? ( REGEX string | COUNT LINES does > the same.) > * Possibly the regex_string should be a delimited string. This > because a potential REGEX_CHANGE stage would have two delimited > strings. > * Should this be named GREP? Which term would be more or less > familiar to our users? Both? with one an alias of the other? > > (Oops, just spotted a bug: BEFORE, etc, without a number works if it > is the last option, but not otherwise. Something for the morning fix.) > > Jeff > > > > _______________________________________________ > netrexx-pipelines mailing list > net...@li... > https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines |
From: Jeff H. <Je...@Je...> - 2020-07-14 21:05:46
|
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <p>The <b>COMBINE</b> stage has been added, with its tests and the documentation in the the HTML and DB.</p> <p>There are problems with the IBM documentation for this stage. It is incomplete. The discussion includes key words that are not in the diagram. The discussion talks about the secondary input stream, but the key words imply that multiple input streams are supported. There is no "<i>Streams Used</i>" section to clarify this. It is confusing. Part of it, which I reread for this note, finally began to make some sense. And I changed the code and documentation to match. There is talk about a "number" in connection apparently in connection with with <b>STOP</b>. I do not know where it fits in; I have just ignored it for now. They do not supply any examples with results; although if there were it would be with EBIDIC coding and little use to me.<br> </p> <p>As a result, I don't know how faithfully this mirrors the CMS version. I have implemented it with multiple input streams.</p> <p>There may be more efficient ways to implement the bitwise operators. <br> </p> <p><tt><br> >>--COMBINE--+------------------------+--+-Or----------+---><<br> | +-1-----------------+ | +-aNd---------+<br> +-+-------------------+--+ +-AND---------+<br> | +-number------------+ | +-eXclusiveor-+<br> | +-*-----------------+ | +-EXClusiveor-+<br> | +-KEYLENgth--number-+ | +-FIRST-(2)---+<br> | +-ALLEOF-(1)+ | +-LAST-(2)----+<br> +-STOP-(1)-+ +-+<br> +-ANYEOF-(1)+<br> Notes:<br> (1) Only for use with secondary input streams.<br> Only options from this column usable with<br> any secondary input streams.<br> (This is poorly documented in CMS Pipelines.<br> This is a best guess of their intentions.)<br> (2) Not usable with STOP and secondary streams.<br> <br> <br> </tt>Jeff Hennick<br> </p> </body> </html> |
From: Colin <net...@im...> - 2020-07-13 21:45:01
|
. . . and the methods.html has already come in handy. I didn't realize there was a GetXRange method and was about to start work on devising my own -- no need now!! Great work - thanks Jeff Colin On 2020-07-08 14:20, Jeff Hennick wrote: > > The HTML listing of stages has had some major reformatting of the > diagrams to fit the page for printing. > > It has also had colors added -- mostly to identify CMS and NetRexx > differences, with controls to turn them off for viewing or printing. > > The major "symbols," delimitedString, inputRange, xorc, and regex are > now explained. In print, they precede the stages. On line, in each > stage, they are clickable and a floating window is displayed with the > definition, examples, etc. > > Your input, comments, corrections, complaints, compliments, > criticisms, etc. are all welcomed. Thank you! > > ---------- > > In detailed reading of the IBM stuff for the above, down in one of > their "examples," it shows the optional leading *STRING* before a > DString can be abbreviated to *STR* (and maybe shorter???). I have > altered our DSTRING class to accommodate this. Also the above > documentation. > > ---------- > > I have also added a new file to the documentation directory: > *methods.html*. This has the info for stage authors on the available > methods. This is a first cut. I'm sure some of them will be taken out > as not useful in writing stages; I may have missed some. Again any > ideas are requested. Thanks. > > Jeff > > > > _______________________________________________ > netrexx-pipelines mailing list > net...@li... > https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines |
From: Colin <net...@im...> - 2020-07-13 21:36:53
|
Excellent!! Thanks Jeff. Colin On 2020-07-10 07:14, Jeff Hennick wrote: > > When I introduced the *regex* stage, Colin asked about a regex based > change stage. > > I have now added a new stage: *changeregex* and its aliases down to > *changer*. > >> /** changeregex >> +-ONE-+ >> >>--CHANGERegex---delimitedString--delimitedString--+-----+---->< >> +-ALL-+ >> >> */ > This does use the Java regex class, so therefore the Java dialect of > regex. > > Jeff > > > > _______________________________________________ > netrexx-pipelines mailing list > net...@li... > https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines |