1
// **********************************************************************
3
// Copyright (c) 2003-2010 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("ls"))
40
return new Token(Token.TOK_LIST);
42
else if(s.equals("lr"))
44
return new Token(Token.TOK_LIST_RECURSIVE);
46
else if(s.equals("mkfile"))
48
return new Token(Token.TOK_CREATE_FILE);
50
else if(s.equals("mkdir"))
52
return new Token(Token.TOK_CREATE_DIR);
54
else if(s.equals("pwd"))
56
return new Token(Token.TOK_PWD);
58
else if(s.equals("cd"))
60
return new Token(Token.TOK_CD);
62
else if(s.equals("cat"))
64
return new Token(Token.TOK_CAT);
66
else if(s.equals("write"))
68
return new Token(Token.TOK_WRITE);
70
else if(s.equals("rm"))
72
return new Token(Token.TOK_RM);
76
return new Token(Token.TOK_STRING, s);
80
static private class EndOfInput extends Exception
89
// If there is an character in the unget buffer, return it.
102
_buf = _parser.getInput();
106
throw new EndOfInput();
111
// At the end-of-buffer?
113
while(_pos >= _buf.length())
120
return _buf.charAt(_pos++);
124
// unget only works with one character.
138
// Eat any whitespace.
147
while(Character.isWhitespace(c) && c != '\n');
149
catch(EndOfInput ignore)
154
StringBuilder buf = new StringBuilder(128);
156
if(c == ';' || c == '\n')
179
_parser.warning("EOF in string");
251
_parser.warning("EOF in string");
257
// Otherwise it's a string.
266
while(!Character.isWhitespace(c) && c != ';' && c != '\n');
270
catch(EndOfInput ignore)
275
return buf.toString();
278
private Parser _parser;
279
private boolean _unget = false;
280
private char _ungetChar;
281
private String _buf = null;