Preliminary syntax ducking.
This commit is contained in:
parent
396e2d9896
commit
e6d798bc2a
6 changed files with 43 additions and 9 deletions
|
@ -356,3 +356,16 @@ A simple module with less-common formatting functions.
|
||||||
Converts given number to a string with two-digit fractional
|
Converts given number to a string with two-digit fractional
|
||||||
part. Should the fractional part be 0, it is replaced with the string
|
part. Should the fractional part be 0, it is replaced with the string
|
||||||
"--".
|
"--".
|
||||||
|
|
||||||
|
## util-tag [module]
|
||||||
|
|
||||||
|
(import util-tag)
|
||||||
|
|
||||||
|
A unifying module for compound data structures tagging.
|
||||||
|
|
||||||
|
### make-tag [syntax]
|
||||||
|
|
||||||
|
* ```name``` - unquoted symbol to base the tag on
|
||||||
|
|
||||||
|
Creates a unique and collision free symbol to identify compound data
|
||||||
|
structures based on lists and pairs.
|
||||||
|
|
11
src/Makefile
11
src/Makefile
|
@ -55,18 +55,20 @@ HACKERBASE-OBJS=hackerbase.o testing.o listing.o cal-month.o \
|
||||||
table-processor.o table-border.o table-style.o sgr-state.o \
|
table-processor.o table-border.o table-style.o sgr-state.o \
|
||||||
util-utf8.o sgr-cell.o template-list-expander.o \
|
util-utf8.o sgr-cell.o template-list-expander.o \
|
||||||
box-drawing.o util-list.o export-web-static.o util-dir.o \
|
box-drawing.o util-list.o export-web-static.o util-dir.o \
|
||||||
dokuwiki.o racket-kwargs.o
|
dokuwiki.o racket-kwargs.o duck.o
|
||||||
|
|
||||||
GENDOC-SOURCES=gendoc.scm duck-extract.import.scm \
|
GENDOC-SOURCES=gendoc.scm duck-extract.import.scm \
|
||||||
util-time.import.scm util-csv.import.scm util-git.import.scm \
|
util-time.import.scm util-csv.import.scm util-git.import.scm \
|
||||||
util-io.import.scm util-stdout.import.scm \
|
util-io.import.scm util-stdout.import.scm \
|
||||||
util-parser.import.scm util-list.import.scm \
|
util-parser.import.scm util-list.import.scm \
|
||||||
util-proc.import.scm util-format.import.scm
|
util-proc.import.scm util-format.import.scm \
|
||||||
|
util-tag.import.scm
|
||||||
|
|
||||||
GENDOC-OBJS=gendoc.o duck-extract.o util-time.o util-csv.o util-io.o \
|
GENDOC-OBJS=gendoc.o duck-extract.o util-time.o util-csv.o util-io.o \
|
||||||
progress.o testing.o util-proc.o util-git.o util-io.o \
|
progress.o testing.o util-proc.o util-git.o util-io.o \
|
||||||
util-stdout.o util-parser.o util-list.o util-proc.o \
|
util-stdout.o util-parser.o util-list.o util-proc.o \
|
||||||
util-format.o
|
util-format.o racket-kwargs.o util-dict-list.o util-tag.o \
|
||||||
|
util-set-list.o duck.o
|
||||||
|
|
||||||
.PHONY: imports
|
.PHONY: imports
|
||||||
imports: $(HACKERBASE-DEPS)
|
imports: $(HACKERBASE-DEPS)
|
||||||
|
@ -276,7 +278,7 @@ UTIL-TIME-SOURCES=util-time.scm duck.import.scm
|
||||||
util-time.o: util-time.import.scm
|
util-time.o: util-time.import.scm
|
||||||
util-time.import.scm: $(UTIL-TIME-SOURCES)
|
util-time.import.scm: $(UTIL-TIME-SOURCES)
|
||||||
|
|
||||||
UTIL-TAG-SOURCES=util-tag.scm testing.import.scm
|
UTIL-TAG-SOURCES=util-tag.scm testing.import.scm duck.import.scm
|
||||||
|
|
||||||
util-tag.o: util-tag.import.scm
|
util-tag.o: util-tag.import.scm
|
||||||
util-tag.import.scm: $(UTIL-TAG-SOURCES)
|
util-tag.import.scm: $(UTIL-TAG-SOURCES)
|
||||||
|
@ -508,6 +510,7 @@ dokuwiki.import.scm: $(DOKUWIKI-SOURCES)
|
||||||
DUCK-SOURCES=duck.scm
|
DUCK-SOURCES=duck.scm
|
||||||
|
|
||||||
duck.import.scm: $(DUCK-SOURCES)
|
duck.import.scm: $(DUCK-SOURCES)
|
||||||
|
duck.o: duck.import.scm
|
||||||
|
|
||||||
DUCK-EXTRACT-SOURCES=duck-extract.scm util-proc.import.scm
|
DUCK-EXTRACT-SOURCES=duck-extract.scm util-proc.import.scm
|
||||||
|
|
||||||
|
|
|
@ -169,6 +169,12 @@
|
||||||
(newline)
|
(newline)
|
||||||
(print-duck-text (caddr sec)))
|
(print-duck-text (caddr sec)))
|
||||||
|
|
||||||
|
(define (print-duck-syntax sec)
|
||||||
|
(newline)
|
||||||
|
(print "### " (cadr sec) " [syntax]")
|
||||||
|
(newline)
|
||||||
|
(print-duck-text (caddr sec)))
|
||||||
|
|
||||||
(define (print-duck-unknown sec)
|
(define (print-duck-unknown sec)
|
||||||
(print sec))
|
(print sec))
|
||||||
|
|
||||||
|
@ -181,6 +187,7 @@
|
||||||
((VAR) (print-duck-variable (car mod)))
|
((VAR) (print-duck-variable (car mod)))
|
||||||
((PAR) (print-duck-parameter (car mod)))
|
((PAR) (print-duck-parameter (car mod)))
|
||||||
((FUN) (print-duck-procedure (car mod)))
|
((FUN) (print-duck-procedure (car mod)))
|
||||||
|
((STX) (print-duck-syntax (car mod)))
|
||||||
(else (print-duck-unknown (car mod)))))
|
(else (print-duck-unknown (car mod)))))
|
||||||
(loop (cdr mod)))))
|
(loop (cdr mod)))))
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
;; CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
;; CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
(declare (unit duck))
|
||||||
|
|
||||||
(module
|
(module
|
||||||
duck
|
duck
|
||||||
(
|
(
|
||||||
|
@ -96,8 +98,8 @@
|
||||||
(module
|
(module
|
||||||
modname
|
modname
|
||||||
exports
|
exports
|
||||||
(import (only scheme define set! quote reverse list quasiquote)
|
(import scheme
|
||||||
(only (chicken module) export)
|
(chicken module)
|
||||||
(chicken base)
|
(chicken base)
|
||||||
duck
|
duck
|
||||||
)
|
)
|
||||||
|
|
|
@ -28,4 +28,6 @@
|
||||||
util-parser
|
util-parser
|
||||||
util-list
|
util-list
|
||||||
util-proc
|
util-proc
|
||||||
util-format)
|
util-format
|
||||||
|
util-tag
|
||||||
|
)
|
||||||
|
|
|
@ -25,8 +25,11 @@
|
||||||
|
|
||||||
(declare (unit util-tag))
|
(declare (unit util-tag))
|
||||||
|
|
||||||
(module
|
(import duck)
|
||||||
|
|
||||||
|
(module*
|
||||||
util-tag
|
util-tag
|
||||||
|
#:doc ("A unifying module for compound data structures tagging.")
|
||||||
(
|
(
|
||||||
make-tag
|
make-tag
|
||||||
util-tag-make
|
util-tag-make
|
||||||
|
@ -37,7 +40,11 @@
|
||||||
(chicken random))
|
(chicken random))
|
||||||
|
|
||||||
;; Syntactic wrapper to allow easy tag creation
|
;; Syntactic wrapper to allow easy tag creation
|
||||||
(define-syntax make-tag
|
(define-syntax/doc make-tag
|
||||||
|
("* ```name``` - unquoted symbol to base the tag on
|
||||||
|
|
||||||
|
Creates a unique and collision free symbol to identify compound data
|
||||||
|
structures based on lists and pairs.")
|
||||||
(syntax-rules ()
|
(syntax-rules ()
|
||||||
((_ tag)
|
((_ tag)
|
||||||
(util-tag-make 'tag))))
|
(util-tag-make 'tag))))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue