public
Description: An implementation of markdown in C, using a PEG grammar
Clone URL: git://github.com/jgm/peg-markdown.git
100644 80 lines (65 sloc) 1.606 kb
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
EXAMPLES = test rule accept wc dc dcv calc basic
 
CFLAGS = -g -O3
 
DIFF = diff
TEE = cat >
 
all : $(EXAMPLES)
 
test : .FORCE
  ../peg -o test.peg.c test.peg
  $(CC) $(CFLAGS) -o test test.c
  echo 'ab.ac.ad.ae.afg.afh.afg.afh.afi.afj.' | ./$@ | $(TEE) $@.out
  $(DIFF) $@.ref $@.out
  rm -f $@.out
  @echo
 
rule : .FORCE
  ../peg -o rule.peg.c rule.peg
  $(CC) $(CFLAGS) -o rule rule.c
  echo 'abcbcdabcbcdabcbcdabcbcd' | ./$@ | $(TEE) $@.out
  $(DIFF) $@.ref $@.out
  rm -f $@.out
  @echo
 
accept : .FORCE
  ../peg -o accept.peg.c accept.peg
  $(CC) $(CFLAGS) -o accept accept.c
  echo 'abcbcdabcbcdabcbcdabcbcd' | ./$@ | $(TEE) $@.out
  $(DIFF) $@.ref $@.out
  rm -f $@.out
  @echo
 
wc : .FORCE
  ../leg -o wc.leg.c wc.leg
  $(CC) $(CFLAGS) -o wc wc.leg.c
  cat wc.leg | ./$@ | $(TEE) $@.out
  $(DIFF) $@.ref $@.out
  rm -f $@.out
  @echo
 
dc : .FORCE
  ../peg -o dc.peg.c dc.peg
  $(CC) $(CFLAGS) -o dc dc.c
  echo ' 2 *3 *(3+ 4) ' | ./dc | $(TEE) $@.out
  $(DIFF) $@.ref $@.out
  rm -f $@.out
  @echo
 
dcv : .FORCE
  ../peg -o dcv.peg.c dcv.peg
  $(CC) $(CFLAGS) -o dcv dcv.c
  echo 'a = 6; b = 7; a * b' | ./dcv | $(TEE) $@.out
  $(DIFF) $@.ref $@.out
  rm -f $@.out
  @echo
 
calc : .FORCE
  ../leg -o calc.leg.c calc.leg
  $(CC) $(CFLAGS) -o calc calc.leg.c
  echo 'a = 6; b = 7; a * b' | ./calc | $(TEE) $@.out
  $(DIFF) $@.ref $@.out
  rm -f $@.out
  @echo
 
basic : .FORCE
  ../leg -o basic.leg.c basic.leg
  $(CC) $(CFLAGS) -o basic basic.leg.c
  ( echo 'load "test"'; echo "run" ) | ./basic | $(TEE) $@.out
  $(DIFF) $@.ref $@.out
  rm -f $@.out
  @echo
 
clean : .FORCE
  rm -f *~ *.o *.[pl]eg.[cd] $(EXAMPLES)
 
spotless : clean
 
.FORCE :