summaryrefslogtreecommitdiff
path: root/test/runtests.mk
blob: 51220ffa8a8ecf867c273f5d5c2b7aabbccdfc06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
#!/usr/bin/make -f 

SUBDIRS = 

TESTS = \
	ambig1.lm \
	backtrack1.lm \
	backtrack2.lm \
	backtrack3.lm \
	binary1.lm \
	accum1.lm \
	accum2.lm \
	accum3.lm \
	accumbt.lm \
	mutualrec.lm \
	argv1.lm \
	argv2.lm \
	exit1.lm \
	exit2.lm \
	rubyhere.lm \
	translate1.lm \
	translate2.lm \
	construct1.lm \
	construct2.lm \
	construct3.lm \
	generate1.lm \
	generate2.lm \
	lookup1.lm \
	treecmp1.lm \
	context1.lm \
	context2.lm \
	context3.lm \
	undofrag1.lm \
	undofrag2.lm \
	undofrag3.lm \
	nestedcomm.lm \
	reparse.lm \
	btscan1.lm \
	btscan2.lm \
	island.lm \
	func.lm \
	travs1.lm \
	constructex.lm \
	rediv.lm \
	liftattrs.lm \
	mailbox.lm \
	string.lm \
	repeat.lm \
	ragelambig1.lm \
	ragelambig2.lm \
	ragelambig3.lm \
	ragelambig4.lm \
	counting1.lm \
	counting2.lm \
	counting3.lm \
	counting4.lm \
	til.lm \
	matchex.lm \
	maxlen.lm \
	multiregion1.lm \
	multiregion2.lm \
	superid.lm \
	tags1.lm \
	tags2.lm \
	tags3.lm \
	heredoc.lm \
	commitbt.lm \
	sprintf.lm \
	div.lm \
	scope1.lm \
	export1.lm \
	lhs1.lm

DIFFS = \
	ambig1.diff \
	backtrack1.diff \
	backtrack2.diff \
	backtrack3.diff \
	binary1.diff \
	accum1.diff \
	accum2.diff \
	accum3.diff \
	accumbt.diff \
	mutualrec.diff \
	argv1.diff \
	argv2.diff \
	exit1.diff \
	exit2.diff \
	rubyhere.diff \
	translate1.diff \
	translate2.diff \
	construct1.diff \
	construct2.diff \
	construct3.diff \
	generate1.diff \
	generate2.diff \
	lookup1.diff \
	treecmp1.diff \
	context1.diff \
	context2.diff \
	context3.diff \
	undofrag1.diff \
	undofrag2.diff \
	undofrag3.diff \
	nestedcomm.diff \
	reparse.diff \
	btscan1.diff \
	btscan2.diff \
	island.diff \
	func.diff \
	travs1.diff \
	constructex.diff \
	rediv.diff \
	liftattrs.diff \
	mailbox.diff \
	string.diff \
	repeat.diff \
	ragelambig1.diff \
	ragelambig2.diff \
	ragelambig3.diff \
	ragelambig4.diff \
	counting1.diff \
	counting2.diff \
	counting3.diff \
	counting4.diff \
	til.diff \
	matchex.diff \
	maxlen.diff \
	multiregion1.diff \
	multiregion2.diff \
	superid.diff \
	tags1.diff \
	tags2.diff \
	tags3.diff \
	heredoc.diff \
	commitbt.diff \
	sprintf.diff \
	div.diff \
	scope1.diff \
	export1.diff \
	lhs1.diff

all: runtests.mk $(DIFFS) $(SUBDIRS)

.PHONY: clean $(SUBDIRS:%=%-clean)
clean: $(SUBDIRS:%=%-clean)
	rm -f *.bin
$(SUBDIRS:%=%-clean):
	cd $(@:%-clean=%) && $(MAKE) -f runtests.mk clean

.PHONY: $(SUBDIRS)
$(SUBDIRS):
	cd $@ && $(MAKE) -f runtests.mk

runtests.mk: ./genmf TESTS
	./genmf > runtests.mk

