コード例 #1
0
ファイル: nodes_dictionary.py プロジェクト: kstrempel/pactor
 def run(self, vm: VM):
     key = pop_value(vm)
     dict = pop(vm)
     if key in dict.value:
         push(vm, dict.value[key][1])
     else:
         push(vm, NullNode(None))
コード例 #2
0
ファイル: nodes_dictionary.py プロジェクト: kstrempel/pactor
 def run(self, vm: VM):
     key = pop_value(vm)
     dict = pop(vm)
     value = NullNode(None)
     if key in dict.value:
         value = dict.value.pop(key)[1]
     push(vm, dict)
     push(vm, value)
コード例 #3
0
ファイル: nodes_sequence.py プロジェクト: kstrempel/pactor
 def run(self, vm: VM):
     quote = pop(vm)
     acc = pop(vm)
     sequence = pop(vm)
     for entry in sequence:
         run_node(vm, entry)
         run_node(vm, acc)
         vm.run_ast(quote.ast)
         acc = pop(vm)
     push(vm, acc)
コード例 #4
0
ファイル: nodes_sequence.py プロジェクト: kstrempel/pactor
 def run(self, vm: VM):
     quote = pop(vm)
     sequence = pop(vm)
     result = ArrayNode()
     for entry in sequence:
         run_node(vm, entry)
         vm.run_ast(quote.ast)
         node = pop(vm)
         result.append(node)
     push(vm, result)
コード例 #5
0
ファイル: nodes_sequence.py プロジェクト: kstrempel/pactor
 def run(self, vm: VM):
     quote = pop(vm)
     sequence = pop(vm)
     filtered = ArrayNode()
     for entry in sequence:
         run_node(vm, entry)
         vm.run_ast(quote.ast)
         result = pop_value(vm)
         if result:
             filtered.append(entry)
     push(vm, filtered)
コード例 #6
0
 def run(self, vm: VM):
   module_name = pop_value(vm)
   result = import_module(module_name)
   push(vm, result)
コード例 #7
0
 def run(self, vm: VM):
   key = pop_value(vm)
   python_module = pop(vm)
   result = getattr(python_module, key)
   push(vm, result)
コード例 #8
0
ファイル: nodes_math.py プロジェクト: kstrempel/pactor
 def run(self, vm: VM):
   value1 = pop_value(vm)
   value2 = pop_value(vm)
   value = create_node(value2 / value1)
   push(vm, value)
コード例 #9
0
ファイル: nodes_math.py プロジェクト: kstrempel/pactor
 def run(self, vm: VM):
   value = create_node(pop_value(vm) * pop_value(vm))
   push(vm, value)
コード例 #10
0
ファイル: nodes_stack.py プロジェクト: kstrempel/pactor
 def run(self, vm: VM):
     push(vm, StringNode(str(pop_value(vm)), None))
コード例 #11
0
 def run(self, vm: VM):
     value = pop_value(vm)
     push(vm, BooleanNode(not value, None))
コード例 #12
0
ファイル: nodes_dictionary.py プロジェクト: kstrempel/pactor
 def run(self, vm: VM):
     value = pop(vm)
     key = pop(vm)
     dict = pop(vm)
     dict.value.update({key.value: (key, value)})
     push(vm, dict)
コード例 #13
0
ファイル: nodes_dictionary.py プロジェクト: kstrempel/pactor
 def run(self, vm: VM):
     dict = pop(vm)
     result = ArrayNode(None, None)
     for k, v in dict.value.values():
         result.append(k)
     push(vm, result)
コード例 #14
0
ファイル: nodes_dictionary.py プロジェクト: kstrempel/pactor
 def run(self, vm: VM):
     push(vm, self)
コード例 #15
0
ファイル: nodes_stack.py プロジェクト: kstrempel/pactor
 def run(self, vm: VM):
     value = pop(vm)
     push(vm, value)
     push(vm, value)
コード例 #16
0
 def run(self, vm: VM):
   python_code = pop_value(vm)
   result = create_node(eval(python_code))
   push(vm, result)
コード例 #17
0
 def run(self, vm: VM):
     value = pop(vm)
     push(vm, BooleanNode(isinstance(value, NullNode), None))
コード例 #18
0
ファイル: nodes_dictionary.py プロジェクト: kstrempel/pactor
 def run(self, vm: VM):
     key = pop_value(vm)
     dict = pop(vm)
     push(vm, BooleanNode(key in dict.value, None))
コード例 #19
0
 def run(self, vm: VM):
     value1, value2 = two_pop_value(vm)
     push(vm, BooleanNode(value1 and value2, None))
コード例 #20
0
ファイル: nodes_stack.py プロジェクト: kstrempel/pactor
 def run(self, vm: VM):
     value1 = pop(vm)
     value2 = pop(vm)
     push(vm, value1)
     push(vm, value2)