New cmcat...

Anoq of the Sun anoq@HardcoreProcessing.com
Wed, 17 Oct 2001 11:06:05 +0200


This is a multi-part message in MIME format.
--------------0D53832CA04E84343F4A7DFD
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hello!


I added support for the -Dflag option for cmcat, which will
define the preprocessor symbol 'flag' to 0.

I've also added it to my 20010831 patch to
your MLton version 1999-07-12 here:
http://www.HardcoreProcessing.com/pro/mltonwin32/mltonwin32_19990712.html

I use:

cmcat -DMLton_cmcat sources.cm > out

Instead of -DMLton - becuase I assume that when
compiling .cm files directly with MLton, the
structure MLton will be defined - in which
case the test would be:

#if defined(structure MLton)

It's just to avoid any potential nameclashes - and
to allow me to sometime change my makefiles to compile
the .cm files directly with MLton...

Anyway - I hope it's useful :)


Cheers
-- 
http://www.HardcoreProcessing.com


--------------0D53832CA04E84343F4A7DFD
Content-Type: application/x-unknown-content-type-sml_auto_file;
 name="cmcat.sml"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="cmcat.sml"

KCogY21jYXQgdGFrZXMgYSAiLmNtIiBmaWxlIGFzIGlucHV0IGFuZCBwcm9kdWNlcyBhbiBTTUwg
cHJvZ3JhbSBhcyBvdXRwdXQuCiAqIEl0IHRha2VzIGFsbCBvZiB0aGUgZmlsZXMgaW4gdGhlIGdy
b3VwIChhbmQgc3ViZ3JvdXBzKSBhbmQgb3V0cHV0cyB0aGVpcgogKiBjb250ZW50cyBpbiB0aGUg
bGluZWFyIG9yZGVyIGRlZHVjZWQgYnkgQ00uIAogKgogKiBjbWNhdCBkb2VzIG5vdCB1bmRlcnN0
YW5kIHRoZSBleHBvcnQgZmlsdGVycyB1c2VkIGJ5IENNLiAgSGVuY2UsIHRoZSByZXN1bHRpbmcK
ICogcHJvZ3JhbSBtYXkgbm90IGJlIHZhbGlkIFNNTCBhbmQgbWF5IHJlcXVpcmUgbWFudWFsIHJl
bmFtaW5nIG9mIHNvbWUgbW9kdWxlcy4KICoKICogQmVjYXVzZSBvZiB0aGUgcHJvYmxlbSB3aXRo
IGV4cG9ydCBmaWx0ZXJzLCBjbWNhdCBoYXMgYSBoYWNrIHRvIG1vdmUgY2VydGFpbgogKiBtb2R1
bGVzIGZpcnN0LCBiYXNlZCBvbiB0aGVpciBmaWxlbmFtZS4gIFNlZSB0aGUgdmFyaWFibGUgbW92
ZUZpcnN0SGFjay4KICogVGhpcyBoYWNrIG1ha2VzIGl0IG1vcmUgbGlrZWx5IHRoYXQgcHJvZ3Jh
bXMgdGhhdCByZWJpbmQgYmFzaXMgbGlicmFyeSBtb2R1bGVzCiAqIHdpbGwgd29yay4KICoKICog
Y21jYXQgbWF5IGJlIHVzZWQgZnJvbSB0aGUgU01ML05KIHJlcGwgb3IgZnJvbSB0aGUgc2hlbGwu
CiAqCiAqIFRvIHVzZSBmcm9tIHRoZSByZXBsLCBkbyBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93
aW5nOgogKiBDbWNhdC5jbWNhdHtzb3VyY2VzID0gInNvdXJjZXMuY20iLAogKgkgICAgICAgb3V0
ID0gVGV4dElPLnN0ZE91dCwKICoJICAgICAgIHNlcGFyYXRlID0gZmFsc2UsCiAqCSAgICAgICBm
aWxlbmFtZXNPbmx5ID0gZmFsc2V9CiAqCiAqIEJlZm9yZSB1c2luZyBmcm9tIHRoZSBzaGVsbCwg
eW91IG11c3QgZmlyc3QgY2FsbAogKiAgIGV4cG9ydHtuakRpciA9ICI8c21sbmogaW5zdGFsbGF0
aW9uIGRpcmVjdG9yeT4iCiAqCiAqIFRoZSB1c2FnZSBpcyBhcyBmb2xsb3dzOgogKiAgIGNtY2F0
IFstc2VwYXJhdGVdIFstZmlsZW5hbWVdIDxmaWxlPgogKgogKiBjbWNhdCB3cml0ZXMgaXRzIG91
dHB1dCBvbiBzdGRPdXQuCiAqIFRoZSAtc2VwYXJhdGUgZmxhZyBpbnNlcnRzIGEgOyBiZXR3ZWVu
IGVhY2ggZmlsZS4KICogVGhlIC1maWxlbmFtZSBmbGFnIG91dHB1dHMgdGhlIGZpbGVuYW1lcyBp
biBvcmRlciBpbnN0ZWFkIG9mIHRoZWlyIGNvbnRlbnRzLgogKikKCnN0cnVjdHVyZSBDbWNhdDoK
ICAgc2lnCiAgICAgIHZhbCBjbWNhdDogeygqIFRoZSAiLmNtIiBmaWxlbmFtZSAqKQoJCSAgc291
cmNlczogc3RyaW5nLAoJCSAgKCogV2hlcmUgdG8gd3JpdGUgdGhlIG91dHB1dCAqKQoJCSAgb3V0
OiBUZXh0SU8ub3V0c3RyZWFtLAogCQkgICgqIElmIHRydWUsIHRoZW4gaW5zZXJ0IGEgOyBiZXR3
ZWVuIGVhY2ggZmlsZSAqKQoJCSAgc2VwYXJhdGU6IGJvb2wsCgkJICAoKiBJZiB0cnVlLCB0aGVu
IG91dHB1dCBmaWxlbmFtZXMgaW50c3RlYWQgb2YgdGhlaXIgY29udGVudHMgKikKCQkgIGZpbGVu
YW1lc09ubHk6IGJvb2wsCiAgICAgICAgICAgICAgICAgIGRlZmluZXMgOiBzdHJpbmcgbGlzdAoJ
CSB9IC0+IHVuaXQKCiAgICAgICgqIENyZWF0ZXMgYSAoYmlnKSBoZWFwIGZpbGUuICopCiAgICAg
IHZhbCBleHBvcnQ6IHsKCQkgICAoKiBUaGUgcm9vdCBvZiB0aGUgU01ML05KIGltcGxlbWVudGF0
aW9uICopCgkJICAgbmpEaXI6IHN0cmluZwoJCSAgfSAtPiB1bml0CiAgIGVuZCA9CiAgIHN0cnVj
dAogICAgICBvcGVuIFRleHRJTyBPUwogICAgICBvcGVuIEZpbGVTeXMgUGF0aCBQcm9jZXNzCgkg
CiAgICAgIGZ1biAnYSBkeW5hbWljV2luZCh0aHVuazogdW5pdCAtPiAnYSwgY2xlYW51cDogdW5p
dCAtPiB1bml0KTogJ2EgPQoJIGxldCB2YWwgYSA9IHRodW5rKCkKCSBpbiBjbGVhbnVwKCk7IGEK
CSBlbmQgaGFuZGxlIGV4biA9PiAoY2xlYW51cCgpOyByYWlzZSBleG4pCgkgICAgCiAgICAgIGxv
Y2FsCgkgZnVuICgnc3RyZWFtLCAnYSkgd2l0aGgoZmlsZTogc3RyaW5nLAoJCQkJIGY6ICdzdHJl
YW0gLT4gJ2EsCgkJCQkgb3Blbm46IHN0cmluZyAtPiAnc3RyZWFtLAoJCQkJIGNsb3NlOiAnc3Ry
ZWFtIC0+IHVuaXQpOiAnYSA9CgkgICAgbGV0IHZhbCBzdHJlYW0gPSBvcGVubiBmaWxlCgkgICAg
aW4gZHluYW1pY1dpbmQoZm4gKCkgPT4gZiBzdHJlYW0sCgkJCSAgIGZuICgpID0+IGNsb3NlIHN0
cmVhbSkKCSAgICBlbmQKICAgICAgaW4KCSBmdW4gJ2Egd2l0aEluKGZpbGU6IHN0cmluZywgZjog
aW5zdHJlYW0gLT4gJ2EpOiAnYSA9CgkgICAgd2l0aGgoZmlsZSwgZiwgb3BlbkluLCBjbG9zZUlu
KQoKCSBmdW4gJ2Egd2l0aE91dChmaWxlOiBzdHJpbmcsIGY6IG91dHN0cmVhbSAtPiAnYSk6ICdh
ID0KCSAgICB3aXRoaChmaWxlLCBmLCBvcGVuT3V0LCBjbG9zZU91dCkKICAgICAgZW5kCgogICAg
ICBmdW4gJ2EgZmx1aWRMZXQob3V0OiBvdXRzdHJlYW0sIG91dCc6IG91dHN0cmVhbSwgdGh1bms6
IHVuaXQgLT4gJ2EpOiAnYSA9CgkgbGV0IHZhbCBvbGQgPSBnZXRPdXRzdHJlYW0gb3V0CgkgaW4g
ZHluYW1pY1dpbmQKCSAgICAoZm4gKCkgPT4gKHNldE91dHN0cmVhbShvdXQsIGdldE91dHN0cmVh
bSBvdXQnKTsgdGh1bmsoKSksCgkgICAgIGZuICgpID0+IHNldE91dHN0cmVhbShvdXQsIG9sZCkp
CgkgZW5kCiAgICAgIAogICAgICBmdW4gJ2EgaWdub3JlKG91dDogb3V0c3RyZWFtLCB0aHVuazog
dW5pdCAtPiAnYSk6ICdhID0KCSB3aXRoT3V0KCIvZGV2L251bGwiLCBmbiBvdXQnID0+IGZsdWlk
TGV0KG91dCwgb3V0JywgdGh1bmspKQoKICAgICAgZnVuIG91dHB1dENvbnRlbnRzKGZpbGU6IHN0
cmluZywgb3V0OiBvdXRzdHJlYW0pOiB1bml0ID0KCSB3aXRoSW4oZmlsZSwgZm4gaW5zID0+CgkJ
d2hpbGUgbm90KGVuZE9mU3RyZWFtIGlucykKCQkgICBkbyBvdXRwdXQob3V0LCBpbnB1dCBpbnMp
KQoKICAgICAgZnVuICdhIGluVGVtcCh0aHVuazogdW5pdCAtPiAnYSk6ICdhID0KCSBsZXQgdmFs
IGN1ciA9IGdldERpcigpCgkgICAgdmFsIGRpciA9IHRtcE5hbWUoKQoJIGluIG1rRGlyIGRpcgoJ
ICAgIDsgKGR5bmFtaWNXaW5kCgkgICAgICAgKGZuICgpID0+IChjaERpciBkaXI7IHRodW5rKCkp
LAoJCWZuICgpID0+IChzeXN0ZW0oIi9iaW4vcm0gLXIgIiBeIGRpcik7IGNoRGlyIGN1cikpKQoJ
IGVuZAoKICAgICAgbG9jYWwgb3BlbiBTdWJzdHJpbmcKICAgICAgaW4KCSBmdW4gaXNTdWJzdHJp
bmd7c3RyaW5nLCBzdWJzdHJpbmd9OiBib29sID0KCSAgICAwIDw+IHNpemUoIzIocG9zaXRpb24g
c3Vic3RyaW5nIChhbGwgc3RyaW5nKSkpCiAgICAgIGVuZAoJIAogICAgICBmdW4gY21jYXR7c291
cmNlcywgb3V0LCBzZXBhcmF0ZSwgZmlsZW5hbWVzT25seSwgZGVmaW5lc30gPQoJIGluVGVtcAoJ
IChmbiAoKSA9PgoJICBsZXQKICAgICAgICAgICAgKCogRGVmaW5lIHByZXByb2Nlc3NvciBzeW1i
b2xzICopCiAgICAgICAgICAgIHZhbCBfID0gTGlzdC5hcHAgKGZuIG4gPT4gQ00uU3ltVmFsLmRl
ZmluZSAobiwgMCkpIGRlZmluZXMKCiAgICAgICAJICAgIHZhbCBmaWxlcyA9IGlnbm9yZShzdGRF
cnIsIGZuICgpID0+IENNLm5hbWVzJyBzb3VyY2VzKQoKCSAgICB2YWwgbW92ZUZpcnN0SGFjayA9
IFsibWwteWFjYy1saWIiLCAic21sbmotbGliIiwgInNtbHRrIl0KCgkgICAgdmFsIChmaXJzdCwg
c2Vjb25kKSA9CgkgICAgICAgTGlzdC5wYXJ0aXRpb24KCSAgICAgICAoZm4gZiA9PgoJCUxpc3Qu
ZXhpc3RzCgkJKGZuIHMgPT4gaXNTdWJzdHJpbmcge3N0cmluZyA9IGYsIHN1YnN0cmluZyA9IHN9
KQoJCW1vdmVGaXJzdEhhY2spCgkgICAgICAgZmlsZXMKCgkgICAgZnVuIG91dHB1dHMgZnMgPQoJ
ICAgICAgIExpc3QuYXBwCgkgICAgICAgKGZuIGYgPT4gaWYgZmlsZW5hbWVzT25seQoJCQkgICB0
aGVuIG91dHB1dChvdXQsIGYgXiAiXG4iKQoJCQllbHNlIChvdXRwdXRDb250ZW50cyhmLCBvdXQp
CgkJCSAgICAgIDsgb3V0cHV0KG91dCwgaWYgc2VwYXJhdGUgdGhlbiAiO1xuIiBlbHNlICJcbiIp
KSkKCSAgICAgICBmcwoKCSAgaW4gb3V0cHV0cyBmaXJzdDsgb3V0cHV0cyBzZWNvbmQKCSAgZW5k
KQoKICAgICAgZnVuIG1lc3NhZ2UgcyA9IG91dHB1dChzdGRFcnIsIHMgXiAiXG4iKQogICAKICAg
ICAgZnVuIGRpZSBtc2cgPQoJIChtZXNzYWdlICJVc2FnZTogY21jYXQgWy1zZXBhcmF0ZV0gWy1m
aWxlbmFtZV0gPGZpbGU+IgoJICA7IG1lc3NhZ2UoIkVycm9yOiAiIF4gbXNnKQoJICA7IGV4aXQg
ZmFpbHVyZSkKCiAgICAgIGZ1biBleHBvcnR7bmpEaXI6IHN0cmluZ30gPQoJIChjaERpciBuakRp
cgoJICA7IGNoRGlyICJiaW4iCgkgIDsgaWYgUG9zaXguRmlsZVN5cy5hY2Nlc3MoImNtY2F0Iiwg
W10pCgkgICAgICAgdGhlbiAoKQoJICAgIGVsc2UgKHN5c3RlbSAibG4gLXMgLnJ1bi1zbWwgY21j
YXQiOyAoKSkKCSAgOyBjaERpciAiLmhlYXAiCgkgIDsgKFNNTG9mTkouZXhwb3J0Rm4KCSAgICAg
KCJjbWNhdCIsIGZuIChfLCBhcmdzKSA9PgoJICAgICAgbGV0IHZhbCBzZXBhcmF0ZSA9IHJlZiBm
YWxzZQoJCSB2YWwgZmlsZW5hbWVzT25seSA9IHJlZiBmYWxzZQogICAgICAgICAgICAgICAgIHZh
bCBkZWZpbmVzID0gcmVmIG5pbCA6IHN0cmluZyBsaXN0IHJlZgoJCSBmdW4gbG9vcCBhcmdzID0K
CQkgICAgY2FzZSBhcmdzIG9mCiAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVdID0+ICgoY21j
YXR7c291cmNlcyA9IG1rQWJzb2x1dGV7cGF0aCA9ZmlsZSwKCQkJCQkJCSAgICAgIHJlbGF0aXZl
VG8gPSBnZXREaXIoKX0sCgkJICAgICAgICAJCSBvdXQgPSBzdGRPdXQsCgkJCQkJIHNlcGFyYXRl
ID0gIXNlcGFyYXRlLAoJCQkJCSBmaWxlbmFtZXNPbmx5ID0gIWZpbGVuYW1lc09ubHksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lcyA9ICFkZWZpbmVzfSkK
CQkJCSAgaGFuZGxlIF8gPT4gZGllICJjbWNhdCBmYWlsZWQiCgkJCQkgICAgIDsgMCkKCQkgICAg
IHwgZmxhZyA6OiBhcmdzID0+CgkJCSAgKGNhc2UgZmxhZyBvZgoJCQkgICAgICAiLXNlcGFyYXRl
IiA9PiBzZXBhcmF0ZSA6PSB0cnVlCgkJCSAgICB8ICItZmlsZW5hbWUiID0+IGZpbGVuYW1lc09u
bHkgOj0gdHJ1ZQoJCQkgICAgfCBfID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgU3RyaW5nLmlzUHJlZml4ICItRCIgZmxhZyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkZWZpbmVzIDo9IChTdHJpbmcuc3Vic3RyaW5nIChmbGFnLCAyLCBzaXplIGZs
YWcgLSAyKSkgOjogKCFkZWZpbmVzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZSAoImludmFsaWQgZmxhZyIg
XiBmbGFnKQoJCQkJIDsgbG9vcCBhcmdzKQoJCSAgICAgfCBfID0+IGRpZSAid3JvbmcgbnVtYmVy
IG9mIGFyZ3VtZW50cyIKCSAgICAgIGluIGxvb3AgYXJncwoJICAgICAgZW5kKSkpCiAgIGVuZAo=

--------------0D53832CA04E84343F4A7DFD--