1 // **********************************************************************
3 // Copyright (c) 2003-2011 ZeroC, Inc. All rights reserved.
5 // This copy of Ice is licensed to you under the terms described in the
6 // ICE_LICENSE file included in this distribution.
8 // **********************************************************************
28 return new Token(Token
.TOK_SEMI
);
30 else if(s
.equals("help"))
32 return new Token(Token
.TOK_HELP
);
34 else if(s
.equals("exit") || s
.equals("quit"))
36 return new Token(Token
.TOK_EXIT
);
38 else if(s
.equals("add"))
40 return new Token(Token
.TOK_ADD_BOOK
);
42 else if(s
.equals("isbn"))
44 return new Token(Token
.TOK_FIND_ISBN
);
46 else if(s
.equals("authors"))
48 return new Token(Token
.TOK_FIND_AUTHORS
);
50 else if(s
.equals("next"))
52 return new Token(Token
.TOK_NEXT_FOUND_BOOK
);
54 else if(s
.equals("current"))
56 return new Token(Token
.TOK_PRINT_CURRENT
);
58 else if(s
.equals("rent"))
60 return new Token(Token
.TOK_RENT_BOOK
);
62 else if(s
.equals("return"))
64 return new Token(Token
.TOK_RETURN_BOOK
);
66 else if(s
.equals("remove"))
68 return new Token(Token
.TOK_REMOVE_CURRENT
);
70 else if(s
.equals("size"))
72 return new Token(Token
.TOK_SET_EVICTOR_SIZE
);
74 else if(s
.equals("shutdown"))
76 return new Token(Token
.TOK_SHUTDOWN
);
80 return new Token(Token
.TOK_STRING
, s
);
84 static private class EndOfInput
extends Exception
93 // If there is an character in the unget buffer, return it.
102 // No current buffer?
106 _buf
= _parser
.getInput();
110 throw new EndOfInput();
115 // At the end-of-buffer?
117 while(_pos
>= _buf
.length())
124 return _buf
.charAt(_pos
++);
128 // unget only works with one character.
142 // Eat any whitespace.
151 while(Character
.isWhitespace(c
) && c
!= '\n');
153 catch(EndOfInput ignore
)
158 StringBuilder buf
= new StringBuilder(128);
160 if(c
== ';' || c
== '\n')
183 _parser
.warning("EOF in string");
255 _parser
.warning("EOF in string");
261 // Otherwise it's a string.
270 while(!Character
.isWhitespace(c
) && c
!= ';' && c
!= '\n');
274 catch(EndOfInput ignore
)
279 return buf
.toString();
282 private Parser _parser
;
283 private boolean _unget
= false;
284 private char _ungetChar
;
285 private String _buf
= null;