From f2340fc7cc350a14d897fa47f97ed6be9cae6622 Mon Sep 17 00:00:00 2001
From: drh
Lemon supports the following special directives:
The %code directive is used to specify addition C/C++ code that +is added to the end of the main output file. This is similar to +the %include directive except that %include is inserted at the +beginning of the main output file.
+ +%code is typically used to include some action routines or perhaps +a tokenizer as part of the output file.
+ +The %default_destructor directive specifies a destructor to +use for non-terminals that do not have their own destructor +specified by a separate %destructor directive. See the documentation +on the %destructor directive below for additional information.
+ +In some grammers, many different non-terminal symbols have the +same datatype and hence the same destructor. This directive is +a convenience way to specify the same destructor for all those +non-terminals using a single statement.
+ +The %default_type directive specifies the datatype of non-terminal +symbols that do no have their own datatype defined using a separate +%type directive. See the documentation on %type below for addition +information.
+The %destructor directive is used to specify a destructor for @@ -607,9 +639,9 @@ in the most recent call to Parse().
The %include directive specifies C code that is included at the top of the generated parser. You can include any text you want -- -the Lemon parser generator copies to blindly. If you have multiple -%include directives in your grammar file, their values are concatenated -before being put at the beginning of the generated parser.
+the Lemon parser generator copies it blindly. If you have multiple +%include directives in your grammar file the value of the last +%include directive overwrites all the others.The %include directive is very handy for getting some extra #include preprocessor statements at the beginning of the generated parser. diff --git a/manifest b/manifest index 0b49aed1e4..0aa1b21f72 100644 --- a/manifest +++ b/manifest @@ -1,16 +1,16 @@ -C incremental\supdate\s(CVS\s223) -D 2001-06-08T00:21:52 +C documentation\supdate\s(CVS\s224) +D 2001-06-08T00:25:18 F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4 F Makefile.in acef0f0275a5ca8e68bda165f7f05d810a207664 F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958 F VERSION 71874cb7e2a53c2bd22bb6affa7d223dd94a7a13 F configure d2051345f49f7e48604423da26e086a745c86a47 x F configure.in e7465c88bbfb76882f97769c2dd90dbba8eca5db -F doc/lemon.html e233a3e97a779c7a87e1bc4528c664a58e49dd47 +F doc/lemon.html 3ddeef6e5dee69a2bb6f5d8e4975b58f2fd8e11c F doc/report1.txt 734cbae63b1310cc643fe5e9e3da1ab55a79b99e F notes/notes1.txt b7c0812b704a022e88c621146ae50955c923d464 F notes/notes2.txt 7e3fafd5e25906c1fe1e95f13b089aa398ca403e -F notes/notes3.txt cd5e7bd2167d7ef89b1077abdfa68f0af6337744 +F notes/notes3.txt 985bf688b59f1f52bfe6e4b1f896efdeffac1432 F src/TODO 38a68a489e56e9fd4a96263e0ff9404a47368ad4 F src/btree.c 2a1a6c3ae7743ebf7f0b1632bef68d2851fe9bfd F src/btree.h f9adc22e8414402c176d71088e76afa89cc0d4b1 @@ -107,7 +107,7 @@ F www/opcode.tcl cb3a1abf8b7b9be9f3a228d097d6bf8b742c2b6f F www/sqlite.tcl cb0d23d8f061a80543928755ec7775da6e4f362f F www/tclsqlite.tcl 06f81c401f79a04f2c5ebfb97e7c176225c0aef2 F www/vdbe.tcl 0c8aaa529dd216ccbf7daaabd80985e413d5f9ad -P d07e0e80a0b33081adda8651e9a6750b2e40141a -R fd7886817d2a4ced202ba2cb4c6b400e +P 7108b699cc03d5d4dfb222ceab0196a85dbffd50 +R c74d5c7fce6c7dc0d7e612e147204b5e U drh -Z c3bf505ea512d1148c1c303d4dd729f7 +Z 2efe93a2d9b9837777b14777d744b8d1 diff --git a/manifest.uuid b/manifest.uuid index 3593b9b721..2912f766cd 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -7108b699cc03d5d4dfb222ceab0196a85dbffd50 \ No newline at end of file +d1e211fad9d787a0fdbcd11fb364d6c592c07a05 \ No newline at end of file diff --git a/notes/notes3.txt b/notes/notes3.txt index 2086580238..9d6d5938e4 100644 --- a/notes/notes3.txt +++ b/notes/notes3.txt @@ -24,7 +24,7 @@ Secondary access routines: int sqlite_table(sqlite*, int *nrow, int *ncolumn, const char ***argv); void sqlite_busy_handler(sqlite*, int(*)(void*,const char*,int), void*); -Access routines that are implement derived from primary and sec +Access routines that are derived from primary and secondary: char *sqlite_mprintf(const char *zFormat, ...); int sqlite_compile_vprintf(sqlite*, const char *zFormat, va_list);