summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2026-05-19 21:19:43 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2026-05-19 21:19:43 +0200
commitdfa43d2c3ea587e8d816d750cfa7214c6a2eb1b2 (patch)
treeb5f1d04694c35a56bfa072c005124e5914eabae1
parenta40b7da1ab4028bba53f9768b7a58a7c619a052d (diff)
Fix parsing after tag declaration
-rw-r--r--src/Parser.hs1
-rw-r--r--test/asset/parser/tags.et10
-rw-r--r--test/script/parser.et3
3 files changed, 14 insertions, 0 deletions
diff --git a/src/Parser.hs b/src/Parser.hs
index 619543f..5ad1b1a 100644
--- a/src/Parser.hs
+++ b/src/Parser.hs
@@ -153,6 +153,7 @@ parseTag _ = label "tag definition" $ do
cmn <- gets testCurrentModuleName
let expr = SomeExpr $ Pure $ Tag cmn name
modify $ \s -> s { testVars = ( name, ( GlobalVarName cmn name, someExprType expr )) : testVars s }
+ scn
return ( name, expr )
parseExport :: TestParser [ Toplevel ]
diff --git a/test/asset/parser/tags.et b/test/asset/parser/tags.et
new file mode 100644
index 0000000..178295f
--- /dev/null
+++ b/test/asset/parser/tags.et
@@ -0,0 +1,10 @@
+tag SomeTag
+
+tag OtherTag
+
+test First:
+ tag: SomeTag
+ tag: OtherTag
+ let x = 1
+ local:
+ let y = 1
diff --git a/test/script/parser.et b/test/script/parser.et
index 1a00bc8..908431e 100644
--- a/test/script/parser.et
+++ b/test/script/parser.et
@@ -17,3 +17,6 @@ test Parser:
send "load ${scripts.path}/function-fail.et"
expect /load-failed parse-error/
+
+ send "load ${scripts.path}/tags.et"
+ expect /load-done/