Am 09.03.2011 14:44, schrieb Christian Maeder:
> Am 08.03.2011 13:50, schrieb Christian Maeder:
>> Am 08.03.2011 13:35, schrieb Hauschild, Klaus (EXT):
>>> Hi Christian,
>>>
>>> Thank you for your help. Now the current version of Parse.hs 
>>> (http://code.google.com/p/hgmltracer/source/browse/trunk/hGmlTracer/src/Gml/Parse.hs)
>>>  works well for the test file fact.gml.
>>
>>                                    spaces
>>                                    char end
>>
>> The idea is to call spaces _after_ every token.
> 
> In other words "spaces" before "char end" is not needed.

But in your top-level parser you may want to skip leading spaces and
check for a final "eof" to ensure that everything was consumed.

  spaces >> liftM2 const parseList eof

(Instead of "liftM2 const" the symbol "<*" from "Control.Applicative"
may be used: spaces *> parseList <* eof)

I defined:

infixl 1 <<

(<<) :: Monad m => m a -> m b -> m a
(<<) = liftM2 const

and would use:
  spaces >> parseList << eof

C.

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to