internal virtual bool CheckTokenOptions(TerminalAST elem, GrammarAST ID, GrammarAST valueAST)
{
IToken optionID = ID.Token;
string fileName = optionID.InputStream.SourceName;
// don't care about ID<ASTNodeName> options
if (valueAST != null && !Grammar.tokenOptions.Contains(optionID.Text))
{
g.tool.errMgr.GrammarError(ErrorType.ILLEGAL_OPTION,
fileName,
optionID,
optionID.Text);
return false;
}
// TODO: extra checks depending on terminal kind?
return true;
}