예제 #1
0
        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);
        }
예제 #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");
 }
예제 #3
0
        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("}");
        }
예제 #4
0
 internal void SetPropertiesWhenSerializing(PBXElementDict props)
 {
     m_Properties = props;
 }
예제 #5
0
 public abstract void AddObject(string key, PBXElementDict value);