xfrp/envs/nodes

Node (time-varying value) environments.

Types

XfrpNodeId = XfrpId
Node identifier.   Source Edit
XfrpNodeDescription = object
  id: WithCodeInfo[XfrpId]
  initOpt: Option[WithCodeInfo[XfrpExpr]]
  initDepsNow, initDepsAtLast: seq[XfrpNodeId]
  delay: int
  case isInput: bool
  of true:
      inputType: WithCodeInfo[XfrpType]

  of false:
      innerTypeOpt: Option[WithCodeInfo[XfrpType]]
      update: WithCodeInfo[XfrpExpr]
      depsNow, depsAtLast: seq[XfrpNodeId]

  
Details about a node. It can describe both input and inner node.   Source Edit
XfrpNodeEnv = object
  tbl: XfrpNodeDescriptionTable
  sortedInnerNodeIds: seq[XfrpNodeId]
  inputNodeIds, outputNodeIds: seq[XfrpNodeId]
  sortedInitNodeIds: seq[XfrpNodeId]
  maxDelay: int
A node environment.   Source Edit

Procs

proc makeNodeEnvironment(materialTbl: XfrpMaterials; opEnv: XfrpOpEnv;
                         flags: set[CompilerFlag] = {}): XfrpNodeEnv {...}{.raises: [
    KeyError, XfrpDefinitionError, XfrpSyntaxError, XfrpReferenceError,
    XfrpTypeError], tags: [].}
Construct new node environment.   Source Edit
proc getNode(env: XfrpNodeEnv; id: XfrpNodeId): XfrpNodeDescription {...}{.
    raises: [KeyError], tags: [].}
Get a node description by node ID.   Source Edit

Funcs

func id(desc: XfrpNodeDescription): WithCodeInfo[XfrpId] {...}{.raises: [], tags: [].}
  Source Edit
func initOpt(desc: XfrpNodeDescription): Option[WithCodeInfo[XfrpExpr]] {...}{.
    raises: [], tags: [].}
  Source Edit
func isInput(desc: XfrpNodeDescription): bool {...}{.raises: [], tags: [].}
  Source Edit
func inputType(desc: XfrpNodeDescription): WithCodeInfo[XfrpType] {...}{.raises: [],
    tags: [].}
  Source Edit
func innerTypeOpt(desc: XfrpNodeDescription): Option[WithCodeInfo[XfrpType]] {...}{.
    raises: [], tags: [].}
  Source Edit
func update(desc: XfrpNodeDescription): WithCodeInfo[XfrpExpr] {...}{.raises: [],
    tags: [].}
  Source Edit
func maxDelay(env: XfrpNodeEnv): int {...}{.raises: [], tags: [].}
  Source Edit

Iterators

iterator items(env: XfrpNodeEnv): XfrpNodeId {...}{.raises: [], tags: [].}
Iterate all nodes by ID.   Source Edit
iterator innerNodeIds(env: XfrpNodeEnv): XfrpNodeId {...}{.raises: [], tags: [].}
Iterate all inner nodes by ID.   Source Edit
iterator inputNodeIds(env: XfrpNodeEnv): XfrpNodeId {...}{.raises: [], tags: [].}
Iterate all input nodes by ID.   Source Edit
iterator outputNodeIds(env: XfrpNodeEnv): XfrpNodeId {...}{.raises: [], tags: [].}
Iterate all output nodes by ID.   Source Edit
iterator initNodesOfDelay(env: XfrpNodeEnv; delay: int): XfrpNodeId {...}{.
    raises: [KeyError], tags: [].}
Iterate nodes whose delay is at least minDelay.   Source Edit
iterator exprs(env: XfrpNodeEnv): WithCodeInfo[XfrpExpr] {...}{.raises: [], tags: [].}
Iterate all expressions associated with nodes as update expressions or initialization expression.   Source Edit
iterator depsNow(desc: XfrpNodeDescription): XfrpNodeId {...}{.raises: [], tags: [].}
Iterate all current-value dependencies of a given node.   Source Edit
iterator depsAtLast(desc: XfrpNodeDescription): XfrpNodeId {...}{.raises: [],
    tags: [].}
Iterate all at-last dependencies of a given node.   Source Edit
iterator initDepsNow(desc: XfrpNodeDescription): XfrpNodeId {...}{.raises: [],
    tags: [].}
Iterate all current-value dependencies of a given node while its initialization.   Source Edit
iterator initDepsAtLast(desc: XfrpNodeDescription): XfrpNodeId {...}{.raises: [],
    tags: [].}
Iterate all at-last dependencies of a given node while its initialization.   Source Edit