started adding simulators

This commit is contained in:
Parker TenBroeck 2026-01-10 14:29:08 -05:00
parent 61d7edd929
commit 22ef009122
5 changed files with 190 additions and 68 deletions

View file

@ -104,9 +104,40 @@ d(qeq, b, z0) = (qmb, z0)
d(qmb, b, z0) = (qmb, z0)`,
),
new Example(
"NPDA",
"unequal",
"palindrome",
`type=NPDA
Q = {q0, q1} // states
E = {a, b} // alphabet
T = {z0, A, B} // stack
q0 = q0
z0 = z0
// push letters we see to stack
d(q0, a, z0) = (q0, [A z0])
d(q0, b, z0) = (q0, [B z0])
d(q0, a, A) = (q0, [A A])
d(q0, b, A) = (q0, [B A])
d(q0, a, B) = (q0, [A B])
d(q0, b, B) = (q0, [B B])
// transition to q1
d(q0, epsilon, z0) = { (q1, z0) }
d(q0, epsilon, A) = { (q1, A) }
d(q0, epsilon, B) = { (q1, B) }
// consume stack until empty
d(q1, a, A) = { (q1, epsilon) }
d(q1, b, B) = { (q1, epsilon) }`,
),
new Example(
"NPDA",
"kleen star stack",
`type=NPDA
Q = {q0, q1} // states
E = {a, b} // alphabet