Subject: Re: Q: parsing strings
From: Erik Naggum <erik@naggum.net>
Date: 2000/10/10
Newsgroups: comp.lang.lisp
Message-ID: <3180207722329732@naggum.net>

* Raymond Laning <rclaning@west.raytheon.com>
| the people responding to your postings evidently never had to deal
| with integrating legacy (e.g. paleolithic) systems.

  Or that's just what they had, but they did it the right way.

| I had to write a formatted-read function to read output from fortran
| programs that could not be maintained because the people that wrote
| them were no longer employed (or in some cases, living).  I am sorry
| that the sourcecode for my function is no longer available to me
| else I would pass it along, but IIRC it had many similarities to
| yours

  Then there's no wonder you, too, feel that legacy systems are
  painful and that the right solution lies in simple-minded but overly
  powerful tools like regular expressions and simple-minded parsers.

  Actually _understanding_ a legacy data format is not easy, as most
  of the people who write their own data formats are incredibly stupid
  and short-sighted (as in writing years with two digits), and you're
  trying to use all your brainpower to be as dumb as someone who
  didn't have a clue that someday someone would have to think like
  they did, because they didn't think at all.  Clearly, a regular
  expression or something like "scanf" can't hack this -- both are
  rife with the same kind of short-sightedness that produce such
  random results.  Hoping for a match between the outcomes of two
  random processes is just insane.

  Writing an input processor ("reader") for some foreign language or
  data format is not something you do by reversing "format".  Hell,
  you don't _use_ format to produce syntactically correct output in
  other syntaxes, either.  format is meant for _human_ consumption.

  Some day, programmers will understand that there are three ways to
  represent information: computer-to-human, human-to-computer, and
  computer-to-computer; they have exactly _nothing_ in common which
  you can use to deal with another when you have dealt with one.
  Tools that seem to work most of the time (perl), or that promise
  something they cannot possibly deliver (XML), will only delay it.

#:Erik
-- 
  If this is not what you expected, please alter your expectations.