// 添加类索引数据
        private void AddClassData(ALittleScriptClassDecElement dec)
        {
            var name_dec = dec.GetClassNameDec();

            if (name_dec == null)
            {
                return;
            }

            if (!m_class_data_map.TryGetValue(dec.GetFile(), out Dictionary <string, ALittleScriptClassData> map))
            {
                map = new Dictionary <string, ALittleScriptClassData>();
                m_class_data_map.Add(dec.GetFile(), map);
            }
            var    class_data = new ALittleScriptClassData();
            string name       = name_dec.GetElementText();

            if (map.ContainsKey(name))
            {
                map.Remove(name);
            }
            map.Add(name, class_data);

            var template_dec = dec.GetTemplateDec();

            if (template_dec != null)
            {
                class_data.AddClassChildDec(template_dec);
            }

            var body_dec = dec.GetClassBodyDec();

            if (body_dec == null)
            {
                return;
            }

            var element_dec_list = body_dec.GetClassElementDecList();

            foreach (var element_dec in element_dec_list)
            {
                class_data.AddClassChildDec(element_dec);
            }
        }
        // 获取类索引数据
        public ALittleScriptClassData GetClassData(ALittleScriptClassDecElement dec)
        {
            var name_dec = dec.GetClassNameDec();

            if (name_dec == null)
            {
                return(null);
            }
            if (!m_class_data_map.TryGetValue(dec.GetFile(), out Dictionary <string, ALittleScriptClassData> map))
            {
                return(null);
            }
            if (!map.TryGetValue(name_dec.GetElementText(), out ALittleScriptClassData data))
            {
                return(null);
            }
            return(data);
        }
        public void FindClassAttrList(ALittleScriptClassDecElement dec
                                      , int access_level, ALittleScriptUtility.ClassAttrType attr_type, string name, List <ABnfElement> result)
        {
            var name_dec = dec.GetClassNameDec();

            if (name_dec == null)
            {
                return;
            }

            if (!m_class_data_map.TryGetValue(dec.GetFile(), out Dictionary <string, ALittleScriptClassData> map))
            {
                return;
            }
            if (!map.TryGetValue(name_dec.GetElementText(), out ALittleScriptClassData data))
            {
                return;
            }
            data.FindClassAttrList(access_level, attr_type, name, result);
        }