public static string PlainName(this Antlr4ParserRule rule)
 {
     if (rule == null)
     {
         return(null);
     }
     return(rule.Name.ToPascalCase());
 }
 public static string RedName(this Antlr4ParserRule rule)
 {
     if (rule == null)
     {
         return(null);
     }
     return(rule.Name.ToPascalCase() + "Syntax");
 }
 public static bool HasEof(this Antlr4ParserRule rule)
 {
     return(rule != null && rule.Alternatives.Count == 0 && rule.Elements.Any(e => e.Type == "EOF"));
 }
 public static int IndexOf(this Antlr4ParserRule rule, Antlr4ParserRuleElement elem)
 {
     return(rule.AllElements.IndexOf(elem));
 }
 public static bool HasOptionalElements(this Antlr4ParserRule rule)
 {
     return(rule != null && rule.Elements.Any(e => e.IsOptional || (e.IsToken && e.IsFixedToken && !e.IsList)));
 }