class X
{
private int
}
文章校正ライターがユーザーが入力しがちなよくあるエラーを識別すると、非終端記号を定義してそのエラーを表現し、ユーザーが使用する可能性のある構造のオルタナティブとして使用します。次に、文章校正ライターはその記号の NonTerminalSymbol.IsError を True に設定できます。エラーのないドキュメントを解析する場合、パーサーは、エラーとしてマークされる非終端記号にまで生産本文を小さくしようとはしません。非終端記号が定義されたことがないかのようにします。しかしエラーが発生すると、エラー生産のエラー処理方法は、機会があればエラーの非終端記号を小さくできるかどうかを判断します。その場合、こうした軽減は実施されエラーの非終端記号を表すために作成されたノードは自動的にエラーとマーク付けされます。
たとえば、C# ではユーザーがクラス内にメンバーを入力し始めたもののしばらく入力をやめ、入力が終わる前にパーサーがドキュメントの解析を始めてしまうのはよくあることです。このため文章校正ライターは、以下の偽生産で非終端記号を定義します。
IncompleteMember → [Attributes] [Modifiers] Type
そして、他のメンバーが使用される場所で使用します。
ClassMember →
FieldDeclaration | MethodDeclaration | PropertyDeclaration | IncompleteMember
ここでユーザーがこのようなものを入力した場合、
C# の場合:
class X
{
private int
}
エラー生産本文では「IncompleteMember」が作成され、文章校正ライターは「クラスまたは構造体内でのメンバー定義が不完全」というカスタム エラー メッセージを提供します。
注:
これは、おそらく以下のようなエラー メッセージが生成されるため、シンクロナイザー記号方法にエラーを処理させるよりも良いといえます。
識別子が必要です。
';' が必要です。
これはあいまいに正しいといえますが、この方法では、不明なノードに対してもっともシンプルなツリー構造を生産したのみであるため、ユーザーはデフォルト宣言を入力しようとしていると推測します。ユーザーはプロパティまたはメソッドの宣言を簡単に入力しています。
このトピックの追加情報については、以下のトピックも合わせてご参照ください。