Skip to content

Commit

Permalink
🖊️ Add meta in a few more existing places (#4946)
Browse files Browse the repository at this point in the history
Fixes #3388

The exceptions that now do not have a line number (like LonelyEcho) can't easily support it.
  • Loading branch information
Felienne authored Jan 8, 2024
1 parent 3bdc8cc commit 2f55229
Showing 1 changed file with 13 additions and 27 deletions.
40 changes: 13 additions & 27 deletions hedy.py
Original file line number Diff line number Diff line change
Expand Up @@ -1406,20 +1406,6 @@ def process_variable_for_comparisons(self, name):
elif ConvertToPython.is_quoted(name):
return f"{name}"

def make_f_string(self, args):
argument_string = ''
for argument in args:
if self.is_variable(argument):
# variables are placed in {} in the f string
argument_string += "{" + escape_var(argument) + "}"
else:
# strings are written regularly
# however we no longer need the enclosing quotes in the f-string
# the quotes are only left on the argument to check if they are there.
argument_string += argument.replace("'", '')

return f"print(f'{argument_string}')"

def get_fresh_var(self, name):
while self.is_variable(name):
name = '_' + name
Expand Down Expand Up @@ -1696,7 +1682,7 @@ def turn(self, meta, args):
if len(args) == 0:
return f"t.right(90){self.add_debug_breakpoint()}" # no arguments defaults to a right turn
arg = args[0]
if self.is_variable(arg):
if self.is_variable(arg, meta.line):
return self.make_turn(escape_var(arg))
if arg.lstrip("-").isnumeric():
return self.make_turn(arg)
Expand Down Expand Up @@ -1776,7 +1762,7 @@ def assign(self, meta, args):
exception = self.make_catch_exception([value])
return exception + variable_name + " = " + value + self.add_debug_breakpoint()
else:
if self.is_variable(value): # if the value is a variable, this is a reassign
if self.is_variable(value, meta.line): # if the value is a variable, this is a reassign
value = self.process_variable(value, meta.line)
return variable_name + " = " + value + self.add_debug_breakpoint()
else:
Expand Down Expand Up @@ -1993,7 +1979,7 @@ def make_ifpressed_command(self, command, button=False, add_command_prefix=True)

def ifpressed_else(self, meta, args):
var_or_button = args[0]
if self.is_variable(var_or_button):
if self.is_variable(var_or_button, meta.line):
return self.make_ifpressed_command(f"""\
if event.key == {var_or_button}:
{ConvertToPython.indent(args[1])}
Expand Down Expand Up @@ -2088,7 +2074,7 @@ def assign(self, meta, args):
if type(value) is Tree:
return parameter + " = " + value.children[0] + self.add_debug_breakpoint()
else:
if self.is_variable(value):
if self.is_variable(value, meta.line):
value = self.process_variable(value, meta.line)
if self.is_list(value) or self.is_random(value):
exception = self.make_catch_exception([value])
Expand Down Expand Up @@ -2135,7 +2121,7 @@ def turn(self, meta, args):
if len(args) == 0:
return "t.right(90)" + self.add_debug_breakpoint() # no arguments defaults to a right turn
arg = args[0]
if self.is_variable(arg):
if self.is_variable(arg, meta.line):
return self.make_turn(escape_var(arg))
if isinstance(arg, Tree):
return self.make_turn(arg.children[0])
Expand All @@ -2145,7 +2131,7 @@ def forward(self, meta, args):
if len(args) == 0:
return add_sleep_to_command('t.forward(50)' + self.add_debug_breakpoint(), False, self.is_debug, location="after")
arg = args[0]
if self.is_variable(arg):
if self.is_variable(arg, meta.line):
return self.make_forward(escape_var(arg))
if isinstance(arg, Tree):
return self.make_forward(arg.children[0])
Expand Down Expand Up @@ -2208,14 +2194,14 @@ def ifs(self, meta, args):
all_lines = [ConvertToPython.indent(x) for x in args[1:]]
return "if " + args[0] + ":" + self.add_debug_breakpoint() + "\n" + "\n".join(all_lines)

def ifpressed(self, met, args):
def ifpressed(self, meta, args):
args = [a for a in args if a != ""] # filter out in|dedent tokens

all_lines = '\n'.join([x for x in args[1:]])
all_lines = ConvertToPython.indent(all_lines)
var_or_key = args[0]
# if this is a variable, we assume it is a key (for now)
if self.is_variable(var_or_key):
if self.is_variable(var_or_key, meta.line):
return self.make_ifpressed_command(f"""\
if event.unicode == {args[0]}:
{all_lines}
Expand All @@ -2226,7 +2212,7 @@ def ifpressed(self, met, args):
{all_lines}
break""", button=False)
else: # otherwise we mean a button
button_name = self.process_variable(args[0], met.line)
button_name = self.process_variable(args[0], meta.line)
return self.make_ifpressed_command(f"""\
if event.key == {button_name}:
{all_lines}
Expand Down Expand Up @@ -2462,7 +2448,7 @@ def turn(self, meta, args):
if len(args) == 0:
return "t.right(90)" + self.add_debug_breakpoint() # no arguments defaults to a right turn
arg = args[0]
if self.is_variable(arg):
if self.is_variable(arg, meta.line):
return self.make_turn(escape_var(arg))
if isinstance(arg, Tree):
return self.make_turn(arg.children[0])
Expand All @@ -2472,7 +2458,7 @@ def forward(self, meta, args):
if len(args) == 0:
return add_sleep_to_command('t.forward(50)' + self.add_debug_breakpoint(), False, self.is_debug, location="after")
arg = args[0]
if self.is_variable(arg):
if self.is_variable(arg, meta.line):
return self.make_forward(escape_var(arg))
if isinstance(arg, Tree):
return self.make_forward(arg.children[0])
Expand Down Expand Up @@ -2553,7 +2539,7 @@ def ifpressed(self, meta, args):
body = "\n".join(all_lines)

# for now we assume a var is a letter, we can check this lateron by searching for a ... = button
if self.is_variable(var_or_button):
if self.is_variable(var_or_button, meta.line):
return self.make_ifpressed_command(f"""\
if event.unicode == {args[0]}:
{body}
Expand Down Expand Up @@ -2612,7 +2598,7 @@ def ifpressed_elifs(self, meta, args):
all_lines = ConvertToPython.indent(all_lines)
var_or_key = args[0]
# if this is a variable, we assume it is a key (for now)
if self.is_variable(var_or_key):
if self.is_variable(var_or_key, meta.line):
return self.make_ifpressed_command(f"""\
if event.unicode == {args[0]}:
{all_lines}
Expand Down

0 comments on commit 2f55229

Please sign in to comment.