バージョン

String の代わりに SymbolNames を使用 (Syntax Parsing Engine)

トピックの概要

目的

このトピックは、SymbolName 定数を使用する利点を説明します。

前提条件

このトピックをより理解するために、以下のトピックを参照することをお勧めします。

トピック 目的

このトピックは、Syntax Parsing Engine の概要を示します。

このトピックは、文章校正の非終端記号について説明します。

このトピックでは、非終端記号を作成するコードについて説明します。

はじめに

概要

サポートされる言語の内部文法構造および作成した構文ツリーの構造は、変更される場合があります。また、構文ツリーを検索またはトラバースするコードを記述する場合、各ノードの記号名 (文字列リテラルとしての記号名ではなく) を識別するために各言語定義においてネスト化された SymbolNames クラス定数を使用します。これらの記号名が将来的に変更されるとコンパイル エラーとして強調表示されるようになります。

また、特定のノードの子ノードの数とタイプについて Debug.Assert メソッドを使用してテストするロジックを書くことを推薦します。ノードの子構造の変更を検出し、処理するためです。

関連コンテンツ

トピック

このトピックの追加情報については、以下のトピックも合わせてご参照ください。

トピック 目的

このトピックは、EBNF ファイルの読みやすさを向上する方法を説明します。

このトピックは、生成コードを最小限にするために非終端記号の定義を最適化する方法を説明します。

このトピックでは、演算子の優先順位ルールの作成方法について説明します。

このトピックでは、EBNF コンテンツから文章校正を作成するプロセスを説明します。