diff options
Diffstat (limited to 'Sjit')
-rw-r--r-- | Sjit/Syntax.icl | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/Sjit/Syntax.icl b/Sjit/Syntax.icl index e382696..d18f06c 100644 --- a/Sjit/Syntax.icl +++ b/Sjit/Syntax.icl @@ -5,11 +5,9 @@ import StdEnv import Control.Applicative import Control.Monad import Data.Either -from Data.Foldable import class Foldable(foldr1) from Data.Func import $ import Data.Functor import Data.GenEq -from Data.List import instance Foldable [] import Data.Maybe import Text.Parsers.Simple.Core @@ -114,7 +112,8 @@ expr where tok :: !String -> Parser Token String tok s = pToken (TIdent s) $> s - toks = foldr1 (<|>) o map tok + toks fs = case map tok fs of + [t:ts] -> foldr (<|>) t ts rightAssoc :: !(Parser Token String) !(Parser Token Expr) -> Parser Token Expr rightAssoc opp exprp = exprp >>= \e1 -> |