public static string GreenInnerType(this Antlr4ParserRuleElement elem) { if (elem.IsBlock) { if (elem.IsFixedTokenAltBlock) { return("InternalSyntaxToken"); } else { return("GreenNode"); } } else if (elem.IsToken) { return("InternalSyntaxToken"); } else if (elem.IsList) { return(elem.Type.ToPascalCase() + "Green"); } else { return(elem.Type.ToPascalCase() + "Green"); } }
public static string SyntaxKind(this Antlr4ParserRuleElement elem) { string result = elem.Type; if (result == "EOF") { return("Eof"); } return(result); }
public static string RedName(this Antlr4ParserRuleElement elem) { if (elem.Name == "EOF") { return("EndOfFileToken"); } else { return(elem.Name.ToPascalCase()); } }
public static string Antlr4Name(this Antlr4ParserRuleElement elem) { if (elem.Name != elem.Type) { return(elem.Name); } else { if (elem.Type == "EOF") { return("Eof()"); } return(elem.Name + "()"); } }
public static string PlainType(this Antlr4ParserRuleElement elem, bool simplified = true) { string typeName = elem.Type; if (!simplified && elem.IsSimplified) { typeName = elem.OriginalType; } if (elem.IsToken) { StringBuilder builder = new StringBuilder(); string name = typeName; for (int i = 0; i < name.Length; i++) { if (i == 0) { builder.Append(char.ToUpper(name[i])); } else if (name[i] == '_') { ++i; if (i < name.Length) { builder.Append(char.ToUpper(name[i])); } } else { builder.Append(char.ToLower(name[i])); } } return(builder.ToString()); } else { return(typeName.ToPascalCase()); } }
public static string RedType(this Antlr4ParserRuleElement elem) { if (elem.IsBlock) { if (elem.IsFixedTokenAltBlock) { return("SyntaxToken"); } else { return("SyntaxNode"); } } else if (elem.IsList) { if (elem.IsSeparated) { return("SeparatedSyntaxList<" + elem.Type.ToPascalCase() + "Syntax>"); } else if (elem.IsToken) { return("SyntaxTokenList"); } else { return("SyntaxList<" + elem.Type.ToPascalCase() + "Syntax>"); } } else if (elem.IsToken) { return("SyntaxToken"); } else { return(elem.Type.ToPascalCase() + "Syntax"); } }
public static bool IsEof(this Antlr4ParserRuleElement elem) { return(elem.Type == "EOF"); }
public static string FieldName(this Antlr4ParserRuleElement elem) { string result = elem.Name.ToCamelCase(); return(result); }
public static string RedInnerType(this Antlr4ParserRuleElement elem) { return(elem.Type.ToPascalCase() + "Syntax"); }
public static string GreenType(this Antlr4ParserRuleElement elem, TypeKind kind, bool simplified = true) { if (!simplified && elem.IsSimplified) { return(elem.OriginalType.ToPascalCase() + "Green"); } if (kind == TypeKind.Public) { if (elem.IsBlock) { if (elem.IsFixedTokenAltBlock) { return("InternalSyntaxToken"); } else { return("GreenNode"); } } else if (elem.IsList) { if (elem.IsToken) { return("Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList<" + elem.Type.ToPascalCase() + "Green>"); } else if (elem.IsSeparated) { return("Microsoft.CodeAnalysis.Syntax.InternalSyntax.SeparatedSyntaxList<" + elem.Type.ToPascalCase() + "Green>"); } else { return("Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList<" + elem.Type.ToPascalCase() + "Green>"); } } else if (elem.IsToken) { return("InternalSyntaxToken"); } else { return(elem.Type.ToPascalCase() + "Green"); } } else if (kind == TypeKind.Field) { if (elem.IsBlock) { if (elem.IsFixedTokenAltBlock) { return("InternalSyntaxToken"); } else { return("GreenNode"); } } else if (elem.IsList) { if (elem.IsToken) { return("GreenNode"); } else if (elem.IsSeparated) { return("GreenNode"); } else { return("GreenNode"); } } else if (elem.IsToken) { return("InternalSyntaxToken"); } else { return(elem.Type.ToPascalCase() + "Green"); } } throw new NotSupportedException("Invalid type kind."); }
public static int IndexOf(this Antlr4ParserRule rule, Antlr4ParserRuleElement elem) { return(rule.AllElements.IndexOf(elem)); }