I always thought that if you use an expression as a tail (a quoted string is
an expression), the tail had to be in brackets ([]) with commas between the
levels.

 

John

 

From: David Ashley [mailto:[email protected]] 
Sent: Friday, November 20, 2009 8:58 AM
To: ooRexxDevel
Subject: [Oorexx-devel] Fwd: Re: Fwd: stems

 

Rick -

I have been having a long running discussion with Fernando on some other
topics and this came up. This is definitely a bug in 4.0 IMHO. Any time you
use a quoted string as the stem tail it trys to pass that string to the
address environment for processing. Here is some sample output from
rexxtry.rex.

a."xxx yy z" = 'hello'
sh: 0: command not found
  rc = 127 ...................................... rexxtry.rex on LINUX

Am I just off my rocker? This has got to be a bug.

David Ashley



-------- Original Message -------- 


Subject: 

Re: Fwd: stems


Date: 

Fri, 20 Nov 2009 11:41:05 +0100


From: 

FERNANDO MANSITO CABALLERO  <mailto:[email protected]>
<[email protected]>


To: 

David Ashley  <mailto:[email protected]>
<[email protected]>

 

Dear Mr. Ashley,

 

Thanks you very much for your patient and kind explanation.

 

If you allow me, although the two expressions are indeed completely
different the result of the two of them is the same: at present you can use
any string enclosed in square brackets as a tail component, but only if it
is the final component:

 

a.[o sole mio] = "che si fa" --> che si fa, but a.[o sole mio].1 = "a la
una" --> 0 is not a command

a.["o sole mio"] = "e non si fa" --> e non si fa, but a.["o sole mio"].a =
"y a las dos" --> 0 is not a command

 

Although I would never imagine that there be no pertinent reasons for the
present situation, for my purposes I would prefer that issue solved the
"tolerant" way (use any string as a tail component) and please not the
reverse (illegalise the use of any bracketed string as the ending
component).

 

By the way, rule 1 (quoted strings become indexes) does not seem to work:
a."o sole mio" = "hello" --> 0 is not a command, a."pppp" = "hello" --> 0 is
not a command (!)

 

If I may, I have also noticed that if you EXPOSE a stem from within a
PROCEDURE, USE ARG it and change some components, the stem reverts to
uninitialised or, there being a default, to that default for all the
unchanged components unless you recur to RETURNing the stem, which may be a
bit rigid.

 

Thank you very much again for your patience and best regards

fernando mansito

  

On Wed, Nov 18, 2009 at 9:57 PM, David Ashley <[email protected]>
wrote:

Fernando -

I believe your problem in the understanding of what is really going on with
the stem tail evaluations.

a.[o sol mia]   is NOT equivalent to   a.["o sol mia"]

When Rexx evaluates a stem tail one of two things happen.

1. If the tail contains quotes strings then then the quoted string become
the index.
2. If the tail contains unquoted strings then they are considered to be
variable references and the value of the variable is substituted. If that
variable is not defined then the name of the variable is converted to upper
case and then substituted.

Thus for your example

a.[o sol mia]   is equivalent to   a.["O SOL MIA"]   since none of those
tail variables has been defined. Thus a.["O SOL MIA"]   is not equal to
a.["o sol mia"]. Those are two different indexes.

I hope this helps. If this is unclear please let me know.

David Ashley

 

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to