package project.scangen.spec;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Spec {
private Map<String, CharClass> charClasses;
private List<TokenType> tokenTypes;
public Spec() {
charClasses = new HashMap<String, CharClass>();
tokenTypes = new ArrayList<TokenType>();
}
public Map<String, CharClass> getCharClasses() {
return charClasses;
}
public CharClass getCharClass(final String charClassName) {
return charClasses.get(charClassName);
}
public void addCharClass(final String charClassName, final CharClass charClass) {
charClasses.put(charClassName, charClass);
}
public List<TokenType> getTokenTypes() {
return tokenTypes;
}
public void addTokenType(final TokenType tokenType) {
tokenTypes.add(tokenType);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
for (Map.Entry entry : charClasses.entrySet()) {
sb.append(String.format("$%s: %s\n", entry.getKey(),
entry.getValue()));
}
for (TokenType tokenType : tokenTypes) {
sb.append(tokenType.toString()).append("\n");
}
return sb.toString();
}
}