ambig1.diff: ambig1.out ambig1.exp
	@diff -u ambig1.exp ambig1.out > ambig1.diff || ( cat ambig1.diff; rm ambig1.diff )

ambig1.out: ambig1.bin
	./ambig1.bin  < ambig1.in > ambig1.out

ambig1.bin: ambig1.lm ./../colm/colm
	./../colm/colm ambig1.lm
backtrack1.diff: backtrack1.out backtrack1.exp
	@diff -u backtrack1.exp backtrack1.out > backtrack1.diff || ( cat backtrack1.diff; rm backtrack1.diff )

backtrack1.out: backtrack1.bin
	./backtrack1.bin  < backtrack1.in > backtrack1.out

backtrack1.bin: backtrack1.lm ./../colm/colm
	./../colm/colm backtrack1.lm
backtrack2.diff: backtrack2.out backtrack2.exp
	@diff -u backtrack2.exp backtrack2.out > backtrack2.diff || ( cat backtrack2.diff; rm backtrack2.diff )

backtrack2.out: backtrack2.bin
	./backtrack2.bin  < backtrack2.in > backtrack2.out

backtrack2.bin: backtrack2.lm ./../colm/colm
	./../colm/colm backtrack2.lm
backtrack3.diff: backtrack3.out backtrack3.exp
	@diff -u backtrack3.exp backtrack3.out > backtrack3.diff || ( cat backtrack3.diff; rm backtrack3.diff )

backtrack3.out: backtrack3.bin
	./backtrack3.bin  < backtrack3.in > backtrack3.out

backtrack3.bin: backtrack3.lm ./../colm/colm
	./../colm/colm backtrack3.lm
binary1.diff: binary1.out binary1.exp
	@diff -u binary1.exp binary1.out > binary1.diff || ( cat binary1.diff; rm binary1.diff )

binary1.out: binary1.bin
	./binary1.bin  < binary1.in > binary1.out

binary1.bin: binary1.lm ./../colm/colm
	./../colm/colm binary1.lm
accum1.diff: accum1.out accum1.exp
	@diff -u accum1.exp accum1.out > accum1.diff || ( cat accum1.diff; rm accum1.diff )

accum1.out: accum1.bin
	./accum1.bin  < accum1.in > accum1.out

accum1.bin: accum1.lm ./../colm/colm
	./../colm/colm accum1.lm
accum2.diff: accum2.out accum2.exp
	@diff -u accum2.exp accum2.out > accum2.diff || ( cat accum2.diff; rm accum2.diff )

accum2.out: accum2.bin
	./accum2.bin  < accum2.in > accum2.out

accum2.bin: accum2.lm ./../colm/colm
	./../colm/colm accum2.lm
accum3.diff: accum3.out accum3.exp
	@diff -u accum3.exp accum3.out > accum3.diff || ( cat accum3.diff; rm accum3.diff )

accum3.out: accum3.bin
	./accum3.bin -qv -h -o output sdf -i eth0 file > accum3.out

accum3.bin: accum3.lm ./../colm/colm
	./../colm/colm accum3.lm
accumbt.diff: accumbt.out accumbt.exp
	@diff -u accumbt.exp accumbt.out > accumbt.diff || ( cat accumbt.diff; rm accumbt.diff )

accumbt.out: accumbt.bin
	./accumbt.bin  > accumbt.out

accumbt.bin: accumbt.lm ./../colm/colm
	./../colm/colm accumbt.lm
mutualrec.diff: mutualrec.out mutualrec.exp
	@diff -u mutualrec.exp mutualrec.out > mutualrec.diff || ( cat mutualrec.diff; rm mutualrec.diff )

mutualrec.out: mutualrec.bin
	./mutualrec.bin  > mutualrec.out

mutualrec.bin: mutualrec.lm ./../colm/colm
	./../colm/colm mutualrec.lm
argv1.diff: argv1.out argv1.exp
	@diff -u argv1.exp argv1.out > argv1.diff || ( cat argv1.diff; rm argv1.diff )

argv1.out: argv1.bin
	./argv1.bin a b c 1 2 3 > argv1.out

