public virtual string SetOption(IDictionary <string, object> options, HashSet <string> legalOptions, Grammar grammar, string key, object value)
{
if (!legalOptions.Contains(key))
{
ErrorManager.GrammarError(ErrorManager.MSG_ILLEGAL_OPTION,
grammar,
Token,
key);
return(null);
}
if (value is string)
{
string vs = (string)value;
if (vs[0] == '"')
{
value = vs.Substring(1, vs.Length - 2); // strip quotes
}
}
if (key.Equals("k"))
{
grammar.numberOfManualLookaheadOptions++;
}
if (key == "backtrack" && value.ToString() == "true")
{
grammar.composite.RootGrammar.atLeastOneBacktrackOption = true;
}
options[key] = value;
return(key);
}