public override ParsedDocument Parse(bool storeAst, string fileName, TextReader tr, Project project = null) { var info = new PageInfo(); var rootNode = new RootNode(); var errors = new List <Error> (); try { rootNode.Parse(fileName, tr); } catch (Exception ex) { LoggingService.LogError("Unhandled error parsing ASP.NET document '" + (fileName ?? "") + "'", ex); errors.Add(new Error(ErrorType.Error, "Unhandled error parsing ASP.NET document: " + ex.Message)); } foreach (var pe in rootNode.ParseErrors) { errors.Add(new Error(ErrorType.Error, pe.Message, pe.Location.BeginLine, pe.Location.BeginColumn)); } info.Populate(rootNode, errors); var type = AspNetAppProject.DetermineWebSubtype(fileName); if (type != info.Subtype) { if (info.Subtype == WebSubtype.None) { errors.Add(new Error(ErrorType.Error, "File directive is missing", 1, 1)); } else { type = info.Subtype; errors.Add(new Error(ErrorType.Warning, "File directive does not match page extension", 1, 1)); } } var result = new AspNetParsedDocument(fileName, type, rootNode, info); result.Add(errors); /* * if (MonoDevelop.Core.LoggingService.IsLevelEnabled (MonoDevelop.Core.Logging.LogLevel.Debug)) { * DebugStringVisitor dbg = new DebugStringVisitor (); * rootNode.AcceptVisit (dbg); * System.Text.StringBuilder sb = new System.Text.StringBuilder (); * sb.AppendLine ("Parsed AspNet file:"); * sb.AppendLine (dbg.DebugString); * if (errors.Count > 0) { * sb.AppendLine ("Errors:"); * foreach (ParserException ex in errors) * sb.AppendLine (ex.ToString ()); * } * MonoDevelop.Core.LoggingService.LogDebug (sb.ToString ()); * }*/ return(result); }
public override ParsedDocument Parse (bool storeAst, string fileName, TextReader tr, Project project = null) { var info = new PageInfo (); var errors = new List<Error> (); Xml.StateEngine.Parser parser = new Xml.StateEngine.Parser ( new AspNetFreeState (), true ); try { parser.Parse (tr); } catch (Exception ex) { LoggingService.LogError ("Unhandled error parsing ASP.NET document '" + (fileName ?? "") + "'", ex); errors.Add (new Error (ErrorType.Error, "Unhandled error parsing ASP.NET document: " + ex.Message)); } // get the errors from the StateEngine parser errors.AddRange (parser.Errors); // populating the PageInfo instance XDocument xDoc = parser.Nodes.GetRoot (); info.Populate (xDoc, errors); var type = AspNetAppProject.DetermineWebSubtype (fileName); if (type != info.Subtype) { if (info.Subtype == WebSubtype.None) { errors.Add (new Error (ErrorType.Error, "File directive is missing", 1, 1)); } else { type = info.Subtype; errors.Add (new Error (ErrorType.Warning, "File directive does not match page extension", 1, 1)); } } var result = new AspNetParsedDocument (fileName, type, info, xDoc); result.Add (errors); /* if (MonoDevelop.Core.LoggingService.IsLevelEnabled (MonoDevelop.Core.Logging.LogLevel.Debug)) { DebugStringVisitor dbg = new DebugStringVisitor (); rootNode.AcceptVisit (dbg); System.Text.StringBuilder sb = new System.Text.StringBuilder (); sb.AppendLine ("Parsed AspNet file:"); sb.AppendLine (dbg.DebugString); if (errors.Count > 0) { sb.AppendLine ("Errors:"); foreach (ParserException ex in errors) sb.AppendLine (ex.ToString ()); } MonoDevelop.Core.LoggingService.LogDebug (sb.ToString ()); }*/ return result; }
public override ParsedDocument Parse (ProjectDom dom, string fileName, string fileContent) { using (var tr = new StringReader (fileContent)) { var info = new PageInfo (); var rootNode = new RootNode (); var errors = new List<Error> (); try { rootNode.Parse (fileName, tr); } catch (Exception ex) { LoggingService.LogError ("Unhandled error parsing ASP.NET document '" + (fileName ?? "") + "'", ex); errors.Add (new Error (ErrorType.Error, 0, 0, "Unhandled error parsing ASP.NET document: " + ex.Message)); } foreach (var pe in rootNode.ParseErrors) errors.Add (new Error (ErrorType.Error, pe.Location.BeginLine, pe.Location.BeginColumn, pe.Message)); info.Populate (rootNode, errors); var type = AspNetAppProject.DetermineWebSubtype (fileName); if (type != info.Subtype) { if (info.Subtype == WebSubtype.None) { errors.Add (new Error (ErrorType.Error, 1, 1, "File directive is missing")); } else { type = info.Subtype; errors.Add (new Error (ErrorType.Warning, 1, 1, "File directive does not match page extension")); } } var result = new AspNetParsedDocument (fileName, type, rootNode, info); result.Add (errors); /* if (MonoDevelop.Core.LoggingService.IsLevelEnabled (MonoDevelop.Core.Logging.LogLevel.Debug)) { DebugStringVisitor dbg = new DebugStringVisitor (); rootNode.AcceptVisit (dbg); System.Text.StringBuilder sb = new System.Text.StringBuilder (); sb.AppendLine ("Parsed AspNet file:"); sb.AppendLine (dbg.DebugString); if (errors.Count > 0) { sb.AppendLine ("Errors:"); foreach (ParserException ex in errors) sb.AppendLine (ex.ToString ()); } MonoDevelop.Core.LoggingService.LogDebug (sb.ToString ()); }*/ return result; } }
public override ParsedDocument Parse(bool storeAst, string fileName, TextReader tr, Project project = null) { var info = new PageInfo(); var errors = new List <Error> (); Xml.StateEngine.Parser parser = new Xml.StateEngine.Parser( new AspNetFreeState(), true ); try { parser.Parse(tr); } catch (Exception ex) { LoggingService.LogError("Unhandled error parsing ASP.NET document '" + (fileName ?? "") + "'", ex); errors.Add(new Error(ErrorType.Error, "Unhandled error parsing ASP.NET document: " + ex.Message)); } // get the errors from the StateEngine parser errors.AddRange(parser.Errors); // populating the PageInfo instance XDocument xDoc = parser.Nodes.GetRoot(); info.Populate(xDoc, errors); var type = AspNetAppProject.DetermineWebSubtype(fileName); if (type != info.Subtype) { if (info.Subtype == WebSubtype.None) { errors.Add(new Error(ErrorType.Error, "File directive is missing", 1, 1)); } else { type = info.Subtype; errors.Add(new Error(ErrorType.Warning, "File directive does not match page extension", 1, 1)); } } var result = new AspNetParsedDocument(fileName, type, info, xDoc); result.Add(errors); return(result); }
public override ParsedDocument Parse (bool storeAst, string fileName, TextReader tr, Project project = null) { var info = new PageInfo (); var errors = new List<Error> (); Xml.StateEngine.Parser parser = new Xml.StateEngine.Parser ( new AspNetFreeState (), true ); try { parser.Parse (tr); } catch (Exception ex) { LoggingService.LogError ("Unhandled error parsing ASP.NET document '" + (fileName ?? "") + "'", ex); errors.Add (new Error (ErrorType.Error, "Unhandled error parsing ASP.NET document: " + ex.Message)); } // get the errors from the StateEngine parser errors.AddRange (parser.Errors); // populating the PageInfo instance XDocument xDoc = parser.Nodes.GetRoot (); info.Populate (xDoc, errors); var type = AspNetAppProject.DetermineWebSubtype (fileName); if (type != info.Subtype) { if (info.Subtype == WebSubtype.None) { errors.Add (new Error (ErrorType.Error, "File directive is missing", 1, 1)); } else { type = info.Subtype; errors.Add (new Error (ErrorType.Warning, "File directive does not match page extension", 1, 1)); } } var result = new AspNetParsedDocument (fileName, type, info, xDoc); result.Add (errors); return result; }