Lint cleanup and README updates
This commit is contained in:
parent
30b9505d5f
commit
871245b567
@ -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).
|
||||
|
23
src/Lexer.hs
23
src/Lexer.hs
@ -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
|
||||
|
@ -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
|
||||
|
@ -1,6 +1,5 @@
|
||||
module Research where
|
||||
|
||||
import Control.Monad.State
|
||||
import Data.List (intercalate)
|
||||
import Data.Map (Map)
|
||||
import Data.Text (Text, replace)
|
||||
|
Loading…
x
Reference in New Issue
Block a user