package be.jeffcheasey88.peeratcode.parser; import java.io.BufferedReader; import java.io.BufferedWriter; import be.jeffcheasey88.peeratcode.parser.state.StateTree; public class Parser{ private Tokenizer tokenizer; private StateTree state; public Parser(){} public void setTokenizer(Tokenizer tokenizer){ this.tokenizer = tokenizer; } public void setStateTree(StateTree stateTree){ this.state = stateTree; } public final void parse(BufferedReader reader, E container) throws Exception{ this.tokenizer.parse(reader); this.state.seed(this.tokenizer, container); } //tmp public void build(BufferedWriter writer) throws Exception{ Token[] confirmed = new Token[TokenValidator.MAX_VALIDATE]; System.arraycopy(tokenizer.getTokens().toArray(), 0, confirmed, 0, confirmed.length); int line = 1; int character = 1; for(Token token : confirmed){ while(token.getLineNumber() != line){ writer.write("\n"); line++; character = 1; } while(token.getCharacterNumber() != character){ writer.write(" "); character++; } writer.write(token.getValue()); character+=token.getValue().length(); } writer.flush(); writer.close(); } }