Function environments.
Types
XfrpFuncId = tuple[module: XfrpModuleId, id: XfrpId]
- Function identifier. Source Edit
XfrpFuncDescription = object id: WithCodeInfo[XfrpId] module: WithCodeInfo[XfrpModuleId] retType: WithCodeInfo[XfrpType] args: seq[WithCodeInfo[XfrpIdAndType]] body: WithCodeInfo[XfrpExpr] deps: seq[XfrpFuncId]
- Details about a function. Source Edit
XfrpFuncEnv = object tbl: XfrpFuncDescriptionTable sortedIds: seq[XfrpFuncId]
- A function environment. Source Edit
Procs
proc makeFunctionEnvironment(materialTbl: XfrpMaterials; opEnv: XfrpOpEnv): XfrpFuncEnv {...}{.raises: [ KeyError, XfrpDefinitionError, XfrpSyntaxError, XfrpReferenceError], tags: [].}
- Construct new function environment. Source Edit
proc getFunction(env: XfrpFuncEnv; id: XfrpFuncId): XfrpFuncDescription {...}{. raises: [KeyError], tags: [].}
- Get a function description by function ID. Source Edit
proc findFuncId(env: XfrpFuncEnv; id: XfrpId; definedIn: XfrpModuleId; materialTbl: XfrpMaterials): XfrpFuncId {...}{. raises: [KeyError, XfrpLanguageError], tags: [].}
- Search available function ID in given module. Source Edit
Funcs
func `$`(funcId: XfrpFuncId): string {...}{.raises: [], tags: [].}
- Source Edit
func checkFuncValidity(env: XfrpFuncEnv; exp: WithCodeInfo[XfrpExpr]; definedIn: XfrpModuleId; materialTbl: XfrpMaterials) {...}{. raises: [KeyError, XfrpReferenceError], tags: [].}
- Check if functions are all valid. If validity check is passed, then return true. Source Edit
func id(desc: XfrpFuncDescription): WithCodeInfo[XfrpId] {...}{.raises: [], tags: [].}
- Source Edit
func module(desc: XfrpFuncDescription): WithCodeInfo[XfrpModuleId] {...}{.raises: [], tags: [].}
- Source Edit
func retType(desc: XfrpFuncDescription): WithCodeInfo[XfrpType] {...}{.raises: [], tags: [].}
- Source Edit
func args(desc: XfrpFuncDescription): seq[WithCodeInfo[XfrpIdAndType]] {...}{. raises: [], tags: [].}
- Source Edit
func body(desc: XfrpFuncDescription): WithCodeInfo[XfrpExpr] {...}{.raises: [], tags: [].}
- Source Edit
Iterators
iterator items(env: XfrpFuncEnv): XfrpFuncId {...}{.raises: [], tags: [].}
- Iterate all functions by ID. Source Edit