xfrp/envs/functions

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