バージョン

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 ファイルで記号を定義します。

参照