File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / sqlite3 / mkopcodec.awk
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:04:16 2012 UTC (12 years, 3 months ago) by misho
Branches: sqlite3, MAIN
CVS tags: v3_7_10, HEAD
sqlite3

    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>