mapflag -I* CPP_F={CPP_F?} -I*
mapflag -U* CPP_F={CPP_F?} -U*
mapflag -D* CPP_F={CPP_F?} -D*
- args {CPP_F?} {INCLUDES?} -D{NAME} -DEM_WSIZE={w} -DEM_PSIZE={p} \
+ args {CPP_F?} ({SUFFIX?}:.ocm=-I{EM}/include/occam) \
+ ({SUFFIX}:.c={INCLUDES?}) \
+ -D{NAME} -DEM_WSIZE={w} -DEM_PSIZE={p} \
-DEM_SSIZE={s} -DEM_LSIZE={l} -DEM_FSIZE={f} -DEM_DSIZE={d} <
stdout
prep is
name cem
from .c
to .k
- program {EM}/lib/em_cem
- mapflag -p CEM_F={CEM_F?} -Xp
- mapflag -L CEM_F={CEM_F?} -l
- args -Vw{w}i{w}p{p}f{f}s{s}l{l}d{d} {CEM_F?}
- stdin
- stdout
- prep always
+ program {EM}/lib/em_cemcom
+ mapflag -I* CEM_F={CEM_F?} -I*
+ mapflag -U* CEM_F={CEM_F?} -U*
+ mapflag -D* CEM_F={CEM_F?} -D*
+ mapflag -M* CEM_F={CEM_F?} -M*
+ mapflag -L CEM_F={CEM_F?} -L
+ mapflag -K CEM_F={CEM_F?} -R
+ mapflag -w CEM_F={CEM_F?} -w
+ mapflag -p CEM_F={DEM_F?} -p
+ args {CPP_F?} {CEM_F?} {INCLUDES?} -D{NAME} -DEM_WSIZE={w} -DEM_PSIZE={p} \
+-DEM_SSIZE={s} -DEM_LSIZE={l} -DEM_FSIZE={f} -DEM_DSIZE={d} \
+-Vw{w}.{w}i{w}.{w}p{p}.{w}f{f}.{w}s{s}.{s}l{l}.{w}d{d}.{w} < >
rts .c
need .c
callname acc
mapflag -L PC_F={PC_F?} -\{l-}
mapflag -Pr* PC_ERRPATH=*
mapflag -PR* PC_PCPATH=*
- args -Vw{w}i{w}p{p}f{d}l{l} -R{PC_PCPATH} -r{PC_ERRPATH} {PC_F?} < > {SOURCE}
+ args -Vw{w}i{w}j{w}p{p}f{d}l{l} -R{PC_PCPATH} -r{PC_ERRPATH} {PC_F?} < > {SOURCE}
prep cond
rts .p
need .p
callname apc
callname pc
- end
- name abc
+end
+name m2
+ from .mod
+ to .k
+ program {EM}/lib/em_m2
+ mapflag -I* M2_F={M2_F?} -I*
+ mapflag -L M2_F={M2_F?} -L
+ mapflag -w* M2_F={M2_F?} -w*
+ mapflag -W* M2_F={M2_F?} -W*
+ mapflag -M* M2_F={M2_F?} -M*
+ mapflag -x M2_F={M2_F?} -x
+ args {M2_F?} -I{EM}/lib/m2 {M2SYSLIB?} -Vi{w}.{w}p{p}.{w}l{l}.{w} < >
+ rts .mod
+ need .mod
+ callname m2
+end
+name ocm
+ from .ocm
+ to .k
+ program {EM}/lib/em_occam
+ mapflag -L OCM_F={OCM_F?} -L
+ args {OCM_F?} -Vw{w}p{p}l{l}
+ stdin
+ stdout
+ rts .ocm
+ need .ocm
+ prep cond
+ callname ocm
+end
+name abc
from .b
to .e
program {EM}/lib/em_bem
stdout
optimizer
end
+name ego
+ from .m.ma
+ to .gk
+ program /bin/sh
+ mapflag -IL* EGO_F={EGO_F?} -IL*
+ mapflag -CS* EGO_F={EGO_F?} -CS*
+ mapflag -SR* EGO_F={EGO_F?} -SR*
+ mapflag -UD* EGO_F={EGO_F?} -UD*
+ mapflag -LV* EGO_F={EGO_F?} -LV*
+ mapflag -SA* EGO_F={EGO_F?} -RA*
+ mapflag -SP* EGO_F={EGO_F?} -SP*
+ mapflag -BO* EGO_F={EGO_F?} -BO*
+ mapflag -CJ* EGO_F={EGO_F?} -CJ*
+ mapflag -Q* EGO_F={EGO_F?} -Q*
+ mapflag -T* EGO_F={EGO_F?} -T*
+ mapflag -S* EGO_F={EGO_F?} -S*
+ mapflag -s* EGO_F={EGO_F?} -s*
+ args {EM}/lib/em_ego {EGO_F?} -P {EM}/lib/ego \
+-M{EM}/lib/ego/{M}descr <
+ optimizer
+ stdout
+ priority -1
+ combiner
+end
+name opt2
+ # output of the global optimizer is processed by a stripped version
+ # of the em peephole optimizer
+ from .gk
+ to .g
+ program {EM}/lib/em_opt2
+ mapflag -LIB OPT_F={OPT_F?} -L
+ args {OPT_F?} <
+ optimizer
+ stdout
+end
name decode
from .k.m.g
to .e