/// <summary> /// Makes a non terminal optional. /// </summary> /// <param name="term">The term.</param> /// <returns>An optional non terminal.</returns> public static NonTerminal Opt(this BnfTerm term) { var nonTerminal = term.Q(); nonTerminal.SetFlag(TermFlags.NoAstNode); return(nonTerminal); }