Exemplo n.º 1
0
        private static KspObject ReadObjectTree(KspToken token, Action <KspObject, KspToken> addTokenMapping)
        {
            KspObject obj;

            // Treat global tokens as craft object -> needed for .craft file support
            var type = token.IsGlobalToken() ? KspCraftObject.TypeId : token.Name;

            switch (type)
            {
            case KspCraftObject.TypeId:
                obj = new KspCraftObject(token.IsGlobalToken());
                break;

            case KspPartObject.TypeId:
                obj = new KspPartObject(token.IsGlobalToken());
                break;

            default:
                obj = new KspObject(token.Name, token.IsGlobalToken());
                break;
            }

            foreach (var t in token.Tokens)
            {
                obj.AddChild(ReadObjectTree(t, addTokenMapping));
            }

            addTokenMapping(obj, token);
            return(obj);
        }
        private static KspObject ReadObjectTree (KspToken token, Action<KspObject, KspToken> addTokenMapping)
        {
            KspObject obj;

            // Treat global tokens as craft object -> needed for .craft file support
            var type = token.IsGlobalToken () ? KspCraftObject.TypeId : token.Name;

            switch (type) {
            case KspCraftObject.TypeId:
                obj = new KspCraftObject (token.IsGlobalToken ());
                break;
            case KspPartObject.TypeId:
                obj = new KspPartObject (token.IsGlobalToken ());
                break;
            default:
                obj = new KspObject (token.Name, token.IsGlobalToken ());
                break;
            }

            foreach (var t in token.Tokens) {
                obj.AddChild (ReadObjectTree (t, addTokenMapping));
            }

            addTokenMapping (obj, token);
            return obj;
        }
Exemplo n.º 3
0
        private static void WriteToken(KspToken token, StringBuilder sb, int lvl)
        {
            if (String.IsNullOrEmpty(token.Name))
            {
                return;
            }

            if (!token.IsGlobalToken())
            {
                WriteLine(token.Name, sb, lvl);
                WriteLine("{", sb, lvl);
            }

            var contentLevel = (token.IsGlobalToken() ? lvl : lvl + 1);

            foreach (var a in token.Attributes)
            {
                WriteAttribute(a, sb, contentLevel);
            }

            foreach (var t in token.Tokens)
            {
                WriteToken(t, sb, contentLevel);
            }

            if (!token.IsGlobalToken())
            {
                WriteLine("}", sb, lvl);
            }
        }
Exemplo n.º 4
0
        private static void WriteToken (KspToken token, StringBuilder sb, int lvl)
        {
            if (String.IsNullOrEmpty (token.Name)) {
                return;
            }

            if (!token.IsGlobalToken ()) {
                WriteLine (token.Name, sb, lvl);
                WriteLine ("{", sb, lvl);
            }

            var contentLevel = (token.IsGlobalToken () ? lvl : lvl + 1);

            foreach (var a in token.Attributes) {
                WriteAttribute (a, sb, contentLevel);
            }

            foreach (var t in token.Tokens) {
                WriteToken (t, sb, contentLevel);
            }

            if (!token.IsGlobalToken ()) {
                WriteLine ("}", sb, lvl);
            }
        }