Salve ragazzi.. Ho risolto il problema.. In pratica non era un problema di impostazione dello Stream tokenizer ma di switch!! Grazie a tutti per avermi aiutato.. Vi posto di seguito la soluzione. PEr juventino doc: mi dispiace ma non ti manderò il rdpb, ho seguito quanto detto dal prof puoi farlo anche tu 
codice:
public class AnalizzatoreLessicale {
private Simboli simb;
private StreamTokenizer streamTokenizer;
public AnalizzatoreLessicale(Reader r2) {
streamTokenizer = new StreamTokenizer(r2);
streamTokenizer.resetSyntax();
streamTokenizer.eolIsSignificant(true);
streamTokenizer.lowerCaseMode(false);
streamTokenizer.parseNumbers();
streamTokenizer.ordinaryChar('(');
streamTokenizer.ordinaryChar(')');
streamTokenizer.ordinaryChar('[');
streamTokenizer.ordinaryChar(']');
streamTokenizer.ordinaryChar('!');
streamTokenizer.ordinaryChar('=');
streamTokenizer.ordinaryChar('<');
streamTokenizer.ordinaryChar('>');
streamTokenizer.ordinaryChar('^');
streamTokenizer.ordinaryChar('*');
streamTokenizer.ordinaryChar('/');
streamTokenizer.ordinaryChar('%');
streamTokenizer.ordinaryChar('-');
streamTokenizer.ordinaryChar('+');
streamTokenizer.wordChars('a', 'z');
streamTokenizer.wordChars('A', 'Z');
streamTokenizer.whitespaceChars('\0', ' ');
}
public Simboli simboloSuccessivo() throws IOException {
switch (streamTokenizer.nextToken()) {
case StreamTokenizer.TT_EOF:
simb = Simboli.EOF;
break;
case StreamTokenizer.TT_NUMBER:
simb = Simboli.NUM;
break;
case StreamTokenizer.TT_WORD:
String s = streamTokenizer.sval;
if (s.equals("and"))
simb = Simboli.AND;
else if (s.equals("or"))
simb = Simboli.OR;
else if (s.equals("not"))
simb = Simboli.NOT;
else
simb = Simboli.ID;
break;
case '(':
simb = Simboli.OPAR;
break;
case ')':
simb = Simboli.CPAR;
break;
case '[':
simb = Simboli.OPAR1;
break;
case ']':
simb = Simboli.CPAR1;
break;
case '=':
if (streamTokenizer.nextToken() != '=')
System.out.println("Invalid character =. Expected ==");
simb = Simboli.EQ;
break;
case '!':
if (streamTokenizer.nextToken() != '=') {
streamTokenizer.pushBack();
simb = Simboli.NOT;
} else
simb = Simboli.NEQ;
break;
case '>':
if (streamTokenizer.nextToken() != '=') {
streamTokenizer.pushBack();
simb = Simboli.GT;
} else
simb = Simboli.GE;
break;
case '<':
if (streamTokenizer.nextToken() != '=') {
streamTokenizer.pushBack();
simb = Simboli.LT;
} else
simb = Simboli.LE;
break;
case '^':
simb = Simboli.POWER;
break;
case '/':
simb = Simboli.DIV;
break;
case '%':
simb = Simboli.REM;
break;
case '*':
simb = Simboli.MULT;
break;
case '-':
simb = Simboli.MINUS;
break;
case '+':
simb = Simboli.PLUS;
break;
case '&':
if (streamTokenizer.nextToken() != '&')
System.out.println("Invalid character &. Expected &&");
simb = Simboli.AND;
break;
case '|':
if (streamTokenizer.nextToken() != '|')
System.out.println("Invalid character |. Expected ||");
simb = Simboli.OR;
break;
/*default:
System.out.println("Unexpected character: "
+ (char) streamTokenizer.ttype);*/
}
return simb;
}
/*
* Caller must ensure to call nextToken() at least one time before calling
* this function.
*/
public Simboli lastToken() {
assert streamTokenizer.ttype != -4;
return simb;
}
/*
* Caller must ensure the last token is TOKEN_ID.
*/
public String getVariabile() {
return streamTokenizer.sval;
}
/*
* Caller must ensure the last token is TOKEN_NUM.
*/
public int getNum() {
return (int) streamTokenizer.nval;
}
}
alla prossima...