MCPcopy Create free account
hub / github.com/PyMesh/PyMesh / RunAtomicCode

Function RunAtomicCode

tests/external/gmock-1.7.0/gtest/scripts/pump.py:656–699  ·  view source on GitHub ↗
(env, node, output)

Source from the content-addressed store, hash-verified

654
655
656def RunAtomicCode(env, node, output):
657 if isinstance(node, VarNode):
658 identifier = node.identifier.value.strip()
659 result = Output()
660 RunAtomicCode(env.Clone(), node.atomic_code, result)
661 value = result.string
662 env.PushVariable(identifier, value)
663 elif isinstance(node, RangeNode):
664 identifier = node.identifier.value.strip()
665 lower = int(env.EvalExp(node.exp1))
666 upper = int(env.EvalExp(node.exp2))
667 env.PushRange(identifier, lower, upper)
668 elif isinstance(node, ForNode):
669 identifier = node.identifier.value.strip()
670 if node.sep is None:
671 sep = ''
672 else:
673 sep = node.sep.value
674 (lower, upper) = env.GetRange(identifier)
675 for i in range(lower, upper + 1):
676 new_env = env.Clone()
677 new_env.PushVariable(identifier, i)
678 RunCode(new_env, node.code, output)
679 if i != upper:
680 output.Append(sep)
681 elif isinstance(node, RawCodeNode):
682 output.Append(node.raw_code.value)
683 elif isinstance(node, IfNode):
684 cond = env.EvalExp(node.exp)
685 if cond:
686 RunCode(env.Clone(), node.then_branch, output)
687 elif node.else_branch is not None:
688 RunCode(env.Clone(), node.else_branch, output)
689 elif isinstance(node, ExpNode):
690 value = env.EvalExp(node)
691 output.Append('%s' % (value,))
692 elif isinstance(node, LiteralDollarNode):
693 output.Append('$')
694 elif isinstance(node, CodeNode):
695 RunCode(env.Clone(), node, output)
696 else:
697 print 'BAD'
698 print node
699 sys.exit(1)
700
701
702def RunCode(env, code_node, output):

Callers 1

RunCodeFunction · 0.85

Calls 8

OutputClass · 0.85
RunCodeFunction · 0.85
PushVariableMethod · 0.80
EvalExpMethod · 0.80
PushRangeMethod · 0.80
GetRangeMethod · 0.80
CloneMethod · 0.45
AppendMethod · 0.45

Tested by

no test coverage detected