if (c=='e') { if (s.charAt(2)=='s' && s.charAt(1)=='l') return ELSE; }
else if (c=='m') { if (s.charAt(2)=='u' && s.charAt(1)=='n') return RESERVED; }
return -1;
- case 'g': return s.equals("goto") ? GOTO : -1;
+ case 'g': return s.equals("goto") ? RESERVED : -1;
case 'l': return s.equals("long") ? RESERVED : -1;
case 'n': return s.equals("null") ? NULL : -1;
case 't': c=s.charAt(3);
if (c=='e') { if (s.charAt(2)=='u' && s.charAt(1)=='r') return TRUE; }
else if (c=='s') { if (s.charAt(2)=='i' && s.charAt(1)=='h') return THIS; }
return -1;
- case 'v': return s.equals("void") ? RESERVED : -1;
- case 'w': return s.equals("with") ? WITH : -1;
+ case 'w': if (s.equals("with")) throw new IOException("the WITH keyword is not permitted in XWT scripts"); else return -1;
+ case 'v': if (s.equals("void")) throw new IOException("the VOID keyword is not permitted in XWT scripts"); else return -1;
} break;
case 5: switch (s.charAt(2)) {
case 'a': return s.equals("class") ? RESERVED : -1;
in.unread();
String str = in.getString();
int result = getKeyword(str);
+ if (result == RESERVED) throw new IOException("the reserved word \"" + str + "\" is not permitted in XWT scripts");
if (result != -1) return result;
this.string = str;
return NAME;