/** This method is a hack. I really want another constructor. */ public static Obj3d parseFile(InputStream is, ModelViewer modelViewer, boolean register) throws IOException, FileFormatException { StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(is))); st.eolIsSignificant(true); st.commentChar('#'); Obj3d obj3d = new Obj3d(st, modelViewer, register); // should be at end of file is.close(); if (st.ttype != StreamTokenizer.TT_EOF) { throw new FileFormatException(is.toString()); } return obj3d; }
private void setupTokenizer() { st.resetSyntax(); st.wordChars('a', 'z'); st.wordChars('A', 'Z'); st.wordChars('0', '9'); st.wordChars(':', ':'); st.wordChars('.', '.'); st.wordChars('_', '_'); st.wordChars('-', '-'); st.wordChars('/', '/'); st.wordChars('\\', '\\'); st.wordChars('$', '$'); st.wordChars('{', '{'); // need {} for property subst st.wordChars('}', '}'); st.wordChars('*', '*'); st.wordChars('+', '+'); st.wordChars('~', '~'); // XXX check ASCII table and add all other characters except special // special: #="(), st.whitespaceChars(0, ' '); st.commentChar('#'); st.eolIsSignificant(true); st.quoteChar('\"'); }