argv1.bin: argv1.lm ./../colm/colm
	./../colm/colm argv1.lm
argv2.diff: argv2.out argv2.exp
	@diff -u argv2.exp argv2.out > argv2.diff || ( cat argv2.diff; rm argv2.diff )

argv2.out: argv2.bin
	./argv2.bin -qv -h -o output -iinput file --input=foo --input bar --help --verbose > argv2.out

argv2.bin: argv2.lm ./../colm/colm
	./../colm/colm argv2.lm
exit1.diff: exit1.out exit1.exp
	@diff -u exit1.exp exit1.out > exit1.diff || ( cat exit1.diff; rm exit1.diff )

exit1.out: exit1.bin
	./exit1.bin  > exit1.out

exit1.bin: exit1.lm ./../colm/colm
	./../colm/colm exit1.lm
exit2.diff: exit2.out exit2.exp
	@diff -u exit2.exp exit2.out > exit2.diff || ( cat exit2.diff; rm exit2.diff )

exit2.out: exit2.bin
	./exit2.bin  > exit2.out

exit2.bin: exit2.lm ./../colm/colm
	./../colm/colm exit2.lm
rubyhere.diff: rubyhere.out rubyhere.exp
	@diff -u rubyhere.exp rubyhere.out > rubyhere.diff || ( cat rubyhere.diff; rm rubyhere.diff )

rubyhere.out: rubyhere.bin
	./rubyhere.bin  < rubyhere.in > rubyhere.out

rubyhere.bin: rubyhere.lm ./../colm/colm
	./../colm/colm rubyhere.lm
translate1.diff: translate1.out translate1.exp
	@diff -u translate1.exp translate1.out > translate1.diff || ( cat translate1.diff; rm translate1.diff )

translate1.out: translate1.bin
	./translate1.bin  < translate1.in > translate1.out

translate1.bin: translate1.lm ./../colm/colm
	./../colm/colm translate1.lm
translate2.diff: translate2.out translate2.exp
	@diff -u translate2.exp translate2.out > translate2.diff || ( cat translate2.diff; rm translate2.diff )

translate2.out: translate2.bin
	./translate2.bin  < translate2.in > translate2.out

translate2.bin: translate2.lm ./../colm/colm
	./../colm/colm translate2.lm
construct1.diff: construct1.out construct1.exp
	@diff -u construct1.exp construct1.out > construct1.diff || ( cat construct1.diff; rm construct1.diff )

construct1.out: construct1.bin
	./construct1.bin  > construct1.out

construct1.bin: construct1.lm ./../colm/colm
	./../colm/colm construct1.lm
construct2.diff: construct2.out construct2.exp
	@diff -u construct2.exp construct2.out > construct2.diff || ( cat construct2.diff; rm construct2.diff )

construct2.out: construct2.bin
	./construct2.bin  > construct2.out

construct2.bin: construct2.lm ./../colm/colm
	./../colm/colm construct2.lm
construct3.diff: construct3.out construct3.exp
	@diff -u construct3.exp construct3.out > construct3.diff || ( cat construct3.diff; rm construct3.diff )

construct3.out: construct3.bin
	./construct3.bin  > construct3.out

construct3.bin: construct3.lm ./../colm/colm
	./../colm/colm construct3.lm
generate1.diff: generate1.out generate1.exp
	@diff -u generate1.exp generate1.out > generate1.diff || ( cat generate1.diff; rm generate1.diff )

generate1.out: generate1.bin
	./generate1.bin  < generate1.in > generate1.out

generate1.bin: generate1.lm ./../colm/colm
	./../colm/colm generate1.lm
generate2.diff: generate2.out generate2.exp
	@diff -u generate2.exp generate2.out > generate2.diff || ( cat generate2.diff; rm generate2.diff )

generate2.out: generate2.bin
	./generate2.bin  < generate2.in > generate2.out

generate2.bin: generate2.lm ./../colm/colm
	./../colm/colm generate2.lm
lookup1.diff: lookup1.out lookup1.exp
	@diff -u lookup1.exp lookup1.out > lookup1.diff || ( cat lookup1.diff; rm lookup1.diff )

