view exercises/src/AdditionParser.hs @ 39:9a7b9e0c9eb0 default tip

week 15 tutorial
author Markus Kaiser <markus.kaiser@in.tum.de>
date Fri, 08 Feb 2013 00:06:20 +0100
parents 53732b9605c7
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"