独習Javaにのっていた次のプログラムでエラーが出るので
対処法を教えてください。

st という StreamTokenizer オブジェクトを作成したあと、

  while (st.nextToken() != StreamTokenizer.TT_EOF) {
    switch (st.ttype) {
      case st.TT_WORD :
        System.out.println(st.lineno() + ")" + 
            st.sval);
        break;

という感じのコードが続くのですが、コンパイルすると、

StreamTokenizerDemo.java:21: 定数式が必要です。
          case st.TT_WORD :
                 ^
というエラーメッセージが表示されます。
どこがまずいのでしょうか?