2003/06/07 08:21:30
[org.ibex.core.git] / src / org / xwt / js / Lexer.java
index 2a28338..47d46f7 100644 (file)
@@ -100,15 +100,15 @@ class Lexer implements Tokens {
                     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;
@@ -175,6 +175,7 @@ class Lexer implements Tokens {
         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;