// S -> N { '.' N } Object S() { Object N1 = N(); if( N1 == failure ) return failure; Vector V = new Vector(); V.addElement(N1); while( peek() == '.' ) { nextChar(); Object N2 = N(); if( N2 == failure) return failure; V.addElement(N2); } return V; } // N -> D [ D ] Object N() { if( !Character.isDigit(peek()) ) // Do we have a numeral? return failure; StringBuffer buff = new StringBuffer(); while( Character.isDigit(peek()) ) // Accumulate digits of numeral { buff.append(nextChar()); } return new Integer(buff.toString()); } }