Parser(string projectName, string filePath, XDocument doc, Common.IMarkupErrorLog log) { _projectName = projectName; _filePath = filePath; _log = log; _doc = doc; }
CodeGenerator(UXIL.Project doc, TextFormatter tw, Common.IMarkupErrorLog log, Func <string, TextFormatter> textFormatterFactory) { _doc = doc; _tw = tw; _log = log; _textFormatterFactory = textFormatterFactory; }
static Element Parse(string projName, string p, out XDocument xdoc, Common.IMarkupErrorLog log) { using (var stream = File.OpenRead(p)) { xdoc = XmlHelpers.ReadAllXml(stream, LoadOptions.SetLineInfo, true); return(Parse(projName, p, xdoc, log)); } }
public static Element Parse(string projName, string p, XDocument xdoc, Common.IMarkupErrorLog log) { try { return(Parse(new Parser(projName, p, xdoc, log))); } catch (XmlException e) { log.ReportError(p, e.LineNumber, e.Message); throw; } }
public static Generator Resolve(FileSourceInfo source, AST.Element e, ContentMode contentMode, InstanceType instanceType, Common.IMarkupErrorLog log) { var g = e.Generator; if (g is UnspecifiedGenerator) { var ug = (UnspecifiedGenerator)g; if (contentMode == ContentMode.Default || e.UXKey != null) { if (instanceType == InstanceType.Local) { return(new InstanceGenerator()); } else if (instanceType == InstanceType.Global) { return(new GlobalInstanceGenerator(null)); } else { throw new Exception("Unhandled instance type: " + instanceType); } } else if (contentMode == ContentMode.Template) { var t = (UnspecifiedGenerator)g; return(new TemplateGenerator(null, t.Case, t.IsDefaultCase)); } else { log.ReportError(source.FileName, source.LineNumber, "Unknown content mode: " + contentMode); return(new InstanceGenerator()); } } else { return(g); } }
public static void GenerateCode(UXIL.Project doc, TextFormatter tw, Common.IMarkupErrorLog log, Func <string, TextFormatter> textFormatterFactory) { var cg = new CodeGenerator(doc, tw, log, textFormatterFactory); cg.GenerateCode(); }