public static PBXElementDict ParseTreeAST(TreeAST ast, TokenList tokens, string text)
        {
            var el = new PBXElementDict();

            foreach (var kv in ast.values)
            {
                PBXElementString key   = ParseIdentifierAST(kv.key, tokens, text);
                PBXElement       value = ParseValueAST(kv.value, tokens, text);
                el[key.value] = value;
            }
            return(el);
        }
Beispiel #2
0
 public override void UpdateVars()
 {
     projectReferences = new List<ProjectReference>();
     if (m_Properties.Contains("projectReferences"))
     {
         var el = m_Properties["projectReferences"].AsArray();
         foreach (var value in el.values)
         {
             PBXElementDict dict = value.AsDict();
             if (dict.Contains("ProductGroup") && dict.Contains("ProjectRef"))
             {
                 string group = dict["ProductGroup"].AsString();
                 string projectRef = dict["ProjectRef"].AsString();
                 projectReferences.Add(ProjectReference.Create(group, projectRef));
             }
         }
     }
     buildConfigList = GetPropertyString("buildConfigurationList");
 }
        public static void WriteDict(StringBuilder sb, PBXElementDict el, int indent, bool compact,
                                     PropertyCommentChecker checker, GUIDToCommentMap comments)
        {
            sb.Append("{");

            if (el.Contains("isa"))
            {
                WriteDictKeyValue(sb, "isa", el["isa"], indent + 1, compact, checker, comments);
            }
            foreach (var key in el.values.Keys)
            {
                if (key != "isa")
                {
                    WriteDictKeyValue(sb, key, el[key], indent + 1, compact, checker, comments);
                }
            }
            if (!compact)
            {
                sb.Append("\n");
                sb.Append(GetIndent(indent));
            }
            sb.Append("}");
        }
 public static void WriteDict(StringBuilder sb, PBXElementDict el, int indent, bool compact, 
                              PropertyCommentChecker checker, GUIDToCommentMap comments)
 {
     sb.Append("{");
     
     if (el.Contains("isa"))
         WriteDictKeyValue(sb, "isa", el["isa"], indent+1, compact, checker, comments);
     foreach (var key in el.values.Keys)
     {
         if (key != "isa")
             WriteDictKeyValue(sb, key, el[key], indent+1, compact, checker, comments);
     }
     if (!compact)
     {
         sb.Append("\n");
         sb.Append(GetIndent(indent));
     }
     sb.Append("}");
 }
 public static PBXElementDict ParseTreeAST(TreeAST ast, TokenList tokens, string text)
 {
     var el = new PBXElementDict();
     foreach (var kv in ast.values)
     {
         PBXElementString key = ParseIdentifierAST(kv.key, tokens, text);
         PBXElement value = ParseValueAST(kv.value, tokens, text);
         el[key.value] = value;
     }
     return el;
 }
 internal void SetPropertiesWhenSerializing(PBXElementDict props)
 {
     m_Properties = props;
 }
        public override void UpdateProps()
        {
            SetPropertyString("fileRef", fileRef);

            PBXElementDict settings = null;

            if (m_Properties.Contains("settings"))
            {
                settings = m_Properties["settings"].AsDict();
            }

            if (compileFlags != null && compileFlags != "")
            {
                if (settings == null)
                {
                    settings = m_Properties.CreateDict("settings");
                }
                settings.SetString("COMPILER_FLAGS", compileFlags);
            }
            else
            {
                if (settings != null)
                {
                    settings.Remove("COMPILER_FLAGS");
                }
            }

            if (weak)
            {
                if (settings == null)
                {
                    settings = m_Properties.CreateDict("settings");
                }
                PBXElementArray attrs = null;
                if (settings.Contains("ATTRIBUTES"))
                {
                    attrs = settings["ATTRIBUTES"].AsArray();
                }
                else
                {
                    attrs = settings.CreateArray("ATTRIBUTES");
                }

                bool exists = false;
                foreach (var value in attrs.values)
                {
                    if (value is PBXElementString && value.AsString() == "Weak")
                    {
                        exists = true;
                    }
                }
                if (!exists)
                {
                    attrs.AddString("Weak");
                }
            }
            else
            {
                if (settings != null && settings.Contains("ATTRIBUTES"))
                {
                    var attrs = settings["ATTRIBUTES"].AsArray();
                    attrs.values.RemoveAll(el => (el is PBXElementString && el.AsString() == "Weak"));
                    if (attrs.values.Count == 0)
                    {
                        settings.Remove("ATTRIBUTES");
                    }
                }
            }

            if (assetTags.Count > 0)
            {
                if (settings == null)
                {
                    settings = m_Properties.CreateDict("settings");
                }
                var tagsArray = settings.CreateArray("ASSET_TAGS");
                foreach (string tag in assetTags)
                {
                    tagsArray.AddString(tag);
                }
            }
            else
            {
                if (settings != null)
                {
                    settings.Remove("ASSET_TAGS");
                }
            }

            if (settings != null && settings.values.Count == 0)
            {
                m_Properties.Remove("settings");
            }
        }
Beispiel #8
0
 public PBXElementDict AddDict()
 {
     var v = new PBXElementDict();
     values.Add(v);
     return v;
 }
Beispiel #9
0
 public PBXElementDict CreateDict(string key)
 {
     var v = new PBXElementDict();
     values[key] = v;
     return v;
 }
Beispiel #10
0
 public abstract void AddObject(string key, PBXElementDict value);
Beispiel #11
0
 public PBXElementDict AddDict()
 {
     var v = new PBXElementDict();
     values.Add(v);
     return v;
 }
Beispiel #12
0
 public PBXElementDict CreateDict(string key)
 {
     var v = new PBXElementDict();
     values[key] = v;
     return v;
 }