lookup1.out: lookup1.bin
	./lookup1.bin  < lookup1.in > lookup1.out

lookup1.bin: lookup1.lm ./../colm/colm
	./../colm/colm lookup1.lm
treecmp1.diff: treecmp1.out treecmp1.exp
	@diff -u treecmp1.exp treecmp1.out > treecmp1.diff || ( cat treecmp1.diff; rm treecmp1.diff )

treecmp1.out: treecmp1.bin
	./treecmp1.bin  < treecmp1.in > treecmp1.out

treecmp1.bin: treecmp1.lm ./../colm/colm
	./../colm/colm treecmp1.lm
context1.diff: context1.out context1.exp
	@diff -u context1.exp context1.out > context1.diff || ( cat context1.diff; rm context1.diff )

context1.out: context1.bin
	./context1.bin  < context1.in > context1.out

context1.bin: context1.lm ./../colm/colm
	./../colm/colm context1.lm
context2.diff: context2.out context2.exp
	@diff -u context2.exp context2.out > context2.diff || ( cat context2.diff; rm context2.diff )

context2.out: context2.bin
	./context2.bin  < context2.in > context2.out

context2.bin: context2.lm ./../colm/colm
	./../colm/colm context2.lm
context3.diff: context3.out context3.exp
	@diff -u context3.exp context3.out > context3.diff || ( cat context3.diff; rm context3.diff )

context3.out: context3.bin
	./context3.bin  < context3.in > context3.out

context3.bin: context3.lm ./../colm/colm
	./../colm/colm context3.lm
undofrag1.diff: undofrag1.out undofrag1.exp
	@diff -u undofrag1.exp undofrag1.out > undofrag1.diff || ( cat undofrag1.diff; rm undofrag1.diff )

undofrag1.out: undofrag1.bin
	./undofrag1.bin  < undofrag1.in > undofrag1.out

undofrag1.bin: undofrag1.lm ./../colm/colm
	./../colm/colm undofrag1.lm
undofrag2.diff: undofrag2.out undofrag2.exp
	@diff -u undofrag2.exp undofrag2.out > undofrag2.diff || ( cat undofrag2.diff; rm undofrag2.diff )

undofrag2.out: undofrag2.bin
	./undofrag2.bin  < undofrag2.in > undofrag2.out

undofrag2.bin: undofrag2.lm ./../colm/colm
	./../colm/colm undofrag2.lm
undofrag3.diff: undofrag3.out undofrag3.exp
	@diff -u undofrag3.exp undofrag3.out > undofrag3.diff || ( cat undofrag3.diff; rm undofrag3.diff )

undofrag3.out: undofrag3.bin
	./undofrag3.bin  < undofrag3.in > undofrag3.out

undofrag3.bin: undofrag3.lm ./../colm/colm
	./../colm/colm undofrag3.lm
nestedcomm.diff: nestedcomm.out nestedcomm.exp
	@diff -u nestedcomm.exp nestedcomm.out > nestedcomm.diff || ( cat nestedcomm.diff; rm nestedcomm.diff )

nestedcomm.out: nestedcomm.bin
	./nestedcomm.bin  < nestedcomm.in > nestedcomm.out

nestedcomm.bin: nestedcomm.lm ./../colm/colm
	./../colm/colm nestedcomm.lm
reparse.diff: reparse.out reparse.exp
	@diff -u reparse.exp reparse.out > reparse.diff || ( cat reparse.diff; rm reparse.diff )

reparse.out: reparse.bin
	./reparse.bin  < reparse.in > reparse.out

reparse.bin: reparse.lm ./../colm/colm
	./../colm/colm reparse.lm
btscan1.diff: btscan1.out btscan1.exp
	@diff -u btscan1.exp btscan1.out > btscan1.diff || ( cat btscan1.diff; rm btscan1.diff )

btscan1.out: btscan1.bin
	./btscan1.bin  < btscan1.in > btscan1.out

btscan1.bin: btscan1.lm ./../colm/colm
	./../colm/colm btscan1.lm
