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字段声明); }
//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字段声明; }