• Kipper

    v0.12.1
  • Downloads

  • Docs

  • Playground

  • Changelog

  • Kipper

    v0.12.1
    • Downloads

    • Docs

    • Playground

    • Changelog

      • 0.11.0 /
      • Kipper API /
      • Module /
      • @kipper/core /
      • compiler
    Kipper Docs
    • next
    • latest
    • 0.11.0
    • 0.10.4
    • 0.9.2
    • Overview

    • Quickstart

    • Goals for Kipper

    • Supported platforms

    • Usage Examples

      • Overview

      • Compiler Setup

        • Overview

          • index

          • compiler

          • errors

          • logger

          • utils

          • config

          • index

          • index

        • Overview

        • new

        • run

        • compile

        • help

        • version

    • Variables

      • Overview

      • String Type

      • Number Type

      • Boolean Type

      • Void Type

      • Null Type

      • Undefined Type

      • Array Type

      • Overview

      • Arithmetic Expression

      • Assignment Expression

      • Conditional Expressions

      • Logical Expressions

      • Bitwise Expression

      • Relational Expressions

      • Convert Expression

      • F-String Expression

      • Member Access Expression

      • Function Call Expression

      • Overview

      • Expression Statement

      • If Statement

      • While Loop

      • Do-While Loop

      • For Loop

      • Compound Statement

      • Jump Statement

    • Functions

    • Comments

    • Built-in Functions

      • 0.11.0 /
      • Kipper API /
      • Module /
      • @kipper/core /
      • compiler
    • 0.11.0 /
    • Kipper API /
    • Module /
    • @kipper/core /
    • compiler

    Edit page

    Class: FunctionScope

    compiler.FunctionScope

    A function-specific scope that is bound to a FunctionDeclaration and not the global namespace.

    Since

    0.10.0

    Hierarchy

    • LocalScope

      ↳ FunctionScope

    Table of contents

    Constructors

    • constructor

    Properties

    • _arguments
    • _entries
    • ctx

    Accessors

    • arguments
    • entries
    • parent

    Methods

    • addArgument
    • addFunction
    • addVariable
    • getArgument
    • getEntry
    • getEntryRecursively

    Constructors

    constructor

    • new FunctionScope(ctx)

    Parameters

    Name Type
    ctx LambdaExpression | FunctionDeclaration

    Overrides

    LocalScope.constructor

    Defined in

    kipper/core/src/compiler/analysis/symbol-table/function-scope.ts:18

    Properties

    _arguments

    • Protected Readonly _arguments: Map<string, ScopeParameterDeclaration>

    Defined in

    kipper/core/src/compiler/analysis/symbol-table/function-scope.ts:16


    _entries

    • Protected Readonly _entries: Map<string, ScopeDeclaration>

    Inherited from

    LocalScope._entries

    Defined in

    kipper/core/src/compiler/analysis/symbol-table/scope.ts:17


    ctx

    • ctx: LambdaExpression | FunctionDeclaration

    Inherited from

    LocalScope.ctx

    Defined in

    kipper/core/src/compiler/analysis/symbol-table/function-scope.ts:18

    Accessors

    arguments

    • get arguments(): Map<string, ScopeParameterDeclaration>

    All local arguments in this scope, which were defined by the parent function.

    These are available as usual to all children scopes.

    Since

    0.10.0

    Returns

    Map<string, ScopeParameterDeclaration>

    Defined in

    kipper/core/src/compiler/analysis/symbol-table/function-scope.ts:29


    entries

    • get entries(): Map<string, ScopeDeclaration>

    Returns the entries in this scope (symbol table entries).

    Since

    0.10.0

    Returns

    Map<string, ScopeDeclaration>

    Inherited from

    LocalScope.entries

    Defined in

    kipper/core/src/compiler/analysis/symbol-table/scope.ts:33


    parent

    • get parent(): LocalScope | GlobalScope

    The parent scope of this local scope. This will be either a LocalScope or a GlobalScope (unique to the KipperProgramContext class).

    Since

    0.10.0

    Returns

    LocalScope | GlobalScope

    Inherited from

    LocalScope.parent

    Defined in

    kipper/core/src/compiler/analysis/symbol-table/local-scope.ts:27

    Methods

    addArgument

    ▸ addArgument(declaration): ScopeParameterDeclaration

    Adds a new argument declaration to the list of arguments.

    Since

    0.10.0

    Parameters

    Name Type Description
    declaration ParameterDeclaration The argument declaration to add.

    Returns

    ScopeParameterDeclaration

    The generated scope declaration.

    Defined in

    kipper/core/src/compiler/analysis/symbol-table/function-scope.ts:39


    addFunction

    ▸ addFunction(declaration): ScopeFunctionDeclaration

    Adds a new function declaration to the symbol table entries.

    Since

    0.8.0

    Parameters

    Name Type Description
    declaration FunctionDeclaration The declaration to add.

    Returns

    ScopeFunctionDeclaration

    The generated scope declaration.

    Inherited from

    LocalScope.addFunction

    Defined in

    kipper/core/src/compiler/analysis/symbol-table/local-scope.ts:31


    addVariable

    ▸ addVariable(declaration): ScopeVariableDeclaration

    Adds a new variable declaration to the symbol table entries.

    Since

    0.8.0

    Parameters

    Name Type Description
    declaration VariableDeclaration The declaration to add.

    Returns

    ScopeVariableDeclaration

    The generated scope declaration.

    Inherited from

    LocalScope.addVariable

    Defined in

    kipper/core/src/compiler/analysis/symbol-table/local-scope.ts:37


    getArgument

    ▸ getArgument(identifier): undefined | ScopeParameterDeclaration

    Searches for an argument with the passed identifier in the current scope.

    Since

    0.10.0

    Parameters

    Name Type Description
    identifier string The identifier of the argument.

    Returns

    undefined | ScopeParameterDeclaration

    Defined in

    kipper/core/src/compiler/analysis/symbol-table/function-scope.ts:55


    getEntry

    ▸ getEntry(identifier): undefined | ScopeDeclaration

    Searches for a reference/entry with the specific identifier in the local hash table entries (local scope).

    If no reference is found, undefined will be returned.

    Since

    0.8.0

    Parameters

    Name Type Description
    identifier string The identifier to search for.

    Returns

    undefined | ScopeDeclaration

    The found reference or undefined.

    Overrides

    LocalScope.getEntry

    Defined in

    kipper/core/src/compiler/analysis/symbol-table/function-scope.ts:59


    getEntryRecursively

    ▸ getEntryRecursively(identifier): undefined | ScopeDeclaration

    Searches for a reference/entry with the specific identifier in the local hash table entries (local scope) and all parent scopes.

    If no reference is found, undefined will be returned.

    Since

    0.10.0

    Parameters

    Name Type Description
    identifier string The identifier to search for.

    Returns

    undefined | ScopeDeclaration

    The found reference or undefined.

    Overrides

    LocalScope.getEntryRecursively

    Defined in

    kipper/core/src/compiler/analysis/symbol-table/function-scope.ts:63

  • Developed at:

    • Releases
    • GitHub
    • Security
    • Issue Tracker
    • License
  • Copyright © 2021-2026 Luna Klatzer, 2024-2025 Lorenz Holzbauer & Fabian Baitura.
    Kipper is licensed under the GPL-3.0-or-later license.