Name ParseNestedName(ref int p) { var q = ParseCVQualifiers(ref p); var t = Symbol.Text; var nn = new NestedName { Qualifiers = q }; while (t[p] != 'E') { if (t[p] == 'I') { p++; nn.Names.Add(ParseTemplateArgs(ref p)); } else if (t[p] == 'S' && p + 1 < t.Length && t[p + 1] != 't') { p++; nn.Names.Add((Name)ParseSubstitution(ref p)); } else if (t[p] == 'L') { // IDK p++; } else { nn.Names.Add(ParseUnqualifiedName(ref p)); subs.Add(nn.Names.Last()); } } p++; return(nn); }
protected JavaTypeModel(JavaPackage javaPackage, string javaNestedName, string javaVisibility, bool javaAbstract, bool javaFinal, string deprecated, bool javaStatic, string jniSignature) { Package = javaPackage; NestedName = javaNestedName.Replace('$', '.'); Name = NestedName.LastSubset('.'); Visibility = javaVisibility; IsAbstract = javaAbstract; IsFinal = javaFinal; Deprecated = deprecated; IsStatic = javaStatic; ExtendedJniSignature = jniSignature; TypeParameters = new JavaTypeParameters(this); }
public static IParsingResultExtended Parse(ParsingContext context) { RewindState rewind = context.RewindState; IParsingResultExtended name = NestedName.Parse(context); if (name != null) { return(name); } name = UnscopedName.Parse(context); if (name != null) { if (context.Parser.Peek == 'I') { context.SubstitutionTable.Add(name); TemplateArgs args = TemplateArgs.Parse(context); if (args == null) { context.Rewind(rewind); return(null); } return(new UnscopedTemplate(name, args)); } else { return(name); } } name = UnscopedTemplateName.Parse(context); if (name != null) { TemplateArgs args = TemplateArgs.Parse(context); if (args == null) { context.Rewind(rewind); return(null); } return(new UnscopedTemplate(name, args)); } return(LocalName.Parse(context)); }