/*
* tuProlog - Copyright (C) 2001-2002 aliCE team at deis.unibo.it
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package alice.tuprolog;
/**
* This class represents a token read by the prolog term tokenizer.
*/
class Token {
// token textual representation
String seq;
// token type and attribute
int type;
public Token(String seq_,int type_) {
seq = seq_;
type = type_;
}
public int getType() {
return(type & Tokenizer.TYPEMASK);
}
/**
* Attribute could be EOF or ERROR.
*/
public int getAttribute() {
return type & Tokenizer.ATTRMASK;
}
public String getValue(){
return seq;
}
public boolean isOperator(boolean commaIsEndMarker) {
if (commaIsEndMarker && ",".equals(seq))
return false;
return getAttribute() == Tokenizer.OPERATOR;
}
public boolean isFunctor() {
return getAttribute() == Tokenizer.FUNCTOR;
}
public boolean isNumber() {
return type == Tokenizer.INTEGER || type == Tokenizer.FLOAT;
}
boolean isEOF() {
return getAttribute() == Tokenizer.EOF;
}
boolean isType(int type) {
return getType() == type;
}
}