@Override
	public State transition(TransitionContext context)
	{
		if(context.isLetter() || context.value() == '_' || context.isDigit())
		{
			context.pushChar();
			return this;
		}
		String word = context.accumulated();
		context.emit(context.getKeywords().containsKey(word)
			? context.getKeywords().get(word)
			: Kind.IDENTIFIER);
		return StartState.instance().transition(context);
	}