summaryrefslogtreecommitdiffstats
path: root/third_party/sqlite/mkopcodec.awk
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/sqlite/mkopcodec.awk')
-rwxr-xr-xthird_party/sqlite/mkopcodec.awk31
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"
+}