diff --git a/tests/determinize/Det010.ddl b/tests/determinize/Det010.ddl new file mode 100644 index 000000000..efef66d33 --- /dev/null +++ b/tests/determinize/Det010.ddl @@ -0,0 +1,6 @@ +-- testing avoiding state explosion + +def Main = + First + block $$ = $[0xFE]; $[0x01] + $[ !0xFE ] \ No newline at end of file diff --git a/tests/determinize/Det010.ddl.stdout b/tests/determinize/Det010.ddl.stdout new file mode 100644 index 000000000..1fe3ab592 --- /dev/null +++ b/tests/determinize/Det010.ddl.stdout @@ -0,0 +1,22 @@ +module Det010 + +--- Imports: + +--- Type defs: + +--- Rules: + +Det010.Main : Grammar (uint 8) = + Choose biased + { do ($$ : uint 8) <- Match {0xFE} + @Match {0x01} + pure $$ + | Match (!{0xFE}) + } + +Det010.Main_ : Grammar {} = + Choose biased + { do @Match {0xFE} + @Match {0x01} + | @Match (!{0xFE}) + } diff --git a/tests/determinize/Det010.test b/tests/determinize/Det010.test new file mode 100644 index 000000000..47c8a427e --- /dev/null +++ b/tests/determinize/Det010.test @@ -0,0 +1,4 @@ +dump +Det010.ddl +--core +--determinize diff --git a/tests/determinize/Det010.test.stdout b/tests/determinize/Det010.test.stdout new file mode 100644 index 000000000..7d88cf3da --- /dev/null +++ b/tests/determinize/Det010.test.stdout @@ -0,0 +1,24 @@ +module DaedalusMain where + + +------------- + +-- entry pont +-- ./Det010.ddl:3:1--6:14 +proc Main() : Word 8 = + -- ./Det010.ddl:4:3--6:14 + -- DETERMINIZE 1 Fully + do _x0 <- match1 { ... } + case _x0 of + 254 -> + -- ./Det010.ddl:5:11--5:12 + -- ./Det010.ddl:5:16--5:22 + do let $$ = 254 @(Word 8) + -- ./Det010.ddl:5:25--5:12 + -- ./Det010.ddl:5:25--5:31 + match1_ { 1 @(Word 8) } + -- ./Det010.ddl:5:11--5:12 + pure $$ + _ -> + -- ./Det010.ddl:6:5--6:14 + pure _x0