Exemplo n.º 1
0
 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))
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
 def run(self, vm: VM):
   module_name = pop_value(vm)
   result = import_module(module_name)
   push(vm, result)
Exemplo n.º 7
0
 def run(self, vm: VM):
   key = pop_value(vm)
   python_module = pop(vm)
   result = getattr(python_module, key)
   push(vm, result)
Exemplo n.º 8
0
 def run(self, vm: VM):
   value1 = pop_value(vm)
   value2 = pop_value(vm)
   value = create_node(value2 / value1)
   push(vm, value)
Exemplo n.º 9
0
 def run(self, vm: VM):
   value = create_node(pop_value(vm) * pop_value(vm))
   push(vm, value)
Exemplo n.º 10
0
 def run(self, vm: VM):
     push(vm, StringNode(str(pop_value(vm)), None))
Exemplo n.º 11
0
 def run(self, vm: VM):
     value = pop_value(vm)
     push(vm, BooleanNode(not value, None))
Exemplo n.º 12
0
 def run(self, vm: VM):
     value = pop(vm)
     key = pop(vm)
     dict = pop(vm)
     dict.value.update({key.value: (key, value)})
     push(vm, dict)
Exemplo n.º 13
0
 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)
Exemplo n.º 14
0
 def run(self, vm: VM):
     push(vm, self)
Exemplo n.º 15
0
 def run(self, vm: VM):
     value = pop(vm)
     push(vm, value)
     push(vm, value)
Exemplo n.º 16
0
 def run(self, vm: VM):
   python_code = pop_value(vm)
   result = create_node(eval(python_code))
   push(vm, result)
Exemplo n.º 17
0
 def run(self, vm: VM):
     value = pop(vm)
     push(vm, BooleanNode(isinstance(value, NullNode), None))
Exemplo n.º 18
0
 def run(self, vm: VM):
     key = pop_value(vm)
     dict = pop(vm)
     push(vm, BooleanNode(key in dict.value, None))
Exemplo n.º 19
0
 def run(self, vm: VM):
     value1, value2 = two_pop_value(vm)
     push(vm, BooleanNode(value1 and value2, None))
Exemplo n.º 20
0
 def run(self, vm: VM):
     value1 = pop(vm)
     value2 = pop(vm)
     push(vm, value1)
     push(vm, value2)