mirror of
https://github.com/edeproject/ede.git
synced 2023-08-10 21:13:03 +03:00
Some mods on capone-doc
Added slet
This commit is contained in:
parent
cfff7895ed
commit
f84910bf7f
@ -87,6 +87,36 @@
|
|||||||
(else
|
(else
|
||||||
(throw "Unsupported type in 'for' loop"))))))
|
(throw "Unsupported type in 'for' loop"))))))
|
||||||
|
|
||||||
|
;;
|
||||||
|
;; Split a list to a list of pairs so we can easily
|
||||||
|
;; embed it in 'let' expression via 'slet' macro
|
||||||
|
;; e.g. (1 2 3 4) => ((1 2) (3 4))
|
||||||
|
;;
|
||||||
|
(define (explode-list lst)
|
||||||
|
(let loop ((lst lst)
|
||||||
|
(n '()))
|
||||||
|
(if (null? lst)
|
||||||
|
(reverse n)
|
||||||
|
(begin
|
||||||
|
;; huh...
|
||||||
|
(set! n (cons (list (car lst) (cadr lst)) n))
|
||||||
|
(loop (cddr lst) n)
|
||||||
|
))))
|
||||||
|
|
||||||
|
;;
|
||||||
|
;; slet or 'simplified let' is a 'let' with little less bracess
|
||||||
|
;; e.g. (let (a 1 b 2) body)
|
||||||
|
;;
|
||||||
|
(define-macro (slet . body)
|
||||||
|
`(let ,@(list (explode-list (car body)))
|
||||||
|
,@(cdr body)
|
||||||
|
))
|
||||||
|
|
||||||
|
(define-macro (slet* . body)
|
||||||
|
`(let* ,@(list (explode-list (car body)))
|
||||||
|
,@(cdr body)
|
||||||
|
))
|
||||||
|
|
||||||
;;
|
;;
|
||||||
;; range function; returns a list of numbers in form [start end)
|
;; range function; returns a list of numbers in form [start end)
|
||||||
;;
|
;;
|
||||||
|
@ -10,41 +10,56 @@ sub write_prolog {
|
|||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
<title>$_[0]</title>
|
<title>$_[0]</title>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 10px 0 0 0;
|
||||||
|
width: 83%;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
h5.function {
|
h5.function {
|
||||||
margin: 5px 0 5px 0;
|
margin: 5px 0 5px 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
||||||
color: red;
|
color: #527bbd;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 120%;
|
font-size: 120%;
|
||||||
}
|
}
|
||||||
|
|
||||||
h5.example {
|
h5.example {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding-bottom: 0.3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0 0 0 20px;
|
padding: 0.6em 0.2em 0.2em 0.2em;
|
||||||
color: gray;
|
color: black;
|
||||||
|
background: #f4f4f4;
|
||||||
|
border: 1px solid silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer {
|
.footer {
|
||||||
padding: 20px 0 20px 0;
|
padding: 20px 0 10px 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 80%;
|
font-size: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body style="margin: 20px;" text="#111111" bgcolor="#FFFFFF">
|
<body>
|
||||||
|
<div class="content">
|
||||||
EOL
|
EOL
|
||||||
}
|
}
|
||||||
|
|
||||||
sub write_epilog {
|
sub write_epilog {
|
||||||
print <<EOL
|
print <<EOL
|
||||||
|
</div> <!-- content -->
|
||||||
<div class="footer">generated with capone-doc</div>
|
<div class="footer">generated with capone-doc</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@ -53,7 +68,7 @@ EOL
|
|||||||
|
|
||||||
sub main {
|
sub main {
|
||||||
if(@ARGV eq 0) {
|
if(@ARGV eq 0) {
|
||||||
print "Usage: capone-doc [FILE]\n";
|
print "Usage: capone-doc [FILE] [TITLE]\n";
|
||||||
print "Generate html-ized documentation by extracting documentation\n";
|
print "Generate html-ized documentation by extracting documentation\n";
|
||||||
print "specific tags on the specific manner from capone source file\n";
|
print "specific tags on the specific manner from capone source file\n";
|
||||||
return;
|
return;
|
||||||
@ -62,20 +77,25 @@ sub main {
|
|||||||
$in_block = 0;
|
$in_block = 0;
|
||||||
$filename = $ARGV[0];
|
$filename = $ARGV[0];
|
||||||
|
|
||||||
|
if($ARGV[1] eq "") {
|
||||||
|
$title = $filename . " documentation";
|
||||||
|
} else {
|
||||||
|
$title = $ARGV[1];
|
||||||
|
}
|
||||||
|
|
||||||
open(INFILE, $filename) or die "Can't open $filename: $!";
|
open(INFILE, $filename) or die "Can't open $filename: $!";
|
||||||
|
|
||||||
&write_prolog($filename);
|
&write_prolog($title);
|
||||||
|
|
||||||
while(<INFILE>) {
|
while(<INFILE>) {
|
||||||
# find markers
|
# find markers
|
||||||
if(/^;;=/) {
|
if(/^;;=/) {
|
||||||
if($in_block eq 0) {
|
if($in_block eq 0) {
|
||||||
print "<div class=\"function\">\n";
|
print "<div class=\"segment\">\n";
|
||||||
$in_block = 1;
|
$in_block = 1;
|
||||||
} else {
|
} else {
|
||||||
print "</div>\n";
|
print "</div> <!-- segment -->\n";
|
||||||
print "<br />\n";
|
print "<br />\n";
|
||||||
print "<center>-- ∂ --</center>\n";
|
|
||||||
$in_block = 0;
|
$in_block = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,7 +106,6 @@ sub main {
|
|||||||
if($in_block eq 1) {
|
if($in_block eq 1) {
|
||||||
# strip comments
|
# strip comments
|
||||||
s/;;\s*\n$/<br \/>\n/;
|
s/;;\s*\n$/<br \/>\n/;
|
||||||
#s/;;\s*//;
|
|
||||||
s/;;//;
|
s/;;//;
|
||||||
|
|
||||||
# \code and \endcode
|
# \code and \endcode
|
||||||
@ -102,6 +121,9 @@ sub main {
|
|||||||
# \return
|
# \return
|
||||||
s/\\return (.*)/ <b>returns:<\/b> $1<br \/>/;
|
s/\\return (.*)/ <b>returns:<\/b> $1<br \/>/;
|
||||||
|
|
||||||
|
# \syntax
|
||||||
|
s/\\syntax (.*)/ <b>syntax:<\/b> <i>$1<\/i><br \/>/;
|
||||||
|
|
||||||
# \br
|
# \br
|
||||||
s/\\br/<br \/>/g;
|
s/\\br/<br \/>/g;
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ int main(int argc, char** argv) {
|
|||||||
do_file_or_expr(f, NULL, l, argc, argv);
|
do_file_or_expr(f, NULL, l, argc, argv);
|
||||||
fclose(f);
|
fclose(f);
|
||||||
} else {
|
} else {
|
||||||
printf("\033[33mcapone " VERSION "\033[0m (based on tinyscheme 1.39)\n");
|
printf("capone " VERSION " (based on tinyscheme 1.39)\n");
|
||||||
printf("Type \"(quit)\" or press Ctrl-C to exit interpreter when you are done.");
|
printf("Type \"(quit)\" or press Ctrl-C to exit interpreter when you are done.");
|
||||||
do_file_or_expr(stdin, NULL, l, argc, argv);
|
do_file_or_expr(stdin, NULL, l, argc, argv);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user