pub(crate) const KEYWORDS_1364_1995: &[&str] = &[
"always",
"and",
"assign",
"begin",
"buf",
"bufif0",
"bufif1",
"case",
"casex",
"casez",
"cmos",
"deassign",
"default",
"defparam",
"disable",
"edge",
"else",
"end",
"endcase",
"endfunction",
"endmodule",
"endprimitive",
"endspecify",
"endtable",
"endtask",
"event",
"for",
"force",
"forever",
"fork",
"function",
"highz0",
"highz1",
"if",
"ifnone",
"initial",
"inout",
"input",
"integer",
"join",
"large",
"macromodule",
"medium",
"module",
"nand",
"negedge",
"nmos",
"nor",
"not",
"notif0",
"notif1",
"or",
"output",
"parameter",
"pmos",
"posedge",
"primitive",
"pull0",
"pull1",
"pulldown",
"pullup",
"rcmos",
"real",
"realtime",
"reg",
"release",
"repeat",
"rnmos",
"rpmos",
"rtran",
"rtranif0",
"rtranif1",
"scalared",
"small",
"specify",
"specparam",
"strong0",
"strong1",
"supply0",
"supply1",
"table",
"task",
"time",
"tran",
"tranif0",
"tranif1",
"tri",
"tri0",
"tri1",
"triand",
"trior",
"trireg",
"vectored",
"wait",
"wand",
"weak0",
"weak1",
"while",
"wire",
"wor",
"xnor",
"xor",
];
pub(crate) const KEYWORDS_1364_2001: &[&str] = &[
"always",
"and",
"assign",
"begin",
"buf",
"bufif0",
"bufif1",
"case",
"casex",
"casez",
"cmos",
"deassign",
"default",
"defparam",
"disable",
"edge",
"else",
"end",
"endcase",
"endfunction",
"endmodule",
"endprimitive",
"endspecify",
"endtable",
"endtask",
"event",
"for",
"force",
"forever",
"fork",
"function",
"highz0",
"highz1",
"if",
"ifnone",
"initial",
"inout",
"input",
"integer",
"join",
"large",
"macromodule",
"medium",
"module",
"nand",
"negedge",
"nmos",
"nor",
"not",
"notif0",
"notif1",
"or",
"output",
"parameter",
"pmos",
"posedge",
"primitive",
"pull0",
"pull1",
"pulldown",
"pullup",
"rcmos",
"real",
"realtime",
"reg",
"release",
"repeat",
"rnmos",
"rpmos",
"rtran",
"rtranif0",
"rtranif1",
"scalared",
"small",
"specify",
"specparam",
"strong0",
"strong1",
"supply0",
"supply1",
"table",
"task",
"time",
"tran",
"tranif0",
"tranif1",
"tri",
"tri0",
"tri1",
"triand",
"trior",
"trireg",
"vectored",
"wait",
"wand",
"weak0",
"weak1",
"while",
"wire",
"wor",
"xnor",
"xor",
"automatic",
"cell",
"config",
"design",
"endconfig",
"endgenerate",
"generate",
"genvar",
"incdir",
"include",
"instance",
"liblist",
"library",
"localparam",
"noshowcancelled",
"pulsestyle_ondetect",
"pulsestyle_onevent",
"showcancelled",
"signed",
"unsigned",
"use",
];
pub(crate) const KEYWORDS_1364_2001_NOCONFIG: &[&str] = &[
"always",
"and",
"assign",
"begin",
"buf",
"bufif0",
"bufif1",
"case",
"casex",
"casez",
"cmos",
"deassign",
"default",
"defparam",
"disable",
"edge",
"else",
"end",
"endcase",
"endfunction",
"endmodule",
"endprimitive",
"endspecify",
"endtable",
"endtask",
"event",
"for",
"force",
"forever",
"fork",
"function",
"highz0",
"highz1",
"if",
"ifnone",
"initial",
"inout",
"input",
"integer",
"join",
"large",
"macromodule",
"medium",
"module",
"nand",
"negedge",
"nmos",
"nor",
"not",
"notif0",
"notif1",
"or",
"output",
"parameter",
"pmos",
"posedge",
"primitive",
"pull0",
"pull1",
"pulldown",
"pullup",
"rcmos",
"real",
"realtime",
"reg",
"release",
"repeat",
"rnmos",
"rpmos",
"rtran",
"rtranif0",
"rtranif1",
"scalared",
"small",
"specify",
"specparam",
"strong0",
"strong1",
"supply0",
"supply1",
"table",
"task",
"time",
"tran",
"tranif0",
"tranif1",
"tri",
"tri0",
"tri1",
"triand",
"trior",
"trireg",
"vectored",
"wait",
"wand",
"weak0",
"weak1",
"while",
"wire",
"wor",
"xnor",
"xor",
"automatic",
"endgenerate",
"generate",
"genvar",
"localparam",
"noshowcancelled",
"pulsestyle_ondetect",
"pulsestyle_onevent",
"showcancelled",
"signed",
"unsigned",
];
pub(crate) const KEYWORDS_1364_2005: &[&str] = &[
"always",
"and",
"assign",
"begin",
"buf",
"bufif0",
"bufif1",
"case",
"casex",
"casez",
"cmos",
"deassign",
"default",
"defparam",
"disable",
"edge",
"else",
"end",
"endcase",
"endfunction",
"endmodule",
"endprimitive",
"endspecify",
"endtable",
"endtask",
"event",
"for",
"force",
"forever",
"fork",
"function",
"highz0",
"highz1",
"if",
"ifnone",
"initial",
"inout",
"input",
"integer",
"join",
"large",
"macromodule",
"medium",
"module",
"nand",
"negedge",
"nmos",
"nor",
"not",
"notif0",
"notif1",
"or",
"output",
"parameter",
"pmos",
"posedge",
"primitive",
"pull0",
"pull1",
"pulldown",
"pullup",
"rcmos",
"real",
"realtime",
"reg",
"release",
"repeat",
"rnmos",
"rpmos",
"rtran",
"rtranif0",
"rtranif1",
"scalared",
"small",
"specify",
"specparam",
"strong0",
"strong1",
"supply0",
"supply1",
"table",
"task",
"time",
"tran",
"tranif0",
"tranif1",
"tri",
"tri0",
"tri1",
"triand",
"trior",
"trireg",
"vectored",
"wait",
"wand",
"weak0",
"weak1",
"while",
"wire",
"wor",
"xnor",
"xor",
"automatic",
"cell",
"config",
"design",
"endconfig",
"endgenerate",
"generate",
"genvar",
"incdir",
"include",
"instance",
"liblist",
"library",
"localparam",
"noshowcancelled",
"pulsestyle_ondetect",
"pulsestyle_onevent",
"showcancelled",
"signed",
"unsigned",
"use",
"uwire",
];
pub(crate) const KEYWORDS_1800_2005: &[&str] = &[
"always",
"and",
"assign",
"begin",
"buf",
"bufif0",
"bufif1",
"case",
"casex",
"casez",
"cmos",
"deassign",
"default",
"defparam",
"disable",
"edge",
"else",
"end",
"endcase",
"endfunction",
"endmodule",
"endprimitive",
"endspecify",
"endtable",
"endtask",
"event",
"for",
"force",
"forever",
"fork",
"function",
"highz0",
"highz1",
"if",
"ifnone",
"initial",
"inout",
"input",
"integer",
"join",
"large",
"macromodule",
"medium",
"module",
"nand",
"negedge",
"nmos",
"nor",
"not",
"notif0",
"notif1",
"or",
"output",
"parameter",
"pmos",
"posedge",
"primitive",
"pull0",
"pull1",
"pulldown",
"pullup",
"rcmos",
"real",
"realtime",
"reg",
"release",
"repeat",
"rnmos",
"rpmos",
"rtran",
"rtranif0",
"rtranif1",
"scalared",
"small",
"specify",
"specparam",
"strong0",
"strong1",
"supply0",
"supply1",
"table",
"task",
"time",
"tran",
"tranif0",
"tranif1",
"tri",
"tri0",
"tri1",
"triand",
"trior",
"trireg",
"vectored",
"wait",
"wand",
"weak0",
"weak1",
"while",
"wire",
"wor",
"xnor",
"xor",
"automatic",
"cell",
"config",
"design",
"endconfig",
"endgenerate",
"generate",
"genvar",
"incdir",
"include",
"instance",
"liblist",
"library",
"localparam",
"noshowcancelled",
"pulsestyle_ondetect",
"pulsestyle_onevent",
"showcancelled",
"signed",
"unsigned",
"use",
"uwire",
"alias",
"always_comb",
"always_ff",
"always_latch",
"assert",
"assume",
"before",
"bind",
"bins",
"binsof",
"bit",
"break",
"byte",
"chandle",
"class",
"clocking",
"const",
"constraint",
"context",
"continue",
"cover",
"covergroup",
"coverpoint",
"cross",
"dist",
"do",
"endclass",
"endclocking",
"endgroup",
"endinterface",
"endpackage",
"endprogram",
"endproperty",
"endsequence",
"enum",
"expect",
"export",
"extends",
"extern",
"final",
"first_match",
"foreach",
"forkjoin",
"iff",
"ignore_bins",
"illegal_bins",
"import",
"inside",
"int",
"interface",
"intersect",
"join_any",
"join_none",
"local",
"logic",
"longint",
"matches",
"modport",
"new",
"null",
"package",
"packed",
"priority",
"program",
"property",
"protected",
"pure",
"rand",
"randc",
"randcase",
"randsequence",
"ref",
"return",
"sequence",
"shortint",
"shortreal",
"solve",
"static",
"string",
"struct",
"super",
"tagged",
"this",
"throughout",
"timeprecision",
"timeunit",
"type",
"typedef",
"union",
"unique",
"var",
"virtual",
"void",
"wait_order",
"wildcard",
"with",
"within",
];
pub(crate) const KEYWORDS_1800_2009: &[&str] = &[
"always",
"and",
"assign",
"begin",
"buf",
"bufif0",
"bufif1",
"case",
"casex",
"casez",
"cmos",
"deassign",
"default",
"defparam",
"disable",
"edge",
"else",
"end",
"endcase",
"endfunction",
"endmodule",
"endprimitive",
"endspecify",
"endtable",
"endtask",
"event",
"for",
"force",
"forever",
"fork",
"function",
"highz0",
"highz1",
"if",
"ifnone",
"initial",
"inout",
"input",
"integer",
"join",
"large",
"macromodule",
"medium",
"module",
"nand",
"negedge",
"nmos",
"nor",
"not",
"notif0",
"notif1",
"or",
"output",
"parameter",
"pmos",
"posedge",
"primitive",
"pull0",
"pull1",
"pulldown",
"pullup",
"rcmos",
"real",
"realtime",
"reg",
"release",
"repeat",
"rnmos",
"rpmos",
"rtran",
"rtranif0",
"rtranif1",
"scalared",
"small",
"specify",
"specparam",
"strong0",
"strong1",
"supply0",
"supply1",
"table",
"task",
"time",
"tran",
"tranif0",
"tranif1",
"tri",
"tri0",
"tri1",
"triand",
"trior",
"trireg",
"vectored",
"wait",
"wand",
"weak0",
"weak1",
"while",
"wire",
"wor",
"xnor",
"xor",
"automatic",
"cell",
"config",
"design",
"endconfig",
"endgenerate",
"generate",
"genvar",
"incdir",
"include",
"instance",
"liblist",
"library",
"localparam",
"noshowcancelled",
"pulsestyle_ondetect",
"pulsestyle_onevent",
"showcancelled",
"signed",
"unsigned",
"use",
"uwire",
"alias",
"always_comb",
"always_ff",
"always_latch",
"assert",
"assume",
"before",
"bind",
"bins",
"binsof",
"bit",
"break",
"byte",
"chandle",
"class",
"clocking",
"const",
"constraint",
"context",
"continue",
"cover",
"covergroup",
"coverpoint",
"cross",
"dist",
"do",
"endclass",
"endclocking",
"endgroup",
"endinterface",
"endpackage",
"endprogram",
"endproperty",
"endsequence",
"enum",
"expect",
"export",
"extends",
"extern",
"final",
"first_match",
"foreach",
"forkjoin",
"iff",
"ignore_bins",
"illegal_bins",
"import",
"inside",
"int",
"interface",
"intersect",
"join_any",
"join_none",
"local",
"logic",
"longint",
"matches",
"modport",
"new",
"null",
"package",
"packed",
"priority",
"program",
"property",
"protected",
"pure",
"rand",
"randc",
"randcase",
"randsequence",
"ref",
"return",
"sequence",
"shortint",
"shortreal",
"solve",
"static",
"string",
"struct",
"super",
"tagged",
"this",
"throughout",
"timeprecision",
"timeunit",
"type",
"typedef",
"union",
"unique",
"var",
"virtual",
"void",
"wait_order",
"wildcard",
"with",
"within",
"accept_on",
"checker",
"endchecker",
"eventually",
"global",
"implies",
"let",
"nexttime",
"reject_on",
"restrict",
"s_always",
"s_eventually",
"s_nexttime",
"s_until",
"s_until_with",
"strong",
"sync_accept_on",
"sync_reject_on",
"unique0",
"until",
"until_with",
"untyped",
"weak",
];
pub(crate) const KEYWORDS_1800_2012: &[&str] = &[
"always",
"and",
"assign",
"begin",
"buf",
"bufif0",
"bufif1",
"case",
"casex",
"casez",
"cmos",
"deassign",
"default",
"defparam",
"disable",
"edge",
"else",
"end",
"endcase",
"endfunction",
"endmodule",
"endprimitive",
"endspecify",
"endtable",
"endtask",
"event",
"for",
"force",
"forever",
"fork",
"function",
"highz0",
"highz1",
"if",
"ifnone",
"initial",
"inout",
"input",
"integer",
"join",
"large",
"macromodule",
"medium",
"module",
"nand",
"negedge",
"nmos",
"nor",
"not",
"notif0",
"notif1",
"or",
"output",
"parameter",
"pmos",
"posedge",
"primitive",
"pull0",
"pull1",
"pulldown",
"pullup",
"rcmos",
"real",
"realtime",
"reg",
"release",
"repeat",
"rnmos",
"rpmos",
"rtran",
"rtranif0",
"rtranif1",
"scalared",
"small",
"specify",
"specparam",
"strong0",
"strong1",
"supply0",
"supply1",
"table",
"task",
"time",
"tran",
"tranif0",
"tranif1",
"tri",
"tri0",
"tri1",
"triand",
"trior",
"trireg",
"vectored",
"wait",
"wand",
"weak0",
"weak1",
"while",
"wire",
"wor",
"xnor",
"xor",
"automatic",
"cell",
"config",
"design",
"endconfig",
"endgenerate",
"generate",
"genvar",
"incdir",
"include",
"instance",
"liblist",
"library",
"localparam",
"noshowcancelled",
"pulsestyle_ondetect",
"pulsestyle_onevent",
"showcancelled",
"signed",
"unsigned",
"use",
"uwire",
"alias",
"always_comb",
"always_ff",
"always_latch",
"assert",
"assume",
"before",
"bind",
"bins",
"binsof",
"bit",
"break",
"byte",
"chandle",
"class",
"clocking",
"const",
"constraint",
"context",
"continue",
"cover",
"covergroup",
"coverpoint",
"cross",
"dist",
"do",
"endclass",
"endclocking",
"endgroup",
"endinterface",
"endpackage",
"endprogram",
"endproperty",
"endsequence",
"enum",
"expect",
"export",
"extends",
"extern",
"final",
"first_match",
"foreach",
"forkjoin",
"iff",
"ignore_bins",
"illegal_bins",
"import",
"inside",
"int",
"interface",
"intersect",
"join_any",
"join_none",
"local",
"logic",
"longint",
"matches",
"modport",
"new",
"null",
"package",
"packed",
"priority",
"program",
"property",
"protected",
"pure",
"rand",
"randc",
"randcase",
"randsequence",
"ref",
"return",
"sequence",
"shortint",
"shortreal",
"solve",
"static",
"string",
"struct",
"super",
"tagged",
"this",
"throughout",
"timeprecision",
"timeunit",
"type",
"typedef",
"union",
"unique",
"var",
"virtual",
"void",
"wait_order",
"wildcard",
"with",
"within",
"accept_on",
"checker",
"endchecker",
"eventually",
"global",
"implies",
"let",
"nexttime",
"reject_on",
"restrict",
"s_always",
"s_eventually",
"s_nexttime",
"s_until",
"s_until_with",
"strong",
"sync_accept_on",
"sync_reject_on",
"unique0",
"until",
"until_with",
"untyped",
"weak",
"implements",
"interconnect",
"nettype",
"soft",
];
pub(crate) const KEYWORDS_1800_2017: &[&str] = &[
"accept_on",
"alias",
"always",
"always_comb",
"always_ff",
"always_latch",
"and",
"assert",
"assign",
"assume",
"automatic",
"before",
"begin",
"bind",
"bins",
"binsof",
"bit",
"break",
"buf",
"bufif0",
"bufif1",
"byte",
"case",
"casex",
"casez",
"cell",
"chandle",
"checker",
"class",
"clocking",
"cmos",
"config",
"const",
"constraint",
"context",
"continue",
"cover",
"covergroup",
"coverpoint",
"cross",
"deassign",
"default",
"defparam",
"design",
"disable",
"dist",
"do",
"edge",
"else",
"end",
"endcase",
"endchecker",
"endclass",
"endclocking",
"endconfig",
"endfunction",
"endgenerate",
"endgroup",
"endinterface",
"endmodule",
"endpackage",
"endprimitive",
"endprogram",
"endproperty",
"endspecify",
"endsequence",
"endtable",
"endtask",
"enum",
"event",
"eventually",
"expect",
"export",
"extends",
"extern",
"final",
"first_match",
"for",
"force",
"foreach",
"forever",
"fork",
"forkjoin",
"function",
"generate",
"genvar",
"global",
"highz0",
"highz1",
"if",
"iff",
"ifnone",
"ignore_bins",
"illegal_bins",
"implements",
"implies",
"import",
"incdir",
"include",
"initial",
"inout",
"input",
"inside",
"instance",
"int",
"integer",
"interconnect",
"interface",
"intersect",
"join",
"join_any",
"join_none",
"large",
"let",
"liblist",
"library",
"local",
"localparam",
"logic",
"longint",
"macromodule",
"matches",
"medium",
"modport",
"module",
"nand",
"negedge",
"nettype",
"new",
"nexttime",
"nmos",
"nor",
"noshowcancelled",
"not",
"notif0",
"notif1",
"null",
"or",
"output",
"package",
"packed",
"parameter",
"pmos",
"posedge",
"primitive",
"priority",
"program",
"property",
"protected",
"pull0",
"pull1",
"pulldown",
"pullup",
"pulsestyle_ondetect",
"pulsestyle_onevent",
"pure",
"rand",
"randc",
"randcase",
"randsequence",
"rcmos",
"real",
"realtime",
"ref",
"reg",
"reject_on",
"release",
"repeat",
"restrict",
"return",
"rnmos",
"rpmos",
"rtran",
"rtranif0",
"rtranif1",
"s_always",
"s_eventually",
"s_nexttime",
"s_until",
"s_until_with",
"scalared",
"sequence",
"shortint",
"shortreal",
"showcancelled",
"signed",
"small",
"soft",
"solve",
"specify",
"specparam",
"static",
"string",
"strong",
"strong0",
"strong1",
"struct",
"super",
"supply0",
"supply1",
"sync_accept_on",
"sync_reject_on",
"table",
"tagged",
"task",
"this",
"throughout",
"time",
"timeprecision",
"timeunit",
"tran",
"tranif0",
"tranif1",
"tri",
"tri0",
"tri1",
"triand",
"trior",
"trireg",
"type",
"typedef",
"union",
"unique",
"unique0",
"unsigned",
"until",
"until_with",
"untyped",
"use",
"uwire",
"var",
"vectored",
"virtual",
"void",
"wait",
"wait_order",
"wand",
"weak",
"weak0",
"weak1",
"while",
"wildcard",
"wire",
"with",
"within",
"wor",
"xnor",
"xor",
];