2017-07-24 17:42:25 -07:00
|
|
|
package org.nwapw.abacus.lexing.pattern;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
2017-07-24 20:45:56 -07:00
|
|
|
import java.util.Collection;
|
2017-07-24 19:46:22 -07:00
|
|
|
import java.util.HashSet;
|
2017-07-24 17:42:25 -07:00
|
|
|
|
|
|
|
public class PatternNode<T> {
|
|
|
|
|
2017-07-24 19:46:22 -07:00
|
|
|
protected HashSet<PatternNode<T>> outputStates;
|
2017-07-24 17:42:25 -07:00
|
|
|
|
|
|
|
public PatternNode(){
|
2017-07-24 19:46:22 -07:00
|
|
|
outputStates = new HashSet<>();
|
2017-07-24 17:42:25 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
public boolean matches(char other){
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
public char range(){
|
|
|
|
return '\0';
|
|
|
|
}
|
|
|
|
|
2017-07-24 20:45:56 -07:00
|
|
|
public void addInto(Collection<PatternNode<T>> into){
|
2017-07-24 17:42:25 -07:00
|
|
|
into.add(this);
|
|
|
|
}
|
|
|
|
|
2017-07-24 20:45:56 -07:00
|
|
|
public void addOutputsInto(Collection<PatternNode<T>> into){
|
|
|
|
outputStates.forEach(e -> e.addInto(into));
|
|
|
|
}
|
|
|
|
|
2017-07-24 17:42:25 -07:00
|
|
|
}
|