#include <common.hpp>
TokenInfo decl_tokens[] = {
{Enum::Token::Type::Return, Enum::Token::Kind::Return, "Return", "return"},
{Enum::Token::Type::Add, Enum::Token::Kind::Operator, "Add", "+"},
{Enum::Token::Type::Sub, Enum::Token::Kind::Operator, "Sub", "-"},
{Enum::Token::Type::Mul, Enum::Token::Kind::Operator, "Mul", "*"},
{Enum::Token::Type::Div, Enum::Token::Kind::Operator, "Div", "/"},
{Enum::Token::Type::Mod, Enum::Token::Kind::Operator, "Mod", "%"},
{Enum::Token::Type::ThreeTermOperator, Enum::Token::Kind::Operator, "ThreeTermOperator", "?"},
{Enum::Token::Type::Greater, Enum::Token::Kind::Operator, "Greater", ">"},
{Enum::Token::Type::Less, Enum::Token::Kind::Operator, "Less", "<"},
{Enum::Token::Type::StringAdd, Enum::Token::Kind::Operator, "StringAdd", "."},
{Enum::Token::Type::Ref, Enum::Token::Kind::Operator, "Ref", "\\"},
{Enum::Token::Type::Glob, Enum::Token::Kind::Operator, "Glob", "*"},
{Enum::Token::Type::BitNot, Enum::Token::Kind::Operator, "BitNot", "~"},
{Enum::Token::Type::BitOr, Enum::Token::Kind::Operator, "BitOr", "|"},
{Enum::Token::Type::Or, Enum::Token::Kind::Operator, "Or", "or"},
{Enum::Token::Type::BitAnd, Enum::Token::Kind::Operator, "BitAnd", "&"},
{Enum::Token::Type::And, Enum::Token::Kind::Operator, "And", "and"},
{Enum::Token::Type::BitXOr, Enum::Token::Kind::Operator, "BitXOr", "^"},
{Enum::Token::Type::XOr, Enum::Token::Kind::Operator, "XOr", "xor"},
{Enum::Token::Type::StringMul, Enum::Token::Kind::Operator, "StringMul", "x"},
{Enum::Token::Type::AddEqual, Enum::Token::Kind::Assign, "AddEqual", "+="},
{Enum::Token::Type::SubEqual, Enum::Token::Kind::Assign, "SubEqual", "-="},
{Enum::Token::Type::MulEqual, Enum::Token::Kind::Assign, "MulEqual", "*="},
{Enum::Token::Type::DivEqual, Enum::Token::Kind::Assign, "DivEqual", "/="},
{Enum::Token::Type::ModEqual, Enum::Token::Kind::Assign, "ModEqual", "%="},
{Enum::Token::Type::StringAdd, Enum::Token::Kind::Assign, "StringAdd", ".="},
{Enum::Token::Type::GreaterEqual, Enum::Token::Kind::Operator, "GreaterEqual", ">="},
{Enum::Token::Type::LessEqual, Enum::Token::Kind::Operator, "LessEqual", "<="},
{Enum::Token::Type::EqualEqual, Enum::Token::Kind::Operator, "EqualEqual", "=="},
{Enum::Token::Type::Diamond, Enum::Token::Kind::Operator, "Diamond", "<>"},
{Enum::Token::Type::Compare, Enum::Token::Kind::Operator, "Compare", "<=>"},
{Enum::Token::Type::PolymorphicCompare, Enum::Token::Kind::Operator, "PolymorphicCompare", "~~"},
{Enum::Token::Type::RegOK, Enum::Token::Kind::Operator, "RegOK", "=~"},
{Enum::Token::Type::RegNot, Enum::Token::Kind::Operator, "RegNot", "!~"},
{Enum::Token::Type::NotEqual, Enum::Token::Kind::Operator, "NotEqual", "!="},
{Enum::Token::Type::ArraySize, Enum::Token::Kind::Operator, "ArraySize", "$#"},
{Enum::Token::Type::StringLess, Enum::Token::Kind::Operator, "StringLess", "lt"},
{Enum::Token::Type::StringLessEqual, Enum::Token::Kind::Operator, "StringLessEqual", "le"},
{Enum::Token::Type::StringGreater, Enum::Token::Kind::Operator, "StringGreater", "gt"},
{Enum::Token::Type::StringGreaterEqual, Enum::Token::Kind::Operator, "StringGreaterEqual", "ge"},
{Enum::Token::Type::StringEqual, Enum::Token::Kind::Operator, "StringEqual", "eq"},
{Enum::Token::Type::StringNotEqual, Enum::Token::Kind::Operator, "StringNotEqual", "ne"},
{Enum::Token::Type::StringCompare, Enum::Token::Kind::Operator, "StringCompare", "cmp"},
{Enum::Token::Type::Inc, Enum::Token::Kind::Operator, "Inc", "++"},
{Enum::Token::Type::Dec, Enum::Token::Kind::Operator, "Dec", "--"},
{Enum::Token::Type::Exp, Enum::Token::Kind::Operator, "Exp", "**"},
{Enum::Token::Type::PowerEqual, Enum::Token::Kind::Assign, "PowerEqual", "**="},
{Enum::Token::Type::DefaultEqual, Enum::Token::Kind::Assign, "DefaultEqual", "//="},
{Enum::Token::Type::LeftShift, Enum::Token::Kind::Operator, "LeftShift", "<<"},
{Enum::Token::Type::RightShift, Enum::Token::Kind::Operator, "RightShift", ">>"},
{Enum::Token::Type::And, Enum::Token::Kind::Operator, "And", "&&"},
{Enum::Token::Type::Or, Enum::Token::Kind::Operator, "Or", "||"},
{Enum::Token::Type::AndBitEqual, Enum::Token::Kind::Assign, "AndBitEqual", "&="},
{Enum::Token::Type::OrBitEqual, Enum::Token::Kind::Assign, "OrBitEqual", "|="},
{Enum::Token::Type::NotBitEqual, Enum::Token::Kind::Assign, "NotBitEqual", "^="},
{Enum::Token::Type::OrEqual, Enum::Token::Kind::Assign, "OrEqual", "||="},
{Enum::Token::Type::AndEqual, Enum::Token::Kind::Assign, "AndEqual", "&&="},
{Enum::Token::Type::Slice, Enum::Token::Kind::Operator, "Slice", ".."},
{Enum::Token::Type::DefaultOperator, Enum::Token::Kind::Operator, "DefaultOperator", "//"},
{Enum::Token::Type::ToDo, Enum::Token::Kind::Operator, "ToDo", "..."},
{Enum::Token::Type::VarDecl, Enum::Token::Kind::Decl, "VarDecl", "my"},
{Enum::Token::Type::FunctionDecl, Enum::Token::Kind::Decl, "FunctionDecl", "sub"},
{Enum::Token::Type::Method, Enum::Token::Kind::Function, "Method", ""},
{Enum::Token::Type::Assign, Enum::Token::Kind::Assign, "Assign", "="},
{Enum::Token::Type::Is, Enum::Token::Kind::SingleTerm, "Is", ""},
{Enum::Token::Type::IsNot, Enum::Token::Kind::SingleTerm, "IsNot", "!"},
{Enum::Token::Type::Not, Enum::Token::Kind::SingleTerm, "Not", "not"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "chomp"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "chop"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "chr"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "crypt"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "index"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "lc"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "lcfirst"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "length"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "ord"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "pack"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "unpack"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "sort"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "reverse"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "rindex"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "sprintf"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "substr"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "uc"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "ucfirst"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "pos"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "quotemeta"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "split"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "study"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "pop"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "pop"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "push"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "splice"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "shift"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "unshift"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "grep"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "join"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "map"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "delete"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "each"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "exists"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "keys"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "values"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "binmode"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "close"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "closedir"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "dbmclose"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "dbmopen"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "die"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "eof"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "fileno"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "flock"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "format"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getc"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "print"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "say"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "printf"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "read"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "readdir"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "rewinddir"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "seek"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "seekdir"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "select"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "syscall"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "sysread"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "sysseek"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "syswrite"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "tell"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "telldir"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "truncate"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "warn"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "write"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "syswrite"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "vec"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "chdir"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "chmod"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "chown"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "chroot"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "fcntl"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "glob"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "ioctl"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "link"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "lstat"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "mkdir"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "open"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "opendir"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "readlink"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "rename"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "rmdir"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "stat"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "symlink"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "umask"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "unlink"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "utime"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "caller"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "dump"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "eval"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "exit"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "wantarray"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "formline"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "reset"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "scalar"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "alarm"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "exec"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "fork"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getpgrp"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getppid"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getpriority"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "kill"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "pipe"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "setpgrp"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "setpriority"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "sleep"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "system"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "times"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "wait"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "waitpid"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "no"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "tie"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "tied"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "untie"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "accept"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "bind"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "connect"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getpeername"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getsockname"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getsockopt"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "listen"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "recv"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "send"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "setsockopt"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "shutdown"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "socket"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "socketpair"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "msgctl"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "msgget"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "msgrcv"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "msgsnd"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "semctl"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "semget"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "semop"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "shmctl"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "shmget"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "shmread"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "shmwrite"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "endgrent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "endhostent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "endnetent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "endpwent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getgrent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getgrent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getgrgid"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getgrnam"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getlogin"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getpwent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getpwnam"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getpwuid"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "setgrent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "setpwent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "endprotoent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "endservent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "gethostbyaddr"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "gethostbyname"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "gethostent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getnetbyaddr"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getnetbyname"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getnetent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getprotobyname"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getprotobynumber"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getprotoent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getservbyname"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getservbyport"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "getservent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "sethostent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "setnetent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "setprotoent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "setservent"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "gmtime"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "localtime"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "time"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "times"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "ref"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "bless"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "defined"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "abs"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "atan2"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "cos"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "exp"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "hex"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "int"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "log"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "oct"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "rand"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "sin"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "sqrt"},
{Enum::Token::Type::BuiltinFunc, Enum::Token::Kind::Function, "BuiltinFunc", "srand"},
{Enum::Token::Type::RequireDecl, Enum::Token::Kind::Decl, "RequireDecl", "require"},
{Enum::Token::Type::Import, Enum::Token::Kind::Import, "Import", "import"},
{Enum::Token::Type::SpecificKeyword, Enum::Token::Kind::SpecificKeyword, "SpecificKeyword", "__PACKAGE__"},
{Enum::Token::Type::SpecificKeyword, Enum::Token::Kind::SpecificKeyword, "SpecificKeyword", "__FILE__"},
{Enum::Token::Type::SpecificKeyword, Enum::Token::Kind::SpecificKeyword, "SpecificKeyword", "__LINE__"},
{Enum::Token::Type::SpecificKeyword, Enum::Token::Kind::SpecificKeyword, "SpecificKeyword", "__SUB__"},
{Enum::Token::Type::DataWord, Enum::Token::Kind::DataWord, "DataWord", "__DATA__"},
{Enum::Token::Type::DataWord, Enum::Token::Kind::DataWord, "DataWord", "__END__"},
{Enum::Token::Type::ModWord, Enum::Token::Kind::ModWord, "ModWord", "BEGIN"},
{Enum::Token::Type::ModWord, Enum::Token::Kind::ModWord, "ModWord", "CHECK"},
{Enum::Token::Type::ModWord, Enum::Token::Kind::ModWord, "ModWord", "INIT"},
{Enum::Token::Type::ModWord, Enum::Token::Kind::ModWord, "ModWord", "END"},
{Enum::Token::Type::ModWord, Enum::Token::Kind::ModWord, "ModWord", "UNITCHECK"},
{Enum::Token::Type::AUTOLOAD, Enum::Token::Kind::AUTOLOAD, "AUTOLOAD", "AUTOLOAD"},
{Enum::Token::Type::CORE, Enum::Token::Kind::CORE, "CORE", "CORE"},
{Enum::Token::Type::DESTROY, Enum::Token::Kind::DESTROY, "DESTROY", "DESTROY"},
{Enum::Token::Type::STDIN, Enum::Token::Kind::Handle, "STDIN", "STDIN"},
{Enum::Token::Type::STDOUT, Enum::Token::Kind::Handle, "STDOUT", "STDOUT"},
{Enum::Token::Type::STDERR, Enum::Token::Kind::Handle, "STDERR", "STDERR"},
{Enum::Token::Type::Redo, Enum::Token::Kind::Redo, "Redo", "redo"},
{Enum::Token::Type::Next, Enum::Token::Kind::Next, "Next", "next"},
{Enum::Token::Type::Last, Enum::Token::Kind::Last, "Last", "last"},
{Enum::Token::Type::Goto, Enum::Token::Kind::Goto, "Goto", "goto"},
{Enum::Token::Type::Continue, Enum::Token::Kind::Continue, "Continue", "continue"},
{Enum::Token::Type::Do, Enum::Token::Kind::Do, "Do", "do"},
{Enum::Token::Type::Break, Enum::Token::Kind::Break, "Break", "break"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-b"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-c"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-d"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-e"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-f"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-g"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-k"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-l"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-o"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-p"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-r"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-s"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-t"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-u"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-w"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-x"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-z"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-A"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-B"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-C"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-M"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-O"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-R"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-S"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-T"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-W"},
{Enum::Token::Type::Handle, Enum::Token::Kind::Handle, "Handle", "-X"},
{Enum::Token::Type::LocalDecl, Enum::Token::Kind::Decl, "LocalDecl", "local"},
{Enum::Token::Type::OurDecl, Enum::Token::Kind::Decl, "OurDecl", "our"},
{Enum::Token::Type::StateDecl, Enum::Token::Kind::Decl, "StateDecl", "state"},
{Enum::Token::Type::UseDecl, Enum::Token::Kind::Decl, "UseDecl", "use"},
{Enum::Token::Type::UsedName, Enum::Token::Kind::Module, "UsedName", ""},
{Enum::Token::Type::RequiredName, Enum::Token::Kind::Module, "RequiredName", ""},
{Enum::Token::Type::IfStmt, Enum::Token::Kind::Stmt, "IfStmt", "if"},
{Enum::Token::Type::ElseStmt, Enum::Token::Kind::Stmt, "ElseStmt", "else"},
{Enum::Token::Type::ElsifStmt, Enum::Token::Kind::Stmt, "ElsifStmt", "elsif"},
{Enum::Token::Type::UnlessStmt, Enum::Token::Kind::Stmt, "UnlessStmt", "unless"},
{Enum::Token::Type::UntilStmt, Enum::Token::Kind::Stmt, "UntilStmt", "until"},
{Enum::Token::Type::WhenStmt, Enum::Token::Kind::Stmt, "WhenStmt", "when"},
{Enum::Token::Type::GivenStmt, Enum::Token::Kind::Stmt, "GivenStmt", "given"},
{Enum::Token::Type::DefaultStmt, Enum::Token::Kind::DefaultStmt, "DefaultStmt", "default"},
{Enum::Token::Type::Comma, Enum::Token::Kind::Comma, "Comma", ","},
{Enum::Token::Type::Colon, Enum::Token::Kind::Colon, "Colon", ":"},
{Enum::Token::Type::SemiColon, Enum::Token::Kind::StmtEnd, "SemiColon", ";"},
{Enum::Token::Type::LeftParenthesis, Enum::Token::Kind::Symbol, "LeftParenthesis", "("},
{Enum::Token::Type::RightParenthesis, Enum::Token::Kind::Symbol, "RightParenthesis", ")"},
{Enum::Token::Type::LeftBrace, Enum::Token::Kind::Symbol, "LeftBrace", "{"},
{Enum::Token::Type::RightBrace, Enum::Token::Kind::Symbol, "RightBrace", "}"},
{Enum::Token::Type::LeftBracket, Enum::Token::Kind::Symbol, "LeftBracket", "["},
{Enum::Token::Type::RightBracket, Enum::Token::Kind::Symbol, "RightBracket", "]"},
{Enum::Token::Type::ArrayDereference, Enum::Token::Kind::Modifier, "ArrayDereference", "@{"},
{Enum::Token::Type::HashDereference, Enum::Token::Kind::Modifier, "HashDereference", "%{"},
{Enum::Token::Type::ScalarDereference, Enum::Token::Kind::Modifier, "ScalarDereference", "${"},
{Enum::Token::Type::ShortScalarDereference, Enum::Token::Kind::Modifier, "ShortScalarDereference", ""},
{Enum::Token::Type::ShortArrayDereference, Enum::Token::Kind::Modifier, "ShortArrayDereference", "@$"},
{Enum::Token::Type::ShortHashDereference, Enum::Token::Kind::Modifier, "ShortHashDereference", "%$"},
{Enum::Token::Type::ShortCodeDereference, Enum::Token::Kind::Modifier, "ShortCodeDereference", "&$"},
{Enum::Token::Type::ArraySizeDereference, Enum::Token::Kind::Modifier, "ArraySizeDereference", "$#{"},
{Enum::Token::Type::Key, Enum::Token::Kind::Term, "Key", ""},
{Enum::Token::Type::BareWord, Enum::Token::Kind::Term, "BareWord", ""},
{Enum::Token::Type::Arrow, Enum::Token::Kind::Operator, "Arrow", "=>"},
{Enum::Token::Type::Pointer, Enum::Token::Kind::Operator, "Pointer", "->"},
{Enum::Token::Type::NamespaceResolver, Enum::Token::Kind::Operator, "NamespaceResolver", "::"},
{Enum::Token::Type::Namespace, Enum::Token::Kind::Namespace, "Namespace", ""},
{Enum::Token::Type::Package, Enum::Token::Kind::Package, "Package", "package"},
{Enum::Token::Type::Class, Enum::Token::Kind::Class, "Class", ""},
{Enum::Token::Type::CallDecl, Enum::Token::Kind::Decl, "CallDecl", "&"},
{Enum::Token::Type::CodeRef, Enum::Token::Kind::SingleTerm, "CodeRef", "\\&"},
{Enum::Token::Type::WhileStmt, Enum::Token::Kind::Stmt, "WhileStmt", "while"},
{Enum::Token::Type::ForStmt, Enum::Token::Kind::Stmt, "ForStmt", "for"},
{Enum::Token::Type::ForeachStmt, Enum::Token::Kind::Stmt, "ForeachStmt", "foreach"},
{Enum::Token::Type::Annotation, Enum::Token::Kind::Annotation, "Annotation", "#@"},
{Enum::Token::Type::ArgumentArray, Enum::Token::Kind::Term, "ArgumentArray", "@_"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$_"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$0"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$1"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$2"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$3"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$4"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$5"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$6"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$7"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$8"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$9"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$&"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$`"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$'"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$+"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$."},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$/"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$|"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$*"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$,"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$\\"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$\""},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$%"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$="},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$-"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$~"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$:"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$?"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$!"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$@"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$$"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$<"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$>"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$("},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$)"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$["},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$]"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$;"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^A"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^D"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^E"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^F"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^G"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^H"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^I"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^L"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^M"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^O"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^P"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^R"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^T"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^W"},
{Enum::Token::Type::SpecificValue, Enum::Token::Kind::Term, "SpecificValue", "$^X"},
{Enum::Token::Type::ConstValue, Enum::Token::Kind::Term, "ConstValue", ""},
{Enum::Token::Type::ProgramArgument, Enum::Token::Kind::Term, "ProgramArgument", "@ARGV"},
{Enum::Token::Type::LibraryDirectories, Enum::Token::Kind::Term, "LibraryDirectories", "@INC"},
{Enum::Token::Type::Environment, Enum::Token::Kind::Term, "Environment", "%ENV"},
{Enum::Token::Type::Include, Enum::Token::Kind::Term, "Include", "%INC"},
{Enum::Token::Type::Signal, Enum::Token::Kind::Term, "Signal", "%SIG"},
{Enum::Token::Type::RegOpt, Enum::Token::Kind::RegOpt, "RegOpt", ""},
{Enum::Token::Type::RegQuote, Enum::Token::Kind::RegPrefix, "RegQuote", "q"},
{Enum::Token::Type::RegDoubleQuote, Enum::Token::Kind::RegPrefix, "RegDoubleQuote", "qq"},
{Enum::Token::Type::RegList, Enum::Token::Kind::RegPrefix, "RegList", "qw"},
{Enum::Token::Type::RegExec, Enum::Token::Kind::RegPrefix, "RegExec", "qx"},
{Enum::Token::Type::RegDecl, Enum::Token::Kind::RegPrefix, "RegDecl", "qr"},
{Enum::Token::Type::RegMatch, Enum::Token::Kind::RegPrefix, "RegMatch", "m"},
{Enum::Token::Type::RegDelim, Enum::Token::Kind::Term, "RegDelim", ""},
{Enum::Token::Type::RegMiddleDelim, Enum::Token::Kind::Term, "RegMiddleDelim", ""},
{Enum::Token::Type::RegAllReplace, Enum::Token::Kind::RegReplacePrefix, "RegAllReplace", "tr"},
{Enum::Token::Type::RegAllReplace, Enum::Token::Kind::RegReplacePrefix, "RegAllReplace", "y"},
{Enum::Token::Type::RegReplace, Enum::Token::Kind::RegReplacePrefix, "RegReplace", "s"},
{Enum::Token::Type::RegReplaceFrom, Enum::Token::Kind::Term, "RegReplaceFrom", ""},
{Enum::Token::Type::RegReplaceTo, Enum::Token::Kind::Term, "RegReplaceTo", ""},
{Enum::Token::Type::FieldDecl, Enum::Token::Kind::Decl, "FieldDecl", ""},
{Enum::Token::Type::TypeRef, Enum::Token::Kind::Ref, "TypeRef", ""},
{Enum::Token::Type::LabelRef, Enum::Token::Kind::Ref, "LabelRef", ""},
{Enum::Token::Type::LocalVarDecl, Enum::Token::Kind::Decl, "LocalVarDecl", ""},
{Enum::Token::Type::GlobalVarDecl, Enum::Token::Kind::Decl, "GlobalVarDecl", ""},
{Enum::Token::Type::MultiLocalVarDecl, Enum::Token::Kind::Decl, "MultiLocalVarDecl", ""},
{Enum::Token::Type::MultiGlobalVarDecl, Enum::Token::Kind::Decl, "MultiGlobalVarDecl", ""},
{Enum::Token::Type::Prototype, Enum::Token::Kind::Term, "Prototype", ""},
{Enum::Token::Type::Var, Enum::Token::Kind::Term, "Var", ""},
{Enum::Token::Type::CodeVar, Enum::Token::Kind::Term, "CodeVar", ""},
{Enum::Token::Type::ArrayVar, Enum::Token::Kind::Term, "ArrayVar", ""},
{Enum::Token::Type::HashVar, Enum::Token::Kind::Term, "HashVar", ""},
{Enum::Token::Type::Int, Enum::Token::Kind::Term, "Int", ""},
{Enum::Token::Type::Double, Enum::Token::Kind::Term, "Double", ""},
{Enum::Token::Type::String, Enum::Token::Kind::Term, "String", ""},
{Enum::Token::Type::RawString, Enum::Token::Kind::Term, "RawString", ""},
{Enum::Token::Type::ExecString, Enum::Token::Kind::Term, "ExecString", ""},
{Enum::Token::Type::VersionString, Enum::Token::Kind::Term, "VersionString", ""},
{Enum::Token::Type::HereDocumentTag, Enum::Token::Kind::Term, "HereDocumentTag", ""},
{Enum::Token::Type::HereDocumentRawTag, Enum::Token::Kind::Term, "HereDocumentRawTag", ""},
{Enum::Token::Type::HereDocumentExecTag, Enum::Token::Kind::Term, "HereDocumentExecTag", ""},
{Enum::Token::Type::RawHereDocument, Enum::Token::Kind::Term, "RawHereDocument", ""},
{Enum::Token::Type::HereDocument, Enum::Token::Kind::Term, "HereDocument", ""},
{Enum::Token::Type::HereDocumentEnd, Enum::Token::Kind::Term, "HereDocumentEnd", ""},
{Enum::Token::Type::FormatDecl, Enum::Token::Kind::Decl, "FormatDecl", ""},
{Enum::Token::Type::Format, Enum::Token::Kind::Term, "Format", ""},
{Enum::Token::Type::FormatEnd, Enum::Token::Kind::Term, "FormatEnd", ""},
{Enum::Token::Type::Object, Enum::Token::Kind::Term, "Object", ""},
{Enum::Token::Type::RegExp, Enum::Token::Kind::Term, "RegExp", ""},
{Enum::Token::Type::Array, Enum::Token::Kind::Term, "Array", ""},
{Enum::Token::Type::Hash, Enum::Token::Kind::Term, "Hash", ""},
{Enum::Token::Type::Operator, Enum::Token::Kind::Operator, "Operator", ""},
{Enum::Token::Type::LocalVar, Enum::Token::Kind::Term, "LocalVar", ""},
{Enum::Token::Type::LocalArrayVar, Enum::Token::Kind::Term, "LocalArrayVar", ""},
{Enum::Token::Type::LocalHashVar, Enum::Token::Kind::Term, "LocalHashVar", ""},
{Enum::Token::Type::GlobalVar, Enum::Token::Kind::Term, "GlobalVar", ""},
{Enum::Token::Type::GlobalArrayVar, Enum::Token::Kind::Term, "GlobalArrayVar", ""},
{Enum::Token::Type::GlobalHashVar, Enum::Token::Kind::Term, "GlobalHashVar", ""},
{Enum::Token::Type::ArrayRef, Enum::Token::Kind::Ref, "ArrayRef", ""},
{Enum::Token::Type::HashRef, Enum::Token::Kind::Ref, "HashRef", ""},
{Enum::Token::Type::ArrayAt, Enum::Token::Kind::Get, "ArrayAt", ""},
{Enum::Token::Type::HashAt, Enum::Token::Kind::Get, "HashAt", ""},
{Enum::Token::Type::ArraySet, Enum::Token::Kind::Set, "ArraySet", ""},
{Enum::Token::Type::HashSet, Enum::Token::Kind::Set, "HashSet", ""},
{Enum::Token::Type::Function, Enum::Token::Kind::Decl, "Function", ""},
{Enum::Token::Type::Call, Enum::Token::Kind::Function, "Call", ""},
{Enum::Token::Type::Argument, Enum::Token::Kind::Term, "Argument", ""},
{Enum::Token::Type::List, Enum::Token::Kind::Term, "List", ""},
{Enum::Token::Type::Default, Enum::Token::Kind::Term, "Default", "undef"},
{Enum::Token::Type::Undefined, Enum::Token::Kind::Undefined, "Undefined", ""}
};