diff options
Diffstat (limited to 'examples')
6 files changed, 47 insertions, 0 deletions
diff --git a/examples/test/srg/cyclic-direct/cyclic-direct.gf b/examples/test/srg/cyclic-direct/cyclic-direct.gf new file mode 100644 index 000000000..e9bc669c6 --- /dev/null +++ b/examples/test/srg/cyclic-direct/cyclic-direct.gf @@ -0,0 +1,7 @@ +cat S; + +fun f : S -> S ; +fun g : S ; + +lin f s = { s = s.s } ; +lin g = { s = "g" } ;
\ No newline at end of file diff --git a/examples/test/srg/cyclic-empty-prod/cyclic-empty-prod.gf b/examples/test/srg/cyclic-empty-prod/cyclic-empty-prod.gf new file mode 100644 index 000000000..fc87b893f --- /dev/null +++ b/examples/test/srg/cyclic-empty-prod/cyclic-empty-prod.gf @@ -0,0 +1,9 @@ +cat S; E; + +fun s : S ; +fun es : E -> S -> S ; +fun e : E ; + +lin s = { s = "s" } ; +lin es e s = { s = e.s ++ s.s } ; +lin e = { s = [] } ; diff --git a/examples/test/srg/cyclic-indirect/cyclic-indirect.gf b/examples/test/srg/cyclic-indirect/cyclic-indirect.gf new file mode 100644 index 000000000..316589cd8 --- /dev/null +++ b/examples/test/srg/cyclic-indirect/cyclic-indirect.gf @@ -0,0 +1,11 @@ +-- a grammar with an indirect cycle + +cat S; G; + +fun f : S ; +fun fg : G -> S ; +fun gf : S -> G ; + +lin f = { s = "f" } ; +lin fg x = x; +lin gf x = x; diff --git a/examples/test/srg/lc_lr-empty-category/lc_lr-empty-category.gf b/examples/test/srg/lc_lr-empty-category/lc_lr-empty-category.gf new file mode 100644 index 000000000..f0df42fc8 --- /dev/null +++ b/examples/test/srg/lc_lr-empty-category/lc_lr-empty-category.gf @@ -0,0 +1,9 @@ +cat S; E; + +fun f : E -> S ; +fun g : S -> S ; +fun e : E ; + +lin f e = { s = e.s } ; +lin g s = { s = s.s ++ "x" } ; +lin e = { s = "e" } ; diff --git a/examples/test/srg/left-recursive/left-recursive.gf b/examples/test/srg/left-recursive/left-recursive.gf new file mode 100644 index 000000000..df873e4a9 --- /dev/null +++ b/examples/test/srg/left-recursive/left-recursive.gf @@ -0,0 +1,7 @@ +cat S; + +fun f : S -> S ; + g : S ; + +lin f x = { s = x.s ++ "f" } ; + g = { s = "s" } ; diff --git a/examples/test/srg/variants-ebnf/variants-ebnf.gf b/examples/test/srg/variants-ebnf/variants-ebnf.gf new file mode 100644 index 000000000..6671918ec --- /dev/null +++ b/examples/test/srg/variants-ebnf/variants-ebnf.gf @@ -0,0 +1,4 @@ +cat S; +fun f : S; + +lin f = { s = variants {"a"; "b"} ++ variants {"c"; "d"} ++ variants {"e"; "f"} ++ variants { "g";"h";} } ;
\ No newline at end of file |
