diff options
| author | adelon <22380201+adelon@users.noreply.github.com> | 2025-07-04 17:15:31 +0200 |
|---|---|---|
| committer | adelon <22380201+adelon@users.noreply.github.com> | 2025-07-04 17:15:31 +0200 |
| commit | 0d9b60561d4a894e36496e291e650f08201626cf (patch) | |
| tree | b041e6092d5d2735da44c0b3df7f31284f03f37d /source/Syntax | |
| parent | 3147c70e46d61a4bef863a066f521d302629b51f (diff) | |
Update Adapt.hs
Diffstat (limited to 'source/Syntax')
| -rw-r--r-- | source/Syntax/Adapt.hs | 24 |
1 files changed, 17 insertions, 7 deletions
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) |
