import random try: from .rand import rand_var, rand_case, rand_words, rand_label except ImportError: from rand import rand_var, rand_case, rand_words, rand_label def make_junk_var(): return f'%{rand_var()}%' def make_set_cmd(var_name, value, obfuscate=True): set_cmd = rand_case('set') if obfuscate: fmt = f'{set_cmd} "{var_name}={value}"' prefix = make_junk_var() if random.random() > 0.5 else '' return f'{prefix}{fmt}' return f'{set_cmd} "{var_name}={value}"' def make_goto_cmd(label): goto = rand_case('goto') g = goto[0] + make_junk_var() + goto[1] + make_junk_var() + goto[2:] return f'{g} :{label}' def make_rem_line(): rem = rand_case('rem') style = random.choice(['rem', '::', 'rem_junk']) if style == 'rem': r = rem[0] + make_junk_var() + rem[1:] return f'{r} {make_junk_var()} {rand_words()}' elif style == '::': return f'{make_junk_var()}:: {make_junk_var()} {rand_words()}' else: r = rand_case('rem') return f'%{rand_var()}%{r} %{rand_var()}% {rand_words()}' def make_junk_block(): lines = [] next_label = rand_label() lines.append(make_goto_cmd(next_label)) for _ in range(random.randint(1, 3)): lines.append(make_rem_line()) lines.append(f':{next_label}') return lines