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>