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>