Annotation of embedaddon/sqlite3/mkopcodec.awk, revision 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>