バージョン

Grammar クラス

そのプロダクション ルールがテキスト入力の解析と検証のために使用される、コンテキストフリーの文法を表します。
シンタックス
'宣言
 
Public Class Grammar 
public class Grammar 
解説

言語の構文はその文法によって定義されます。このフォーマット定義は簡潔かつ再帰的に文字の正しい順序を決定する方法を提供します。

文法定義の主なコンポーネントは、文法に保存される TerminalSymbol および NonTerminalSymbol インスタンスによって表されます。

TerminalSymbol は、対応するルールが成立するために一致する必要がある、特定の文字パターンを表します。 たとえば、文字列「class」の TerminalSymbol は入力文字列を評価し、それが「class」で始まる場合は成功を意味し、そうでない場合は失敗を意味します。正規表現パターンの使用によって、より複雑な評価が可能になります。

NonTerminalSymbol は 0 以上の TerminalSymbol または NonTerminalSymbol の記号を表します。また、記号の複数のセットを表すことが可能です。たとえば、「class」は TerminalSymbol として定義し、EBNF ファイルで NonTerminalSymbol は「Classes = class | (Classes, class);」として定義されます。これはその定義セットを示します。解析対象のドキュメントで「Classes」の NonTerminalSymbol を認識するには、「class」の TerminalSymbol 、または「Classes」の NonTerminalSymbol に続く「class」の TerminalSymbol がなければなりません。 後者の場合、ネストされる「Classes」記号は、「class」の TerminalSymbol、または「Classes」の NonTerminalSymbol に続く「class」の TerminalSymbol のいずれかを表します。したがって、「Classes」は 1 つ以上の「class」の TerminalSymbol を表します。

NonTerminalSymbol によって表されるオブジェクトを定義するルールを指定するには、NonTerminalSymbol.Rule 値を指定するか、または LoadEbnf(Stream,Encoding) メソッドを使用して EBNF ファイルで記号を定義します。

参照