private Token identifier()
{
StringBuilder sbuf = new StringBuilder();
while ((isJavaIdentifierStart(lookAhead(1)))
|| partOfConnector())
{
sbuf.Append(lookAhead(1));
consume();
}
String readString = sbuf.ToString();
// System.Console.WriteLine(readString);
if (connectors.Contains(readString))
{
return new Token((int)LogicTokenTypes.CONNECTOR, readString);
}
else if (quantifiers.Contains(readString))
{
return new Token((int)LogicTokenTypes.QUANTIFIER, readString);
}
else if (domain.getPredicates().Contains(readString))
{
return new Token((int)LogicTokenTypes.PREDICATE, readString);
}
else if (domain.getFunctions().Contains(readString))
{
return new Token((int)LogicTokenTypes.FUNCTION, readString);
}
else if (domain.getConstants().Contains(readString))
{
return new Token((int)LogicTokenTypes.CONSTANT, readString);
}
else if (isVariable(readString))
{
return new Token((int)LogicTokenTypes.VARIABLE, readString);
}
else if (readString.Equals("="))
{
return new Token((int)LogicTokenTypes.EQUALS, readString);
}
else
{
throw new ApplicationException("Lexing error on character "
+ lookAhead(1));
}
}