Left "/Users/frkkan96/Documents/src/ume/umecore/testing/testdata/testdata.TextGrid" (line 35, column 5):
Now, this is perfectly understandable, but line 35, col 5 in the file being parsed looks like the supplies image - there is no 't' there.
data VariableLine = VariableLine String String deriving Show
data TierType = IntervalTier | PointTier deriving Show
data Tier = Tier String deriving Show
data LabelFile = LabelFile Double Double deriving Show
data Label = Label String TierType Double Double String deriving Show
haskelldef = makeTokenParser haskellDef
textgridfile :: Parser (LabelFile, [[Label]])
textgridfile = do
h <- header
ll <- many1 tier
return $ (h,ll)
header :: Parser LabelFile
header = do
string headTS1
start <- try (float haskelldef)
<|> (fmap fromInteger $ integer haskelldef )
string "xmax = "
end <- try (float haskelldef)
<|> (fmap fromInteger $ integer haskelldef )
string "tiers? <exists> \n"
string "size = "
integer haskelldef
string "item []:"
whiteSpace haskelldef
return $ LabelFile start end
tier :: Parser [Label]
tier = do
whiteSpace haskelldef
string "item ["
integer haskelldef
string "]:"
whiteSpace haskelldef
try (string "class = \"IntervalTier\"")
<|> string "class = \"TextTier\""
whiteSpace haskelldef
string "name = "
char '"'
name <- many quotedChar
char '"' <?> "quote at end of cell"
whiteSpace haskelldef
string "xmin = "
try (float haskelldef) <|> (fmap fromInteger $ integer haskelldef )
whiteSpace haskelldef
string "xmax = "
try (float haskelldef) <|> (fmap fromInteger $ integer haskelldef )
string "intervals: size = " <|> string "points: size = "
integer haskelldef
whiteSpace haskelldef
labelList <- many1 (interval name)
return $ labelList
interval :: String -> Parser Label
interval tierName = do
whiteSpace haskelldef
string "intervals ["
integer haskelldef
string "]:"
whiteSpace haskelldef
string "xmin = "
start <- try (float haskelldef)
<|> (fmap fromInteger $ integer haskelldef )
whiteSpace haskelldef
string "xmax = "
end <- try (float haskelldef)
<|> (fmap fromInteger $ integer haskelldef )
whiteSpace haskelldef
string "text = "
char '"'
text <- many quotedChar
char '"' <?> "quote at end of cell"
return $ Label tierName IntervalTier start end text
which fails on the attached input file.
I can't see how 't' is found?? What am I doing wrong?
/Fredrik
"Life is like a trumpet - if you don't put anything into it, you don't get anything out of it."