1#!/usr/bin/awk -f 2# 3# This AWK script scans the opcodes.h file (which is itself generated by 4# another awk script) and uses the information gleaned to create the 5# opcodes.c source file. 6# 7# Opcodes.c contains strings which are the symbolic names for the various 8# opcodes used by the VDBE. These strings are used when disassembling a 9# VDBE program during tracing or as a result of the EXPLAIN keyword. 10# 11BEGIN { 12 print "/* Automatically generated. Do not edit */" 13 print "/* See the mkopcodec.awk script for details. */" 14 printf "#if !defined(SQLITE_OMIT_EXPLAIN)" 15 printf " || !defined(NDEBUG)" 16 printf " || defined(VDBE_PROFILE)" 17 print " || defined(SQLITE_DEBUG)" 18 print "const char *sqlite3OpcodeName(int i){" 19 print " static const char *const azName[] = { \"?\"," 20} 21/define OP_/ { 22 sub("OP_","",$2) 23 i++ 24 printf " /* %3d */ \"%s\",\n", $3, $2 25} 26END { 27 print " };" 28 print " return azName[i];" 29 print "}" 30 print "#endif" 31} 32