123456789101112131415161718192021222324252627282930313233343536 |
- #!/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"
- }
|