; ** p3.stax ************************************************ ; STAX program to accept the language { 0^n1^m2^n3^m | n,m >= 0 } ; ; John Haskins, Jr. ; l'Universite de Virginie (University of Virginia) ; jwh6q@virginia.edu ; ----------------------------------------------------------- .input_alphabet "0123" .stack_alphabet "ab" qinit0: accept $, -, nop, qdone -, -, push[0]:$, qinit1 qinit1: accept -, -, push[1]:$, qinit2 qinit2: deny -, -, nop, q1a -, -, nop, q1b q1a: deny '0', -, push[0]:'a', q1a '0', -, push[0]:'a', q2 '0', -, push[0]:'a', q3b q1b: deny '1', -, push[1]:'b', q1b '1', -, push[1]:'b', q4 q2: deny '1', -, push[1]:'b', q2 '1', -, push[1]:'b', q3a q3a: deny '2', 'a'[0], pop[0], q3a '2', 'a'[0], pop[0], q4 q3b: deny '2', 'a'[0], pop[0], q3b '2', 'a'[0], pop[0], q5 q4: deny '3', 'b'[1], pop[1], q4 '3', 'b'[1], pop[1], q5 q5: deny -, $[0], nop, q6 q6: deny $, $[1], nop, qdone qdone: accept halt