if (pst.nextToken() == pst.TT_EOF)
if (pst.nextToken() == StreamTokenizer.TT_EOF)
  void processLetRegion(Vector region) throws IOException {    // get var name and data values    if (DEBUG) System.out.println("params=\""+params+"\"");    StringReader sr = new StringReader(params);    StreamTokenizer pst = new StreamTokenizer(sr);//    pst.resetSyntax(); pst.parseNumbers(); pst.whitespaceChars(0, ' ');//    pst.wordChars('a', 'z'); pst.wordChars('A', 'Z');//    pst.wordChars(128 + 32, 255);//    pst.quoteChar('"'); pst.quoteChar('\'');    pst.ordinaryChar('-'); pst.ordinaryChar('/'); pst.ordinaryChar('*');    pst.wordChars('@','@'); pst.wordChars('_', '_');    int tok = pst.nextToken();    if (tok != pst.TT_WORD)       throw new IOException("Missing var name in LET");    String var_name = pst.sval;    if (pst.nextToken() == pst.TT_EOF)       throw new IOException("Missing value in LET");    pst.pushBack();    String value = evalLet(pst);    if (DEBUG) System.out.println("doing let with varname "+var_name+                                  " and value=\""+value+"\"");    // Execute region assigning data value.    // Count through each line in region.    for (int j = 1; j < region.size(); j++) {      try {        String currentLine = (String) region.elementAt(j);        String result = substitute(currentLine, var_name, value);        out.print(result+"\n");      } catch (ClassCastException e) {        Vector oldRegion = (Vector) region.elementAt(j);        Vector newRegion = substituteInRegion(oldRegion, var_name, value);        processTemplateRegion(newRegion);      }    } // for j  }