btscan2.diff: btscan2.out btscan2.exp
	@diff -u btscan2.exp btscan2.out > btscan2.diff || ( cat btscan2.diff; rm btscan2.diff )

btscan2.out: btscan2.bin
	./btscan2.bin  > btscan2.out

btscan2.bin: btscan2.lm ./../colm/colm
	./../colm/colm btscan2.lm
island.diff: island.out island.exp
	@diff -u island.exp island.out > island.diff || ( cat island.diff; rm island.diff )

island.out: island.bin
	./island.bin  < island.in > island.out

island.bin: island.lm ./../colm/colm
	./../colm/colm island.lm
func.diff: func.out func.exp
	@diff -u func.exp func.out > func.diff || ( cat func.diff; rm func.diff )

func.out: func.bin
	./func.bin  < func.in > func.out

func.bin: func.lm ./../colm/colm
	./../colm/colm func.lm
travs1.diff: travs1.out travs1.exp
	@diff -u travs1.exp travs1.out > travs1.diff || ( cat travs1.diff; rm travs1.diff )

travs1.out: travs1.bin
	./travs1.bin  < travs1.in > travs1.out

travs1.bin: travs1.lm ./../colm/colm
	./../colm/colm travs1.lm
constructex.diff: constructex.out constructex.exp
	@diff -u constructex.exp constructex.out > constructex.diff || ( cat constructex.diff; rm constructex.diff )

constructex.out: constructex.bin
	./constructex.bin  < constructex.in > constructex.out

constructex.bin: constructex.lm ./../colm/colm
	./../colm/colm constructex.lm
rediv.diff: rediv.out rediv.exp
	@diff -u rediv.exp rediv.out > rediv.diff || ( cat rediv.diff; rm rediv.diff )

rediv.out: rediv.bin
	./rediv.bin  < rediv.in > rediv.out

rediv.bin: rediv.lm ./../colm/colm
	./../colm/colm rediv.lm
liftattrs.diff: liftattrs.out liftattrs.exp
	@diff -u liftattrs.exp liftattrs.out > liftattrs.diff || ( cat liftattrs.diff; rm liftattrs.diff )

liftattrs.out: liftattrs.bin
	./liftattrs.bin  < liftattrs.in > liftattrs.out

liftattrs.bin: liftattrs.lm ./../colm/colm
	./../colm/colm liftattrs.lm
mailbox.diff: mailbox.out mailbox.exp
	@diff -u mailbox.exp mailbox.out > mailbox.diff || ( cat mailbox.diff; rm mailbox.diff )

mailbox.out: mailbox.bin
	./mailbox.bin  < mailbox.in > mailbox.out

mailbox.bin: mailbox.lm ./../colm/colm
	./../colm/colm mailbox.lm
string.diff: string.out string.exp
	@diff -u string.exp string.out > string.diff || ( cat string.diff; rm string.diff )

string.out: string.bin
	./string.bin  < string.in > string.out

string.bin: string.lm ./../colm/colm
	./../colm/colm string.lm
repeat.diff: repeat.out repeat.exp
	@diff -u repeat.exp repeat.out > repeat.diff || ( cat repeat.diff; rm repeat.diff )

repeat.out: repeat.bin
	./repeat.bin  < repeat.in > repeat.out

repeat.bin: repeat.lm ./../colm/colm
	./../colm/colm repeat.lm
ragelambig1.diff: ragelambig1.out ragelambig1.exp
	@diff -u ragelambig1.exp ragelambig1.out > ragelambig1.diff || ( cat ragelambig1.diff; rm ragelambig1.diff )

ragelambig1.out: ragelambig1.bin
	./ragelambig1.bin  < ragelambig1.in > ragelambig1.out

ragelambig1.bin: ragelambig1.lm ./../colm/colm
	./../colm/colm ragelambig1.lm
ragelambig2.diff: ragelambig2.out ragelambig2.exp
	@diff -u ragelambig2.exp ragelambig2.out > ragelambig2.diff || ( cat ragelambig2.diff; rm ragelambig2.diff )

