home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / lang / rexx / 935 < prev    next >
Encoding:
Text File  |  1992-09-08  |  4.0 KB  |  83 lines

  1. Newsgroups: comp.lang.rexx
  2. Path: sparky!uunet!mcsun!sunic!sejnet.sunet.se!eric
  3. From: eric@sejnet.sunet.se (Eric Thomas)
  4. Subject: Re: Blanks, REXX, and portability...
  5. Message-ID: <1992Sep8.155436.1@sejnet.sunet.se>
  6. Lines: 70
  7. Sender: news@sunic.sunet.se
  8. Reply-To: ERIC@SEARN.SUNET.SE
  9. Organization: SUNET, Stockholm, Sweden
  10. References: <REXXLIST%92090516060285@UGA.CC.UGA.EDU> <MARTINC.92Sep7194817@grover.cs.unc.edu>
  11. Date: Tue, 8 Sep 1992 15:54:36 GMT
  12.  
  13. In article <MARTINC.92Sep7194817@grover.cs.unc.edu>, martinc@grover.cs.unc.edu (Charles R. Martin) writes:
  14. > In article <1992Sep7.163041.1@sejnet.sunet.se> eric@sejnet.sunet.se (Eric Thomas) writes:
  15. >    In article <MARTINC.92Sep6183949@grover.cs.unc.edu>, martinc@grover.cs.unc.edu (Charles R. Martin) writes:
  16. >    > I think the problem lies in repeated applications of parse, say with
  17. >    > columnar fields.  Say I parse the string "ab\tc" -- importing a little C
  18. >    > terminology to make clear where the tab lies -- with parse expand.  The
  19. >    > tab char should come out to be some number of blanks, as I understand
  20. >    > it. (Probably 6 for canonical tabs.)  But if I parse off the first
  21. >    > field, THEN parse the resulting "\tc", the tab now wants to expand to 8
  22. >    > characters.
  23. >    Good point, but this is a hasty conclusion. IF you are worried about exact
  24. >    column positions and have to cope with data containing tabs and blanks, you
  25. >    will have to think carefully in any case. As you pointed out,
  26. >                    Parse var line a +2 b
  27. >                    Parse expand var b <whatever>
  28. >    will not work, but
  29. >                    Parse expand var line a +2 b
  30. >                    Parse var b <whatever>
  31. >    does what you want. If you expand, you have to expand at the source.
  32. >    Now, with a REXX that has built-in white space recognition rather
  33. >    than expand, the code fragment would have to be:
  34. >                    Parse var line a +2 b
  35. >                    Parse var b <whatever>
  36. >    The first PARSE gives you a variable 'b' that starts with a tab, the
  37. >    second PARSE throws it away (since it is white space) unless you use
  38. >    columnar or pattern based parsing. Losing the tab will surely screw
  39. >    up your column positioning, since it will yield exactly the same
  40. >    result as if the tab had been a blank. So the only way to handle this
  41. >    situation properly is to use a form of parsing which does NOT treat
  42. >    tabs as white space. You are not making use of the interpreter's
  43. >    automatic handling of tabs.
  44. >    In other words, the situation is not better with a REXX that
  45. >    automatically treats tabs as white space; in fact, it is worse.
  46. > I think I should direct you to the note where I went over precisely what
  47. > I meant using regular expressions.
  48.  
  49. Did you read your own note? I am getting the impression you are replying to
  50. the wrong message by mistake.
  51.  
  52. > But I think your example is flawed:
  53.  
  54. My examples are not flawed. I have written enough REXX code to know what a
  55. simple PARSE clause like the ones I quoted above does, if you don't believe me
  56. feel free to run them through your favourite interpreter. As you said (and if I
  57. ever said the opposite I'd like you to show me where), PARSE does indeed strip
  58. both leading and trailing blanks from the first N-1 variables in a word parsing
  59. clause. That is precisely why you will lose column positioning if you use this
  60. form of parsing, as arbitrary amounts of blanks (or whitespace in your
  61. proposal) are silently eaten up. The only way you can remember what columns
  62. things were at is if you don't use this form of the PARSE statement, in which
  63. case it is totally immaterial whether or not it treats tabs as whitespace when
  64. parsing by word, since you won't be parsing by word, and again the conclusion
  65. is that having this behaviour does not help you in cases where you have:
  66.  
  67. >    > repeated applications of parse, say with columnar fields.
  68.  
  69. Now if you would please run further examples through an interpreter so that you
  70. can come up with concrete situations where there is indeed a problem, we would
  71. all save a lot of time.
  72.  
  73.   Eric
  74.