バージョン

Insert(Int32,TerminalSymbol,Boolean) メソッド

指定された記号をコレクションに追加します。
シンタックス
'宣言
 
Public Overloads Sub Insert( _
   ByVal index As Integer, _
   ByVal symbol As TerminalSymbol, _
   Optional ByVal isExitSymbol As Boolean _
) 
public void Insert( 
   int index,
   TerminalSymbol symbol,
   bool isExitSymbol
)

パラメータ

index
記号を挿入するゼロから始まるインデックス。
symbol
コレクションに追加する記号。
isExitSymbol
記号がレクサー状態の終了記号であるかどうかを示します。
例外
例外解説
System.InvalidOperationException所有する GrammarIsMutable の値が False の場合に発生します。
System.ArgumentNullExceptionsymbol が null の場合に発生します。
System.ArgumentOutOfRangeExceptionindex が 0 より小さいか、Count より大きい場合に発生します。
System.ArgumentExceptionsymbol が所有する LexerState と同じ Grammar に属しない場合に発生します。
System.ArgumentExceptionsymbolEndOfStreamSymbol の場合に発生します。
System.ArgumentExceptionisExitSymbol が True で、所有する LexerState がデフォルト レクサー状態の場合に発生します。
解説

コレクションを所有する LexerState がデフォルトのレクサー状態ではない場合、オプションで、記号を終了記号として追加できます。これが終了記号である場合、レクサー状態はこの記号に関連付けられたトークンがレクサーによって作成されると終了します。レクサー状態が終了すると、レクサーはその状態になる前の状態に戻ります。LexerState 状態になるのは、TerminalSymbol.LexerStateToEnter が設定された TerminalSymbol と関連付けられるトークンが作成された時点です。TerminalSymbol が終了記号であり、かつ LexerStateToEnter が設定されている場合、LexerStateToEnter は無視されます。レクサーはある状態への変更と終了を同時に行うことはできません。この場合、レクサー状態の終了が優先されます。

参照