+ this.matcher = matcher;
+ this.tokenizer = tokenizer;
+ }
+
+ public boolean isGroup(String group){
+ if (terminator == null){
+ return group == null;
+ }
+
+ if (terminator.group == null){
+ return group == null;
+ }
+
+ return terminator.group.equals(group);
+ }
+
+ public String[] getRegExpGroups(){
+ if (matcher == null) return new String[]{};
+
+ String[] result = new String[matcher.groupCount()];
+
+ for (int i = 0; i< result.length; i++){
+ result[i] = matcher.group(i+1);
+ }
+
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder result = new StringBuilder();
+ result.append("TokenizerMatch\n" +
+ " token='" + token + "'\n" +
+ " terminator=" + terminator + "\n" +
+ " groups:\n");
+
+ int i = 0;
+ for (String s : getRegExpGroups()) {
+ result.append(" " + i + ": " + s + "\n");
+ i++;
+ }
+
+ return result.toString();
+ }
+
+ public Tokenizer getTokenizer() {
+ return tokenizer;