OSDN Git Service

Extend pmacro language, add testsuite.
authordevans <devans>
Mon, 13 Jul 2009 20:55:21 +0000 (20:55 +0000)
committerdevans <devans>
Mon, 13 Jul 2009 20:55:21 +0000 (20:55 +0000)
commit7ab184791e2d5a5b350aea388afbaa1bf31a6776
tree19318eba43238f664e0fb6c537f03f49de3f4f1c
parent2cead02844066e0aa5871f86feeecf9a4365fb38
Extend pmacro language, add testsuite.
* Makefile.am (SUBDIRS): Add testsuite.
* Makefile.in: Regenerate.
* configure.in (AC_OUTPUT): Create testsuite/Makefile,
testsuite/test-utils.sh.
* configure: Regenerate.
* dev.scm (cload): Handle testsuite app.
(load-testsuite): New function.
* pmacros.scm: (-pmacro-debug?): New global.
(-smacro-table): New global.
(-smacro-lookup, -smacro-set!): New functions.
(-pmacro-make): New argument `syntactic-form?', all callers updated.
(-pmacro-syntactic-form?): New function.
(-pmacro-expected-number, -pmacro-verify-number): New functions.
(-pmacro-expected-integer, -pmacro-verify-integer): New functions.
(-pmacro-expected-non-negative-integer): New function.
(-pmacro-verify-non-negative-integer): New function.
(-pmacro-expand-expr-list): New function.
(-pmacro-process-args-1): Renamed from -pmacro-process-args.
(-pmacro-process-args): Renamed from -pmacro-invoke.
(-pmacro-apply, -smacro-apply): New functions.
(-pmacro-expand): Rewrite syntactic form processing.
(-pmacro-build-lambda): Reformat.
(define-pmacro): Watch for more errors in definition.
(pmacro-debug): New function.
(pmacro-trace): Set/reset -pmacro-debug?.
(all existing builtin pmacro helpers): Rename to -pmacro-builtin-foo.
(-pmacro-builtin-substring): Fix.  Add support for `end' marker.
(-pmacro-builtin-for-each, et.al.): New helpers for .for-each, .let,
.if, .case, .cond, .begin, .print, .dump, .error, .list, .ref,
.length, .replicate, .equals, .and, .or, .not, .eq, .ne, .lt, .gt,
.le, .ge, .add, .sub, .mul, .div, .rem, .sll, .srl, .sra, .bitand,
.bitor, .bitxor, bitinv, .car, .cdr, .caar, .cadr, .cdar, .cddr.
(pmacros-init!): Initialize -smacro-table.
Rewrite pmacro initialization.
* read.scm (reader-process-expanded): Renamed from
-reader-process-expanded.  All callers updated.
Recognize () as a no-op.
(cpu-load): Tweak logging messages.
* utils.scm (message): Add comment.
* cpu/play.cpu: Add some instructions to play with .let.
* doc/cgenint.texi: Move some debugging related docs to here from
cgen.texi.
* doc/pmacros.texi: Reorganize.  Add docs for new builtin pmacros.
* testsuite/Makefile.am: New file.
* testsuite/Makefile.in: New file.
* testsuite/test-utils.sh.in: New file.
* testsuite/run-tests.sh: New file.
* testsuite/testsuite.cpu: New file.
* testsuite/pmacros-1.test: New file.
20 files changed:
cgen/ChangeLog
cgen/Makefile.am
cgen/Makefile.in
cgen/cgen-testsuite.scm [new file with mode: 0644]
cgen/configure
cgen/configure.in
cgen/cpu/play.cpu
cgen/dev.scm
cgen/doc/cgenint.texi
cgen/doc/pmacros.texi
cgen/pmacros.scm
cgen/read.scm
cgen/testsuite.scm [new file with mode: 0644]
cgen/testsuite/Makefile.am [new file with mode: 0644]
cgen/testsuite/Makefile.in [new file with mode: 0644]
cgen/testsuite/pmacros-1.test [new file with mode: 0644]
cgen/testsuite/run-tests.sh [new file with mode: 0644]
cgen/testsuite/test-utils.sh.in [new file with mode: 0644]
cgen/testsuite/testsuite.cpu [new file with mode: 0644]
cgen/utils.scm