diff options
Diffstat (limited to 'src/Language/Fiddle/Parser.hs')
-rw-r--r-- | src/Language/Fiddle/Parser.hs | 15 |
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] |