public ALittleScriptGuessEnum(string p_namespace_name, string p_enum_name
                               , ALittleScriptEnumDecElement p_enum_dec)
 {
     is_register    = ALittleScriptUtility.IsRegister(p_enum_dec);
     namespace_name = p_namespace_name;
     enum_name      = p_enum_name;
     enum_dec       = p_enum_dec;
 }
Example #2
0
 public ALittleScriptEnumDecElement GetEnumDec()
 {
     if (m_flag_EnumDec)
     {
         return(m_cache_EnumDec);
     }
     m_flag_EnumDec = true;
     foreach (var child in m_childs)
     {
         if (child is ALittleScriptEnumDecElement)
         {
             m_cache_EnumDec = child as ALittleScriptEnumDecElement;
             break;
         }
     }
     return(m_cache_EnumDec);
 }
        // 获取枚举数据
        public ALittleScriptEnumData GetEnumData(ALittleScriptEnumDecElement dec)
        {
            var name_dec = dec.GetEnumNameDec();

            if (name_dec == null)
            {
                return(null);
            }
            if (!m_enum_data_map.TryGetValue(dec.GetFile(), out Dictionary <string, ALittleScriptEnumData> map))
            {
                return(null);
            }
            if (!map.TryGetValue(name_dec.GetElementText(), out ALittleScriptEnumData data))
            {
                return(null);
            }
            return(data);
        }
        // 添加枚举数据
        private void AddEnumData(ALittleScriptEnumDecElement dec)
        {
            var name_dec = dec.GetEnumNameDec();

            if (name_dec == null)
            {
                return;
            }

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

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

            var body_dec = dec.GetEnumBodyDec();

            if (body_dec == null)
            {
                return;
            }

            var var_dec_list = body_dec.GetEnumVarDecList();

            foreach (var var_dec in var_dec_list)
            {
                enum_data.AddVarDec(var_dec);
            }
        }