updated for instruction interface to be more inline with the other instructions
This commit is contained in:
@@ -135,23 +135,6 @@ class if_instruction(Iinstruction):
|
|||||||
res += "}"
|
res += "}"
|
||||||
return res
|
return res
|
||||||
|
|
||||||
# class switch_instruction(Iinstruction):
|
|
||||||
# """Switch structure"""
|
|
||||||
|
|
||||||
# def __init__(self, instruction_text: str, cases: List[List[Iinstruction]]) -> None:
|
|
||||||
# Iinstruction.__init__(self, instruction_text)
|
|
||||||
# self.child_cases = cases
|
|
||||||
|
|
||||||
# def to_image(self, x:int, y:int, x_sz: int, y_sz: int) -> Iterable[float]:
|
|
||||||
# """TODO: implement"""
|
|
||||||
# return []
|
|
||||||
|
|
||||||
# def draw_children(self, x:float, y:float, x_sz:float, y_sz:float) -> float:
|
|
||||||
# """TODO: implement"""
|
|
||||||
# return 0.0
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class while_instruction_front(Iinstruction):
|
class while_instruction_front(Iinstruction):
|
||||||
|
|
||||||
def __init__(self, condition: str, instructions: List[Iinstruction]) -> None:
|
def __init__(self, condition: str, instructions: List[Iinstruction]) -> None:
|
||||||
@@ -213,4 +196,19 @@ class while_instruction_back(while_instruction_front):
|
|||||||
return res
|
return res
|
||||||
|
|
||||||
class for_instruction(while_instruction_front):
|
class for_instruction(while_instruction_front):
|
||||||
pass
|
def __init__(self, variable_def: str, condition: str, instructions: List[Iinstruction]) -> None:
|
||||||
|
super().__init__(condition, instructions)
|
||||||
|
self.variable_instrucion = generic_instruction(variable_def)
|
||||||
|
|
||||||
|
def to_image(self, x: int, y: int, x_sz: int) -> Tuple[float]:
|
||||||
|
x, y, x_sz = self.variable_instrucion.to_image(x, y, x_sz)
|
||||||
|
return super().to_image(x, y, x_sz)
|
||||||
|
|
||||||
|
def getblkheight(self) -> float:
|
||||||
|
return super().getblkheight()+self.variable_instrucion.getblkheight()
|
||||||
|
|
||||||
|
def getblkwidth(self) -> float:
|
||||||
|
return max(super().getblkwidth(), self.variable_instrucion.getblkwidth())
|
||||||
|
|
||||||
|
def __str__(self) -> str:
|
||||||
|
return self.variable_instrucion.__str__()+';\n' + super().__str__()
|
||||||
Reference in New Issue
Block a user