Merge pull request #448 from lortabac/master
Fail if template is not parsed until eof
This commit is contained in:
commit
ccced51cf4
1 changed files with 10 additions and 3 deletions
|
@ -120,15 +120,22 @@ instance Binary TemplateExpr where
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
readTemplate :: String -> Template
|
readTemplate :: String -> Template
|
||||||
readTemplate input = case P.parse template "" input of
|
readTemplate input = case P.parse topLevelTemplate "" input of
|
||||||
Left err -> error $ "Cannot parse template: " ++ show err
|
Left err -> error $ "Cannot parse template: " ++ show err
|
||||||
Right t -> t
|
Right t -> t
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
topLevelTemplate :: P.Parser Template
|
||||||
|
topLevelTemplate = Template <$>
|
||||||
|
P.manyTill templateElement P.eof
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
template :: P.Parser Template
|
template :: P.Parser Template
|
||||||
template = Template <$>
|
template = Template <$> P.many templateElement
|
||||||
(P.many $ chunk <|> escaped <|> conditional <|> for <|> partial <|> expr)
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
templateElement :: P.Parser TemplateElement
|
||||||
|
templateElement = chunk <|> escaped <|> conditional <|> for <|> partial <|> expr
|
||||||
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in a new issue