diff options
Diffstat (limited to 'src/Language/Fiddle/Parser.hs')
-rw-r--r-- | src/Language/Fiddle/Parser.hs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/Language/Fiddle/Parser.hs b/src/Language/Fiddle/Parser.hs index 415852c..c3056bd 100644 --- a/src/Language/Fiddle/Parser.hs +++ b/src/Language/Fiddle/Parser.hs @@ -199,6 +199,9 @@ asConstP fn = withMeta $ ConstExpression . RightV <$> fn exprInParenP :: Pa (Expression u) exprInParenP = tok TokLParen *> expressionP <* tok TokRParen +inParenP :: Pa a -> Pa a +inParenP p = tok TokLParen *> p <* tok TokRParen + objTypeBodyP :: BodyType F (Commented SourceSpan) -> Pa ObjTypeBody objTypeBodyP bt = withMeta $ @@ -212,6 +215,16 @@ objTypeDeclP = AssertPosStatement Witness <$> exprInParenP ) <|> ( do + tok_ KWSkipTo + SkipToStatement Witness Vacant <$> inParenP constExpressionP + ) + <|> ( do + tok_ KWBuffer + BufferDecl Vacant . Perhaps + <$> optionMaybe ident + <*> inParenP constExpressionP + ) + <|> ( do tok_ KWReserved ReservedDecl Witness <$> exprInParenP ) |