@@ -333,7 +333,7 @@ pExtExpr syn = do i <- getState
334pSimpleExtExpr :: SyntaxInfo -> IParser PTerm
334pSimpleExtExpr :: SyntaxInfo -> IParser PTerm
335pSimpleExtExpr syn = do i <- getState
335pSimpleExtExpr syn = do i <- getState
336− pExtensions syn (filter valid (filter simple (syntax_rules i)))
336+ pExtensions syn (filter simple (syntax_rules i))
338 simple (Rule (Expr x:xs) _ _) = False
338 simple (Rule (Expr x:xs) _ _) = False
339 simple (Rule (_:xs) _ _) = case (last xs) of
339 simple (Rule (_:xs) _ _) = case (last xs) of
@@ -342,10 +342,6 @@ pSimpleExtExpr syn = do i <- getState
342 _ -> False
342 _ -> False
343 simple _ = False
343 simple _ = False
345− valid (Rule _ _ AnySyntax) = True
346− valid (Rule _ _ PatternSyntax) = inPattern syn
347− valid (Rule _ _ TermSyntax) = not (inPattern syn)
349pNoExtExpr syn =
345pNoExtExpr syn =
350 try (pApp syn)
346 try (pApp syn)
351 <|> pSimpleExpr syn
347 <|> pSimpleExpr syn
@@ -355,7 +351,12 @@ pNoExtExpr syn =
355 <|> pDoBlock syn
351 <|> pDoBlock syn
357pExtensions :: SyntaxInfo -> [Syntax] -> IParser PTerm
353pExtensions :: SyntaxInfo -> [Syntax] -> IParser PTerm
358−pExtensions syn rules = choice (map (\x -> try (pExt syn x)) rules)
354+pExtensions syn rules = choice (map (\x -> try (pExt syn x)) (filter valid rules))
356+ valid (Rule _ _ AnySyntax) = True
357+ valid (Rule _ _ PatternSyntax) = inPattern syn
358+ valid (Rule _ _ TermSyntax) = not (inPattern syn)
360pExt :: SyntaxInfo -> Syntax -> IParser PTerm
361pExt :: SyntaxInfo -> Syntax -> IParser PTerm
361pExt syn (Rule (s:ssym) ptm _)
362pExt syn (Rule (s:ssym) ptm _)