summaryrefslogtreecommitdiff
path: root/src/Language/Fiddle/Parser.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Language/Fiddle/Parser.hs')
-rw-r--r--src/Language/Fiddle/Parser.hs15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/Language/Fiddle/Parser.hs b/src/Language/Fiddle/Parser.hs
index e91fa41..b2bb6f7 100644
--- a/src/Language/Fiddle/Parser.hs
+++ b/src/Language/Fiddle/Parser.hs
@@ -238,6 +238,7 @@ objTypeDeclP =
RegisterDecl Vacant modifier . Perhaps
<$> optionMaybe ident
<*> fmap RightV exprInParenP
+ <*> (Present . RegisterPosition <$> optionMaybe (tok TokAtSign >> litNumP))
<*> optionMaybe (tok TokColon *> registerBodyP)
)
@@ -338,14 +339,18 @@ enumConstantDeclP =
constExpressionP :: Pa (ConstExpression u)
constExpressionP = withMeta $ ConstExpression . RightV <$> expressionP
+litNumP :: P Text
+litNumP =
+ token
+ ( \case
+ (TokLitNum num) -> Just num
+ _ -> Nothing
+ )
+
expressionP :: Pa (Expression u)
expressionP =
withMeta $
- token
- ( \case
- (TokLitNum num) -> Just (LitNum $ LeftV num)
- _ -> Nothing
- )
+ (LitNum . LeftV <$> litNumP)
<|> (Var <$> name)
body :: P [Token SourceSpan]