TokenGroup.java

package eu.javaexperience.text.tokenize;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TokenGroup<T>
{
	protected T group;
	protected Pattern pattern;
	
	public TokenGroup(T group, Pattern p)
	{
		this.group = group;
		this.pattern = p;
	}
	
	public ParsedToken<T> tryMatch(int from, String cs)
	{
		Matcher m = pattern.matcher(cs);
		if(m.find(from))
		{
			if(from == m.start())
			{
				return new ParsedToken<>(this, m.group(), from);
			}
		}
		
		return null;
	}

	public T getGroup()
	{
		return group;
	}
}