parsec

Haskell Parsec and Unordered Properties

I am trying to use Parsec to parse something like this: property :: CharParser SomeObject property = do name parameters value return SomeObjectInstance { fill in records here } I am implementing the iCalendar spec and on every like there is a name:parameters:value triplet, very much like the way that XML has a name:att...

How do I use Haskell's type system to enforce correctness while still being able to pattern-match?

Let's say that I have an adt representing some kind of tree structure: data Tree = ANode (Maybe Tree) (Maybe Tree) AValType | BNode (Maybe Tree) (Maybe Tree) BValType | CNode (Maybe Tree) (Maybe Tree) CValType As far as I know there's no way of pattern matching against type constructors (or the matching functions i...

haskell parsec optional question

Sorry if it's a novice question - I want to parse something defined by Exp ::= Mandatory_Part Optional_Part0 Optional_Part1 I thought I could do this: proc::Parser String proc = do { ;str<-parserMandatoryPart ;str0<-optional(parserOptionalPart0) --(1) ;str1<-optional(parserOptionalPart1) --(2) ;return str++str0+...

Parsec parse many question

Hi. I need to create a parser for a programming language. So far it is 95% done, I'd say, except for a tiny detail. The program written in this language has the following structure: outputs inputs expressions The requirement is that outputs cannot be mixed with inputs. For example: x := output of int; y := output of in; ..... z := i...

Using Parsec with Data.Text

Using Parsec 3.1, it is possible to parse several types of inputs: [Char] with Text.Parsec.String Data.ByteString with Text.Parsec.ByteString Data.ByteString.Lazy with Text.Parsec.ByteString.Lazy I don't see anything for the Data.Text module. I want to parse Unicode content without suffering from the String inefficiencies. So I've c...