private static IBSharpContext ParseContext(XElement xml) { var result = new BSharpContext(); result.Working = new List <IBSharpClass>(); foreach (var cls in xml.Elements("cls")) { var bcls = new BSharpClass(result); bcls.Set(BSharpClassAttributes.Built); bcls.Name = cls.Attr("name"); bcls.Namespace = cls.Attr("ns"); bcls.Compiled = cls.Elements().First(); result.Working.Add(bcls); } foreach (var error in xml.Elements("error")) { var e = new BSharpError { Type = error.Attr("type").To <BSharpErrorType>(), Message = error.Value }; var lexe = error.Element("lexinfo"); if (null != lexe) { e.LexInfo = new LexInfo(lexe.Attr("file"), lexe.Attr("line").ToInt()); } result.RegisterError(e); } result.BuildIndexes(); return(result); }
private static IBSharpContext ParseContext(XElement xml) { var result = new BSharpContext(); result.Working = new List<IBSharpClass>(); foreach (var cls in xml.Elements("cls")) { var bcls = new BSharpClass(result); bcls.Set(BSharpClassAttributes.Built); bcls.Name = cls.Attr("name"); bcls.Namespace = cls.Attr("ns"); bcls.Compiled = cls.Elements().First(); result.Working.Add(bcls); } foreach (var error in xml.Elements("error")) { var e = new BSharpError {Type = error.Attr("type").To<BSharpErrorType>(), Message = error.Value}; var lexe = error.Element("lexinfo"); if (null != lexe) { e.LexInfo = new LexInfo(lexe.Attr("file"), lexe.Attr("line").ToInt()); } result.RegisterError(e); } result.BuildIndexes(); return result; }