ragelambig2.out: ragelambig2.bin
	./ragelambig2.bin  < ragelambig2.in > ragelambig2.out

ragelambig2.bin: ragelambig2.lm ./../colm/colm
	./../colm/colm ragelambig2.lm
ragelambig3.diff: ragelambig3.out ragelambig3.exp
	@diff -u ragelambig3.exp ragelambig3.out > ragelambig3.diff || ( cat ragelambig3.diff; rm ragelambig3.diff )

ragelambig3.out: ragelambig3.bin
	./ragelambig3.bin  < ragelambig3.in > ragelambig3.out

ragelambig3.bin: ragelambig3.lm ./../colm/colm
	./../colm/colm ragelambig3.lm
ragelambig4.diff: ragelambig4.out ragelambig4.exp
	@diff -u ragelambig4.exp ragelambig4.out > ragelambig4.diff || ( cat ragelambig4.diff; rm ragelambig4.diff )

ragelambig4.out: ragelambig4.bin
	./ragelambig4.bin  < ragelambig4.in > ragelambig4.out

ragelambig4.bin: ragelambig4.lm ./../colm/colm
	./../colm/colm ragelambig4.lm
counting1.diff: counting1.out counting1.exp
	@diff -u counting1.exp counting1.out > counting1.diff || ( cat counting1.diff; rm counting1.diff )

counting1.out: counting1.bin
	./counting1.bin  < counting1.in > counting1.out

counting1.bin: counting1.lm ./../colm/colm
	./../colm/colm counting1.lm
counting2.diff: counting2.out counting2.exp
	@diff -u counting2.exp counting2.out > counting2.diff || ( cat counting2.diff; rm counting2.diff )

counting2.out: counting2.bin
	./counting2.bin  < counting2.in > counting2.out

counting2.bin: counting2.lm ./../colm/colm
	./../colm/colm counting2.lm
counting3.diff: counting3.out counting3.exp
	@diff -u counting3.exp counting3.out > counting3.diff || ( cat counting3.diff; rm counting3.diff )

counting3.out: counting3.bin
	./counting3.bin  < counting3.in > counting3.out

counting3.bin: counting3.lm ./../colm/colm
	./../colm/colm counting3.lm
counting4.diff: counting4.out counting4.exp
	@diff -u counting4.exp counting4.out > counting4.diff || ( cat counting4.diff; rm counting4.diff )

counting4.out: counting4.bin
	./counting4.bin  < counting4.in > counting4.out

counting4.bin: counting4.lm ./../colm/colm
	./../colm/colm counting4.lm
til.diff: til.out til.exp
	@diff -u til.exp til.out > til.diff || ( cat til.diff; rm til.diff )

til.out: til.bin
	./til.bin  < til.in > til.out

til.bin: til.lm ./../colm/colm
	./../colm/colm til.lm
matchex.diff: matchex.out matchex.exp
	@diff -u matchex.exp matchex.out > matchex.diff || ( cat matchex.diff; rm matchex.diff )

matchex.out: matchex.bin
	./matchex.bin  < matchex.in > matchex.out

matchex.bin: matchex.lm ./../colm/colm
	./../colm/colm matchex.lm
maxlen.diff: maxlen.out maxlen.exp
	@diff -u maxlen.exp maxlen.out > maxlen.diff || ( cat maxlen.diff; rm maxlen.diff )

maxlen.out: maxlen.bin
	./maxlen.bin  < maxlen.in > maxlen.out

maxlen.bin: maxlen.lm ./../colm/colm
	./../colm/colm maxlen.lm
multiregion1.diff: multiregion1.out multiregion1.exp
	@diff -u multiregion1.exp multiregion1.out > multiregion1.diff || ( cat multiregion1.diff; rm multiregion1.diff )

multiregion1.out: multiregion1.bin
	./multiregion1.bin  < multiregion1.in > multiregion1.out

multiregion1.bin: multiregion1.lm ./../colm/colm
	./../colm/colm multiregion1.lm
multiregion2.diff: multiregion2.out multiregion2.exp
	@diff -u multiregion2.exp multiregion2.out > multiregion2.diff || ( cat multiregion2.diff; rm multiregion2.diff )

