Lint cleanup and README updates

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

View File

@ -84,6 +84,12 @@ tricu decode [OPTIONS]
Defaults to stdin.
```
## Collaborating
I am happy to accept issue reports, pull requests, or questions about tricu [via email](mailto:james@eversole.co).
If you want to collaborate but don't want to email back-and-forth, please reach out via email once to let me know and I will provision a git.eversole.co account for you.
## Acknowledgements
Tree Calculus was discovered by [Barry Jay](https://github.com/barry-jay-personal/blog).

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

View File

@ -3,12 +3,12 @@ module Parser where
import Lexer
import Research
import Control.Monad (void)
import Control.Monad (void)
import Control.Monad.State
import Data.List.NonEmpty (toList)
import Data.Void (Void)
import Data.List.NonEmpty (toList)
import Data.Void (Void)
import Text.Megaparsec
import Text.Megaparsec.Error (ParseErrorBundle, errorBundlePretty)
import Text.Megaparsec.Error (ParseErrorBundle, errorBundlePretty)
import qualified Data.Set as Set
data PState = PState

View File

@ -1,6 +1,5 @@
module Research where
import Control.Monad.State
import Data.List (intercalate)
import Data.Map (Map)
import Data.Text (Text, replace)