added test cases from the haskell repository
authorChristian Urban <christian dot urban at kcl dot ac dot uk>
Sat, 09 Apr 2016 09:51:00 +0100
changeset 161 2778715487a9
parent 160 6342d0570502
child 162 aa4fdba769ea
added test cases from the haskell repository
progs/tests/basic3.txt
progs/tests/class.txt
progs/tests/forced-assoc.txt
progs/tests/left-assoc.txt
progs/tests/nullsub3.txt
progs/tests/osx-bsd-critical.txt
progs/tests/repetition2.txt
progs/tests/right-assoc.txt
progs/tests/test-manifest.txt
progs/tests/totest.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/progs/tests/basic3.txt	Sat Apr 09 09:51:00 2016 +0100
@@ -0,0 +1,142 @@
+     1		\)		()	(1,2)
+     2		\}		}	(0,1)
+     3		]		]	(0,1)
+     4		$^		NULL	(0,0)
+     5		a($)		aa	(1,2)(2,2)
+     6		a*(^a)		aa	(0,1)(0,1)
+     7		(..)*(...)*		a	(0,0)(?,?)(?,?)
+     8		(..)*(...)*		abcd	(0,4)(2,4)(?,?)
+     9		(ab|a)(bc|c)		abc	(0,3)(0,2)(2,3)
+    10		(ab)c|abc		abc	(0,3)(0,2)
+    11		a{0}b		ab			(1,2)
+    12		(a*)(b?)(b+)b{3}	aaabbbbbbb	(0,10)(0,3)(3,4)(4,7)
+    13		(a*)(b{0,1})(b{1,})b{3}	aaabbbbbbb	(0,10)(0,3)(3,4)(4,7)
+    15		((a|a)|a)			a	(0,1)(0,1)(0,1)
+    16		(a*)(a|aa)			aaaa	(0,4)(0,3)(3,4)
+    17		a*(a.|aa)			aaaa	(0,4)(2,4)
+    18		a(b)|c(d)|a(e)f			aef	(0,3)(?,?)(?,?)(1,2)
+    19		(a|b)?.*			b	(0,1)(0,1)
+    20		(a|b)c|a(b|c)			ac	(0,2)(0,1)(?,?)
+    21		(a|b)c|a(b|c)			ab	(0,2)(?,?)(1,2)
+    22		(a|b)*c|(a|ab)*c		abc	(0,3)(1,2)(?,?)
+    23		(a|b)*c|(a|ab)*c		xc	(1,2)(?,?)(?,?)
+    24		(.a|.b).*|.*(.a|.b)		xa	(0,2)(0,2)(?,?)
+    25		a?(ab|ba)ab			abab	(0,4)(0,2)
+    26		a?(ac{0}b|ba)ab			abab	(0,4)(0,2)
+    27		ab|abab				abbabab	(0,2)
+    28		aba|bab|bba			baaabbbaba	(5,8)
+    29		aba|bab				baaabbbaba	(6,9)
+    30		(aa|aaa)*|(a|aaaaa)		aa	(0,2)(0,2)(?,?)
+    31		(a.|.a.)*|(a|.a...)		aa	(0,2)(0,2)(?,?)
+    32		ab|a				xabc	(1,3)
+    33		ab|a				xxabc	(2,4)
+    34		(Ab|cD)*			aBcD	(0,4)(2,4)
+    35		:::1:::0:|:::1:1:0:	:::0:::1:::1:::0:	(8,17)
+    36		:::1:::0:|:::1:1:1:	:::0:::1:::1:::0:	(8,17)
+    37		[[:lower:]]+		`az{		(1,3)
+    38		[[:upper:]]+		@AZ[		(1,3)
+    39		(a)(b)(c)	abc	(0,3)(0,1)(1,2)(2,3)
+    43  	((((((((((((((((((((((((((((((x))))))))))))))))))))))))))))))	x	(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)
+    44  	((((((((((((((((((((((((((((((x))))))))))))))))))))))))))))))*	xx	(0,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)
+    45		a?(ab|ba)*	ababababababababababababababababababababababababababababababababababababababababa	(0,81)(79,81)
+    46		abaa|abbaa|abbbaa|abbbbaa	ababbabbbabbbabbbbabbbbaa	(18,25)
+    47		abaa|abbaa|abbbaa|abbbbaa	ababbabbbabbbabbbbabaa	(18,22)
+    48		aaac|aabc|abac|abbc|baac|babc|bbac|bbbc	baaabbbabac	(7,11)
+    49		aaaa|bbbb|cccc|ddddd|eeeeee|fffffff|gggg|hhhh|iiiii|jjjjj|kkkkk|llll		XaaaXbbbXcccXdddXeeeXfffXgggXhhhXiiiXjjjXkkkXlllXcbaXaaaa	(53,57)
+    50		a*a*a*a*a*b		aaaaaaaaab	(0,10)
+    51		ab+bc			abbc		(0,4)
+    52		ab+bc			abbbbc		(0,6)
+    53		ab?bc			abbc		(0,4)
+    54		ab?bc			abc		(0,3)
+    55		ab?c			abc		(0,3)
+    56		ab|cd			abc		(0,2)
+    57		ab|cd			abcd		(0,2)
+    58		a\(b			a(b		(0,3)
+    59		a\(*b			ab		(0,2)
+    60		a\(*b			a((b		(0,4)
+    61		((a))			abc		(0,1)(0,1)(0,1)
+    62		(a)b(c)			abc		(0,3)(0,1)(2,3)
+    63		a+b+c			aabbabc		(4,7)
+    64		a*			aaa		(0,3)
+    65		(a*)*			-		(0,0)(0,0)
+    66		(a*)+			-		(0,0)(0,0)
+    67		(a*|b)*			-		(0,0)(0,0)
+    68		(a+|b)*			ab		(0,2)(1,2)
+    69		(a+|b)+			ab		(0,2)(1,2)
+    70		(a+|b)?			ab		(0,1)(0,1)
+    71		(^)*			-		(0,0)(0,0)
+    72		([abc])*d		abbbcd		(0,6)(4,5)
+    73		([abc])*bcd		abcd		(0,4)(0,1)
+    74		a|b|c|d|e		e		(0,1)
+    75		(a|b|c|d|e)f		ef		(0,2)(0,1)
+    76		((a*|b))*		-		(0,0)(0,0)(0,0)
+    77		(ab|cd)e		abcde		(2,5)(2,4)
+    78		(a|b)c*d		abcd		(1,4)(1,2)
+    79		(ab|ab*)bc		abc		(0,3)(0,1)
+    80		a([bc]*)c*		abc		(0,3)(1,3)
+    81		a([bc]*)(c*d)		abcd		(0,4)(1,3)(3,4)
+    82		a([bc]+)(c*d)		abcd		(0,4)(1,3)(3,4)
+    83		a([bc]*)(c+d)		abcd		(0,4)(1,2)(2,4)
+    84		a[bcd]*dcdcde		adcdcde		(0,7)
+    85		(ab|a)b*c		abc		(0,3)(0,2)
+    86		((a)(b)c)(d)		abcd		(0,4)(0,3)(0,1)(1,2)(3,4)
+    87		^a(bc+|b[eh])g|.h$	abh		(1,3)(?,?)
+    88		(bc+d$|ef*g.|h?i(j|k))	effgz		(0,5)(0,5)(?,?)
+    89		(bc+d$|ef*g.|h?i(j|k))	ij		(0,2)(0,2)(1,2)
+    90		(bc+d$|ef*g.|h?i(j|k))	reffgz		(1,6)(1,6)(?,?)
+    91		(((((((((a)))))))))	a		(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)
+    92		(.*)c(.*)		abcde		(0,5)(0,2)(3,5)
+    93		a(bc)d			abcd		(0,4)(1,3)
+    94		a[-]?c		ac		(0,3)
+    95		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Muammar_Qaddafi	(0,15)(?,?)(10,12)
+    96		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Mo'ammar_Gadhafi	(0,16)(?,?)(11,13)
+    97		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Muammar_Kaddafi	(0,15)(?,?)(10,12)
+    98		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Muammar_Qadhafi	(0,15)(?,?)(10,12)
+    99		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Muammar_Gadafi	(0,14)(?,?)(10,11)
+   100		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Mu'ammar_Qadafi	(0,15)(?,?)(11,12)
+   101		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Moamar_Gaddafi	(0,14)(?,?)(9,11)
+   102		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Mu'ammar_Qadhdhafi	(0,18)(?,?)(13,15)
+   103		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Muammar_Khaddafi	(0,16)(?,?)(11,13)
+   104		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Muammar_Ghaddafy	(0,16)(?,?)(11,13)
+   105		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Muammar_Ghadafi	(0,15)(?,?)(11,12)
+   106		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Muammar_Ghaddafi	(0,16)(?,?)(11,13)
+   107		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Muamar_Kaddafi	(0,14)(?,?)(9,11)
+   108		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Muammar_Quathafi	(0,16)(?,?)(11,13)
+   109		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Muammar_Gheddafi	(0,16)(?,?)(11,13)
+   110		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Moammar_Khadafy	(0,15)(?,?)(11,12)
+   111		M[ou]'?am+[ae]r_.*([AEae]l[-_])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]	Moammar_Qudhafi	(0,15)(?,?)(10,12)
+   112		a+(b|c)*d+		aabcdd			(0,6)(3,4)
+   113		^.+$			vivi			(0,4)
+   114		^(.+)$			vivi			(0,4)(0,4)
+   115		^([^!.]+).att.com!(.+)$	gryphon.att.com!eby	(0,19)(0,7)(16,19)
+   116		^([^!]+!)?([^!]+)$	bas			(0,3)(?,?)(0,3)
+   117		^([^!]+!)?([^!]+)$	bar!bas			(0,7)(0,4)(4,7)
+   118		^([^!]+!)?([^!]+)$	foo!bas			(0,7)(0,4)(4,7)
+   119		^.+!([^!]+!)([^!]+)$	foo!bar!bas		(0,11)(4,8)(8,11)
+   120		((foo)|(bar))!bas	bar!bas			(0,7)(0,3)(?,?)(0,3)
+   121		((foo)|(bar))!bas	foo!bar!bas		(4,11)(4,7)(?,?)(4,7)
+   122		((foo)|(bar))!bas	foo!bas			(0,7)(0,3)(0,3)(?,?)
+   123		((foo)|bar)!bas		bar!bas			(0,7)(0,3)(?,?)
+   124		((foo)|bar)!bas		foo!bar!bas		(4,11)(4,7)(?,?)
+   125		((foo)|bar)!bas		foo!bas			(0,7)(0,3)(0,3)
+   126		(foo|(bar))!bas		bar!bas			(0,7)(0,3)(0,3)
+   127		(foo|(bar))!bas		foo!bar!bas		(4,11)(4,7)(4,7)
+   128		(foo|(bar))!bas		foo!bas			(0,7)(0,3)(?,?)
+   129		(foo|bar)!bas		bar!bas			(0,7)(0,3)
+   130		(foo|bar)!bas		foo!bar!bas		(4,11)(4,7)
+   131		(foo|bar)!bas		foo!bas			(0,7)(0,3)
+   132		^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$	foo!bar!bas	(0,11)(0,11)(?,?)(?,?)(4,8)(8,11)
+   133		^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$	bas		(0,3)(?,?)(0,3)(?,?)(?,?)
+   134		^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$	bar!bas		(0,7)(0,4)(4,7)(?,?)(?,?)
+   135		^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$	foo!bar!bas	(0,11)(?,?)(?,?)(4,8)(8,11)
+   136		^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$	foo!bas		(0,7)(0,4)(4,7)(?,?)(?,?)
+   137		^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$	bas		(0,3)(0,3)(?,?)(0,3)(?,?)(?,?)
+   138		^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$	bar!bas		(0,7)(0,7)(0,4)(4,7)(?,?)(?,?)
+   139		^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$	foo!bar!bas	(0,11)(0,11)(?,?)(?,?)(4,8)(8,11)
+   140		^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$	foo!bas		(0,7)(0,7)(0,4)(4,7)(?,?)(?,?)
+   141		.*(/XXX).*			/XXX			(0,4)(0,4)
+   142		.*(\\XXX).*			\XXX			(0,4)(0,4)
+   143		\\XXX				\XXX			(0,4)
+   144		.*(/000).*			/000			(0,4)(0,4)
+   145		.*(\\000).*			\000			(0,4)(0,4)
+   146		\\000				\000			(0,4)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/progs/tests/class.txt	Sat Apr 09 09:51:00 2016 +0100
@@ -0,0 +1,14 @@
+1	aa*			xaxaax	(1,2)
+2	(a*)(ab)*(b*)		abc	(0,2)(0,1)(?,?)(1,2)
+-2	(a*)(ab)*(b*)		abc	(0,2)(0,0)(0,2)(2,2)
+3	((a*)(ab)*)((b*)(a*))	aba	(0,3)(0,2)(0,0)(0,2)(2,3)(2,2)(2,3)
+4	(...?.?)*		xxxxxx	(0,6)(4,6)
+5	(a|ab)(bc|c)		abcabc	(0,3)(0,2)(2,3)
+6	(aba|a*b)(aba|a*b)	ababa	(0,5)(0,2)(2,5)
+7	(a*){2}			xxxxx	(0,0)(0,0)
+8	(a*)*			a	(0,1)(0,1)
+9	(aba|a*b)*		ababa	(0,5)(2,5)
+10	(a(b)?)+		aba	(0,3)(2,3)(?,?)
+11	.*(.*)			ab	(0,2)(2,2)
+12	(a?)((ab)?)(b?)a?(ab)?b?	abab	(0,4)(0,1)(1,1)(?,?)(1,2)(?,?)
+-12	(a?)((ab)?)(b?)a?(ab)?b?	abab	(0,4)(0,1)(1,1)(?,?)(1,2)(2,4)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/progs/tests/forced-assoc.txt	Sat Apr 09 09:51:00 2016 +0100
@@ -0,0 +1,28 @@
+1	(a|ab)(c|bcd)		abcd	(0,4)(0,1)(1,4)
+2	(a|ab)(bcd|c)		abcd	(0,4)(0,1)(1,4)
+3	(ab|a)(c|bcd)		abcd	(0,4)(0,1)(1,4)
+4	(ab|a)(bcd|c)		abcd	(0,4)(0,1)(1,4)
+5	((a|ab)(c|bcd))(d*)	abcd	(0,4)(0,4)(0,1)(1,4)(4,4)
+6	((a|ab)(bcd|c))(d*)	abcd	(0,4)(0,4)(0,1)(1,4)(4,4)
+7	((ab|a)(c|bcd))(d*)	abcd	(0,4)(0,4)(0,1)(1,4)(4,4)
+8	((ab|a)(bcd|c))(d*)	abcd	(0,4)(0,4)(0,1)(1,4)(4,4)
+9	(a|ab)((c|bcd)(d*))	abcd	(0,4)(0,2)(2,4)(2,3)(3,4)
+10	(a|ab)((bcd|c)(d*))	abcd	(0,4)(0,2)(2,4)(2,3)(3,4)
+11	(ab|a)((c|bcd)(d*))	abcd	(0,4)(0,2)(2,4)(2,3)(3,4)
+12	(ab|a)((bcd|c)(d*))	abcd	(0,4)(0,2)(2,4)(2,3)(3,4)
+13	(a*)(b|abc)		abc	(0,3)(0,0)(0,3)
+14	(a*)(abc|b)		abc	(0,3)(0,0)(0,3)
+15	((a*)(b|abc))(c*)	abc	(0,3)(0,3)(0,0)(0,3)(3,3)
+16	((a*)(abc|b))(c*)	abc	(0,3)(0,3)(0,0)(0,3)(3,3)
+17	(a*)((b|abc)(c*))	abc	(0,3)(0,1)(1,3)(1,2)(2,3)
+18	(a*)((abc|b)(c*))	abc	(0,3)(0,1)(1,3)(1,2)(2,3)
+19	(a*)(b|abc)		abc	(0,3)(0,0)(0,3)
+20	(a*)(abc|b)		abc	(0,3)(0,0)(0,3)
+21	((a*)(b|abc))(c*)	abc	(0,3)(0,3)(0,0)(0,3)(3,3)
+22	((a*)(abc|b))(c*)	abc	(0,3)(0,3)(0,0)(0,3)(3,3)
+23	(a*)((b|abc)(c*))	abc	(0,3)(0,1)(1,3)(1,2)(2,3)
+24	(a*)((abc|b)(c*))	abc	(0,3)(0,1)(1,3)(1,2)(2,3)
+25	(a|ab)			ab	(0,2)(0,2)
+26	(ab|a)			ab	(0,2)(0,2)
+27	(a|ab)(b*)		ab	(0,2)(0,2)(2,2)
+28	(ab|a)(b*)		ab	(0,2)(0,2)(2,2)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/progs/tests/left-assoc.txt	Sat Apr 09 09:51:00 2016 +0100
@@ -0,0 +1,12 @@
+-1	(a|ab)(c|bcd)(d*)	abcd	(0,4)(0,1)(1,4)(4,4)
+-2	(a|ab)(bcd|c)(d*)	abcd	(0,4)(0,1)(1,4)(4,4)
+-3	(ab|a)(c|bcd)(d*)	abcd	(0,4)(0,1)(1,4)(4,4)
+-4	(ab|a)(bcd|c)(d*)	abcd	(0,4)(0,1)(1,4)(4,4)
+-5	(a*)(b|abc)(c*)	abc	(0,3)(0,0)(0,3)(3,3)
+-6	(a*)(abc|b)(c*)	abc	(0,3)(0,0)(0,3)(3,3)
+-7	(a*)(b|abc)(c*)	abc	(0,3)(0,0)(0,3)(3,3)
+-8	(a*)(abc|b)(c*)	abc	(0,3)(0,0)(0,3)(3,3)
+-9	(a|ab)(c|bcd)(d|.*)	abcd	(0,4)(0,1)(1,4)(4,4)
+-10	(a|ab)(bcd|c)(d|.*)	abcd	(0,4)(0,1)(1,4)(4,4)
+-11	(ab|a)(c|bcd)(d|.*)	abcd	(0,4)(0,1)(1,4)(4,4)
+-12	(ab|a)(bcd|c)(d|.*)	abcd	(0,4)(0,1)(1,4)(4,4)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/progs/tests/nullsub3.txt	Sat Apr 09 09:51:00 2016 +0100
@@ -0,0 +1,51 @@
+     1		(a*)*		a		(0,1)(0,1)
+     2		SAME		x		(0,0)(0,0)
+     3		SAME		aaaaaa		(0,6)(0,6)
+     4		SAME		aaaaaax		(0,6)(0,6)
+     5		(a*)+		a		(0,1)(0,1)
+     6		SAME		x		(0,0)(0,0)
+     7		SAME		aaaaaa		(0,6)(0,6)
+     8		SAME		aaaaaax		(0,6)(0,6)
+     9		(a+)*		a		(0,1)(0,1)
+    10		SAME		x		(0,0)(?,?)
+    11		SAME		aaaaaa		(0,6)(0,6)
+    12		SAME		aaaaaax		(0,6)(0,6)
+    13		(a+)+		a		(0,1)(0,1)
+    14		SAME		x		NOMATCH
+    15		SAME		aaaaaa		(0,6)(0,6)
+    16		SAME		aaaaaax		(0,6)(0,6)
+    17		([a]*)*		a		(0,1)(0,1)
+    18		SAME		x		(0,0)(0,0)
+    19		SAME		aaaaaa		(0,6)(0,6)
+    20		SAME		aaaaaax		(0,6)(0,6)
+    21		([a]*)+		a		(0,1)(0,1)
+    22		SAME		x		(0,0)(0,0)
+    23		SAME		aaaaaa		(0,6)(0,6)
+    24		SAME		aaaaaax		(0,6)(0,6)
+    25		([^b]*)*	a		(0,1)(0,1)
+    26		SAME		b		(0,0)(0,0)
+    27		SAME		aaaaaa		(0,6)(0,6)
+    28		SAME		aaaaaab		(0,6)(0,6)
+    29		([ab]*)*	a		(0,1)(0,1)
+    30		SAME		aaaaaa		(0,6)(0,6)
+    31		SAME		ababab		(0,6)(0,6)
+    32		SAME		bababa		(0,6)(0,6)
+    33		SAME		b		(0,1)(0,1)
+    34		SAME		bbbbbb		(0,6)(0,6)
+    35		SAME		aaaabcde	(0,5)(0,5)
+    36		([^a]*)*	b		(0,1)(0,1)
+    37		SAME		bbbbbb		(0,6)(0,6)
+    38		SAME		aaaaaa		(0,0)(0,0)
+    39		([^ab]*)*	ccccxx		(0,6)(0,6)
+    40		SAME		ababab		(0,0)(0,0)
+    41		((z)+|a)*	zabcde		(0,2)(1,2)(?,?)
+    42		(a)		aaa		(0,1)(0,1)
+    46		(a*)*(x)		x	(0,1)(0,0)(0,1)
+    47		(a*)*(x)		ax	(0,2)(0,1)(1,2)
+    48		(a*)*(x)		axa	(0,2)(0,1)(1,2)
+    49		(a*)+(x)		x	(0,1)(0,0)(0,1)
+    50		(a*)+(x)		ax	(0,2)(0,1)(1,2)
+    51		(a*)+(x)		axa	(0,2)(0,1)(1,2)
+    52		(a*){2}(x)		x	(0,1)(0,0)(0,1)
+    53		(a*){2}(x)		ax	(0,2)(1,1)(1,2)
+    54		(a*){2}(x)		axa	(0,2)(1,1)(1,2)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/progs/tests/osx-bsd-critical.txt	Sat Apr 09 09:51:00 2016 +0100
@@ -0,0 +1,11 @@
+1	(()|.)(b)	ab	(0,2)(0,1)(?,?)(1,2)
+-1	(()|.)(b)	ab	(1,2)(1,1)(1,1)(1,2)
+2	(()|[ab])(b)	ab	(0,2)(0,1)(?,?)(1,2)
+-2	(()|[ab])(b)	ab	(1,2)(1,1)(1,1)(1,2)
+3	(()|[ab])+b	aaab	(0,4)(2,3)(?,?)
+-3	(()|[ab])+b	aaab	(3,4)(3,3)(3,3)
+11	(.|())(b)	ab	(0,2)(0,1)(?,?)(1,2)
+12	([ab]|())(b)	ab	(0,2)(0,1)(?,?)(1,2)
+14	([ab]|())+b	aaab	(0,4)(2,3)(?,?)
+-14	([ab]|())+b	aaab	(0,4)(3,3)(3,3)
+20	(.?)(b)	ab	(0,2)(0,1)(1,2)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/progs/tests/repetition2.txt	Sat Apr 09 09:51:00 2016 +0100
@@ -0,0 +1,79 @@
+1	((..)|(.))	NULL	NOMATCH
+2	((..)|(.))((..)|(.))	NULL	NOMATCH
+3	((..)|(.))((..)|(.))((..)|(.))	NULL	NOMATCH
+4	((..)|(.)){1}	NULL	NOMATCH
+5	((..)|(.)){2}	NULL	NOMATCH
+6	((..)|(.)){3}	NULL	NOMATCH
+7	((..)|(.))*	NULL	(0,0)(?,?)(?,?)(?,?)
+8	((..)|(.))	a	(0,1)(0,1)(?,?)(0,1)
+9	((..)|(.))((..)|(.))	a	NOMATCH
+10	((..)|(.))((..)|(.))((..)|(.))	a	NOMATCH
+11	((..)|(.)){1}	a	(0,1)(0,1)(?,?)(0,1)
+12	((..)|(.)){2}	a	NOMATCH
+13	((..)|(.)){3}	a	NOMATCH
+14	((..)|(.))*	a	(0,1)(0,1)(?,?)(0,1)
+15	((..)|(.))	aa	(0,2)(0,2)(0,2)(?,?)
+16	((..)|(.))((..)|(.))	aa	(0,2)(0,1)(?,?)(0,1)(1,2)(?,?)(1,2)
+17	((..)|(.))((..)|(.))((..)|(.))	aa	NOMATCH
+18	((..)|(.)){1}	aa	(0,2)(0,2)(0,2)(?,?)
+19	((..)|(.)){2}	aa	(0,2)(1,2)(?,?)(1,2)
+20	((..)|(.)){3}	aa	NOMATCH
+21	((..)|(.))*	aa	(0,2)(0,2)(0,2)(?,?)
+22	((..)|(.))	aaa	(0,2)(0,2)(0,2)(?,?)
+23	((..)|(.))((..)|(.))	aaa	(0,3)(0,2)(0,2)(?,?)(2,3)(?,?)(2,3)
+24	((..)|(.))((..)|(.))((..)|(.))	aaa	(0,3)(0,1)(?,?)(0,1)(1,2)(?,?)(1,2)(2,3)(?,?)(2,3)
+25	((..)|(.)){1}	aaa	(0,2)(0,2)(0,2)(?,?)
+26	((..)|(.)){2}	aaa	(0,3)(2,3)(?,?)(2,3)
+27	((..)|(.)){3}	aaa	(0,3)(2,3)(?,?)(2,3)
+28	((..)|(.))*	aaa	(0,3)(2,3)(?,?)(2,3)
+29	((..)|(.))	aaaa	(0,2)(0,2)(0,2)(?,?)
+30	((..)|(.))((..)|(.))	aaaa	(0,4)(0,2)(0,2)(?,?)(2,4)(2,4)(?,?)
+31	((..)|(.))((..)|(.))((..)|(.))	aaaa	(0,4)(0,2)(0,2)(?,?)(2,3)(?,?)(2,3)(3,4)(?,?)(3,4)
+32	((..)|(.)){1}	aaaa	(0,2)(0,2)(0,2)(?,?)
+33	((..)|(.)){2}	aaaa	(0,4)(2,4)(2,4)(?,?)
+34	((..)|(.)){3}	aaaa	(0,4)(3,4)(?,?)(3,4)
+35	((..)|(.))*	aaaa	(0,4)(2,4)(2,4)(?,?)
+36	((..)|(.))	aaaaa	(0,2)(0,2)(0,2)(?,?)
+37	((..)|(.))((..)|(.))	aaaaa	(0,4)(0,2)(0,2)(?,?)(2,4)(2,4)(?,?)
+38	((..)|(.))((..)|(.))((..)|(.))	aaaaa	(0,5)(0,2)(0,2)(?,?)(2,4)(2,4)(?,?)(4,5)(?,?)(4,5)
+39	((..)|(.)){1}	aaaaa	(0,2)(0,2)(0,2)(?,?)
+40	((..)|(.)){2}	aaaaa	(0,4)(2,4)(2,4)(?,?)
+41	((..)|(.)){3}	aaaaa	(0,5)(4,5)(?,?)(4,5)
+42	((..)|(.))*	aaaaa	(0,5)(4,5)(?,?)(4,5)
+43	((..)|(.))	aaaaaa	(0,2)(0,2)(0,2)(?,?)
+44	((..)|(.))((..)|(.))	aaaaaa	(0,4)(0,2)(0,2)(?,?)(2,4)(2,4)(?,?)
+45	((..)|(.))((..)|(.))((..)|(.))	aaaaaa	(0,6)(0,2)(0,2)(?,?)(2,4)(2,4)(?,?)(4,6)(4,6)(?,?)
+46	((..)|(.)){1}	aaaaaa	(0,2)(0,2)(0,2)(?,?)
+47	((..)|(.)){2}	aaaaaa	(0,4)(2,4)(2,4)(?,?)
+48	((..)|(.)){3}	aaaaaa	(0,6)(4,6)(4,6)(?,?)
+49	((..)|(.))*	aaaaaa	(0,6)(4,6)(4,6)(?,?)
+100	X(.?){0,}Y	X1234567Y	(0,9)(7,8)
+101	X(.?){1,}Y	X1234567Y	(0,9)(7,8)
+102	X(.?){2,}Y	X1234567Y	(0,9)(7,8)
+103	X(.?){3,}Y	X1234567Y	(0,9)(7,8)
+104	X(.?){4,}Y	X1234567Y	(0,9)(7,8)
+105	X(.?){5,}Y	X1234567Y	(0,9)(7,8)
+106	X(.?){6,}Y	X1234567Y	(0,9)(7,8)
+107	X(.?){7,}Y	X1234567Y	(0,9)(7,8)
+108	X(.?){8,}Y	X1234567Y	(0,9)(8,8)
+110	X(.?){0,8}Y	X1234567Y	(0,9)(7,8)
+111	X(.?){1,8}Y	X1234567Y	(0,9)(7,8)
+112	X(.?){2,8}Y	X1234567Y	(0,9)(7,8)
+113	X(.?){3,8}Y	X1234567Y	(0,9)(7,8)
+114	X(.?){4,8}Y	X1234567Y	(0,9)(7,8)
+115	X(.?){5,8}Y	X1234567Y	(0,9)(7,8)
+116	X(.?){6,8}Y	X1234567Y	(0,9)(7,8)
+117	X(.?){7,8}Y	X1234567Y	(0,9)(7,8)
+118	X(.?){8,8}Y	X1234567Y	(0,9)(8,8)
+260	(a|ab|c|bcd){0,}(d*)	ababcd	(0,6)(3,6)(6,6)
+261	(a|ab|c|bcd){1,}(d*)	ababcd	(0,6)(3,6)(6,6)
+262	(a|ab|c|bcd){2,}(d*)	ababcd	(0,6)(3,6)(6,6)
+263	(a|ab|c|bcd){3,}(d*)	ababcd	(0,6)(3,6)(6,6)
+264	(a|ab|c|bcd){4,}(d*)	ababcd	NOMATCH
+265	(a|ab|c|bcd){0,10}(d*)	ababcd	(0,6)(3,6)(6,6)
+266	(a|ab|c|bcd){1,10}(d*)	ababcd	(0,6)(3,6)(6,6)
+267	(a|ab|c|bcd){2,10}(d*)	ababcd	(0,6)(3,6)(6,6)
+268	(a|ab|c|bcd){3,10}(d*)	ababcd	(0,6)(3,6)(6,6)
+269	(a|ab|c|bcd){4,10}(d*)	ababcd	NOMATCH
+270	(a|ab|c|bcd)*(d*)	ababcd	(0,6)(3,6)(6,6)
+271	(a|ab|c|bcd)+(d*)	ababcd	(0,6)(3,6)(6,6)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/progs/tests/right-assoc.txt	Sat Apr 09 09:51:00 2016 +0100
@@ -0,0 +1,12 @@
+1	(a|ab)(c|bcd)(d*)	abcd	(0,4)(0,2)(2,3)(3,4)
+2	(a|ab)(bcd|c)(d*)	abcd	(0,4)(0,2)(2,3)(3,4)
+3	(ab|a)(c|bcd)(d*)	abcd	(0,4)(0,2)(2,3)(3,4)
+4	(ab|a)(bcd|c)(d*)	abcd	(0,4)(0,2)(2,3)(3,4)
+5	(a*)(b|abc)(c*)	abc	(0,3)(0,1)(1,2)(2,3)
+6	(a*)(abc|b)(c*)	abc	(0,3)(0,1)(1,2)(2,3)
+7	(a*)(b|abc)(c*)	abc	(0,3)(0,1)(1,2)(2,3)
+8	(a*)(abc|b)(c*)	abc	(0,3)(0,1)(1,2)(2,3)
+9	(a|ab)(c|bcd)(d|.*)	abcd	(0,4)(0,2)(2,3)(3,4)
+10	(a|ab)(bcd|c)(d|.*)	abcd	(0,4)(0,2)(2,3)(3,4)
+11	(ab|a)(c|bcd)(d|.*)	abcd	(0,4)(0,2)(2,3)(3,4)
+12	(ab|a)(bcd|c)(d|.*)	abcd	(0,4)(0,2)(2,3)(3,4)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/progs/tests/test-manifest.txt	Sat Apr 09 09:51:00 2016 +0100
@@ -0,0 +1,9 @@
+basic3.txt
+class.txt
+left-assoc.txt
+right-assoc.txt
+forced-assoc.txt
+nullsub3.txt
+repetition2.txt
+totest.txt
+osx-bsd-critical.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/progs/tests/totest.txt	Sat Apr 09 09:51:00 2016 +0100
@@ -0,0 +1,79 @@
+01	a+			xaax	(1,3)
+03	(a?)((ab)?)		ab	(0,2)(0,0)(0,2)(0,2)
+04	(a?)((ab)?)(b?)		ab	(0,2)(0,1)(1,1)(?,?)(1,2)
+05	((a?)((ab)?))(b?)	ab	(0,2)(0,2)(0,0)(0,2)(0,2)(2,2)
+06	(a?)(((ab)?)(b?))	ab	(0,2)(0,1)(1,2)(1,1)(?,?)(1,2)
+07	(.?)			x	(0,1)(0,1)
+08	(.?){1}			x	(0,1)(0,1)
+09	(.?)(.?)		x	(0,1)(0,1)(1,1)
+10	(.?){2}			x	(0,1)(1,1)
+11	(.?)*			x	(0,1)(0,1)
+12	(.?.?)			xxx	(0,2)(0,2)
+13	(.?.?){1}		xxx	(0,2)(0,2)
+14	(.?.?)(.?.?)		xxx	(0,3)(0,2)(2,3)
+15	(.?.?){2}		xxx	(0,3)(2,3)
+16	(.?.?)(.?.?)(.?.?)	xxx	(0,3)(0,2)(2,3)(3,3)
+17	(.?.?){3}		xxx	(0,3)(3,3)
+18	(.?.?)*			xxx	(0,3)(2,3)
+19	a?((ab)?)(b?)		ab	(0,2)(1,1)(?,?)(1,2)
+20	(a?)((ab)?)b?		ab	(0,2)(0,1)(1,1)(?,?)
+21	a?((ab)?)b?		ab	(0,2)(1,1)(?,?)
+22	(a*){2}			xxxxx	(0,0)(0,0)
+23	(ab?)(b?a)		aba	(0,3)(0,2)(2,3)
+24	(a|ab)(ba|a)		aba	(0,3)(0,2)(2,3)
+25	(a|ab|ba)		aba	(0,2)(0,2)
+26	(a|ab|ba)(a|ab|ba)	aba	(0,3)(0,2)(2,3)
+27	(a|ab|ba)*		aba	(0,3)(2,3)
+28	(aba|a*b)		ababa	(0,3)(0,3)
+29	(aba|a*b)(aba|a*b)	ababa	(0,5)(0,2)(2,5)
+1029	(aba|a*b)(aba|a*b)(aba|a*b)	ababa	NOMATCH
+30	(aba|a*b)*		ababa	(0,5)(2,5)
+31	(aba|ab|a)		ababa	(0,3)(0,3)
+32	(aba|ab|a)(aba|ab|a)	ababa	(0,5)(0,2)(2,5)
+1032	(aba|ab|a)(aba|ab|a)(aba|ab|a)	ababa	(0,5)(0,2)(2,4)(4,5)
+33	(aba|ab|a)*		ababa	(0,5)(2,5)
+34	(a(b)?)			aba	(0,2)(0,2)(1,2)
+35	(a(b)?)(a(b)?)		aba	(0,3)(0,2)(1,2)(2,3)(?,?)
+36	(a(b)?)+		aba	(0,3)(2,3)(?,?)
+37	(.*)(.*)		xx	(0,2)(0,2)(2,2)
+38	.*(.*)			xx	(0,2)(2,2)
+39	(a.*z|b.*y)		azbazby	(0,5)(0,5)
+40	(a.*z|b.*y)(a.*z|b.*y)	azbazby	(0,7)(0,5)(5,7)
+41	(a.*z|b.*y)*		azbazby	(0,7)(5,7)
+42	(.|..)(.*)		ab	(0,2)(0,2)(2,2)
+43	((..)*(...)*)			xxx		(0,3)(0,3)(?,?)(0,3)
+44	((..)*(...)*)((..)*(...)*)	xxx		(0,3)(0,3)(?,?)(0,3)(3,3)(?,?)(?,?)
+45	((..)*(...)*)*			xxx		(0,3)(0,3)(?,?)(0,3)
+83	(aa(b(b))?)+		aabbaa	(0,6)(4,6)(?,?)(?,?)
+84	(a(b)?)+		aba	(0,3)(2,3)(?,?)
+85	([ab]+)([bc]+)([cd]*)		abcd		(0,4)(0,2)(2,3)(3,4)
+90	^(A([^B]*))?(B(.*))?		Aa		(0,2)(0,2)(1,2)(?,?)(?,?)
+91	^(A([^B]*))?(B(.*))?		Bb		(0,2)(?,?)(?,?)(0,2)(1,2)
+110	(^){0,3}		a	(0,0)(0,0)
+111	($){0,3}		a	(0,0)(?,?)
+112	(^){1,3}		a	(0,0)(0,0)
+113	($){1,3}		a	(1,1)(1,1)
+200	((s^)|(s)|(^)|($)|(^.))*	searchme	(0,1)(0,1)(?,?)(0,1)(?,?)(?,?)(?,?)
+201	s(()|^)e	searchme	(0,2)(1,1)(1,1)
+202	s(^|())e	searchme	(0,2)(1,1)(1,1)
+203	s(^|())e	searchme	(0,2)(1,1)(1,1)
+204	s()?e	searchme	(0,2)(1,1)
+205	s(^)?e	searchme	(0,2)(?,?)
+206	((s)|(e)|(a))*	searchme	(0,3)(2,3)(?,?)(?,?)(2,3)
+207	((s)|(e)|())*	searchme	(0,2)(1,2)(?,?)(1,2)(?,?)
+208	((b*)|c(c*))*	cbb	(0,3)(1,3)(1,3)(?,?)
+209	(yyy|(x?)){2,4}	yyyyyy	(0,6)(3,6)(?,?)
+210	($)|()	xxx	(0,0)(?,?)(0,0)
+211	$()|^()	ac\n	(0,0)(?,?)(0,0)
+212	^()|$()	ac\n	(0,0)(0,0)(?,?)
+213	($)?(.)	__	(0,1)(?,?)(0,1)
+214	(.|()|())*	c	(0,1)(0,1)(?,?)(?,?)
+215	((a)|(b)){2,}	ab	(0,2)(1,2)(?,?)(1,2)
+216	.()|((.)?)	NULL	(0,0)(?,?)(0,0)(?,?)
+217	(.|$){2,}	xx	(0,2)(1,2)
+218	(.|$){2,2}	xx	(0,2)(1,2)
+219	(.){2,}	xx	(0,2)(1,2)
+220	(a|())(b|())(c|())	abc	(0,3)(0,1)(?,?)(1,2)(?,?)(2,3)(?,?)
+220	ab()c|ab()c()	abc	(0,3)(2,2)(-1,-1)(-1,-1)
+250	(b(c)|d(e))*	bcde	(0,4)(2,4)(-1,-1)(3,4)
+251	(a(b)*)*	aba	(0,3)(2,3)(-1,-1)