Beispiel #1
0
 public ParserState(IEnumerable <string> knownNames) : this()
 {
     foreach (var name in knownNames)
     {
         Typedefs.Add(name);
     }
 }
Beispiel #2
0
        public TypedefNameDecl FindTypedef(string name, bool createDecl = false)
        {
            var entries = name.Split(new string[] { "::" },
                                     StringSplitOptions.RemoveEmptyEntries).ToList();

            if (entries.Count <= 1)
            {
                var typeDef = Typedefs.Find(e => e.Name.Equals(name));

                if (typeDef == null && createDecl)
                {
                    typeDef = new TypedefDecl {
                        Name = name, Namespace = this
                    };
                    Typedefs.Add(typeDef);
                }

                return(typeDef);
            }

            var typeDefName = entries[entries.Count - 1];
            var namespaces  = entries.Take(entries.Count - 1);

            var @namespace = FindNamespace(namespaces);

            if (@namespace == null)
            {
                return(null);
            }

            return(@namespace.FindTypedef(typeDefName, createDecl));
        }
Beispiel #3
0
 public void AddTypeAliase(ITypeAlias value)
 {
     Typedefs.Add((TypeAlias)value);
 }
Beispiel #4
0
 public void AddTypedef(ITypedefDecl value)
 {
     Typedefs.Add((TypedefDecl)value);
 }