From 759f0b5c00a87c8bfbaf1e309406f7fb2e2cce00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Thu, 4 Nov 2021 10:05:29 +0100 Subject: [PATCH] Wrap all parsers and enable parsing problem --- app/Assembler.hs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/app/Assembler.hs b/app/Assembler.hs index b707740..eafd044 100644 --- a/app/Assembler.hs +++ b/app/Assembler.hs @@ -131,6 +131,7 @@ tokenize input = tokens >>= (\t -> Right $ filter tokenFilter t) tokenFilter :: Token -> Bool tokenFilter (WhiteSpace) = False tokenFilter (Comment _) = False +tokenFilter (NewLine) = False tokenFilter _ = True tokenizers :: Tokenizer @@ -159,7 +160,7 @@ data AST = EmptyNode | ParamNode AST | ParamsNode [AST] | InstructionNode AST AST - | LineNode AST AST + | LineNode AST AST deriving (Eq, Show) type ConsumedTokens = Int @@ -258,11 +259,6 @@ parseAll (p:ps) tokens = do parse :: [Token] -> Either String [AST] parse [] = Right [] -parse tokens = case parsers tokens of +parse tokens = case parseLine tokens of (Just (ParseResult ast consumed)) -> parse (drop consumed tokens) >>= (\rest -> return $ ast : rest) - Nothing -> Left $ "Unexpected token: " ++ (show . head) tokens - -parsers :: Parser -parsers = parseAny - [ parseLine - ] \ No newline at end of file + Nothing -> Left $ "Unexpected token: " ++ (show . head) tokens \ No newline at end of file