Fail if template is not parsed until eof
This should fix the second problem in #376.
This commit is contained in:
parent
72d2b11efe
commit
3d713e9f2c
1 changed files with 10 additions and 3 deletions
|
@ -120,15 +120,22 @@ instance Binary TemplateExpr where
|
|||
|
||||
--------------------------------------------------------------------------------
|
||||
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
|
||||
Right t -> t
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
topLevelTemplate :: P.Parser Template
|
||||
topLevelTemplate = Template <$>
|
||||
P.manyTill templateElement P.eof
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
template :: P.Parser Template
|
||||
template = Template <$>
|
||||
(P.many $ chunk <|> escaped <|> conditional <|> for <|> partial <|> expr)
|
||||
template = Template <$> P.many templateElement
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
templateElement :: P.Parser TemplateElement
|
||||
templateElement = chunk <|> escaped <|> conditional <|> for <|> partial <|> expr
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in a new issue