summaryrefslogtreecommitdiff
path: root/src/Language/Fiddle/Tokenizer.hs
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2024-09-22 22:49:17 -0600
committerJosh Rahm <joshuarahm@gmail.com>2024-09-22 22:49:17 -0600
commit0c6ada2f5c8a3ac900fabd0384af558fb6bd334a (patch)
tree5c1d69c3ac15c90c1b64598196cc12e23de09c7a /src/Language/Fiddle/Tokenizer.hs
parent0d2095b5d42989639c1861d7213c182abd064672 (diff)
downloadfiddle-0c6ada2f5c8a3ac900fabd0384af558fb6bd334a.tar.gz
fiddle-0c6ada2f5c8a3ac900fabd0384af558fb6bd334a.tar.bz2
fiddle-0c6ada2f5c8a3ac900fabd0384af558fb6bd334a.zip
Add import statements, add using statements, properly cross-package
symbols.
Diffstat (limited to 'src/Language/Fiddle/Tokenizer.hs')
-rw-r--r--src/Language/Fiddle/Tokenizer.hs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/Language/Fiddle/Tokenizer.hs b/src/Language/Fiddle/Tokenizer.hs
index 87f119f..007009f 100644
--- a/src/Language/Fiddle/Tokenizer.hs
+++ b/src/Language/Fiddle/Tokenizer.hs
@@ -28,8 +28,10 @@ data T
| KWUnion
| KWWo
| KWImport
+ | KWUsing
| TokColon
| TokComma
+ | TokDot
| TokComment !Text
| TokDocComment !Text
| TokEq
@@ -67,6 +69,7 @@ textOf t = do
KWUnion -> Just "union"
KWWo -> Just "wo"
KWImport -> Just "import"
+ KWUsing -> Just "using"
TokIdent i -> Just i
TokLitNum n -> Just n
_ -> Nothing
@@ -101,6 +104,7 @@ parseToken = spaces *> tok parseToken' <* spaces
"rw" -> KWRw
"reserved" -> KWReserved
"union" -> KWUnion
+ "using" -> KWUsing
"struct" -> KWStruct
"assert_pos" -> KWAssertPos
(Data.Text.head -> h) | isDigit h -> TokLitNum str
@@ -137,6 +141,7 @@ parseToken = spaces *> tok parseToken' <* spaces
try (string "]]" $> TokDirectiveEnd),
char ':' $> TokColon,
char ',' $> TokComma,
+ char '.' $> TokDot,
char '=' $> TokEq,
char '{' $> TokLBrace,
char '[' $> TokLBracket,