from tclint.commands.checks import CommandArgError from tclint.syntax_tree import BracedWord def _lib_ge_command_buffer_edit(args, parser, command_name, pos_script, len_args): if len(args) != len_args: raise CommandArgError( f"wrong # of args to {command_name}: got {len(args)}, expected {len_args}" ) args[pos_script] = parser.parse_script(args[pos_script]) return args def _lib_ge_command_buffer(args, parser): if ( len(args) < 1 or len(args) > 2 or (len(args) == 1 and isinstance(args[0], BracedWord)) ): raise CommandArgError( f"wrong # of args to LIB_GE_command_buffer: got {len(args)}, expected 1 or 2" ) if len(args) == 1: return args args[0] = parser.parse_script(args[0]) return args def lib_ge_command_buffer_edit_append(args, parser): _lib_ge_command_buffer_edit(args, parser, "LIB_GE_command_buffer_edit_append", 2, 4) def lib_ge_command_buffer_edit_prepend(args, parser): _lib_ge_command_buffer_edit( args, parser, "LIB_GE_command_buffer_edit_prepend", 2, 4 ) def lib_ge_command_buffer_edit_insert(args, parser): _lib_ge_command_buffer_edit(args, parser, "LIB_GE_command_buffer_edit_insert", 2, 6) commands = [ {"LIB_GE_command_buffer_edit_append": lib_ge_command_buffer_edit_append}, {"LIB_GE_command_buffer_edit_prepend": lib_ge_command_buffer_edit_prepend}, {"LIB_GE_command_buffer_edit_insert": lib_ge_command_buffer_edit_insert}, {"LIB_GE_command_buffer": _lib_ge_command_buffer}, ]