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);
}
}
}