From 05d670817ec6c3eb1afec052ee808aac773a514b Mon Sep 17 00:00:00 2001 From: vvsob Date: Thu, 25 Dec 2025 18:01:59 +0300 Subject: [PATCH] fix missing EOF token --- src/Lox/Expr.hs | 2 +- src/Lox/Parser.hs | 2 +- src/Lox/Scanner.hs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Lox/Expr.hs b/src/Lox/Expr.hs index ea0d3d8..7a6c174 100644 --- a/src/Lox/Expr.hs +++ b/src/Lox/Expr.hs @@ -9,4 +9,4 @@ data Expr = Unary Token Expr | Binary Expr Token Expr | Grouping Expr - + deriving Show diff --git a/src/Lox/Parser.hs b/src/Lox/Parser.hs index 4f1269d..238a3ee 100644 --- a/src/Lox/Parser.hs +++ b/src/Lox/Parser.hs @@ -1,5 +1,5 @@ module Lox.Parser ( - expression + parse ) where import Control.Monad diff --git a/src/Lox/Scanner.hs b/src/Lox/Scanner.hs index 58579a1..cd4e7df 100644 --- a/src/Lox/Scanner.hs +++ b/src/Lox/Scanner.hs @@ -43,7 +43,7 @@ scanTokensFromSource source = evalState scanTokens (emptyScannerState source) scanTokens :: State ScannerState [Token] scanTokens = do atEnd <- isAtEnd - if atEnd then return [] else do + if atEnd then return <$> addToken EOF else do maybeToken <- scanToken case maybeToken of Nothing -> scanTokens