Mercurial > 12ws.info2
changeset 29:53732b9605c7
add AdditionParser
author | Markus Kaiser <markus.kaiser@in.tum.de> |
---|---|
date | Fri, 11 Jan 2013 00:49:48 +0100 |
parents | e0ae5d8b55d3 |
children | 8bf7ca2663d2 |
files | exercises/src/AdditionParser.hs |
diffstat | 1 files changed, 18 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/exercises/src/AdditionParser.hs Fri Jan 11 00:49:48 2013 +0100 @@ -0,0 +1,18 @@ +module AdditionParser where + +import Data.Char +import Parser + +digit :: Parser Char Char +digit = one isDigit + +number :: Parser Char String +number = list1(one isDigit) + +addition :: Parser Char [String] +addition = number *** optional (item '+' *** addition >>> snd) >>> ints + where + ints (x, Just y) = x : y + ints (x, _) = [x] + +test = addition "2134+123+1+2+3" \ No newline at end of file