diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2024-12-03 17:49:28 -0700 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2024-12-03 17:49:28 -0700 |
commit | f371a310affd9501f48aa8ade4670f9a29070cad (patch) | |
tree | 3c7815e1d3672f425787855a0f25513cce49db9c /src/Language/Fiddle/Parser.hs | |
parent | 673c99472da3de2d52bd29fec91978166f008766 (diff) | |
download | fiddle-f371a310affd9501f48aa8ade4670f9a29070cad.tar.gz fiddle-f371a310affd9501f48aa8ade4670f9a29070cad.tar.bz2 fiddle-f371a310affd9501f48aa8ade4670f9a29070cad.zip |
Implement new syntactic-sugar for skip_to(). Allows specifying the offset directly on a register
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] |