
Dear Cafe, for a language that has (subset-of) Haskell expression syntax, but different global declaration syntax, we are using parseExp from haskell-src-exts. I have two question on this. I am asking here because https://github.com/haskell-suite/haskell-src-exts#maintenance says that it's no longer active. (1) can we make parseExp self-delimiting? The type is parseExp :: String -> ParseResult (Exp SrcSpanInfo) but I'd want "maximum munch" and the part that was not eaten, as in :: String -> ParseResult (.. , String) I tried parseExp "x } foo bar" ParseFailed (SrcLoc "<unknown>.hs" 1 3) "Unexpected }" so I could extract the error location, and then re-parse that prefix. That's feels a bit strange. (2) perhaps we don't need (1) if we do the chunking on the outside. E.g., we run a lexer and look for delimiters (keywords of the host language that then are forbidden in inner expressions). We want to use lexTokenStream :: String -> ParseResult [Loc Token] and then I'd want parseExp' :: [Token] -> ... Else, we'd have to reconstruct the slice of the original input, which again, feels a bit strange and (because) it duplicates work. It is suggested to use http://hackage.haskell.org/package/ghc-lib-parser instead. Would this help with the above? But then of course (3) is there a transition strategy (e.g., wrapper modules)? Thanks - J.W. NB: this is the issue from the project's tracker: https://gitlab.imn.htwk-leipzig.de/waldmann/cyp/issues/45