[erlang-questions] Parser combinators
Torbjorn Tornkvist
tobbe@REDACTED
Thu Oct 18 09:43:39 CEST 2007
Have a look here:
http://www.engr.uconn.edu/~jeffm/Source/Erlang/
--Tobbe
Joel Reymont wrote:
> Folks,
>
> Any suggestions on how parser combinators can be elegantly and
> cleanly implemented in Erlang?
>
> State needs to be threaded from combinator to combinator and I don't
> see an option apart from either keeping the state in the process
> dictionary or keeping it in a process launched at the beginning of
> the parsing run.
>
> How could the following bits of Haskell without having to deal with
> state returned from each of reschoice, symbol, commaSep, etc.?
>
> Thanks, Joel
>
> ---
>
> varDeclarations = do
> reschoice [ "Variable", "Variables", "Vars", "Var" ]
> symbol ":"
> decs <- commaSep varDeclaration
> return $ VarDecs decs
>
> whileStatement = do
> reserved "While"
> e <- expr
> reserved "Begin"
> xs <- statements
> reserved "End"
> return $ While e (Compound xs)
>
> ident = do
> c <- identStart
> cs <- many (identLetter)
> return (c:cs)
>
> sign = (char '-' >> return (0-1))
> <|> (char '+' >> return 1)
> <|> return 1
>
>
> --
> http://wagerlabs.com
>
>
>
>
>
More information about the erlang-questions
mailing list