forked from gambit/gambit
/
syntax-case-build
executable file
·56 lines (36 loc) · 1.89 KB
/
syntax-case-build
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
#! /bin/sh
# File: "syntax-case-build", Time-stamp: <2007-04-03 20:32:05 feeley>
# Copyright (c) 2007 by Marc Feeley, All Rights Reserved.
PSYNTAX=psyntax73
add_prelude()
{
cat syntax-case-prelude.scm $1 > $2
}
create_final()
{
cat syntax-case-prelude.scm $1 syntax-case-postlude.scm | sed -e "s/^ *//g" > $2
}
modify_for_load_time()
{
tr '\n' '' < $1 | sed "s/'(e)\( *\)'(e)/'(l)\1'(l)/" | sed "s/'(E)\( *\)'(E)/'(L)\1'(L)/" | tr '' '\n' > $2
}
rm -f psyntax1.scm psyntax2.scm psyntax3.scm psyntax0-at-load.pp psyntax1-at-load.pp psyntax2-at-load.pp psyntax0-at-load.scm psyntax1-at-load.scm psyntax2-at-load.scm syntax-case.scm
echo "-> copying $PSYNTAX.pp to psyntax0-at-load.scm with rtem/ctem set to '(l)"
modify_for_load_time $PSYNTAX.pp psyntax0-at-load.pp
add_prelude psyntax0-at-load.pp psyntax0-at-load.scm
echo "-> using psyntax0-at-load.scm to expand $PSYNTAX.ss to psyntax1-at-load.scm"
./syntax-case-expand-file psyntax0-at-load.scm $PSYNTAX.ss psyntax1.scm
modify_for_load_time psyntax1.scm psyntax1-at-load.pp
add_prelude psyntax1-at-load.pp psyntax1-at-load.scm
echo "-> using psyntax1-at-load.scm to expand $PSYNTAX.ss to psyntax2-at-load.scm"
./syntax-case-expand-file psyntax1-at-load.scm $PSYNTAX.ss psyntax2.scm
modify_for_load_time psyntax2.scm psyntax2-at-load.pp
add_prelude psyntax2-at-load.pp psyntax2-at-load.scm
echo "-> using psyntax2-at-load.scm to expand $PSYNTAX.ss to syntax-case.scm"
./syntax-case-expand-file psyntax2-at-load.scm $PSYNTAX.ss psyntax3.scm
create_final psyntax3.scm syntax-case.scm
echo "-> comparing last two expansions (there should be no differences)"
echo ============================================
diff psyntax2.scm psyntax3.scm
echo ============================================
rm -f psyntax1.scm psyntax2.scm psyntax3.scm psyntax0-at-load.pp psyntax1-at-load.pp psyntax2-at-load.pp psyntax0-at-load.scm psyntax1-at-load.scm psyntax2-at-load.scm