diff --git a/ase/doc/awk-en.man b/ase/doc/awk-en.man index 7c434ba7..9ab0b5e9 100644 --- a/ase/doc/awk-en.man +++ b/ase/doc/awk-en.man @@ -1,49 +1,47 @@ .title ASEAWK == ASEAWK == -ASE provides an embeddable interpreter of a dialect of the AWK programming language. The language implemented is slightly different from {the version developed by Brian W. Kernighan, http://cm.bell-labs.com/cm/cs/awkbook/index.html} and has been adjusted to the author's preference. +ASE provides an embeddable processor of a dialect of the AWK programming language. The language implemented is slightly different from {the version developed by Brian W. Kernighan, http://cm.bell-labs.com/cm/cs/awkbook/index.html} and has been adjusted to the author's preference. -=== User Guide === - -Embedding the interpreter needs one or more header files to be included. +Embedding a processor requires the following basic steps. [[[ -* ase/awk/awk.h - exports most of the data types and functions for basic embedding. +* Create a processor instance +* Parse an AWK script +* Run the script parsed +* Destroy the instance ]]] -Two more header files can be included depending on the need. -[[[ -* ase/awk/val.h - exports data types and functions to manipulate the AWK values. -* ase/awk/map.h - exports data types and functions to access the named variable holder. -]]] - - -=== ABC === - -An awk object is created with ase_awk_open. The function requires a set of system primitive functions to be passed. - -The object created with ase_awk_open should be destroyed with ase_awk_close when no longer needed. +The following code fragment illustrates the basic steps. {{{ - ase_awk_t* awk; +1) #include - awk = ase_awk_open (); - - if (ase_awk_parse (awk) == -1) - { - /* parse error */ - } - else - { - if (ase_awk_run (awk) == -1) - { - /* run-time error */ - } - } - - ase_awk_close (awk); +2) ase_awk_t* awk; +3) awk = ase_awk_open (...); +4) if (ase_awk_parse (awk, ...) == -1) + { + /* parse error */ + } + else + { +5) if (ase_awk_run (awk, ...) == -1) + { + /* run-time error */ + } + } +6) ase_awk_close (awk); }}} +((( +* Most of the functions and data types needed are defined in the header file . +* ase_awk_t represents the processor. +* ase_awk_open creates the processor instance. +* ase_awk_parse parses an AWK script. +* ase_awk_run executes the script parsed. +* ase_awk_close destroys the processor instance. +))) + === Primitive Functions === ase_awk_open requires a set of primitive functions to be passed. This set include pointers to the system primitive functions for system dependent operation such as memory allocation, string formatting, etc. diff --git a/ase/rel/doc.awk b/ase/rel/doc.awk index 2c60f21e..847453c3 100644 --- a/ase/rel/doc.awk +++ b/ase/rel/doc.awk @@ -1,5 +1,5 @@ /* - * $Id: doc.awk,v 1.11 2007-02-17 14:22:03 bacon Exp $ + * $Id: doc.awk,v 1.12 2007-02-20 05:40:11 bacon Exp $ * * {License} */ @@ -145,6 +145,17 @@ header && !/^\.[[:alpha:]]+[[:space:]]/ { mode = 2; list_count = 0; } + else if (/\(\(\(/) + { + if (para_started) + { + print "

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