fix bad token function naming
This commit is contained in:
parent
b5001499d7
commit
7bec9392c3
3 changed files with 13 additions and 13 deletions
|
|
@ -16,7 +16,7 @@ interpret (Literal value) = return value
|
|||
interpret (Grouping expr) = interpret expr
|
||||
interpret (Unary op expr) = do
|
||||
right <- interpret expr
|
||||
case (getType op, right) of
|
||||
case (tokenType op, right) of
|
||||
(MINUS, NumberObject x) -> return $ NumberObject (-x)
|
||||
(BANG, NullObject) -> return $ BoolObject False
|
||||
(BANG, BoolObject x) -> return $ BoolObject (not x)
|
||||
|
|
@ -25,7 +25,7 @@ interpret (Unary op expr) = do
|
|||
interpret (Binary leftExpr op rightExpr) = do
|
||||
left <- interpret leftExpr
|
||||
right <- interpret rightExpr
|
||||
case (getType op, left, right) of
|
||||
case (tokenType op, left, right) of
|
||||
(PLUS, NumberObject x, NumberObject y) -> return $ NumberObject (x + y)
|
||||
(MINUS, NumberObject x, NumberObject y) -> return $ NumberObject (x - y)
|
||||
(SLASH, NumberObject x, NumberObject y) -> return $ NumberObject (x / y)
|
||||
|
|
|
|||
|
|
@ -55,12 +55,12 @@ unary = do
|
|||
primary :: State ParserState Expr
|
||||
primary = do
|
||||
token <- advance
|
||||
case getType token of
|
||||
case tokenType token of
|
||||
FALSE -> return $ Literal $ BoolObject False
|
||||
TRUE -> return $ Literal $ BoolObject True
|
||||
NIL -> return $ Literal NullObject
|
||||
NUMBER -> return $ Literal $ getObject token
|
||||
STRING -> return $ Literal $ getObject token
|
||||
NUMBER -> return $ Literal $ tokenObject token
|
||||
STRING -> return $ Literal $ tokenObject token
|
||||
LEFT_PAREN -> do
|
||||
expr <- expression
|
||||
consume RIGHT_PAREN "Expected '(' after ')'"
|
||||
|
|
@ -89,7 +89,7 @@ matchToken (t:ts) = do
|
|||
check :: TokenType -> State ParserState Bool
|
||||
check t = do
|
||||
atEnd <- isAtEnd
|
||||
if atEnd then return False else (== t) . getType <$> peek
|
||||
if atEnd then return False else (== t) . tokenType <$> peek
|
||||
|
||||
consume :: TokenType -> String -> State ParserState Token
|
||||
consume t msg = do
|
||||
|
|
@ -103,4 +103,4 @@ peek :: State ParserState Token
|
|||
peek = gets (head . tokens)
|
||||
|
||||
isAtEnd :: State ParserState Bool
|
||||
isAtEnd = (== EOF) . getType <$> peek
|
||||
isAtEnd = (== EOF) . tokenType <$> peek
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
module Lox.Scanner (
|
||||
TokenType (..),
|
||||
Object (..),
|
||||
Token (getType, getLexeme, getObject),
|
||||
Token (..),
|
||||
scanTokensFromSource
|
||||
) where
|
||||
|
||||
|
|
@ -36,10 +36,10 @@ instance Show Object where
|
|||
show (BoolObject True) = "true"
|
||||
|
||||
data Token = Token {
|
||||
getType :: TokenType,
|
||||
getLexeme :: String,
|
||||
getObject :: Object,
|
||||
getLineNumber :: Int
|
||||
tokenType :: TokenType,
|
||||
tokenLexeme :: String,
|
||||
tokenObject :: Object,
|
||||
tokenLineNumber :: Int
|
||||
} deriving Show
|
||||
|
||||
data ScannerState = ScannerState {source :: String, current :: String, lineNumber :: Int}
|
||||
|
|
@ -169,7 +169,7 @@ addLiteralToken token object = state $ scannerAddLiteralToken token object
|
|||
scannerAddLiteralToken :: TokenType -> Object -> ScannerState -> (Token, ScannerState)
|
||||
scannerAddLiteralToken tokenType object state@ScannerState {current=current, lineNumber=lineNumber} =
|
||||
(token, state)
|
||||
where token = Token {getType=tokenType, getLexeme=current, getObject=object, getLineNumber=lineNumber}
|
||||
where token = Token {tokenType=tokenType, tokenLexeme=current, tokenObject=object, tokenLineNumber=lineNumber}
|
||||
|
||||
getKeywordTokenType :: String -> TokenType
|
||||
getKeywordTokenType "and" = AND
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue