Stream parsers

From: Frank A. Christoph (christo@nextsolution.co.jp)
Date: Tue Feb 01 2000 - 02:53:30 MET

  • Next message: Frank A. Christoph: "Stream parsers, again"

    I have a problem with reporting error locations in stream parsers. Using the
    count at the beginning of a parser match, I can get the token number of the
    first element that matched a clause. But when the parser expression looks
    like this (using the new syntax):

      parser bp [< e = p; 'T ?? err bp >] -> ...

    you have to bend over backwards to figure out what token number the error
    could have occurred on, since p could have parsed an arbitrary number of
    tokens already. Is there any easy way to work around this?

    Would it be possible to change the semantics of the expression on the rhs of
    ?? so that it is a function which gets passed the token count after having
    matched the previous stream component (p, in my example)? Or, if you want to
    maintain retain the current semantics, add a new form with three ?'s...

    --fac



    This archive was generated by hypermail 2b29 : Wed Feb 02 2000 - 16:10:54 MET