> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 名前のスコープ

> FlexiLayout language における名前のスコープ: 変数、定数、要素の仮説を、Advanced セクションおよび要素ツリー内のどこで参照できるか。

要素、定数、変数の名前は、プログラム内の特定のセクションでのみ使用できます。これを名前の「スコープ」と呼びます。変数のスコープは、その存続期間も決定します。

**Region expression**、**Advanced pre-search relations**、または **Advanced post-search relations** セクションで宣言された変数名は、そのセクション内で、かつ宣言された位置より後でのみ参照できます。

ブロック内で宣言された名前は、そのブロック内と、そのブロックに含まれるブロック内で、かつ宣言された位置より後でのみ参照できます。

```text theme={null}
{
 Int a; a = 5;
}
```

<div id="access-to-element-hypotheses">
  ## 要素仮説へのアクセス
</div>

要素仮説には、要素名を通じてアクセスできます。

アクセスできる仮説は、どのセクションにいるかによって決まります。

| Section                                   | アクセス可能な仮説                                   |
| ----------------------------------------- | ------------------------------------------- |
| **Advanced pre-search relations**         | FlexiLayout tree で現在の要素より上位にある、すべての要素の仮説    |
| **Advanced post-search relations**        | 現在の要素より上位にあるすべての要素の仮説に加え、現在の要素自体に対して生成された仮説 |
| **Region expression** (block description) | 仮説ツリーの「最良のブランチ」上にあるすべての要素の仮説                |

**Advanced pre-search relations** セクションのコードは、各仮説ごとに、仮説ツリーのほかのブランチ上にある仮説とは独立して実行されます。つまり、FlexiLayout Studio が要素記述内の特定のセクションのコードを実行する際、各上位要素についてアクセスできる仮説は 1 つだけであり、それは同じブランチ上にある仮説です。

要素仮説とそのプロパティには、読み取り専用モードでアクセスします。

<div id="full-and-shortcut-element-names">
  ## 要素の完全名と短縮要素名
</div>

上位の要素に対する仮説は、その要素の完全名で呼ばれます。たとえば `SearchObjects.Group1.Group2.FirstItem` です。グループ内のあるサブ要素から別のサブ要素にアクセスする場合、グループ名を指定する必要はありません。たとえば、要素 `SearchObjects.Group1.Group2.SecondItem` の Advanced… セクションでは、要素 `SearchObjects.Group1.Group2.FirstItem` を次のいずれかの方法で呼び出せます: `SearchObjects.Group1.Group2.FirstItem`, `Group1.Group2.FirstItem`, `Group2.FirstItem`, `FirstItem`.

短縮名は常に、最も深い階層にある要素を参照します。

次のような要素ツリーがあるとします:

```text theme={null}
SearchElements
 FirstItem
 Group1
  FirstItem
  SecondItem
```

`SearchElements.Group1.SecondItem` にいる状態で名前 `FirstItem` を使用すると、`SearchElements.FirstItem` 要素ではなく `SearchElements.Group1.FirstItem` 要素が呼び出されます。
