view exercises/src/AdditionParser.hs @ 29:53732b9605c7

add AdditionParser
author Markus Kaiser <markus.kaiser@in.tum.de>
date Fri, 11 Jan 2013 00:49:48 +0100
parents
children
line wrap: on
line source

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"