File: mkopcodec.awk

package info (click to toggle)
sqlite3 3.7.3-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 27,208 kB
  • ctags: 12,267
  • sloc: ansic: 108,495; sh: 9,417; tcl: 6,152; makefile: 1,103; yacc: 1,003; awk: 178
file content (31 lines) | stat: -rw-r--r-- 961 bytes parent folder | download | duplicates (16)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/awk -f
#
# This AWK script scans the opcodes.h file (which is itself generated by
# another awk script) and uses the information gleaned to create the
# opcodes.c source file.
#
# Opcodes.c contains strings which are the symbolic names for the various
# opcodes used by the VDBE.  These strings are used when disassembling a
# VDBE program during tracing or as a result of the EXPLAIN keyword.
#
BEGIN {
  print "/* Automatically generated.  Do not edit */"
  print "/* See the mkopcodec.awk script for details. */"
  printf "#if !defined(SQLITE_OMIT_EXPLAIN)"
  printf    " || !defined(NDEBUG)"
  printf    " || defined(VDBE_PROFILE)"
  print     " || defined(SQLITE_DEBUG)"
  print "const char *sqlite3OpcodeName(int i){"
  print " static const char *const azName[] = { \"?\","
}
/define OP_/ {
  sub("OP_","",$2)
  i++
  printf "     /* %3d */ \"%s\",\n", $3, $2
}
END {
  print "  };"
  print "  return azName[i];"
  print "}"
  print "#endif"
}