Just updated <https://sourceforge.net/p/oorexx/bugs/1716/> with a new patch 
(adds support in
LanguageParser::createProgram(), simplifies code a little bit more) and test 
files going with it.

---rony


On 07.08.2020 12:21, Rony G. Flatscher wrote:
> On 07.08.2020 00:02, Rick McGuire wrote:
>> Been without power here since Tuesday and probably won’t have power until 
>> the weekend, so I won’t
>> be able to review anything.
>
> Wow, sorry to hear that! All the best!
>
> ---
>
> In the process of updating the patch (missed createProgram(), simplifying 
> code a little bit more).
>
> ---rony
>
>
>>
>> On Thu, Aug 6, 2020 at 1:51 PM Rony G. Flatscher <rony.flatsc...@wu.ac.at
>> <mailto:rony.flatsc...@wu.ac.at>> wrote:
>>
>>     Please review the fixes.
>>
>>     If there are no objections I will apply the patch of #1716 (it also 
>> includes the patch for
>>     bug #1715) together with test units to test for them.
>>
>>     ---rony
>>
>>
>>     On 06.08.2020 19:47, Rony G. Flatscher wrote:
>>>
>>>     The bug report in <https://sourceforge.net/p/oorexx/bugs/1716/>
>>>     <https://sourceforge.net/p/oorexx/bugs/1716/> includes a patch that 
>>> fixes this.
>>>
>>>     ---rony
>>>
>>>
>>>     On 05.08.2020 15:16, Rony G. Flatscher wrote:
>>>>
>>>>     Having received error reports from users of BSF4ooRexx like
>>>>
>>>>              2 *-* /**/@
>>>>         Error 13 running 
>>>> rexx_invoked_via_[fxml_01.fxml]_at_2020_08_05T12_33_24_17Z.rex line 2:  
>>>> Invalid character in program.
>>>>         Error 13.1:  Incorrect character in program "@" ('40'X).
>>>>
>>>>     and looking up the execution paths in those cases, it turns out that 
>>>> the ooRexx .routine
>>>>     class gets used to create the executable in those cases with a string 
>>>> array representing
>>>>     the compiled and encoded Rexx program.
>>>>
>>>>     So the "new" method of the .routine class gets the compiled and 
>>>> encoded source supplied as
>>>>     an array of strings, e.g.:
>>>>
>>>>         #!/usr/bin/env rexx
>>>>         /**/@REXX@
>>>>         
>>>> LyoqL0BSRVhYAAAAAAAAAGcrKgAgAAAAVOwAAAAAAABwEgAAVPq7VhgAAAACAAAAAAAAAAAA
>>>>         
>>>> AAAAAAAAgB68ViAAAAACAAAAKAAAAAAAAABwAAAAOAAAAAAAAADkSrxWOAAAAAIAAAAFAACA
>>>>         ... cut ...
>>>>
>>>>     Supplying the compiled and encoded data as a single string to the 
>>>> .routine class does not
>>>>     work as this issues the error "13.1, Invalid character in program" 
>>>> caused by the presence
>>>>     of a LF ('0A'x) character, here a rexxtry example:
>>>>
>>>>         infile=.stream~new("nutshell_01.rex-compiled")~~open("read")
>>>>           ........................................... rexxtry.rex on 
>>>> WindowsNT
>>>>         pgm=infile~charin(infile~chars)
>>>>           ........................................... rexxtry.rex on 
>>>> WindowsNT
>>>>         infile~close
>>>>           ........................................... rexxtry.rex on 
>>>> WindowsNT
>>>>         r1=.routine~new("aha",pgm)
>>>>           Oooops ! ... try again.     Invalid character in program.
>>>>                                       Incorrect character in program "
>>>>         " ('0A'X).
>>>>           rc = 13.1 ................................. rexxtry.rex on 
>>>> WindowsNT
>>>>
>>>>     As a compiled and encoded form of a Rexx program always has the string 
>>>> "/**/@REXX@" as the
>>>>     value for its second line it would be possible to determine that the 
>>>> String array comes
>>>>     from a compiled and encoded Rexx program. Rather than creating an 
>>>> error in this case, the
>>>>     routine object could get created successfully from the String array 
>>>> representing a compiled
>>>>     and encoded Rexx program.
>>>>
>>>>     Are there any objections to try to enhance the "new" method of the 
>>>> .routine (and the
>>>>     .method) class such that the string array can represent a compiled and 
>>>> encoded Rexx program?
>>>>
>>>>     ---rony
>>>>

_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to