Options
All
  • Public
  • Public/Protected
  • All
Menu

The body of the recursive function (replaces call that initiates the recursion)

Hierarchy

  • Expr
    • RecursiveBodyExpr

Index

Constructors

Properties

_datatype?: Type
_isCompiled: boolean = false
giveExprs: DependentLocalExpr[] = null

Output locals

gives: DataExpr[] = null

Output expressions

helper?: RecFunExpr

Recursive helper function

id: number

Unique labels

isTailRecursive: boolean = false

Can we TCO?

label: string
takeExprs: DependentLocalExpr[] = null

Input Locals

takes: DataExpr[] = null

Input expressions

token: LexerToken
type: ValueType
value: any
Type: typeof ValueType = ValueType
_uid: number = 0

Used to make unique label

Accessors

  • get datatype(): Type
  • set datatype(t: Type): void
  • get expensive(): boolean
  • Would it be better to store the value in a local or inline it multiple times?

    virtual

    Returns boolean

    true if performance would improve with caching false if inlining better

Methods

  • _isTailRecursive(): boolean
  • Determine if we can apply tco

    Returns boolean

    true if we can use a loop instead of recursive func call

  • isConstExpr(): boolean
  • typename(): string

Generated using TypeDoc