multiregion2.out: multiregion2.bin
	./multiregion2.bin  < multiregion2.in > multiregion2.out

multiregion2.bin: multiregion2.lm ./../colm/colm
	./../colm/colm multiregion2.lm
superid.diff: superid.out superid.exp
	@diff -u superid.exp superid.out > superid.diff || ( cat superid.diff; rm superid.diff )

superid.out: superid.bin
	./superid.bin  < superid.in > superid.out

superid.bin: superid.lm ./../colm/colm
	./../colm/colm superid.lm
tags1.diff: tags1.out tags1.exp
	@diff -u tags1.exp tags1.out > tags1.diff || ( cat tags1.diff; rm tags1.diff )

tags1.out: tags1.bin
	./tags1.bin  < tags1.in > tags1.out

tags1.bin: tags1.lm ./../colm/colm
	./../colm/colm tags1.lm
tags2.diff: tags2.out tags2.exp
	@diff -u tags2.exp tags2.out > tags2.diff || ( cat tags2.diff; rm tags2.diff )

tags2.out: tags2.bin
	./tags2.bin  < tags2.in > tags2.out

tags2.bin: tags2.lm ./../colm/colm
	./../colm/colm tags2.lm
tags3.diff: tags3.out tags3.exp
	@diff -u tags3.exp tags3.out > tags3.diff || ( cat tags3.diff; rm tags3.diff )

tags3.out: tags3.bin
	./tags3.bin  < tags3.in > tags3.out

tags3.bin: tags3.lm ./../colm/colm
	./../colm/colm tags3.lm
heredoc.diff: heredoc.out heredoc.exp
	@diff -u heredoc.exp heredoc.out > heredoc.diff || ( cat heredoc.diff; rm heredoc.diff )

heredoc.out: heredoc.bin
	./heredoc.bin  < heredoc.in > heredoc.out

heredoc.bin: heredoc.lm ./../colm/colm
	./../colm/colm heredoc.lm
commitbt.diff: commitbt.out commitbt.exp
	@diff -u commitbt.exp commitbt.out > commitbt.diff || ( cat commitbt.diff; rm commitbt.diff )

commitbt.out: commitbt.bin
	./commitbt.bin  < commitbt.in > commitbt.out

commitbt.bin: commitbt.lm ./../colm/colm
	./../colm/colm commitbt.lm
sprintf.diff: sprintf.out sprintf.exp
	@diff -u sprintf.exp sprintf.out > sprintf.diff || ( cat sprintf.diff; rm sprintf.diff )

sprintf.out: sprintf.bin
	./sprintf.bin  > sprintf.out

sprintf.bin: sprintf.lm ./../colm/colm
	./../colm/colm sprintf.lm
div.diff: div.out div.exp
	@diff -u div.exp div.out > div.diff || ( cat div.diff; rm div.diff )

div.out: div.bin
	./div.bin  > div.out

div.bin: div.lm ./../colm/colm
	./../colm/colm div.lm
scope1.diff: scope1.out scope1.exp
	@diff -u scope1.exp scope1.out > scope1.diff || ( cat scope1.diff; rm scope1.diff )

scope1.out: scope1.bin
	./scope1.bin  > scope1.out

scope1.bin: scope1.lm ./../colm/colm
	./../colm/colm scope1.lm
export1.diff: export1.out export1.exp
	@diff -u export1.exp export1.out > export1.diff || ( cat export1.diff; rm export1.diff )

export1.out: export1.bin
	./export1.bin  < export1.in > export1.out

export1.bin: export1.lm ./../colm/colm
	./../colm/colm export1.lm
lhs1.diff: lhs1.out lhs1.exp
	@diff -u lhs1.exp lhs1.out > lhs1.diff || ( cat lhs1.diff; rm lhs1.diff )

lhs1.out: lhs1.bin
	./lhs1.bin  < lhs1.in > lhs1.out

lhs1.bin: lhs1.lm ./../colm/colm
	./../colm/colm lhs1.lm