openpectus.lang.exec.visitor

Attributes

logger

TNode

NullableActionResult

NodeGenerator

The generator return type for visitor methods.

Classes

NodeAction

Represents an action (of possibly many) to perform when interpreting a node. Allows

NodeVisitorGeneric

NodeVisitor

Functions

run_tick(gen)

Execute one interpretation tick

run_ffw_tick(gen)

Advance the generator a single tick while skipping execution.

prepend(action, gen)

Module Contents

openpectus.lang.exec.visitor.logger
openpectus.lang.exec.visitor.TNode
class openpectus.lang.exec.visitor.NodeAction(node, action, name='', tick_break=False)

Represents an action (of possibly many) to perform when interpreting a node. Allows side effect free visits of an ast tree.

Parameters:
  • node (TNode)

  • action (Callable[[TNode], None])

  • name (str)

  • tick_break (bool)

node
action
tick_break = False
execute()
openpectus.lang.exec.visitor.NullableActionResult
openpectus.lang.exec.visitor.NodeGenerator

The generator return type for visitor methods.

class openpectus.lang.exec.visitor.NodeVisitorGeneric
visit(node)
Return type:

NodeGenerator

generic_visit(node)
visit_Node(node)
Parameters:

node (openpectus.lang.model.ast.Node)

Return type:

NodeGenerator

openpectus.lang.exec.visitor.run_tick(gen)

Execute one interpretation tick

Parameters:

gen (NodeGenerator)

openpectus.lang.exec.visitor.run_ffw_tick(gen)

Advance the generator a single tick while skipping execution.

Calls interrupt_node_callback if it encounters a node that may require interrupt registration.

Return value:
  • node action

    if the generator has reached an action whose name was not in action history. This means that ffw should complete and the action should be executed before resuming normal method excution.

  • False

    if tick_break or None was encountered

  • True

    if the generator was exhausted

Parameters:

gen (NodeGenerator)

Return type:

bool | NodeAction

openpectus.lang.exec.visitor.prepend(action, gen)
Parameters:
Return type:

NodeGenerator

class openpectus.lang.exec.visitor.NodeVisitor

Bases: NodeVisitorGeneric

visit_ProgramNode(node)
Parameters:

node (openpectus.lang.model.ast.ProgramNode)

Return type:

NodeGenerator

_visit_children(node)
Parameters:

node (openpectus.lang.model.ast.NodeWithChildren)

Return type:

NodeGenerator

visit_BlankNode(node)
Parameters:

node (openpectus.lang.model.ast.BlankNode)

Return type:

NodeGenerator

visit_CommentNode(node)
Parameters:

node (openpectus.lang.model.ast.CommentNode)

Return type:

NodeGenerator

visit_MarkNode(node)
Parameters:

node (openpectus.lang.model.ast.MarkNode)

Return type:

NodeGenerator

visit_BlockNode(node)
Parameters:

node (openpectus.lang.model.ast.BlockNode)

Return type:

NodeGenerator

visit_EndBlockNode(node)
Parameters:

node (openpectus.lang.model.ast.EndBlockNode)

Return type:

NodeGenerator

visit_EndBlocksNode(node)
Parameters:

node (openpectus.lang.model.ast.EndBlocksNode)

Return type:

NodeGenerator

visit_BatchNode(node)
Parameters:

node (openpectus.lang.model.ast.BatchNode)

Return type:

NodeGenerator

visit_WatchNode(node)
Parameters:

node (openpectus.lang.model.ast.WatchNode)

Return type:

NodeGenerator

visit_AlarmNode(node)
Parameters:

node (openpectus.lang.model.ast.AlarmNode)

Return type:

NodeGenerator

visit_MacroNode(node)
Parameters:

node (openpectus.lang.model.ast.MacroNode)

Return type:

NodeGenerator

visit_CallMacroNode(node)
Parameters:

node (openpectus.lang.model.ast.CallMacroNode)

Return type:

NodeGenerator

visit_InterpreterCommandNode(node)
Parameters:

node (openpectus.lang.model.ast.InterpreterCommandNode)

Return type:

NodeGenerator

visit_NotifyNode(node)
Parameters:

node (openpectus.lang.model.ast.NotifyNode)

Return type:

NodeGenerator

visit_EngineCommandNode(node)
Parameters:

node (openpectus.lang.model.ast.EngineCommandNode)

Return type:

NodeGenerator

visit_UodCommandNode(node)
Parameters:

node (openpectus.lang.model.ast.UodCommandNode)

Return type:

NodeGenerator

visit_ErrorInstructionNode(node)
Parameters:

node (openpectus.lang.model.ast.ErrorInstructionNode)

Return type:

NodeGenerator

visit_SimulateNode(node)
Parameters:

node (openpectus.lang.model.ast.SimulateNode)

Return type:

NodeGenerator

visit_SimulateOffNode(node)
Parameters:

node (openpectus.lang.model.ast.SimulateOffNode)

Return type:

NodeGenerator