Exemple #1
0
        private void SetEnvironmentTab()
        {
            CodeElement.UDataElement element = mDataDocument.Items[EnvironmentId].Items[Environment_ExitAutoSave];

            CheckBox cb = tabEnvironment.Controls["cbExitAutoSave"] as CheckBox;

            cb.Text    = element.Tag;
            cb.Checked = element.Value == "true" ? true : false;

            element = mDataDocument.Items[EnvironmentId].Items[Environment_Font];

            lFont.Text = element.Value;
        }
Exemple #2
0
        private void AddVariableType(int languageIndex, string name, string value)
        {
            if (GetVariableType(languageIndex, name) != null)
            {
                MessageBox.Show("变量类型已存在");
                return;
            }

            CodeElement.UDataElement element = new CodeElement.UDataElement();
            element.Name  = name;
            element.Tag   = string.Empty;
            element.Value = value;

            mDataDocument.Items[LanguageId].Items[languageIndex].Items[Language_VariableType].Items.Add(element);

            listVariableType.Items.Add(name);
            listVariableType.SelectedIndex = listVariableType.Items.Count - 1;
        }
Exemple #3
0
        private void AddSymbol(int languageIndex, string name, string value)
        {
            if (GetSymbol(languageIndex, name) != null)
            {
                MessageBox.Show("符号已存在");
                return;
            }

            CodeElement.UDataElement element = new CodeElement.UDataElement();
            element.Name  = name;
            element.Tag   = string.Empty;
            element.Value = value;

            mDataDocument.Items[LanguageId].Items[languageIndex].Items[Language_Symbols].Items.Add(element);

            listSymbols.Items.Add(name);
            listSymbols.SelectedIndex = listSymbols.Items.Count - 1;

            butSymbolColor.BackColor = ParseColor(value);
        }
Exemple #4
0
        /// <summary>
        /// 配置表分析
        /// </summary>
        /// <returns></returns>
        private UDataElement ParseElement()
        {
            try
            {
                // 如果下一个数据为空,则分析完成
                if (mParser.PeekNextData() == string.Empty)
                {
                    return(null);
                }

                // 获取根目录
                UDataElement element = new UDataElement();

                // 分析指定格式
                mParser.GetNextData("[");

                element.Name  = mParser.GetNextData();
                element.Value = string.Empty;

                mParser.GetNextData("]");

                while (true)
                {
                    // 循环分析子项
                    string nextData = mParser.PeekNextData();

                    switch (nextData)
                    {
                    // 如果是“<”表示为子项数据
                    case "<":
                    {
                        // 按特定格式保存数据
                        UDataElement de = new UDataElement();

                        // 自定义数据
                        // 名称
                        mParser.GetNextData("<");
                        mParser.GetNextData("Name");
                        mParser.GetNextData("=");
                        de.Name = mParser.GetNextData();
                        mParser.GetNextData(" ");
                        // 说明
                        mParser.GetNextData("Tag");
                        mParser.GetNextData("=");
                        de.Tag = mParser.GetNextData();
                        mParser.GetNextData(" ");
                        // 内容
                        mParser.GetNextData("Value");
                        mParser.GetNextData("=");
                        de.Value = mParser.GetNextData();
                        mParser.GetNextData(">");

                        element.Items.Add(de);
                    }
                    break;

                    // 嵌套的配置块
                    case "[":
                        mParser.Save();

                        mParser.GetNextData("[");

                        // 配置块结束标志
                        if (mParser.PeekNextData() == "/")
                        {
                            mParser.GetNextData("/");
                            mParser.GetNextData(element.Name);
                            mParser.GetNextData("]");

                            return(element);
                        }
                        else
                        {
                            // 循环分析
                            mParser.Load();

                            UDataElement newElement = ParseElement();

                            if (newElement == null)
                            {
                                return(element);
                            }
                            else
                            {
                                element.Items.Add(newElement);
                            }
                        }

                        break;

                    default:
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }