reportError method

void reportError(
  1. int scope_index,
  2. int error_token
)

Implementation

void reportError(int scope_index, int error_token) {
  var text = '\"';
  for (var i = scopeSuffix(scope_index); scopeRhs(i) != 0; i++) {
    if (!isNullable(scopeRhs(i))) {
      var symbol_index = (scopeRhs(i) > NT_OFFSET
          ? nonterminalIndex(scopeRhs(i) - NT_OFFSET)
          : terminalIndex(scopeRhs(i)));
      if (name(symbol_index).isNotEmpty) {
        if (text.length > 1) {
          text += ' ';
        } // add a space separator
        text += name(symbol_index);
      }
    }
  }
  text += '\"';

  tokStream.reportError(SCOPE_CODE, error_token, error_token, [text]);
  return;
}