diff options
Diffstat (limited to 'third_party/sqlite/mkopcodec.awk')
-rwxr-xr-x | third_party/sqlite/mkopcodec.awk | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/third_party/sqlite/mkopcodec.awk b/third_party/sqlite/mkopcodec.awk new file mode 100755 index 0000000..ec80953 --- /dev/null +++ b/third_party/sqlite/mkopcodec.awk @@ -0,0 +1,31 @@ +#!/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[] = { \"?\"," +} +/define OP_/ { + sub("OP_","",$2) + i++ + printf " /* %3d */ \"%s\",\n", $3, $2 +} +END { + print " };" + print " return azName[i];" + print "}" + print "#endif" +} |