✨
This commit is contained in:
@ -211,6 +211,10 @@ class Statement(BaseBox):
|
||||
def __repr__(self) -> str:
|
||||
return f"statement()"
|
||||
|
||||
class StatementSkip(Statement):
|
||||
def __repr__(self) -> str:
|
||||
return f"skip()"
|
||||
|
||||
class StatementSet(Statement):
|
||||
def __init__(self, expression: Exp, variable: str):
|
||||
self.expression = expression
|
||||
@ -316,6 +320,22 @@ class CommandIf(Command):
|
||||
else:
|
||||
return vtable, ftable, result
|
||||
|
||||
class CommandIfElse(Command):
|
||||
def __init__(self, statement: Statement, else_statement: Statement, condition):
|
||||
self.statement = statement
|
||||
self.else_statement = else_statement
|
||||
self.condition = condition
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"ifelse({self.statement}, {self.condition}, {self.else_statement})"
|
||||
|
||||
def eval(self, vtable, ftable):
|
||||
vtable, ftable, result = self.condition.eval(vtable, ftable)
|
||||
if result:
|
||||
return self.statement.eval(vtable, ftable)
|
||||
else:
|
||||
return self.else_statement.eval(vtable, ftable)
|
||||
|
||||
class CommandBecause(Command):
|
||||
def __init__(self, statement: Statement, condition):
|
||||
self.statement = statement
|
||||
|
Reference in New Issue
Block a user