summaryrefslogtreecommitdiff
path: root/source/Syntax/Adapt.hs
diff options
context:
space:
mode:
authoradelon <22380201+adelon@users.noreply.github.com>2025-07-02 20:28:22 +0200
committerGitHub <noreply@github.com>2025-07-02 20:28:22 +0200
commit793849dd0b20bc70ea0e0ecfd5008a3806eca0d9 (patch)
tree280949f358a695c5471212cc5b22950399d8cd57 /source/Syntax/Adapt.hs
parent3caadfbe0fdb417b8edebc17002ddafe795a4bcc (diff)
parent8fd49ae84e8cc4524c19b20fa0aabb4e77a46cd5 (diff)
Merge pull request #2 from Simon-Kor/main
Merge (finally)
Diffstat (limited to 'source/Syntax/Adapt.hs')
-rw-r--r--source/Syntax/Adapt.hs16
1 files changed, 15 insertions, 1 deletions
diff --git a/source/Syntax/Adapt.hs b/source/Syntax/Adapt.hs
index 3a8b3d6..4b43bc6 100644
--- a/source/Syntax/Adapt.hs
+++ b/source/Syntax/Adapt.hs
@@ -27,13 +27,15 @@ scanChunk ltoks =
matchOrErr re env pos = match re toks ?? error ("could not find lexical pattern in " <> env <> " at " <> sourcePosPretty pos)
in case ltoks of
Located{startPos = pos, unLocated = BeginEnv "definition"} : _ ->
- matchOrErr definition "definition" (pos)
+ matchOrErr definition "definition" 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
@@ -85,6 +87,18 @@ abbreviation = do
skipUntilNextLexicalEnv
pure [lexicalItem m]
+signatureIntro :: RE Token [ScannedLexicalItem] --since signiture is a used word of haskell we have to name it diffrentliy
+signatureIntro = do
+ sym (BeginEnv "signature")
+ few notEndOfLexicalEnvToken
+ m <- label
+ few anySym
+ lexicalItem <- head
+ few anySym
+ sym (EndEnv "signature")
+ skipUntilNextLexicalEnv
+ pure [lexicalItem m]
+
label :: RE Token Marker
label = msym \case
Label m -> Just (Marker m)