42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
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 |