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