Options
All
  • Public
  • Public/Protected
  • All
Menu

複数のLRアイテムを保持するアイテム集合であり、インスタンス生成時に自身をクロージャー展開する

GrammarDBから与えられるトークンIDをもとにして、LR(0)およびLR(1)アイテム集合としてのハッシュ値を生成することができる

Immutableであるべきオブジェクトであるため、インスタンス生成後は内部状態が変化することはないと仮定される

Hierarchy

  • ClosureSet

Index

Constructors

constructor

Properties

Private _lr0_hash

_lr0_hash: string

Private _lr1_hash

_lr1_hash: string

Private closureset

closureset: Array<ClosureItem>

Private grammardb

grammardb: GrammarDB

使用する構文の情報

Accessors

size

  • get size(): number

Methods

Private expandClosure

  • expandClosure(): void

getArray

  • 保持しているClosureItemの配列を得る

    Parameters

    • Default value prevent_copy: boolean = false

      trueを与えると配列をコピーせず返す

      得られた配列に変更が加えられないと保証される場合に用いる

    Returns Array<ClosureItem>

getLR0Hash

  • getLR0Hash(): string

getLR1Hash

  • getLR1Hash(): string

includes

isSameLR0

isSameLR1

mergeLA

  • LR(0)部分が同じ2つのClosureSetについて、先読み部分を統合した新しいClosureSetを生成する

    異なるLR(0)アイテム集合であった場合、nullを返す

    Parameters

    • cs: ClosureSet

      マージ対象のアイテム集合

    Returns ClosureSet | null

    先読み部分がマージされた新しいアイテム集合

Private sort

  • sort(): void

Private updateHash

  • updateHash(): void

Generated using TypeDoc