#include "global.h"
#include "source.h"
#include "lex.h"
#include "list.h"
#include "parser.h"
// The member function mustBe() anticipates the current symbol to be
// sym. Where this is not the case, it reports the expected condition.
void Parser::mustBe(symbols sym)
{
if (symbol() != sym)
error(ERROR, "%s:%d: %s expected\n",
fileName(), currentLine(), Lexer::symbolSpelling[sym]);
// error(ERROR, "%^ %s expected\n",
// position(), Lexer::symbolSpelling[sym]);
}
// The member function expect() anticipates the current symbol to be sym
// and advances to the next symbol. Where this is not the case, it
// reports the expected condition via mustBe().
void Parser::expect(symbols sym)
{
mustBe(sym);
nextSymbol();
}
// The member function parseError() reports the error message with
// respect to the current position.
void Parser::parseError(char *message)
{
//error(ERROR, "%^ %s\n", position(), message);
error(ERROR, "%s:%d: %s\n", fileName(), currentLine(), message);
}
syntax highlighted by Code2HTML, v. 0.9.1