Annotation of embedaddon/sqlite3/mkopcodec.awk, revision 1.1.1.1

1.1       misho       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: #
                     11: BEGIN {
                     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:   mx = 0
                     21: }
                     22: /define OP_/ {
                     23:   sub("OP_","",$2)
                     24:   i = $3+0
                     25:   label[i] = $2
                     26:   if( mx<i ) mx = i
                     27: }
                     28: END {
                     29:   for(i=1; i<=mx; i++){
                     30:     printf "     /* %3d */ \"%s\",\n", i, label[i]
                     31:   }
                     32:   print "  };"
                     33:   print "  return azName[i];"
                     34:   print "}"
                     35:   print "#endif"
                     36: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>