8 import Control.Applicative
10 ------------------------------------------------------------
11 -- 1. Parsing repetitions
12 ------------------------------------------------------------
14 zeroOrMore :: Parser a -> Parser [a]
15 zeroOrMore p = undefined
17 oneOrMore :: Parser a -> Parser [a]
18 oneOrMore p = undefined
20 ------------------------------------------------------------
22 ------------------------------------------------------------
24 spaces :: Parser String
27 ident :: Parser String
30 ------------------------------------------------------------
31 -- 3. Parsing S-expressions
32 ------------------------------------------------------------
34 -- An "identifier" is represented as just a String; however, only
35 -- those Strings consisting of a letter followed by any number of
36 -- letters and digits are valid identifiers.
39 -- An "atom" is either an integer value or an identifier.
40 data Atom = N Integer | I Ident
43 -- An S-expression is either an atom, or a list of S-expressions.