diff options
author | Marc Espie <espie@cvs.openbsd.org> | 2012-04-14 13:13:20 +0000 |
---|---|---|
committer | Marc Espie <espie@cvs.openbsd.org> | 2012-04-14 13:13:20 +0000 |
commit | bd6d68edd8e31420e5df2e7d0885f7fe626024c0 (patch) | |
tree | f9c365a4316c3ff969e1e44d83e4f4cc93aaa870 /lib/libsqlite3/mkopcodec.awk | |
parent | d09c5670aff6650ba6549241837f58d36acd15a5 (diff) |
sqlite 3.7.11 library, vendor sources
Diffstat (limited to 'lib/libsqlite3/mkopcodec.awk')
-rw-r--r-- | lib/libsqlite3/mkopcodec.awk | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/libsqlite3/mkopcodec.awk b/lib/libsqlite3/mkopcodec.awk new file mode 100644 index 00000000000..2ef77d4cca8 --- /dev/null +++ b/lib/libsqlite3/mkopcodec.awk @@ -0,0 +1,36 @@ +#!/usr/bin/awk -f +# +# This AWK script scans the opcodes.h file (which is itself generated by +# another awk script) and uses the information gleaned to create the +# opcodes.c source file. +# +# Opcodes.c contains strings which are the symbolic names for the various +# opcodes used by the VDBE. These strings are used when disassembling a +# VDBE program during tracing or as a result of the EXPLAIN keyword. +# +BEGIN { + print "/* Automatically generated. Do not edit */" + print "/* See the mkopcodec.awk script for details. */" + printf "#if !defined(SQLITE_OMIT_EXPLAIN)" + printf " || !defined(NDEBUG)" + printf " || defined(VDBE_PROFILE)" + print " || defined(SQLITE_DEBUG)" + print "const char *sqlite3OpcodeName(int i){" + print " static const char *const azName[] = { \"?\"," + mx = 0 +} +/define OP_/ { + sub("OP_","",$2) + i = $3+0 + label[i] = $2 + if( mx<i ) mx = i +} +END { + for(i=1; i<=mx; i++){ + printf " /* %3d */ \"%s\",\n", i, label[i] + } + print " };" + print " return azName[i];" + print "}" + print "#endif" +} |