aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author简律纯 <i@jyunko.cn>2023-07-25 16:11:05 +0800
committer简律纯 <i@jyunko.cn>2023-07-25 16:11:05 +0800
commit70908b2d0571278597f97bcae7bc2a1bc9773906 (patch)
treeacd5ebbef514152ee002eddd7498ab1c86494382
parent3995e2e9e89cb8fcb10dc29bff3fb95e10fa2ab1 (diff)
downloadTRPGNivis-70908b2d0571278597f97bcae7bc2a1bc9773906.tar.gz
TRPGNivis-70908b2d0571278597f97bcae7bc2a1bc9773906.zip
fix url
-rw-r--r--readme.rst2
-rw-r--r--tests/if-else.py76
2 files changed, 1 insertions, 77 deletions
diff --git a/readme.rst b/readme.rst
index 40367f4..1195ef2 100644
--- a/readme.rst
+++ b/readme.rst
@@ -85,7 +85,7 @@ How to build docs
Documentation
-------------
-Psi documentation is available at `retrofor <https://hydroroll-team.github.io/psi>`_.
+Psi documentation is available at `psi.retrofor <https://psi.retrofor.space>`_.
You can also view it throw the following links:
diff --git a/tests/if-else.py b/tests/if-else.py
index f97322a..e69de29 100644
--- a/tests/if-else.py
+++ b/tests/if-else.py
@@ -1,76 +0,0 @@
-class AssignNode:
- def __init__(self, variable, value):
- self.variable = variable
- self.value = value
-
-class ComparisonNode:
- def __init__(self, operator, left, right):
- self.operator = operator
- self.left = left
- self.right = right
-
-class IfNode:
- def __init__(self, condition, body):
- self.condition = condition
- self.body = body
-
-class ReplyNode:
- def __init__(self, message):
- self.message = message
-
-import ast
-
-def parse_code(code):
- tree = ast.parse(code)
- return parse_node(tree.body[0])
-
-def parse_node(node):
- if isinstance(node, ast.Assign):
- variable = node.targets[0].id
- value = parse_node(node.value)
- return AssignNode(variable, value)
- elif isinstance(node, ast.Compare):
- operator = node.ops[0]
- left = parse_node(node.left)
- right = parse_node(node.comparators[0])
- return ComparisonNode(operator, left, right)
- elif isinstance(node, ast.If):
- condition = parse_node(node.test)
- body = parse_node(node.body[0])
- return IfNode(condition, body)
- elif isinstance(node, ast.Expr):
- return ReplyNode(node.value.s)
- elif isinstance(node, ast.Name):
- return node.id
- elif isinstance(node, ast.Num):
- return node.n
-
-def execute_ast(ast, environment):
- if isinstance(ast, AssignNode):
- environment[ast.variable] = ast.value
- elif isinstance(ast, ComparisonNode):
- left = execute_ast(ast.left, environment)
- right = execute_ast(ast.right, environment)
- if ast.operator == '==':
- return left == right
- elif ast.operator == '!=':
- return left != right
- elif ast.operator == '<':
- return left < right
- elif ast.operator == '>':
- return left > right
- elif isinstance(ast, IfNode):
- if condition := execute_ast(ast.condition, environment):
- execute_ast(ast.body, environment)
- elif isinstance(ast, ReplyNode):
- message = ast.message.format(**environment)
- print(message)
-
-def main():
- code = input("请输入代码: ")
- ast = parse_code(code)
- environment = {}
- execute_ast(ast, environment)
-
-if __name__ == "__main__":
- main()