text: #include "perly-5.13.10.h"
  enum token_type {
      TOKENTYPE_NONE,
      TOKENTYPE_IVAL,
      TOKENTYPE_OPNUM, /* pl_yylval.ival contains an opcode number */
      TOKENTYPE_PVAL,
      TOKENTYPE_OPVAL,
      TOKENTYPE_GVVAL
  };
  
  static struct debug_tokens {
      const int token;
      enum token_type type;
      const char *name;
  } const debug_tokens[] =
  {
      { ADDOP,		TOKENTYPE_OPNUM,	"ADDOP" },
      { ANDAND,		TOKENTYPE_NONE,		"ANDAND" },
      { ANDOP,		TOKENTYPE_NONE,		"ANDOP" },
      { ANONSUB,		TOKENTYPE_IVAL,		"ANONSUB" },
      { ARROW,		TOKENTYPE_NONE,		"ARROW" },
      { ASSIGNOP,		TOKENTYPE_OPNUM,	"ASSIGNOP" },
      { BITANDOP,		TOKENTYPE_OPNUM,	"BITANDOP" },
      { BITOROP,		TOKENTYPE_OPNUM,	"BITOROP" },
      { COLONATTR,	TOKENTYPE_NONE,		"COLONATTR" },
      { CONTINUE,		TOKENTYPE_NONE,		"CONTINUE" },
      { DEFAULT,		TOKENTYPE_NONE,		"DEFAULT" },
      { DO,		TOKENTYPE_NONE,		"DO" },
      { DOLSHARP,		TOKENTYPE_NONE,		"DOLSHARP" },
      { DORDOR,		TOKENTYPE_NONE,		"DORDOR" },
      { DOROP,		TOKENTYPE_OPNUM,	"DOROP" },
      { DOTDOT,		TOKENTYPE_IVAL,		"DOTDOT" },
      { ELSE,		TOKENTYPE_NONE,		"ELSE" },
      { ELSIF,		TOKENTYPE_IVAL,		"ELSIF" },
      { EQOP,		TOKENTYPE_OPNUM,	"EQOP" },
      { FOR,		TOKENTYPE_IVAL,		"FOR" },
      { FORMAT,		TOKENTYPE_NONE,		"FORMAT" },
      { FUNC,		TOKENTYPE_OPNUM,	"FUNC" },
      { FUNC0,		TOKENTYPE_OPNUM,	"FUNC0" },
      { FUNC0SUB,		TOKENTYPE_OPVAL,	"FUNC0SUB" },
      { FUNC1,		TOKENTYPE_OPNUM,	"FUNC1" },
      { FUNCMETH,		TOKENTYPE_OPVAL,	"FUNCMETH" },
      { GIVEN,		TOKENTYPE_IVAL,		"GIVEN" },
      { HASHBRACK,	TOKENTYPE_NONE,		"HASHBRACK" },
      { IF,		TOKENTYPE_IVAL,		"IF" },
      { LABEL,		TOKENTYPE_PVAL,		"LABEL" },
      { LOCAL,		TOKENTYPE_IVAL,		"LOCAL" },
      { LOOPEX,		TOKENTYPE_OPNUM,	"LOOPEX" },
      { LSTOP,		TOKENTYPE_OPNUM,	"LSTOP" },
      { LSTOPSUB,		TOKENTYPE_OPVAL,	"LSTOPSUB" },
      { MATCHOP,		TOKENTYPE_OPNUM,	"MATCHOP" },
      { METHOD,		TOKENTYPE_OPVAL,	"METHOD" },
      { MULOP,		TOKENTYPE_OPNUM,	"MULOP" },
      { MY,		TOKENTYPE_IVAL,		"MY" },
      { MYSUB,		TOKENTYPE_NONE,		"MYSUB" },
      { NOAMP,		TOKENTYPE_NONE,		"NOAMP" },
      { NOTOP,		TOKENTYPE_NONE,		"NOTOP" },
      { OROP,		TOKENTYPE_IVAL,		"OROP" },
      { OROR,		TOKENTYPE_NONE,		"OROR" },
      { PACKAGE,		TOKENTYPE_NONE,		"PACKAGE" },
      { PLUGEXPR,		TOKENTYPE_OPVAL,	"PLUGEXPR" },
      { PLUGSTMT,		TOKENTYPE_OPVAL,	"PLUGSTMT" },
      { PMFUNC,		TOKENTYPE_OPVAL,	"PMFUNC" },
      { POSTDEC,		TOKENTYPE_NONE,		"POSTDEC" },
      { POSTINC,		TOKENTYPE_NONE,		"POSTINC" },
      { POWOP,		TOKENTYPE_OPNUM,	"POWOP" },
      { PREDEC,		TOKENTYPE_NONE,		"PREDEC" },
      { PREINC,		TOKENTYPE_NONE,		"PREINC" },
      { PRIVATEREF,	TOKENTYPE_OPVAL,	"PRIVATEREF" },
      { REFGEN,		TOKENTYPE_NONE,		"REFGEN" },
      { RELOP,		TOKENTYPE_OPNUM,	"RELOP" },
      { SHIFTOP,		TOKENTYPE_OPNUM,	"SHIFTOP" },
      { SUB,		TOKENTYPE_NONE,		"SUB" },
      { THING,		TOKENTYPE_OPVAL,	"THING" },
      { UMINUS,		TOKENTYPE_NONE,		"UMINUS" },
      { UNIOP,		TOKENTYPE_OPNUM,	"UNIOP" },
      { UNIOPSUB,		TOKENTYPE_OPVAL,	"UNIOPSUB" },
      { UNLESS,		TOKENTYPE_IVAL,		"UNLESS" },
      { UNTIL,		TOKENTYPE_IVAL,		"UNTIL" },
      { USE,		TOKENTYPE_IVAL,		"USE" },
      { WHEN,		TOKENTYPE_IVAL,		"WHEN" },
      { WHILE,		TOKENTYPE_IVAL,		"WHILE" },
      { WORD,		TOKENTYPE_OPVAL,	"WORD" },
      { YADAYADA,		TOKENTYPE_IVAL,		"YADAYADA" },
      /* added by Perl::Lexer */
      { GRAMPROG, TOKENTYPE_OPNUM, "GRAMPROG" },
      { GRAMEXPR, TOKENTYPE_OPNUM, "GRAMEXPR" },
      { GRAMBLOCK, TOKENTYPE_OPNUM, "GRAMBLOCK" },
      { GRAMBARESTMT, TOKENTYPE_OPNUM, "GRAMBARESTMT" },
      { GRAMFULLSTMT, TOKENTYPE_OPNUM, "GRAMFULLSTMT" },
      { GRAMSTMTSEQ, TOKENTYPE_OPNUM, "GRAMSTMTSEQ" },
      { QWLIST, TOKENTYPE_OPNUM, "QWLIST" },
      { REQUIRE, TOKENTYPE_OPNUM, "REQUIRE" },
      { PREC_LOW, TOKENTYPE_OPNUM, "PREC_LOW" },
      { PEG, TOKENTYPE_OPNUM, "PEG" },
      { 0,		TOKENTYPE_NONE,		NULL }
  };
  
  