Example #1
0
        public override ClassDefinitionCollection VisitType_argument_list(CSharpParser.Type_argument_listContext context)
        {
            var types = context.type();

            foreach (var type in types)
            {
                var argVisitor      = new TypeArgumentListVisitor(Cache, Reference);
                var typeArgs        = argVisitor.Visit(type);
                var classDefinition = new ClassDefinition {
                    BaseName = type.Start.Text, GenericTypeArgs = typeArgs
                };
                var className = classDefinition.Name;

                if (!Cache.ContainsKey(className))
                {
                    Cache.Add(className, classDefinition);
                }
                else
                {
                    classDefinition = Cache[className];
                }

                Reference.Add(className);
                this.Collection.Add(classDefinition);
            }

            return(this.Collection);
        }
Example #2
0
 public static IType[] Parse(this CSharpParser.Type_argument_listContext context)
 {
     return(context.type().Select(c => c.Parse()).ToArray());
 }