From f371a310affd9501f48aa8ade4670f9a29070cad Mon Sep 17 00:00:00 2001 From: Josh Rahm Date: Tue, 3 Dec 2024 17:49:28 -0700 Subject: Implement new syntactic-sugar for skip_to(). Allows specifying the offset directly on a register --- src/Language/Fiddle/Parser.hs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/Language/Fiddle/Parser.hs') 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] -- cgit