From 0d9b60561d4a894e36496e291e650f08201626cf Mon Sep 17 00:00:00 2001 From: adelon <22380201+adelon@users.noreply.github.com> Date: Fri, 4 Jul 2025 17:15:31 +0200 Subject: Update Adapt.hs --- source/Syntax/Adapt.hs | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'source/Syntax/Adapt.hs') diff --git a/source/Syntax/Adapt.hs b/source/Syntax/Adapt.hs index 49796b4..b338d47 100644 --- a/source/Syntax/Adapt.hs +++ b/source/Syntax/Adapt.hs @@ -27,16 +27,14 @@ scanChunk ltoks = in case ltoks of Located{startPos = pos, unLocated = BeginEnv "definition"} : _ -> matchOrErr definition "definition" pos - Located{startPos = pos, unLocated = BeginEnv "signature"} : _ -> - matchOrErr signaturePredicate "signature" pos + -- TODO Located{startPos = pos, unLocated = BeginEnv "signature"} : _ -> + -- matchOrErr signatureExtension "signature" pos Located{startPos = pos, unLocated = BeginEnv "abbreviation"} : _ -> matchOrErr abbreviation "abbreviation" pos Located{startPos = pos, unLocated = (BeginEnv "struct")} :_ -> matchOrErr struct "struct definition" pos Located{startPos = pos, unLocated = (BeginEnv "inductive")} :_ -> matchOrErr inductive "inductive definition" pos - --Located{startPos = pos, unLocated = (BeginEnv "signature")} :_ -> - -- matchOrErr signatureIntro "signature" pos _ -> [] adaptChunks :: [[Located Token]] -> Lexicon -> Lexicon @@ -88,18 +86,30 @@ abbreviation = do skipUntilNextLexicalEnv pure [lexicalItem m] -signaturePredicate :: RE Token [ScannedLexicalItem] -signaturePredicate = do +signatureExtension :: RE Token [ScannedLexicalItem] +signatureExtension = do sym (BeginEnv "signature") few notEndOfLexicalEnvToken m <- label few anySym - lexicalItem <- sigPred + lexicalItem <- head few anySym sym (EndEnv "signature") skipUntilNextLexicalEnv pure [lexicalItem m] +signatureExtensionAtom :: RE Token [ScannedLexicalItem] +signatureExtensionAtom = do + sym (BeginEnv "signatureatom") + few notEndOfLexicalEnvToken + m <- label + few anySym + lexicalItem <- sigPred + few anySym + sym (EndEnv "signatureatom") + skipUntilNextLexicalEnv + pure [lexicalItem m] + label :: RE Token Marker label = msym \case Label m -> Just (Marker m) -- cgit v1.2.3