private static void ExtendedHelp()
{
Version();
Console.Error.WriteLine(" -Xgrtree print the grammar AST");
Console.Error.WriteLine(" -Xdfa print DFA as text ");
Console.Error.WriteLine(" -Xnoprune test lookahead against EBNF block exit branches");
Console.Error.WriteLine(" -Xnocollapse collapse incident edges into DFA states");
Console.Error.WriteLine(" -Xdbgconversion dump lots of info during NFA conversion");
Console.Error.WriteLine(" -Xmultithreaded run the analysis in 2 threads");
Console.Error.WriteLine(" -Xnomergestopstates do not merge stop states");
Console.Error.WriteLine(" -Xdfaverbose generate DFA states in DOT with NFA configs");
Console.Error.WriteLine(" -Xwatchconversion print a message for each NFA before converting");
#if DEBUG
Console.Error.WriteLine(" -XdbgST put tags at start/stop of all templates in output");
#endif
Console.Error.WriteLine(" -Xnfastates for nondeterminisms, list NFA states for each path");
Console.Error.WriteLine(" -Xm m max number of rule invocations during conversion [" + NFAContext.MAX_SAME_RULE_INVOCATIONS_PER_NFA_CONFIG_STACK + "]");
Console.Error.WriteLine(" -Xmaxdfaedges m max \"comfortable\" number of edges for single DFA state [" + DFA.MAX_STATE_TRANSITIONS_FOR_TABLE + "]");
Console.Error.WriteLine(" -Xmaxinlinedfastates m max DFA states before table used rather than inlining [" + CodeGenerator.DefaultMaxSwitchCaseLabels + "]");
Console.Error.WriteLine(" -Xmaxswitchcaselabels m don't generate switch() statements for dfas bigger than m [" + CodeGenerator.DefaultMaxSwitchCaseLabels + "]");
Console.Error.WriteLine(" -Xminswitchalts m don't generate switch() statements for dfas smaller than m [" + CodeGenerator.DefaultMinSwitchAlts + "]");
Console.Error.WriteLine(" -Xsavelexer don't delete temporary lexers generated from combined grammars");
}