'宣言 Public Overloads Function Add( _ ByVal name As String, _ Optional ByVal value As String, _ Optional ByVal comparison As TerminalSymbolComparison, _ Optional ByVal isExitSymbol As Boolean _ ) As TerminalSymbol
public TerminalSymbol Add( string name, string value, TerminalSymbolComparison comparison, bool isExitSymbol )
例外 | 解説 |
---|---|
System.InvalidOperationException | 所有する LexerState が Grammar に属しない場合に発生します。 |
System.InvalidOperationException | 所有する Grammar の IsMutable の値が False の場合に発生します。 |
System.ArgumentNullException | name が null または空である場合に発生されます。 |
System.ArgumentException | 所有する Grammar に指定した名前を持つ記号が既に存在する場合に発生します。 |
System.ArgumentException | comparison が TerminalSymbolComparison 列挙体で定義されていない場合に発生します。 |
System.ArgumentException | isExitSymbol が True で、所有する LexerState がデフォルト レクサー状態の場合に発生します。 |
コレクションを所有する LexerState がデフォルトのレクサー状態ではない場合、オプションで、記号を終了記号として追加できます。 これが終了記号である場合、レクサー状態はこの記号に関連付けられたトークンがレクサーによって作成されると終了します。レクサー状態が終了すると、レクサーはその状態になる前の状態に戻ります。LexerState 状態になるのは、TerminalSymbol.LexerStateToEnter が設定された TerminalSymbol と関連付けられるトークンが作成された時点です。TerminalSymbol が終了記号であり、かつ LexerStateToEnter が設定されている場合、LexerStateToEnter は無視されます。レクサーはある状態への変更と終了を同時に行うことはできません。この場合、レクサー状態の終了が優先されます。