summaryrefslogtreecommitdiff
path: root/src/Language/Fiddle/Tokenizer.hs
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2024-09-20 10:43:43 -0600
committerJosh Rahm <joshuarahm@gmail.com>2024-09-20 10:43:43 -0600
commitf0c4da33e9576d2509b8c6330b1663e044e2dff3 (patch)
tree15120a7b0ca3795fc7b35478f708d54c1c988ec5 /src/Language/Fiddle/Tokenizer.hs
parentf1128c7c60809d1e96009eaed98c0756831fe29f (diff)
downloadfiddle-f0c4da33e9576d2509b8c6330b1663e044e2dff3.tar.gz
fiddle-f0c4da33e9576d2509b8c6330b1663e044e2dff3.tar.bz2
fiddle-f0c4da33e9576d2509b8c6330b1663e044e2dff3.zip
Some major changes to the structure of the language.
Added structures and unions to better define the layout and model overlapping concerns. renamed objtype -> type and object -> instance. added reserved statements for types.
Diffstat (limited to 'src/Language/Fiddle/Tokenizer.hs')
-rw-r--r--src/Language/Fiddle/Tokenizer.hs22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/Language/Fiddle/Tokenizer.hs b/src/Language/Fiddle/Tokenizer.hs
index 4e06b92..08f5649 100644
--- a/src/Language/Fiddle/Tokenizer.hs
+++ b/src/Language/Fiddle/Tokenizer.hs
@@ -12,29 +12,31 @@ import qualified Text.Parsec
data T
= KWAssertPos
- | TokIdent !Text
| KWAt
| KWBits
| KWEnum
- | TokComment !Text
- | TokDocComment !Text
+ | KWInstance
| KWLocation
- | KWObject
- | KWObjtype
| KWOption
| KWPackage
| KWReg
| KWReserved
| KWRo
- | KWWo
| KWRw
- | TokLitNum !Text
+ | KWStruct
+ | KWType
+ | KWUnion
+ | KWWo
| TokColon
| TokComma
+ | TokComment !Text
+ | TokDocComment !Text
| TokEq
+ | TokIdent !Text
| TokLBrace
| TokLBracket
| TokLParen
+ | TokLitNum !Text
| TokRBrace
| TokRBracket
| TokRParen
@@ -60,8 +62,8 @@ parseToken = spaces *> tok parseToken' <* spaces
"bits" -> KWBits
"enum" -> KWEnum
"location" -> KWLocation
- "object" -> KWObject
- "objtype" -> KWObjtype
+ "instance" -> KWInstance
+ "type" -> KWType
"option" -> KWOption
"package" -> KWPackage
"reg" -> KWReg
@@ -69,6 +71,8 @@ parseToken = spaces *> tok parseToken' <* spaces
"wo" -> KWWo
"rw" -> KWRw
"reserved" -> KWReserved
+ "union" -> KWUnion
+ "struct" -> KWStruct
"assert_pos" -> KWAssertPos
(Data.Text.head -> h) | isDigit h -> TokLitNum str
ident -> TokIdent ident