Lint cleanup and README updates

This commit is contained in:
2025-02-07 12:37:27 -06:00
parent 30b9505d5f
commit 871245b567
4 changed files with 22 additions and 16 deletions

View File

@ -3,6 +3,7 @@ module Lexer where
import Research
import Control.Monad (void)
import Data.Functor (($>))
import Data.Void
import Text.Megaparsec
import Text.Megaparsec.Char hiding (space)
@ -54,7 +55,7 @@ lexTricu input = case runParser tricuLexer "" input of
keywordT :: Lexer LToken
keywordT = string "t" *> notFollowedBy alphaNumChar *> pure LKeywordT
keywordT = string "t" *> notFollowedBy alphaNumChar $> LKeywordT
identifier :: Lexer LToken
identifier = do
@ -63,7 +64,7 @@ identifier = do
<|> digitChar <|> char '_' <|> char '-' <|> char '?'
<|> char '$' <|> char '#' <|> char '@' <|> char '%'
let name = first : rest
if (name == "t" || name == "!result")
if name == "t" || name == "!result"
then fail "Keywords (`t`, `!result`) cannot be used as an identifier"
else return (LIdentifier name)
@ -76,7 +77,7 @@ namespace = do
return (LNamespace name)
dot :: Lexer LToken
dot = char '.' *> pure LDot
dot = char '.' $> LDot
lImport :: Lexer LToken
lImport = do
@ -88,28 +89,28 @@ lImport = do
return (LImport path name)
assign :: Lexer LToken
assign = char '=' *> pure LAssign
assign = char '=' $> LAssign
colon :: Lexer LToken
colon = char ':' *> pure LColon
colon = char ':' $> LColon
backslash :: Lexer LToken
backslash = char '\\' *> pure LBackslash
backslash = char '\\' $> LBackslash
openParen :: Lexer LToken
openParen = char '(' *> pure LOpenParen
openParen = char '(' $> LOpenParen
closeParen :: Lexer LToken
closeParen = char ')' *> pure LCloseParen
closeParen = char ')' $> LCloseParen
openBracket :: Lexer LToken
openBracket = char '[' *> pure LOpenBracket
openBracket = char '[' $> LOpenBracket
closeBracket :: Lexer LToken
closeBracket = char ']' *> pure LCloseBracket
closeBracket = char ']' $> LCloseBracket
lnewline :: Lexer LToken
lnewline = char '\n' *> pure LNewline
lnewline = char '\n' $> LNewline
sc :: Lexer ()
sc = space