updated docs a bit
This commit is contained in:
parent
be69e7b40c
commit
d03a4f4a33
@ -35,7 +35,7 @@ Embedding an interpreter typically involves the following steps.
|
|||||||
- open a new interpreter
|
- open a new interpreter
|
||||||
- parse in a source script
|
- parse in a source script
|
||||||
- open a new runtime context
|
- open a new runtime context
|
||||||
- execute BEGIN,pattern-action,END blocks or call a function
|
- execute pattern-action blocks or call a function
|
||||||
- close the runtime context
|
- close the runtime context
|
||||||
- close the interpter
|
- close the interpter
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ int main ()
|
|||||||
);
|
);
|
||||||
if (!rtx) FAIL (qse_awk_geterrmsg(awk));
|
if (!rtx) FAIL (qse_awk_geterrmsg(awk));
|
||||||
|
|
||||||
/* exeucte BEGIN,pattern-action,END blocks */
|
/* exeucte pattern-action blocks */
|
||||||
retv = qse_awk_rtx_loop (rtx);
|
retv = qse_awk_rtx_loop (rtx);
|
||||||
if (!retv) FAIL (qse_awk_rtx_geterrmsg(rtx));
|
if (!retv) FAIL (qse_awk_rtx_geterrmsg(rtx));
|
||||||
|
|
||||||
@ -125,7 +125,7 @@ int main (int argc, char* argv[])
|
|||||||
MyAwk::SourceString in(QSE_T("BEGIN { print \"hello, world\" }"));
|
MyAwk::SourceString in(QSE_T("BEGIN { print \"hello, world\" }"));
|
||||||
if (awk.parse (in, MyAwk::Source::NONE) == QSE_NULL) FAIL (awk);
|
if (awk.parse (in, MyAwk::Source::NONE) == QSE_NULL) FAIL (awk);
|
||||||
|
|
||||||
// execute BEGIN, pattern-action, END blocks.
|
// execute pattern-action blocks.
|
||||||
MyAwk::Value r;
|
MyAwk::Value r;
|
||||||
if (awk.loop (&r) <= -1) FAIL (awk);
|
if (awk.loop (&r) <= -1) FAIL (awk);
|
||||||
|
|
||||||
@ -179,13 +179,53 @@ QSEAWK implements the language described in the book
|
|||||||
<a class="el" href="http://cm.bell-labs.com/cm/cs/awkbook/">
|
<a class="el" href="http://cm.bell-labs.com/cm/cs/awkbook/">
|
||||||
The AWK Proramming Language</a> with various @ref awk_ext "extensions".
|
The AWK Proramming Language</a> with various @ref awk_ext "extensions".
|
||||||
|
|
||||||
- BEGIN block
|
An AWK program, at the top level, can composed of the following elements shown below. Each language element requires the option in the second column to be on.
|
||||||
- END block
|
|
||||||
- Pattern-action block
|
<table>
|
||||||
- User-defined functions
|
<tr><th>Element </th><th>Option </th></tr>
|
||||||
- Expressions
|
<tr><td>Global variable declaration</td><td>#QSE_AWK_EXPLICIT </td></tr>
|
||||||
- Statements
|
<tr><td>Pattern-action block </td><td>#QSE_AWK_PABLOCK </td></tr>
|
||||||
- Streams
|
<tr><td>User-defined function </td><td> </td></tr>
|
||||||
|
<tr><td>\@include </td><td>#QSE_AWK_INCLUDE </td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
- pattern-action-block := pattern action-block
|
||||||
|
- pattern := BEGIN | END | expression | expression-range
|
||||||
|
- expression-range := expression , expression
|
||||||
|
|
||||||
|
A pattern in a pattern action block can be omitted.
|
||||||
|
The action part can be omitted if the pattern is not BEGIN nor END.
|
||||||
|
|
||||||
|
A pattern-action block, and a user-defined function can have the following elements.
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr><th>Element </th><th>Option </th></tr>
|
||||||
|
<tr><td>Local variable declaration</td><td>#QSE_AWK_EXPLICIT </td></tr>
|
||||||
|
<tr><td>Statement </td><td> </td></tr>
|
||||||
|
<tr><td>getline </td><td>#QSE_AWK_RIO </td></tr>
|
||||||
|
<tr><td>print </td><td>#QSE_AWK_RIO </td></tr>
|
||||||
|
<tr><td>nextofile </td><td>#QSE_AWK_NEXTOFILE </td></tr>
|
||||||
|
<tr><td>reset </td><td>#QSE_AWK_RESET </td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
AWK has the following statement constructs.
|
||||||
|
- if
|
||||||
|
- while
|
||||||
|
- for
|
||||||
|
- do .. while
|
||||||
|
- break
|
||||||
|
- continue
|
||||||
|
- return
|
||||||
|
- exit
|
||||||
|
- next
|
||||||
|
- nextfile
|
||||||
|
- nextofile
|
||||||
|
- delete
|
||||||
|
- reset
|
||||||
|
- print
|
||||||
|
- printf
|
||||||
|
- expression
|
||||||
|
|
||||||
@section awk_ext AWK LANGUAGE EXTENSIONS
|
@section awk_ext AWK LANGUAGE EXTENSIONS
|
||||||
Some language extensions are implemented and those can be enabled by setting
|
Some language extensions are implemented and those can be enabled by setting
|
||||||
@ -299,9 +339,7 @@ BEGIN {
|
|||||||
@endcode
|
@endcode
|
||||||
|
|
||||||
@subsection awk_ext_return RETURN
|
@subsection awk_ext_return RETURN
|
||||||
The return statement is valid in BEGIN blocks, END blocks, and pattern-action
|
The return statement is valid in pattern-action blocks as well as in functions. The execution of a calling block is aborted once the return statement is executed.
|
||||||
blocks as well as in functions. The execution of a calling block is aborted
|
|
||||||
once the return statement is executed.
|
|
||||||
|
|
||||||
If #QSE_AWK_MAPTOVAR is on, you can return an arrayed value from a function.
|
If #QSE_AWK_MAPTOVAR is on, you can return an arrayed value from a function.
|
||||||
@code
|
@code
|
||||||
|
Loading…
Reference in New Issue
Block a user