From 39d62eedbe25c1ef6d6d033e9a7641db835f34bf Mon Sep 17 00:00:00 2001 From: hyung-hwan Date: Sun, 4 Feb 2007 05:34:36 +0000 Subject: [PATCH] *** empty log message *** --- ase/awk/rex.c | 13 ++++++++++++- ase/doc/ase.man | 32 ++++++++++++++++++++++---------- ase/rel/doc.awk | 40 +++++++++++++++++++++++++++++++++++++++- 3 files changed, 73 insertions(+), 12 deletions(-) diff --git a/ase/awk/rex.c b/ase/awk/rex.c index b624fe63..3baa6bdf 100644 --- a/ase/awk/rex.c +++ b/ase/awk/rex.c @@ -1,5 +1,5 @@ /* - * $Id: rex.c,v 1.57 2007-02-04 04:40:33 bacon Exp $ + * $Id: rex.c,v 1.58 2007-02-04 05:34:36 bacon Exp $ * * {License} */ @@ -532,6 +532,17 @@ static int __build_atom (__builder_t* builder) if (builder->ptn.curc.type == CT_EOF) return 0; + if (builder->ptn.curc.type == CT_SPECIAL && + builder->ptn.curc.value == ASE_T(')')) + { + /* due to the character reader, the right parenthesis + * is returned as a special character at the top level. + * however, it doesn't have to be special if not following + * the left parenthesis. so the coversion is performed + * here. i believe, this approach is fairly ugly */ + builder->ptn.curc.type = CT_NORMAL; + } + if (builder->ptn.curc.type == CT_SPECIAL) { if (builder->ptn.curc.value == ASE_T('(')) diff --git a/ase/doc/ase.man b/ase/doc/ase.man index 477d18f0..24528d59 100644 --- a/ase/doc/ase.man +++ b/ase/doc/ase.man @@ -6,16 +6,29 @@ ASE is a library implementing various programming languages for embedding purpos === Source === -ase - the root directory of the ase project -ase/awk - AWK module -ase/lsp - lisp module -ase/com - COM interface source code for ASE modules -ase/test/awk - -ase/test/lsp - -ase/test/com - -ase/etc - -ase/doc - +[[[ +* ase - the root directory of the ase project +* ase/awk - AWK module +* ase/lsp - lisp module +* ase/com - COM interface source code for ASE modules +* ase/test/awk - +* ase/test/lsp - +* ase/test/com - +* ase/etc - +* ase/doc - +]]] +[[[ +* ase - the root directory of the ase project +* ase/awk - AWK module +* ase/lsp - lisp module +* ase/com - COM interface source code for ASE modules +* ase/test/awk - +* ase/test/lsp - +* ase/test/com - +* ase/etc - +* ase/doc - +]]] {{{ #if defined(__BORLANDC__) #pragma hdrstop @@ -31,5 +44,4 @@ ase_awk_t* ase_awk_open ( { ase_awk_t* awk; } - }}} diff --git a/ase/rel/doc.awk b/ase/rel/doc.awk index 24a1118f..0ccf4855 100644 --- a/ase/rel/doc.awk +++ b/ase/rel/doc.awk @@ -1,6 +1,7 @@ global header, mode; global empty_line_count; global para_started; +global list_count; BEGIN { header = 1; @@ -15,6 +16,7 @@ BEGIN { print ""; print ""; + print ""; } header && /^\.[[:alpha:]]+[[:space:]]/ { @@ -96,9 +98,20 @@ header && !/^\.[[:alpha:]]+[[:space:]]/ { print "

"; para_started = 0; } - print "
";
+				print "
";
 				mode = 1;
 			}
+			else if (/\[\[\[/)
+			{
+				if (para_started)
+				{
+					print "

"; + para_started = 0; + } + print "
    "; + mode = 2; + list_count = 0; + } else { if (!para_started > 0) @@ -131,6 +144,31 @@ header && !/^\.[[:alpha:]]+[[:space:]]/ { print $0; } } + else if (mode == 2) + { + if (/^]]]$/) + { + # ))) + print ""; + print "
"; + mode = 0; + } + else if (/^\* [^[:space:]]+/) + { + gsub ("<", "\\<"); + gsub (">", "\\>"); + if (list_count > 0) print ""; + print "
  • "; + print substr ($0, 3, length($0)-2); + list_count++; + } + else + { + gsub ("<", "\\<"); + gsub (">", "\\>"); + print $0; + } + } } END {