use once_cell::sync::Lazy;
use std::collections::HashMap;
type Table = HashMap<&'static str, (&'static [&'static str], &'static [&'static str])>;
static AWK_KEYWORDS: &[&str] = &[
"break", "close", "continue", "delete", "do", "else", "exit", "fflush", "for", "function",
"huge", "if", "in", "next", "nextfile", "print", "printf", "return", "while",
];
static AWK_BUILTINS: &[&str] = &[
"$0",
"ARGC",
"ARGIND",
"ARGV",
"BEGIN",
"CONVFMT",
"END",
"ENVIRON",
"ERRNO",
"FIELDSWIDTH",
"FILENAME",
"FNR",
"FS",
"IGNORECASE",
"NF",
"NR",
"OFMT",
"OFS",
"ORS",
"RLENGTH",
"RS",
"RSTART",
"RT",
"SUBSEP",
"atan2",
"cos",
"exp",
"gensub",
"getline",
"gsub",
"index",
"int",
"length",
"log",
"match",
"rand",
"sin",
"split",
"sprintf",
"sqrt",
"srand",
"sub",
"substr",
"system",
"tolower",
"toupper",
];
static BATCH_KEYWORDS: &[&str] = &[
"call", "cd", "chdir", "cls", "copy", "del", "echo", "echo.", "endlocal", "exit", "for", "if",
"md", "mkdir", "not", "pause", "ren", "set", "setlocal", "shift",
];
static BATCH_BUILTINS: &[&str] = &[
"aux",
"defined",
"do",
"else",
"errorlevel",
"exist",
"goto",
"in",
"nul",
"prn",
];
static C_KEYWORDS: &[&str] = &[
"auto", "break", "case", "const", "continue", "default", "do", "else", "extern", "for", "goto",
"if", "register", "return", "sizeof", "static", "switch", "volatile", "while",
];
static C_BUILTINS: &[&str] = &[
"asm",
"asmlinkage",
"char",
"double",
"enum",
"far",
"float",
"huge",
"inline",
"int",
"long",
"near",
"pascal",
"short",
"signed",
"struct",
"typedef",
"union",
"unsigned",
"void",
];
static CLOJURE_KEYWORDS: &[&str] = &[
"alias",
"all-ns",
"assert",
"binding",
"bound-fn",
"bound-fn*",
"comment",
"compile",
"create-ns",
"declare",
"def",
"definline",
"definterceptor",
"definterceptorfn",
"definterface",
"defmacro",
"defmethod",
"defmulti",
"defn",
"defn-",
"defon-request",
"defonce",
"defprotocol",
"defrecord",
"defstruct",
"deftest",
"deftest-",
"deftype",
"extend",
"extend-protocol",
"extend-type",
"extenders",
"find-keyword",
"find-ns",
"fn",
"gen-class",
"gen-interface",
"get-method",
"import",
"in-ns",
"intern",
"loaded-libs",
"methods",
"ns",
"ns-aliases",
"ns-imports",
"ns-interns",
"ns-map",
"ns-name",
"ns-publics",
"ns-refers",
"ns-resolve",
"ns-unalias",
"ns-unmap",
"partial",
"prefer-method",
"prefers",
"refer",
"refer-clojure",
"reify",
"remove-all-methods",
"remove-method",
"remove-ns",
"require",
"the-ns",
"use",
];
static COFFEESCRIPT_KEYWORDS: &[&str] = &[
"and",
"break",
"by",
"catch",
"class",
"constructor",
"continue",
"delete",
"do",
"else",
"extends",
"finally",
"for",
"if",
"in",
"instanceof",
"is",
"isnt",
"loop",
"new",
"not",
"of",
"or",
"return",
"switch",
"then",
"throw",
"try",
"typeof",
"unless",
"until",
"when",
"while",
];
static COFFEESCRIPT_BUILTINS: &[&str] = &[
"Array",
"Boolean",
"Date",
"Function",
"Global",
"Math",
"Number",
"Object",
"RegExp",
"String",
"prototype",
"super",
"this",
];
static CPLUSPLUS_KEYWORDS: &[&str] = &[
"auto",
"break",
"case",
"catch",
"const",
"continue",
"default",
"delete",
"do",
"else",
"explicit",
"for",
"friend",
"goto",
"if",
"inline",
"new",
"private",
"protected",
"public",
"register",
"return",
"sizeof",
"static",
"switch",
"throw",
"try",
"virtual",
"void",
"volatile",
"while",
];
static CPLUSPLUS_BUILTINS: &[&str] = &[
"and",
"and_eq",
"asm",
"bitand",
"bitor",
"bool",
"char",
"class",
"compl",
"const_cast",
"double",
"dynamic_cast",
"enum",
"export",
"extern",
"float",
"int",
"long",
"mutable",
"namespace",
"not",
"not_eq",
"operator",
"or",
"or_eq",
"reinterpret_cast",
"short",
"signed",
"static_cast",
"struct",
"template",
"typedef",
"typeid",
"typename",
"union",
"unsigned",
"using",
"wchar_t",
"xor",
"xor_eq",
];
static CSHARP_KEYWORDS: &[&str] = &[
"abstract",
"as",
"base",
"break",
"case",
"catch",
"checked",
"const",
"continue",
"decimal",
"default",
"delegate",
"do",
"else",
"explicit",
"extern",
"finally",
"fixed",
"for",
"foreach",
"goto",
"if",
"implicit",
"in",
"internal",
"is",
"lock",
"new",
"operator",
"out",
"override",
"params",
"private",
"protected",
"public",
"readonly",
"ref",
"return",
"sealed",
"sizeof",
"stackalloc",
"static",
"switch",
"throw",
"try",
"typeof",
"unchecked",
"unsafe",
"virtual",
"while",
];
static CSHARP_BUILTINS: &[&str] = &[
"bool",
"byte",
"char",
"class",
"double",
"enum",
"event",
"float",
"int",
"interface",
"long",
"namespace",
"object",
"sbyte",
"short",
"string",
"struct",
"uint",
"ulong",
"ushort",
"using",
"void",
];
static CSS_KEYWORDS: &[&str] = &[];
static CYTHON_KEYWORDS: &[&str] = &[
"and", "as", "assert", "break", "class", "continue", "def", "del", "elif", "else", "except",
"exec", "finally", "for", "from", "global", "if", "import", "in", "is", "lambda", "not", "or",
"pass", "print", "raise", "return", "try", "while", "yield",
];
static CYTHON_BUILTINS: &[&str] = &[
"ArithmeticError",
"AssertionError",
"AttributeError",
"BufferType",
"BuiltinFunctionType",
"BuiltinMethodType",
"ClassType",
"CodeType",
"ComplexType",
"DEF",
"DeprecationWarning",
"DictProxyType",
"DictType",
"DictionaryType",
"ELIF",
"ELSE",
"EOFError",
"EllipsisType",
"EnvironmentError",
"Exception",
"False",
"FileType",
"FloatType",
"FloatingPointError",
"FrameType",
"FunctionType",
"GeneratorType",
"IF",
"IOError",
"ImportError",
"IndentationError",
"IndexError",
"InstanceType",
"IntType",
"KeyError",
"KeyboardInterrupt",
"LambdaType",
"ListType",
"LongType",
"LookupError",
"MemoryError",
"MethodType",
"ModuleType",
"NULL",
"NameError",
"None",
"NoneType",
"NotImplemented",
"NotImplementedError",
"OSError",
"ObjectType",
"OverflowError",
"OverflowWarning",
"Py_ssize_t",
"ReferenceError",
"RuntimeError",
"RuntimeWarning",
"SliceType",
"StandardError",
"StopIteration",
"StringType",
"StringTypes",
"SyntaxError",
"SyntaxWarning",
"SystemError",
"SystemExit",
"TabError",
"TracebackType",
"True",
"TupleType",
"TypeError",
"TypeType",
"UnboundLocalError",
"UnboundMethodType",
"UnicodeError",
"UnicodeType",
"UserWarning",
"ValueError",
"Warning",
"WindowsError",
"XRangeType",
"ZeroDivisionError",
"__abs__",
"__add__",
"__all__",
"__author__",
"__bases__",
"__builtins__",
"__call__",
"__class__",
"__cmp__",
"__coerce__",
"__contains__",
"__debug__",
"__del__",
"__delattr__",
"__delitem__",
"__delslice__",
"__dict__",
"__div__",
"__divmod__",
"__doc__",
"__eq__",
"__file__",
"__float__",
"__floordiv__",
"__future__",
"__ge__",
"__getattr__",
"__getattribute__",
"__getitem__",
"__getslice__",
"__gt__",
"__hash__",
"__hex__",
"__iadd__",
"__import__",
"__imul__",
"__init__",
"__int__",
"__invert__",
"__iter__",
"__le__",
"__len__",
"__long__",
"__lshift__",
"__lt__",
"__members__",
"__metaclass__",
"__mod__",
"__mro__",
"__mul__",
"__name__",
"__ne__",
"__neg__",
"__new__",
"__nonzero__",
"__oct__",
"__or__",
"__path__",
"__pos__",
"__pow__",
"__radd__",
"__rdiv__",
"__rdivmod__",
"__reduce__",
"__repr__",
"__rfloordiv__",
"__rlshift__",
"__rmod__",
"__rmul__",
"__ror__",
"__rpow__",
"__rrshift__",
"__rsub__",
"__rtruediv__",
"__rxor__",
"__self__",
"__setattr__",
"__setitem__",
"__setslice__",
"__slots__",
"__str__",
"__sub__",
"__truediv__",
"__version__",
"__xor__",
"abs",
"apply",
"bint",
"bool",
"buffer",
"by",
"callable",
"cdef",
"char",
"chr",
"cimport",
"classmethod",
"cmp",
"coerce",
"compile",
"complex",
"cpdef",
"ctypedef",
"delattr",
"dict",
"dir",
"divmod",
"double",
"enum",
"enumerate",
"eval",
"except?",
"execfile",
"extern",
"file",
"filter",
"float",
"getattr",
"gil",
"globals",
"hasattr",
"hash",
"hex",
"id",
"include",
"input",
"int",
"intern",
"isinstance",
"issubclass",
"iter",
"len",
"list",
"locals",
"long",
"map",
"max",
"min",
"nogil",
"object",
"oct",
"open",
"ord",
"pow",
"property",
"public",
"range",
"raw_input",
"readonly",
"reduce",
"reload",
"repr",
"round",
"setattr",
"short",
"size_t",
"slice",
"sorted",
"staticmethod",
"str",
"struct",
"sum",
"super",
"tuple",
"type",
"unichr",
"unicode",
"union",
"vars",
"void",
"xrange",
"zip",
];
static DART_KEYWORDS: &[&str] = &[
"abstract",
"assert",
"break",
"case",
"catch",
"class",
"const",
"continue",
"default",
"do",
"else",
"extends",
"factory",
"final",
"finally",
"for",
"get",
"if",
"implements",
"import",
"in",
"interface",
"is",
"library",
"negate",
"new",
"operator",
"return",
"set",
"source",
"static",
"switch",
"throw",
"try",
"typedef",
"var",
"while",
];
static DART_BUILTINS: &[&str] = &[
"assertionerror",
"badnumberformatexception",
"bool",
"clock",
"closureargumentmismatchexception",
"collection",
"comparable",
"date",
"dispatcher",
"double",
"duration",
"emptyqueueexception",
"exception",
"expect",
"expectexception",
"fallthrougherror",
"function",
"hashable",
"hashmap",
"hashset",
"illegalaccessexception",
"illegalargumentexception",
"illegaljsregexpexception",
"indexoutofrangeexception",
"int",
"integerdivisionbyzeroexception",
"isolate",
"iterable",
"iterator",
"linkedhashmap",
"list",
"map",
"match",
"math",
"nomoreelementsexception",
"nosuchmethodexception",
"notimplementedexception",
"nullpointerexception",
"num",
"object",
"objectnotclosureexception",
"outofmemoryexception",
"pattern",
"promise",
"proxy",
"queue",
"receiveport",
"regexp",
"sendport",
"stackoverflowexception",
"stopwatch",
"string",
"stringbuffer",
"strings",
"timezone",
"typeerror",
"unsupportedoperationexception",
"void",
"wrongargumentcountexception",
];
static ELIXIR_KEYWORDS: &[&str] = &[
"after",
"begin",
"case",
"catch",
"cond",
"defmodule",
"end",
"fun",
"if",
"let",
"of",
"query",
"receive",
"when",
];
static ELIXIR_BUILTINS: &[&str] = &[
"-behaviour",
"-compile",
"-define",
"-else",
"-endif",
"-export",
"-file",
"-ifdef",
"-ifndef",
"-import",
"-include",
"-include_lib",
"-module",
"-record",
"-undef",
"abs",
"acos",
"alive",
"apply",
"asin",
"atan",
"atan2",
"atom",
"atom_to_list",
"binary",
"binary_to_list",
"binary_to_term",
"check_process_code",
"concat_binary",
"constant",
"cos",
"cosh",
"date",
"delete_module",
"disconnect_node",
"element",
"erase",
"exit",
"exp",
"float",
"float_to_list",
"function",
"get",
"get_cookie",
"get_keys",
"group_leader",
"halt",
"hash",
"hd",
"integer",
"integer_to_list",
"is_alive",
"length",
"link",
"list",
"list_to_atom",
"list_to_binary",
"list_to_float",
"list_to_integer",
"list_to_pid",
"list_to_tuple",
"load_module",
"log",
"log10",
"make_ref",
"math",
"module_loaded",
"monitor_node",
"node",
"nodes",
"now",
"number",
"open_port",
"pi",
"pid",
"pid_to_list",
"port_close",
"port_info",
"ports",
"pow",
"power",
"preloaded",
"process",
"process_flag",
"process_info",
"processes",
"purge_module",
"put",
"record",
"reference",
"register",
"registered",
"round",
"self",
"set_cookie",
"set_node",
"setelement",
"sin",
"sinh",
"size",
"spawn",
"spawn_link",
"split_binary",
"sqrt",
"statistics",
"tan",
"tanh",
"term_to_binary",
"throw",
"time",
"tl",
"trunc",
"tuple_to_list",
"unlink",
"unregister",
"whereis",
];
static ERLANG_KEYWORDS: &[&str] = &[
"after", "begin", "case", "catch", "cond", "end", "fun", "if", "let", "of", "query", "receive",
"when",
];
static ERLANG_BUILTINS: &[&str] = &[
"-behaviour",
"-compile",
"-define",
"-else",
"-endif",
"-export",
"-file",
"-ifdef",
"-ifndef",
"-import",
"-include",
"-include_lib",
"-module",
"-record",
"-undef",
"abs",
"acos",
"alive",
"apply",
"asin",
"atan",
"atan2",
"atom",
"atom_to_list",
"binary",
"binary_to_list",
"binary_to_term",
"check_process_code",
"concat_binary",
"constant",
"cos",
"cosh",
"date",
"delete_module",
"disconnect_node",
"element",
"erase",
"exit",
"exp",
"float",
"float_to_list",
"function",
"get",
"get_cookie",
"get_keys",
"group_leader",
"halt",
"hash",
"hd",
"integer",
"integer_to_list",
"is_alive",
"length",
"link",
"list",
"list_to_atom",
"list_to_binary",
"list_to_float",
"list_to_integer",
"list_to_pid",
"list_to_tuple",
"load_module",
"log",
"log10",
"make_ref",
"math",
"module_loaded",
"monitor_node",
"node",
"nodes",
"now",
"number",
"open_port",
"pi",
"pid",
"pid_to_list",
"port_close",
"port_info",
"ports",
"pow",
"power",
"preloaded",
"process",
"process_flag",
"process_info",
"processes",
"purge_module",
"put",
"record",
"reference",
"register",
"registered",
"round",
"self",
"set_cookie",
"set_node",
"setelement",
"sin",
"sinh",
"size",
"spawn",
"spawn_link",
"split_binary",
"sqrt",
"statistics",
"tan",
"tanh",
"term_to_binary",
"throw",
"time",
"tl",
"trunc",
"tuple_to_list",
"unlink",
"unregister",
"whereis",
];
static FORTRAN_KEYWORDS: &[&str] = &[
".false.",
".true.",
"abs",
"acos",
"aimag",
"aint",
"allocatable",
"allocate",
"allocated",
"alog",
"alog10",
"amax0",
"amax1",
"amin0",
"amin1",
"amod",
"anint",
"asin",
"atan",
"atan2",
"backspace",
"cabs",
"call",
"case",
"ccos",
"ceiling",
"char",
"character",
"clog",
"close",
"cmplx",
"complex",
"conjg",
"contains",
"continue",
"cos",
"cosh",
"csin",
"csqrt",
"cycle",
"dabs",
"dacos",
"dasin",
"data",
"datan",
"datan2",
"dble",
"dcmplx",
"dcos",
"dcosh",
"ddim",
"deallocate",
"default",
"dexp",
"dfloat",
"dim",
"dimension",
"dint",
"dlog",
"dlog10",
"dmax1",
"dmin1",
"dmod",
"dnint",
"do",
"double",
"dprod",
"dreal",
"dsign",
"dsin",
"dsinh",
"dsqrt",
"dtan",
"dtanh",
"else",
"elseif",
"elsewhere",
"end",
"enddo",
"endfile",
"endif",
"exit",
"exp",
"explicit",
"float",
"floor",
"forall",
"format",
"function",
"goto",
"iabs",
"ichar",
"idim",
"idint",
"idnint",
"if",
"ifix",
"imag",
"implicit",
"include",
"index",
"inquire",
"int",
"integer",
"isign",
"kind",
"len",
"lge",
"lgt",
"lle",
"llt",
"log",
"log10",
"logical",
"max",
"max0",
"max1",
"min",
"min0",
"min1",
"mod",
"module",
"modulo",
"nint",
"none",
"open",
"parameter",
"pause",
"precision",
"print",
"program",
"read",
"real",
"return",
"rewind",
"select",
"sign",
"sin",
"sinh",
"sngl",
"sqrt",
"stop",
"subroutine",
"tan",
"tanh",
"then",
"transfer",
"use",
"where",
"while",
"write",
"zext",
];
static GROOVY_KEYWORDS: &[&str] = &[
"abstract",
"break",
"case",
"catch",
"continue",
"default",
"do",
"else",
"extends",
"final",
"finally",
"for",
"if",
"implements",
"import",
"instanceof",
"native",
"new",
"package",
"private",
"protected",
"public",
"return",
"static",
"strictfp",
"switch",
"synchronized",
"throw",
"throws",
"transient",
"try",
"volatile",
"while",
];
static GROOVY_BUILTINS: &[&str] = &[
"abs",
"any",
"append",
"as",
"asList",
"asWritable",
"assert",
"boolean",
"byte",
"call",
"char",
"class",
"collect",
"compareTo",
"count",
"def",
"div",
"double",
"dump",
"each",
"eachByte",
"eachFile",
"eachLine",
"every",
"find",
"findAll",
"flatten",
"float",
"getAt",
"getErr",
"getIn",
"getOut",
"getText",
"grep",
"immutable",
"in",
"inject",
"inspect",
"int",
"interface",
"intersect",
"invokeMethods",
"isCase",
"join",
"leftShift",
"long",
"minus",
"mixin",
"multiply",
"newInputStream",
"newOutputStream",
"newPrintWriter",
"newReader",
"newWriter",
"next",
"plus",
"pop",
"power",
"previous",
"print",
"println",
"property",
"push",
"putAt",
"read",
"readBytes",
"readLines",
"reverse",
"reverseEach",
"round",
"short",
"size",
"sort",
"splitEachLine",
"step",
"subMap",
"test",
"times",
"toInteger",
"toList",
"tokenize",
"upto",
"using",
"void",
"waitForOrKill",
"withPrintWriter",
"withReader",
"withStream",
"withWriter",
"withWriterAppend",
"write",
"writeLine",
];
static HASKELL_KEYWORDS: &[&str] = &[
"_",
"as",
"case",
"class",
"data",
"default",
"deriving",
"do",
"else",
"hiding",
"if",
"import",
"in",
"infix",
"infixl",
"infixr",
"instance",
"let",
"module",
"newtype",
"of",
"qualified",
"then",
"type",
"where",
];
static HASKELL_BUILTINS: &[&str] = &[
"Addr",
"Bool",
"Bounded",
"Char",
"Double",
"Either",
"Enum",
"Eq",
"FilePath",
"Float",
"Floating",
"Fractional",
"Functor",
"IO",
"IOError",
"IOResult",
"Int",
"Integer",
"Integral",
"Ix",
"Maybe",
"Monad",
"Num",
"Ord",
"Ordering",
"Ratio",
"Rational",
"Read",
"ReadS",
"Real",
"RealFloat",
"RealFrac",
"Show",
"ShowS",
"String",
];
static JAVA_KEYWORDS: &[&str] = &[
"abstract",
"break",
"case",
"catch",
"continue",
"default",
"do",
"else",
"extends",
"final",
"finally",
"for",
"if",
"implements",
"instanceof",
"native",
"new",
"private",
"protected",
"public",
"return",
"static",
"strictfp",
"switch",
"synchronized",
"throw",
"throws",
"transient",
"try",
"volatile",
"while",
];
static JAVA_BUILTINS: &[&str] = &[
"boolean",
"byte",
"char",
"class",
"double",
"enum",
"float",
"import",
"int",
"interface",
"long",
"package",
"short",
"void",
];
static JAVASCRIPT_KEYWORDS: &[&str] = &[
"abstract",
"break",
"case",
"catch",
"class",
"const",
"continue",
"debugger",
"default",
"delete",
"do",
"else",
"enum",
"extends",
"final",
"finally",
"for",
"function",
"goto",
"if",
"implements",
"in",
"instanceof",
"interface",
"native",
"new",
"private",
"protected",
"public",
"return",
"static",
"switch",
"synchronized",
"throw",
"throws",
"transient",
"try",
"typeof",
"var",
"volatile",
"while",
"with",
];
static JAVASCRIPT_BUILTINS: &[&str] = &[
"Array", "Boolean", "Date", "Function", "Global", "Math", "Number", "Object", "RegExp",
"String", "boolean", "byte", "char", "double", "export", "float", "import", "int", "long",
"package", "short", "void",
];
static JULIA_KEYWORDS: &[&str] = &[
"begin", "catch", "else", "elseif", "end", "for", "function", "if", "let", "macro", "quote",
"try", "type", "while",
];
static JULIA_BUILTINS: &[&str] = &[
"ASCIIString",
"Any",
"Array",
"Bool",
"Char",
"Cmd",
"Float32",
"Float64",
"Int",
"Int16",
"Int32",
"Int64",
"Int8",
"None",
"Regex",
"Task",
"UTF8String",
"Uint16",
"Uint32",
"Uint64",
"Uint8",
"abs",
"abs2",
"abstract",
"acos",
"acot",
"acoth",
"acsc",
"acsch",
"add",
"addprocs_local",
"addprocs_sge",
"addprocs_ssh",
"all",
"allp",
"any",
"anyp",
"applicable",
"asec",
"asech",
"asin",
"ask",
"assert",
"assign",
"atan",
"atan2",
"bin",
"binomial",
"bitstype",
"bool",
"break",
"bswap",
"cat",
"cbrt",
"ceil",
"cell",
"changedist",
"char",
"chars",
"chol",
"chomp",
"choose",
"chop",
"chr2ind",
"circshift",
"cis",
"clock",
"close",
"complex",
"cond",
"const",
"consume",
"contains",
"continue",
"conv",
"convert",
"copy",
"copysign",
"cos",
"cosc",
"cosh",
"cot",
"coth",
"count",
"countp",
"csc",
"csch",
"cstring",
"csvread",
"csvwrite",
"cumsum",
"current_output_stream",
"current_task",
"darray",
"dcell",
"dec",
"deconv",
"del",
"del_all",
"det",
"dfill",
"diag",
"diagm",
"distdim",
"distribute",
"div",
"dlmread",
"dlmwrite",
"dlopen",
"dlsym",
"done",
"dones",
"drand",
"drandn",
"dump",
"dzeros",
"each_line",
"edit",
"eig",
"eltype",
"emoteRef",
"empty",
"enq",
"eps",
"erf",
"erfc",
"errno",
"error",
"eval",
"exit",
"exp",
"expm1",
"exponent",
"eye",
"factorial",
"falses",
"fdio",
"fetch",
"fft",
"fftshift",
"fill",
"filter",
"finalizer",
"find",
"findn",
"fld",
"flip",
"flipdim",
"fliplr",
"flipud",
"float32",
"float64",
"floor",
"flush",
"gamma",
"gcd",
"gensym",
"get",
"getcwd",
"gethostname",
"getipaddr",
"getpid",
"global",
"grow",
"has",
"hash",
"hcat",
"hex",
"hex2num",
"hypot",
"ifft",
"ifftshift",
"ind2chr",
"ineIterator",
"insert",
"int16",
"int2str",
"int32",
"int64",
"int8",
"integer_valued",
"intset",
"inv",
"invoke",
"ipermute",
"iround",
"is",
"isa",
"iscomplex",
"isdenormal",
"isempty",
"isequal",
"isfinite",
"isless",
"isnan",
"isreal",
"issorted",
"istaskdone",
"itrunc",
"join",
"kron",
"lcm",
"ldexp",
"length",
"lgamma",
"linreg",
"linspace",
"load",
"local",
"localize",
"log",
"log10",
"log1p",
"log2",
"logb",
"lpad",
"lu",
"make_scheduled",
"mantissa",
"map",
"max",
"memio",
"method_exists",
"min",
"mod",
"myid",
"myindexes",
"ndims",
"new",
"next",
"nextfloat",
"nextpow2",
"nnz",
"nprocs",
"ntSet",
"nthperm",
"ntuple",
"num2hex",
"numel",
"nvHash",
"oct",
"one",
"ones",
"op",
"open",
"owner",
"parse_int",
"permute",
"pop",
"position",
"pow",
"powermod",
"prevfloat",
"print",
"println",
"procs",
"prod",
"produce",
"promote",
"promote_type",
"push",
"put",
"qr",
"rand",
"randchi2",
"randcycle",
"randf",
"randg",
"randi",
"randn",
"randperm",
"rank",
"read",
"readall",
"readline",
"readlines",
"readuntil",
"real_valued",
"realmax",
"realmin",
"reduce",
"ref",
"reinterpret",
"rem",
"remote_call",
"remote_call_fetch",
"remote_call_wait",
"repmat",
"reshape",
"return",
"reverse",
"round",
"rpad",
"rray",
"safe_char",
"sec",
"sech",
"seek",
"set_current_output_stream",
"setcwd",
"show",
"showall",
"shuffle",
"sign",
"signbit",
"similar",
"sin",
"sinc",
"sinh",
"size",
"sizeof",
"skip",
"slicedim",
"sort",
"sortperm",
"sortr",
"split",
"sqrt",
"squeeze",
"start",
"strcat",
"strchr",
"strerror",
"stride",
"strides",
"string",
"strlen",
"sub",
"subtype",
"sum",
"super",
"svd",
"system",
"take",
"tan",
"tanh",
"task_exit",
"throw",
"tic",
"tls",
"toc",
"toq",
"trace",
"tril",
"tring",
"triu",
"trues",
"trunc",
"tuple",
"typealias",
"typemax",
"typemin",
"typeof",
"uid",
"uint16",
"uint32",
"uint64",
"uint8",
"union",
"value",
"vcat",
"wait",
"whos",
"with_output_stream",
"write",
"xcorr",
"yield",
"yieldto",
"zero",
"zeros",
];
static LUA_KEYWORDS: &[&str] = &[
"and", "break", "do", "else", "elseif", "end", "for", "function", "if", "in", "local", "not",
"or", "repeat", "return", "then", "until", "while",
];
static LUA_BUILTINS: &[&str] = &[
"...",
"LUA_PATH",
"_ALERT",
"_ERRORMESSAGE",
"_G",
"_LOADED",
"_PROMPT",
"_REQUIREDNAME",
"_VERSION",
"__add",
"__call",
"__concat",
"__div",
"__eq",
"__fenv",
"__index",
"__le",
"__lt",
"__metatable",
"__mode",
"__mul",
"__newindex",
"__pow",
"__sub",
"__tostring",
"__unm",
"arg",
"assert",
"collectgarbage",
"coroutine.create",
"coroutine.resume",
"coroutine.status",
"coroutine.wrap",
"coroutine.yield",
"debug.debug",
"debug.gethook",
"debug.getinfo",
"debug.getlocal",
"debug.getupvalue",
"debug.sethook",
"debug.setlocal",
"debug.setupvalue",
"debug.traceback",
"dofile",
"error",
"false",
"gcinfo",
"getfenv",
"getmetatable",
"io.close",
"io.flush",
"io.input",
"io.lines",
"io.open",
"io.read",
"io.stderr",
"io.stdin",
"io.stdout",
"io.tmpfile",
"io.type",
"io.write",
"ipairs",
"loadfile",
"loadlib",
"loadstring",
"math.abs",
"math.acos",
"math.asin",
"math.atan",
"math.atan2",
"math.ceil",
"math.cos",
"math.deg",
"math.exp",
"math.floor",
"math.frexp",
"math.ldexp",
"math.log",
"math.log10",
"math.max",
"math.min",
"math.mod",
"math.pi",
"math.pow",
"math.rad",
"math.random",
"math.randomseed",
"math.sin",
"math.sqrt",
"math.tan",
"next",
"nil",
"os.clock",
"os.date",
"os.difftime",
"os.execute",
"os.exit",
"os.getenv",
"os.remove",
"os.rename",
"os.setlocale",
"os.time",
"os.tmpname",
"pairs",
"pcall",
"print",
"rawequal",
"rawget",
"rawset",
"require",
"setfenv",
"setmetatable",
"string.byte",
"string.char",
"string.dump",
"string.find",
"string.format",
"string.gfind",
"string.gsub",
"string.len",
"string.lower",
"string.rep",
"string.sub",
"string.upper",
"table.concat",
"table.foreach",
"table.foreachi",
"table.getn",
"table.insert",
"table.remove",
"table.setn",
"table.sort",
"tonumber",
"tostring",
"true",
"type",
"unpack",
"xpcall",
];
static MAKEFILE_KEYWORDS: &[&str] = &[
"addprefix",
"addsuffix",
"basename",
"dir",
"filter",
"filter-out",
"findstring",
"firstword",
"foreach",
"join",
"notdir",
"origin",
"patsubst",
"shell",
"sort",
"strip",
"subst",
"suffix",
"wildcard",
"word",
"words",
];
static OBJECTIVE_C_KEYWORDS: &[&str] = &[
"@class",
"@defs",
"@end",
"@endcode",
"@implementation",
"@interface",
"@private",
"@protected",
"@protocol",
"@public",
"@selector",
"asm",
"auto",
"break",
"bycopy",
"byref",
"case",
"continue",
"default",
"do",
"else",
"extern",
"for",
"goto",
"if",
"in",
"inline",
"inout",
"oneway",
"out",
"register",
"return",
"self",
"sizeof",
"static",
"super",
"switch",
"volatile",
"while",
];
static OBJECTIVE_C_BUILTINS: &[&str] = &[
"BOOL", "Class", "IMP", "SEL", "char", "const", "double", "enum", "float", "id", "int", "long",
"short", "signed", "struct", "typedef", "union", "unsigned", "void",
];
static PASCAL_KEYWORDS: &[&str] = &[
"and",
"array",
"as",
"asm",
"at",
"begin",
"case",
"class",
"const",
"constructor",
"destructor",
"dispinterface",
"div",
"do",
"downto",
"else",
"end",
"except",
"exports",
"file",
"final",
"finalization",
"finally",
"for",
"function",
"goto",
"if",
"implementation",
"in",
"inherited",
"initialization",
"inline",
"interface",
"is",
"label",
"mod",
"not",
"object",
"of",
"on",
"or",
"out",
"packed",
"procedure",
"program",
"property",
"raise",
"record",
"repeat",
"resourcestring",
"sealed",
"set",
"shl",
"shr",
"static",
"string",
"then",
"threadvar",
"to",
"try",
"type",
"unit",
"unsafe",
"until",
"uses",
"var",
"while",
"with",
"xor",
];
static PASCAL_BUILTINS: &[&str] = &[
"absolute",
"abstract",
"assembler",
"automated",
"boolean",
"byte",
"bytebool",
"cardinal",
"cdecl",
"char",
"comp",
"contains",
"currency",
"default",
"deprecated",
"dispid",
"double",
"dynamic",
"export",
"extended",
"external",
"far",
"forward",
"implements",
"index",
"integer",
"library",
"local",
"longbool",
"longint",
"message",
"name",
"namespaces",
"near",
"nodefault",
"overload",
"override",
"package",
"pascal",
"platform",
"pointer",
"private",
"protected",
"public",
"published",
"read",
"readonly",
"real",
"register",
"reintroduce",
"requires",
"resident",
"safecall",
"shortint",
"single",
"smallint",
"stdcall",
"stored",
"varargs",
"virtual",
"word",
"wordbool",
"write",
"writeonly",
];
static PERL_KEYWORDS: &[&str] = &[
"BEGIN",
"END",
"caller",
"continue",
"die",
"do",
"dump",
"else",
"elsif",
"eval",
"exit",
"for",
"foreach",
"goto",
"if",
"import",
"last",
"local",
"my",
"new",
"next",
"no",
"our",
"package",
"redo",
"require",
"return",
"sub",
"unless",
"until",
"use",
"wantarray",
"while",
];
static PERL_BUILTINS: &[&str] = &[
"abs",
"accept",
"alarm",
"atan2",
"bind",
"binmode",
"bless",
"chdir",
"chmod",
"chomp",
"chop",
"chown",
"chr",
"chroot",
"close",
"closedir",
"connect",
"cos",
"crypt",
"dbmclose",
"dbmopen",
"defined",
"delete",
"each",
"endgrent",
"endhostent",
"endnetent",
"endprotoent",
"endpwent",
"endservent",
"eof",
"exec",
"exists",
"exp",
"fcntl",
"fileno",
"flock",
"fork",
"format",
"formline",
"getc",
"getgrent",
"getgrgid",
"getgrnam",
"gethostbyaddr",
"gethostbyname",
"gethostent",
"getlogin",
"getnetbyaddr",
"getnetbyname",
"getnetent",
"getpeername",
"getpgrp",
"getppid",
"getpriority",
"getprotobyname",
"getprotobynumber",
"getprotoent",
"getpwent",
"getpwnam",
"getpwuid",
"getservbyname",
"getservbyport",
"getservent",
"getsockname",
"getsockopt",
"glob",
"gmtime",
"grep",
"hex",
"index",
"int",
"ioctl",
"join",
"keys",
"kill",
"lc",
"lcfirst",
"length",
"link",
"listen",
"localtime",
"log",
"lstat",
"map",
"mkdir",
"msgctl",
"msgget",
"msgrcv",
"msgsnd",
"oct",
"open",
"opendir",
"ord",
"pack",
"pipe",
"pop",
"pos",
"print",
"printf",
"push",
"quotemeta",
"rand",
"read",
"readdir",
"readlink",
"recv",
"ref",
"rename",
"reset",
"reverse",
"rewinddir",
"rindex",
"rmdir",
"scalar",
"seek",
"seekdir",
"select",
"semctl",
"semget",
"semop",
"send",
"setgrent",
"sethostent",
"setnetent",
"setpgrp",
"setpriority",
"setprotoent",
"setpwent",
"setservent",
"setsockopt",
"shift",
"shmctl",
"shmget",
"shmread",
"shmwrite",
"shutdown",
"sin",
"sleep",
"socket",
"socketpair",
"sort",
"splice",
"split",
"sprintf",
"sqrt",
"srand",
"stat",
"study",
"substr",
"symlink",
"syscall",
"sysread",
"sysseek",
"system",
"syswrite",
"tell",
"telldir",
"tie",
"tied",
"time",
"times",
"truncate",
"uc",
"ucfirst",
"umask",
"undef",
"unlink",
"unpack",
"unshift",
"untie",
"utime",
"values",
"vec",
"wait",
"waitpid",
"warn",
"write",
];
static PHP_KEYWORDS: &[&str] = &[
"abstract",
"array",
"as",
"break",
"case",
"catch",
"class",
"clone",
"const",
"continue",
"declare",
"default",
"do",
"echo",
"else",
"elseif",
"empty",
"endfor",
"endforeach",
"endif",
"endswitch",
"endwhile",
"extends",
"final",
"for",
"foreach",
"function",
"global",
"if",
"implements",
"include",
"include_once",
"interface",
"isset",
"list",
"new",
"old_function",
"private",
"protected",
"public",
"require",
"require_once",
"return",
"static",
"switch",
"throw",
"try",
"var",
"while",
];
static PYTHON_KEYWORDS: &[&str] = &[
"and", "as", "assert", "async", "await", "break", "class", "continue", "def", "del", "elif",
"else", "except", "exec", "finally", "for", "from", "global", "if", "import", "in", "is",
"lambda", "nonlocal", "not", "or", "pass", "print", "raise", "return", "try", "while", "with",
"yield",
];
static PYTHON_BUILTINS: &[&str] = &[
"@classmethod",
"@staticmethod",
"ArithmeticError",
"AssertionError",
"AttributeError",
"BufferType",
"BuiltinFunctionType",
"BuiltinMethodType",
"ClassType",
"CodeType",
"ComplexType",
"ConnectionRefusedError",
"DeprecationWarning",
"DictProxyType",
"DictType",
"DictionaryType",
"EOFError",
"EllipsisType",
"EnvironmentError",
"Exception",
"False",
"FileType",
"FloatType",
"FloatingPointError",
"FrameType",
"FunctionType",
"GeneratorType",
"IOError",
"ImportError",
"IndentationError",
"IndexError",
"InstanceType",
"IntType",
"KeyError",
"KeyboardInterrupt",
"LambdaType",
"ListType",
"LongType",
"LookupError",
"MemoryError",
"MethodType",
"ModuleType",
"NameError",
"None",
"NoneType",
"NotImplemented",
"NotImplementedError",
"OSError",
"ObjectType",
"OverflowError",
"OverflowWarning",
"ReferenceError",
"RuntimeError",
"RuntimeWarning",
"SliceType",
"StandardError",
"StopIteration",
"StringType",
"StringTypes",
"SyntaxError",
"SyntaxWarning",
"SystemError",
"SystemExit",
"TabError",
"TracebackType",
"True",
"TupleType",
"TypeError",
"TypeType",
"UnboundLocalError",
"UnboundMethodType",
"UnicodeError",
"UnicodeType",
"UserWarning",
"ValueError",
"Warning",
"WindowsError",
"XRangeType",
"ZeroDivisionError",
"__abs__",
"__add__",
"__all__",
"__author__",
"__bases__",
"__builtins__",
"__call__",
"__class__",
"__cmp__",
"__coerce__",
"__contains__",
"__debug__",
"__del__",
"__delattr__",
"__delitem__",
"__delslice__",
"__dict__",
"__div__",
"__divmod__",
"__doc__",
"__eq__",
"__file__",
"__float__",
"__floordiv__",
"__future__",
"__ge__",
"__getattr__",
"__getattribute__",
"__getitem__",
"__getslice__",
"__gt__",
"__hash__",
"__hex__",
"__iadd__",
"__import__",
"__imul__",
"__init__",
"__int__",
"__invert__",
"__iter__",
"__le__",
"__len__",
"__long__",
"__lshift__",
"__lt__",
"__members__",
"__metaclass__",
"__mod__",
"__mro__",
"__mul__",
"__name__",
"__ne__",
"__neg__",
"__new__",
"__nonzero__",
"__oct__",
"__or__",
"__path__",
"__pos__",
"__pow__",
"__radd__",
"__rdiv__",
"__rdivmod__",
"__reduce__",
"__repr__",
"__rfloordiv__",
"__rlshift__",
"__rmod__",
"__rmul__",
"__ror__",
"__rpow__",
"__rrshift__",
"__rsub__",
"__rtruediv__",
"__rxor__",
"__self__",
"__setattr__",
"__setitem__",
"__setslice__",
"__slots__",
"__str__",
"__sub__",
"__truediv__",
"__version__",
"__xor__",
"abs",
"apply",
"bool",
"buffer",
"bytes",
"callable",
"chr",
"cmp",
"coerce",
"compile",
"complex",
"delattr",
"dict",
"dir",
"divmod",
"enumerate",
"eval",
"execfile",
"file",
"filter",
"float",
"getattr",
"globals",
"hasattr",
"hash",
"hex",
"id",
"input",
"int",
"intern",
"isinstance",
"issubclass",
"iter",
"len",
"list",
"locals",
"long",
"map",
"max",
"min",
"object",
"oct",
"open",
"ord",
"pow",
"property",
"range",
"raw_input",
"reduce",
"reload",
"repr",
"reversed",
"round",
"set",
"setattr",
"slice",
"sorted",
"str",
"sum",
"super",
"tuple",
"type",
"unichr",
"unicode",
"vars",
"xrange",
"zip",
];
static RUBY_KEYWORDS: &[&str] = &[
"BEGIN", "END", "alias", "and", "begin", "break", "case", "class", "def", "defined", "do",
"else", "elsif", "end", "ensure", "for", "if", "in", "module", "next", "nil", "or", "redo",
"rescue", "retry", "return", "then", "undef", "unless", "until", "when", "while", "yield",
];
static RUBY_BUILTINS: &[&str] = &["include", "require"];
static RUST_KEYWORDS: &[&str] = &[
"Self", "abstract", "as", "async", "become", "box", "break", "const", "continue", "crate",
"do", "dyn", "else", "enum", "extern", "false", "final", "fn", "for", "if", "impl", "in",
"let", "loop", "macro", "match", "mod", "move", "mut", "override", "priv", "pub", "ref",
"return", "self", "static", "struct", "super", "trait", "true", "try", "type", "typeof",
"unsafe", "unsized", "use", "virtual", "where", "while", "yield",
];
static RUST_BUILTINS: &[&str] = &[
"Err",
"None",
"Ok",
"Result",
"Some",
"bool",
"i16",
"i32",
"i64",
"i8",
"include_bytes",
"include_str",
"str",
"u16",
"u32",
"u64",
"u8",
"usize",
"vec!",
];
static SCALA_KEYWORDS: &[&str] = &[];
static SCHEME_KEYWORDS: &[&str] = &[
"and",
"begin",
"case",
"cond",
"cond-expand",
"define",
"define-macro",
"delay",
"do",
"else",
"fluid-let",
"if",
"lambda",
"let",
"let*",
"letrec",
"or",
"quasiquote",
"quote",
"set!",
];
static SCHEME_BUILTINS: &[&str] = &[
"<",
"=?",
">",
"?",
"abs",
"acos",
"angle",
"append",
"apply",
"asin",
"assoc",
"assq",
"assv",
"atan",
"boolean?",
"caaar",
"caadr",
"caar",
"cadar",
"caddr",
"cadr",
"call-with-current-continuation",
"call-with-input-file",
"call-with-output-file",
"call-with-values",
"call/cc",
"car",
"catch",
"cdaar",
"cdadr",
"cdar",
"cddar",
"cdddr",
"cddr",
"cdr",
"ceiling",
"char",
"char-",
"char-alphabetic?",
"char-ci",
"char-ci=?",
"char-downcase",
"char-lower-case?",
"char-numeric?",
"char-ready?",
"char-upcase",
"char-upper-case?",
"char-whitespace?",
"char=?",
"char?",
"close-input-port",
"close-output-port",
"complex?",
"cons",
"cos",
"current-input-port",
"current-output-port",
"delete-file",
"display",
"dynamic-wind",
"eof-object?",
"eq?",
"equal?",
"eqv?",
"eval",
"even?",
"exact-",
"exact?",
"exit",
"exp",
"expt",
"file-exists?",
"file-or-directory-modify-seconds",
"floor",
"for-each",
"force",
"gcd",
"gensym",
"get-output-string",
"getenv",
"imag-part",
"inexact",
"inexact?",
"input-port?",
"integer",
"integer-",
"integer?",
"lcm",
"length",
"list",
"list-",
"list-ref",
"list-tail",
"list?",
"load",
"log",
"magnitude",
"make-polar",
"make-rectangular",
"make-string",
"make-vector",
"map",
"max",
"member",
"memq",
"memv",
"min",
"modulo",
"negative?",
"newline",
"nil",
"not",
"null?",
"number",
"number-",
"number?",
"odd?",
"open-input-file",
"open-input-string",
"open-output-file",
"open-output-string",
"output-port?",
"pair?",
"peek-char",
"port?",
"positive?",
"procedure?",
"quotient",
"rational?",
"read",
"read-char",
"read-line",
"real-part",
"real?",
"remainder",
"reverse",
"reverse!",
"round",
"set-car!",
"set-cdr!",
"sin",
"sqrt",
"string",
"string-",
"string-append",
"string-ci",
"string-ci=?",
"string-copy",
"string-fill!",
"string-length",
"string-ref",
"string-set!",
"string=?",
"string?",
"substring",
"symbol",
"symbol-",
"symbol?",
"system",
"tan",
"truncate",
"values",
"vector",
"vector-",
"vector-fill!",
"vector-length",
"vector-ref",
"vector-set!",
"vector?",
"with-input-from-file",
"with-output-to-file",
"write",
"write-char",
"zero?",
];
static SHELLSCRIPT_KEYWORDS: &[&str] = &[
"case", "continue", "do", "done", "elif", "else", "esac", "fi", "for", "if", "in", "local",
"return", "then", "while",
];
static SQL_KEYWORDS: &[&str] = &[
"abort",
"access",
"add",
"all",
"alter",
"and",
"any",
"array",
"array_len",
"as",
"asc",
"assert",
"assign",
"at",
"audit",
"authorization",
"avg",
"base_table",
"begin",
"between",
"binary",
"binary_integer",
"bit",
"blob",
"body",
"boolean",
"by",
"case",
"char",
"char_base",
"character",
"check",
"close",
"cluster",
"clusters",
"colauth",
"column",
"comment",
"commit",
"compress",
"connect",
"constant",
"constraint",
"count",
"create",
"current",
"currval",
"cursor",
"data_base",
"database",
"date",
"datetime",
"dba",
"debugoff",
"debugon",
"decimal",
"declare",
"default",
"definition",
"delay",
"delete",
"desc",
"digits",
"dispose",
"distinct",
"do",
"drop",
"dump",
"else",
"elsif",
"end",
"entry",
"exception",
"exception_init",
"exclusive",
"exists",
"exit",
"external",
"false",
"fetch",
"file",
"float",
"for",
"form",
"from",
"function",
"generic",
"goto",
"grant",
"greatest",
"group",
"having",
"identified",
"identitycol",
"if",
"image",
"immediate",
"in",
"increment",
"index",
"indexes",
"indicator",
"initial",
"insert",
"int",
"integer",
"interface",
"intersect",
"into",
"is",
"isopen",
"key",
"least",
"level",
"like",
"limited",
"lock",
"long",
"loop",
"matched",
"max",
"maxextents",
"merge",
"min",
"minus",
"mlslabel",
"money",
"more",
"name",
"natural",
"naturaln",
"nchar",
"new",
"next",
"nextval",
"noaudit",
"nocompress",
"not",
"notfound",
"nowait",
"ntext",
"null",
"number",
"number_base",
"numeric",
"nvarchar",
"of",
"off",
"offline",
"on",
"online",
"open",
"option",
"or",
"order",
"organization",
"others",
"out",
"package",
"partition",
"pctfree",
"pctincrease",
"pls_integer",
"positive",
"positiven",
"pragma",
"primary",
"private",
"privileges",
"procedure",
"prompt",
"public",
"quoted_identifier",
"raise",
"range",
"raw",
"real",
"record",
"ref",
"release",
"remr",
"rename",
"resource",
"return",
"reverse",
"revoke",
"rollback",
"row",
"rowid",
"rowlabel",
"rownum",
"rows",
"rowtype",
"run",
"savepoint",
"schema",
"select",
"seperate",
"session",
"set",
"share",
"signtype",
"smalldatetime",
"smallint",
"smallmoney",
"space",
"spool",
"sql",
"sqlcode",
"sqlerrm",
"start",
"statement",
"stddev",
"storage",
"subtype",
"successfull",
"sum",
"synonym",
"sysdate",
"tabauth",
"table",
"tables",
"tablespace",
"task",
"terminate",
"text",
"then",
"timestamp",
"tinyint",
"to",
"trigger",
"true",
"truncate",
"type",
"uid",
"union",
"unique",
"uniqueidentifier",
"update",
"updatetext",
"use",
"user",
"using",
"validate",
"values",
"varbinary",
"varchar",
"varchar2",
"variance",
"view",
"views",
"when",
"whenever",
"where",
"while",
"with",
"work",
"write",
"xor",
];
static SQL_BUILTINS: &[&str] = &[
"abs",
"acos",
"add_months",
"arraysize",
"ascii",
"asin",
"atan",
"atan2",
"ceil",
"chartorowid",
"chr",
"concat",
"convert",
"cos",
"cosh",
"dbms_output",
"decode",
"define",
"enable",
"fclose",
"fclose_all",
"file_type",
"floor",
"fopen",
"hextoraw",
"initcap",
"instr",
"instrb",
"invalid_operation",
"invalid_path",
"last_day",
"length",
"lengthb",
"linesize",
"ln",
"log",
"lower",
"lpad",
"ltrim",
"mod",
"months_between",
"new_time",
"next_day",
"nls_lower",
"nls_upper",
"nlssort",
"nsl_initcap",
"nvl",
"pagesize",
"power",
"put_line",
"putf",
"rawtohex",
"replace",
"round",
"rowidtochar",
"rpad",
"rtrim",
"serveroutput",
"sign",
"sin",
"sinh",
"soundex",
"sqrt",
"substr",
"substrb",
"tan",
"tanh",
"to_char",
"to_date",
"to_multibyte",
"to_number",
"to_single_byte",
"translate",
"trunc",
"upper",
"utl_file",
"verify",
"write_error",
];
static TCL_KEYWORDS: &[&str] = &[
"abs",
"acos",
"after",
"append",
"array",
"asin",
"atan",
"atan2",
"auto_mkindex",
"break",
"catch",
"cd",
"ceil",
"close",
"concat",
"console",
"continue",
"cos",
"cosh",
"double",
"else",
"elseif",
"eof",
"error",
"eval",
"exec",
"exit",
"expr",
"file",
"floor",
"flush",
"fmod",
"for",
"foreach",
"format",
"gets",
"glob",
"global",
"history",
"hypot",
"if",
"incr",
"info",
"int",
"join",
"lappend",
"lindex",
"linsert",
"list",
"llength",
"log",
"log10",
"lrange",
"lreplace",
"lsearch",
"lsort",
"open",
"pid",
"pow",
"proc",
"puts",
"pwd",
"read",
"regexp",
"regsub",
"rename",
"return",
"round",
"scan",
"seek",
"set",
"sin",
"sinh",
"source",
"split",
"sqrt",
"string",
"switch",
"tan",
"tanh",
"tell",
"time",
"trace",
"unkown",
"unset",
"uplevel",
"upvar",
"while",
];
static TCL_BUILTINS: &[&str] = &[
"$argc",
"$argv",
"$argv0",
"$tk_library",
"$tk_strictMotif",
"$tk_version",
"Activate",
"Alt",
"Any",
"B1",
"B2",
"B3",
"Button",
"Button1",
"Button2",
"Button3",
"ButtonPress",
"ButtonRelease",
"Circulate",
"Colormap",
"Configure",
"Control",
"Deactivate",
"Destroy",
"Double",
"Enter",
"Escape",
"Expose",
"FocusIn",
"FocusOut",
"Gravity",
"Key",
"KeyPress",
"KeyRelease",
"Leave",
"Lock",
"MenuSelect",
"Meta",
"Motion",
"Property",
"Reparent",
"Shift",
"Triple",
"Unmap",
"Visibility",
"\\",
"\\a",
"\\b",
"\\f",
"\\n",
"\\r",
"\\t",
"\\v",
"\\x",
"abortretryignore",
"accelerator",
"active",
"activebackground",
"activeforeground",
"add",
"all",
"anchor",
"anymore",
"arc",
"args",
"aspect",
"atime",
"background",
"bd",
"before",
"bg",
"bind",
"bitmap",
"body",
"borderwidth",
"bottom",
"button",
"canvas",
"cascade",
"center",
"cget",
"checkbutton",
"children",
"class",
"clear",
"client",
"cmdcount",
"code",
"colormodel",
"command",
"commands",
"compare",
"configure",
"create",
"ctime",
"current",
"cursor",
"default",
"deiconify",
"delete",
"destroy",
"dev",
"dirname",
"disabled",
"donesearch",
"entry",
"errorcode",
"errorinfo",
"exact",
"executable",
"exists",
"expand",
"extension",
"family",
"fg",
"fill",
"first",
"flash",
"flat",
"focus",
"focusmodel",
"font",
"force",
"foreground",
"forget",
"frame",
"from",
"geometry",
"get",
"gid",
"globals",
"grab",
"groove",
"group",
"handle",
"height",
"horizontal",
"icon",
"iconbitmap",
"iconify",
"iconmask",
"iconname",
"iconposition",
"iconwindow",
"idletasks",
"image",
"in",
"index",
"indices",
"ino",
"insert",
"interps",
"invoke",
"ipadx",
"ipady",
"isdirectory",
"isfile",
"itemconfigure",
"justify",
"keep",
"label",
"last",
"left",
"length",
"level",
"library",
"line",
"listbox",
"locals",
"lower",
"lstat",
"mark",
"match",
"maxsize",
"menu",
"menubutton",
"message",
"minsize",
"mode",
"move",
"mtime",
"name",
"names",
"nextelement",
"nextid",
"nlink",
"nocase",
"nocomplain",
"none",
"nonewline",
"normal",
"offvalue",
"ok",
"okcancel",
"onvalue",
"option",
"orient",
"outline",
"oval",
"overrideredirect",
"oversrike",
"own",
"owned",
"pack",
"padx",
"pady",
"photo",
"placer",
"polygon",
"positionfrom",
"procs",
"propagate",
"protocol",
"question",
"radiobutton",
"raise",
"raised",
"range",
"ranges",
"readable",
"readlink",
"rectangle",
"redo",
"release",
"relief",
"remove",
"resizable",
"retrycancel",
"ridge",
"right",
"rootname",
"scale",
"screen",
"script",
"scrollbar",
"selectbackground",
"selectforeground",
"selection",
"send",
"separator",
"setgrid",
"show",
"side",
"size",
"sizefrom",
"slant",
"slaves",
"solid",
"spacing1",
"spacing2",
"spacing3",
"startsearch",
"stat",
"state",
"status",
"stipple",
"substitute",
"sunken",
"tag",
"tail",
"takefocus",
"tclversion",
"tearoff",
"text",
"textvariable",
"title",
"tk",
"tkerror",
"tkwait",
"to",
"tolower",
"top",
"toplevel",
"toupper",
"transient",
"trim",
"trimleft",
"trimright",
"type",
"uid",
"underline",
"update",
"value",
"variable",
"vars",
"vdelete",
"vertical",
"vinfo",
"visibility",
"warning",
"weight",
"width",
"window",
"winfo",
"withdraw",
"wm",
"writable",
"xscrollcommand",
"xview",
"yesno",
"yesnocancel",
"yscrollcommand",
"yview",
];
static TYPESCRIPT_KEYWORDS: &[&str] = &[
"abstract",
"break",
"case",
"catch",
"class",
"const",
"continue",
"debugger",
"default",
"delete",
"do",
"else",
"enum",
"extends",
"final",
"finally",
"for",
"function",
"goto",
"if",
"implements",
"in",
"instanceof",
"interface",
"native",
"new",
"private",
"protected",
"public",
"return",
"static",
"switch",
"synchronized",
"throw",
"throws",
"transient",
"try",
"typeof",
"var",
"volatile",
"while",
"with",
];
static TYPESCRIPT_BUILTINS: &[&str] = &[
"Array", "Boolean", "Date", "Function", "Global", "Math", "Number", "Object", "RegExp",
"String", "boolean", "byte", "char", "double", "export", "float", "import", "int", "long",
"package", "short", "void",
];
static XML_KEYWORDS: &[&str] = &[
"#IMPLIED",
"#PCDATA",
"#REQUIRED",
"CDATA",
"EMPTY",
"IGNORE",
"INCLUDE",
"NDATA",
"SYSTEM",
];
static TABLE: Lazy<Table> = Lazy::new(|| {
let mut m: Table = HashMap::new();
m.insert("awk", (AWK_KEYWORDS, AWK_BUILTINS));
m.insert("batch", (BATCH_KEYWORDS, BATCH_BUILTINS));
m.insert("c", (C_KEYWORDS, C_BUILTINS));
m.insert("clojure", (CLOJURE_KEYWORDS, &[]));
m.insert(
"coffeescript",
(COFFEESCRIPT_KEYWORDS, COFFEESCRIPT_BUILTINS),
);
m.insert("cplusplus", (CPLUSPLUS_KEYWORDS, CPLUSPLUS_BUILTINS));
m.insert("csharp", (CSHARP_KEYWORDS, CSHARP_BUILTINS));
m.insert("css", (CSS_KEYWORDS, &[]));
m.insert("cython", (CYTHON_KEYWORDS, CYTHON_BUILTINS));
m.insert("dart", (DART_KEYWORDS, DART_BUILTINS));
m.insert("elixir", (ELIXIR_KEYWORDS, ELIXIR_BUILTINS));
m.insert("erlang", (ERLANG_KEYWORDS, ERLANG_BUILTINS));
m.insert("fortran", (FORTRAN_KEYWORDS, &[]));
m.insert("groovy", (GROOVY_KEYWORDS, GROOVY_BUILTINS));
m.insert("haskell", (HASKELL_KEYWORDS, HASKELL_BUILTINS));
m.insert("java", (JAVA_KEYWORDS, JAVA_BUILTINS));
m.insert("javascript", (JAVASCRIPT_KEYWORDS, JAVASCRIPT_BUILTINS));
m.insert("julia", (JULIA_KEYWORDS, JULIA_BUILTINS));
m.insert("lua", (LUA_KEYWORDS, LUA_BUILTINS));
m.insert("makefile", (MAKEFILE_KEYWORDS, &[]));
m.insert("objective_c", (OBJECTIVE_C_KEYWORDS, OBJECTIVE_C_BUILTINS));
m.insert("pascal", (PASCAL_KEYWORDS, PASCAL_BUILTINS));
m.insert("perl", (PERL_KEYWORDS, PERL_BUILTINS));
m.insert("php", (PHP_KEYWORDS, &[]));
m.insert("python", (PYTHON_KEYWORDS, PYTHON_BUILTINS));
m.insert("ruby", (RUBY_KEYWORDS, RUBY_BUILTINS));
m.insert("rust", (RUST_KEYWORDS, RUST_BUILTINS));
m.insert("scala", (SCALA_KEYWORDS, &[]));
m.insert("scheme", (SCHEME_KEYWORDS, SCHEME_BUILTINS));
m.insert("shellscript", (SHELLSCRIPT_KEYWORDS, &[]));
m.insert("sql", (SQL_KEYWORDS, SQL_BUILTINS));
m.insert("tcl", (TCL_KEYWORDS, TCL_BUILTINS));
m.insert("typescript", (TYPESCRIPT_KEYWORDS, TYPESCRIPT_BUILTINS));
m.insert("xml", (XML_KEYWORDS, &[]));
m
});
pub fn for_language(language: &str) -> (&'static [&'static str], &'static [&'static str]) {
TABLE.get(language).copied().unwrap_or((&[], &[]))
}