# TODO: generalize this to all gear generation methods. Do proper error
# reporting where it is not feasible to replace names

sv_keywords = [
    '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',
    'class',
    'clocking',
    'cmos',
    'config',
    'const',
    'constraint',
    'context',
    'continue',
    'cover',
    'covergroup',
    'coverpoint',
    'cross',
    'deassign',
    'default',
    'defparam',
    'design',
    'disable',
    'dist',
    'do',
    'edge',
    'else',
    'end',
    'endcase',
    'endclass',
    'endclocking',
    'endconfig',
    'endfunction',
    'endgenerate',
    'endgroup',
    'endinterface',
    'endmodule',
    'endpackage',
    'endprimitive',
    'endprogram',
    'endproperty',
    'endspecify',
    'endsequence',
    'endtable',
    'endtask',
    'enum',
    'event',
    'expect',
    'export',
    'extends',
    'extern',
    'final',
    'first_match',
    'for',
    'force',
    'foreach',
    'forever',
    'fork',
    'forkjoin',
    'function',
    'generate',
    'genvar',
    'highz0',
    'highz1',
    'if',
    'iff',
    'ifnone',
    'ignore_bins',
    'illegal_bins',
    'import',
    'incdir',
    'include',
    'initial',
    'inout',
    'input',
    'inside',
    'instance',
    'int',
    'integer',
    'interface',
    'intersect',
    'join',
    'join_any',
    'join_none',
    'large',
    'liblist',
    'library',
    'local',
    'localparam',
    'logic',
    'longint',
    'macromodule',
    'matches',
    'medium',
    'modport',
    'module',
    'nand',
    'negedge',
    'new',
    'nmos',
    'nor',
    'noshowcancelled',
    'not',
    'notif0',
    'notif1',
    'null',
    'or',
    'output',
    'package',
    'packed',
    'parameter',
    'pmos',
    'posedge',
    'primitive',
    'priority',
    'program',
    'property',
    'protected',
    'pull0',
    'pull1',
    'pulldown',
    'pullup',
    'pulsestyle_onevent',
    'pulsestyle_ondetect',
    'pure',
    'rand',
    'randc',
    'randcase',
    'randsequence',
    'rcmos',
    'real',
    'realtime',
    'ref',
    'reg',
    'release',
    'repeat',
    'return',
    'rnmos',
    'rpmos',
    'rtran',
    'rtranif0',
    'rtranif1',
    'scalared',
    'sequence',
    'shortint',
    'shortreal',
    'showcancelled',
    'signed',
    'small',
    'solve',
    'specify',
    'specparam',
    'static',
    'string',
    'strong0',
    'strong1',
    'struct',
    'super',
    'supply0',
    'supply1',
    'table',
    'tagged',
    'task',
    'this',
    'throughout',
    'time',
    'timeprecision',
    'timeunit',
    'tran',
    'tranif0',
    'tranif1',
    'tri',
    'tri0',
    'tri1',
    'triand',
    'trior',
    'trireg',
    'type',
    'typedef',
    'union',
    'unique',
    'unsigned',
    'use',
    'uwire',
    'var',
    'vectored',
    'virtual',
    'void',
    'wait',
    'wait_order',
    'wand',
    'weak0',
    'weak1',
    'while',
    'wildcard',
    'wire',
    'with',
    'within',
    'wor',
    'xnor',
    'xor',
]
