[reply forwarded to list] ---------- Forwarded message ---------- From: Ryan Bloor <ryanbloor@hotmail.com> hi sorry for vagueness. I am writing a basic Parser from scratch. So far I have functions; # removeSpaces # match - which checks if a string is a substring of another # orParser which combines two parser's abilities # Basic pasrers like... parseInt, parseTrue, parseFalse, parseBool using the orParser on True and False. What I want to do now is have a parseBinaryOp that recognises: parseBinaryOp "+" "(5 + 2) if" >>>gives>> [(EInt 5, EInt 2, "if")] So I think that I have to split the initial string into four parts. "+" becomes op '(' becomes tokenF ')' becomes tokenB "5" becomes e1 "2" becomes e2 parseBinaryOp :: String -> String -> [(Expr, Expr, String)] parseBinaryOp op str = let (tokenF,e1,op,e2,tokenB) = I am not sure how to go about separating the string for how I need it using my other functiuons. Ryan ________________________________
Date: Sun, 9 Dec 2007 13:07:23 -0800 From: catamorphism@gmail.com To: ryanbloor@hotmail.com Subject: Parsing integers [was: Re: [Haskell-cafe] help] CC: haskell-cafe@haskell.org
On 12/9/07, Ryan Bloor <ryanbloor@hotmail.com> wrote:
hi
I have a function parseInt... which needs an error guard for when the input is not an Int.
parseInt :: Parser parseInt [] = [] parseInt xs = let (digits, rest) = span isDigit (removeSpace xs) in [(EInt (read digits), removeSpace rest)]
Also... I have a function that does this... parseBinaryOp "+" "(5 + 2) if" gives...[(Int 5, Int 2, "if")] so, op is '+' or "&&". I am unsure of how to begin...
parseBinaryOp :: String -> String -> [(Expr, Expr, String)] parseBinaryOp op str
Check out: http://www.haskell.org/haskellwiki/Homework_help
If this isn't homework, try posting again and phrasing your question in the form of a question; saying "I am unsure of how to begin" doesn't help us help you think about the problem.
Cheers, Tim
-- Tim Chevalier * catamorphism.org * Often in error, never in doubt "[Teaching children to read] will make America what we want it to be, a literate country and a hopefuller country." -- George W. Bush
________________________________ Are you the Quizmaster? Play BrainBattle with a friend now!