protected LexerActionFactory ( LexerActionType type, int data1, int data2 ) : ILexerAction | ||
type | LexerActionType | |
data1 | int | |
data2 | int | |
return | ILexerAction |
protected internal virtual ILexerAction LexerActionFactory(LexerActionType type, int data1, int data2)
{
switch (type)
{
case LexerActionType.Channel:
{
return new LexerChannelAction(data1);
}
case LexerActionType.Custom:
{
return new LexerCustomAction(data1, data2);
}
case LexerActionType.Mode:
{
return new LexerModeAction(data1);
}
case LexerActionType.More:
{
return LexerMoreAction.Instance;
}
case LexerActionType.PopMode:
{
return LexerPopModeAction.Instance;
}
case LexerActionType.PushMode:
{
return new LexerPushModeAction(data1);
}
case LexerActionType.Skip:
{
return LexerSkipAction.Instance;
}
case LexerActionType.Type:
{
return new LexerTypeAction(data1);
}
default:
{
string message = string.Format(CultureInfo.CurrentCulture, "The specified lexer action type {0} is not valid.", type);
throw new ArgumentException(message);
}
}
}