Пример #1
0
        private static Dictionary <string, 字段声明> Parse_字段声明(char[] chars, StrSpan 大括号块)
        {
            Dictionary <string, 字段声明> dic字段声明 = new Dictionary <string, 字段声明>();


            StrSpan span = StrUtil.Trim(chars, 大括号块.iLeft + 1, 大括号块.iRight - 1, Parser._whiteSpaces);

            if (span.isEmpty)
            {
                return(dic字段声明);
            }

            List <StrSpan> list = Parser.在_单引号双引号_以外_Split(chars, span.iLeft, span.iRight, ',');

            StrSpan span字段;

            for (int i = 0; i < list.Count; i++)
            {
                span字段 = list[i];

                字段声明 字段 = Parse_字段(chars, span字段);

                if (dic字段声明.ContainsKey(字段.name))
                {
                    throw new InnerCException("字段名 \"" + 字段.name + "\" 重复 。", chars, 字段.变量位置_iLeft);
                }

                dic字段声明.Add(字段.name, 字段);
            }

            return(dic字段声明);
        }
Пример #2
0
        //private static Dictionary<string, 字段声明> Parse_字段声明(char[] chars, StrSpan 大括号块)
        private static 作用域 Parse_字段声明(char[] chars, StrSpan 大括号块)
        {
            //Dictionary<string, 字段声明> dic字段声明 = new Dictionary<string, 字段声明>();
            作用域 字段声明 = new 作用域();

            StrSpan span = StrUtil.Trim(chars, 大括号块.iLeft + 1, 大括号块.iRight - 1, Parser._whiteSpaces);

            //if (span.isEmpty)
            //    return dic字段声明;

            if (span.isEmpty)
            {
                return(字段声明);
            }

            List <StrSpan> list = Parser.在_单引号双引号_以外_Split(chars, span.iLeft, span.iRight, ',');

            StrSpan span字段;

            for (int i = 0; i < list.Count; i++)
            {
                span字段 = list[i];

                字段声明 字段 = Parse_字段(chars, span字段);

                //if (dic字段声明.ContainsKey(字段.name))
                if (字段声明.dic变量声明.ContainsKey(字段.name))
                {
                    throw new 语法错误_Exception("字段名 \"" + 字段.name + "\" 重复 。", chars, 字段.变量名位置);
                }

                //dic字段声明.Add(字段.name, 字段);
                字段声明.dic变量声明.Add(字段.name, 字段);
            }

            return(字段声明);
            //return dic字段声明;
        }