public Node VisitXamlSnippet(XamlSnippet snippet){ Microsoft.XamlCompiler.Compiler xamlCompiler = new Microsoft.XamlCompiler.Compiler(snippet.XamlDocument, this.currentModule, snippet.ErrorHandler, snippet.ParserFactory, snippet.Options); CompilationUnit cu = xamlCompiler.GetCompilationUnit(); if (cu.Nodes != null && cu.Nodes.Length >= 1 && cu.Nodes[0] is Namespace) return this.VisitNamespace((Namespace)cu.Nodes[0]); else{ Debug.Assert(false); return null; } }
public Node VisitXamlSnippet(XamlSnippet snippet) { Microsoft.XamlCompiler.Compiler xamlCompiler = new Microsoft.XamlCompiler.Compiler(snippet.XamlDocument, this.currentModule, snippet.ErrorHandler, snippet.ParserFactory, snippet.Options); CompilationUnit cu = xamlCompiler.GetCompilationUnit(); if (cu.Nodes != null && cu.Nodes.Length >= 1 && cu.Nodes[0] is Namespace) { return(this.VisitNamespace((Namespace)cu.Nodes[0])); } else { Debug.Assert(false); return(null); } }
public override CompilationUnit ParseCompilationUnit(string fname, string source, ErrorNodeList errors, Compilation compilation, AuthoringSink sink){ this.parsingStatement = false; if (fname == null || source == null || errors == null || compilation == null){Debug.Assert(false); return null;} if (compilation != null && compilation.CompilerParameters is SpecSharpCompilerOptions) this.allowSpecSharpExtensions = !((SpecSharpCompilerOptions)compilation.CompilerParameters).Compatibility; CompilationUnit cu; #if Xaml if (fname.Length > 5 && string.Compare(fname, fname.Length-5, ".xaml", 0, 5, true, CultureInfo.InvariantCulture) == 0){ Document xamlDocument = Microsoft.XamlCompiler.Compiler.CreateXamlDocument(fname, 1, new DocumentText(source)); Microsoft.XamlCompiler.ErrorHandler xamlErrorHandler = new Microsoft.XamlCompiler.ErrorHandler(errors); Microsoft.XamlCompiler.Compiler xamlCompiler = new Microsoft.XamlCompiler.Compiler(xamlDocument, compilation.TargetModule, xamlErrorHandler, new ParserFactory(), compilation.CompilerParameters as CompilerOptions); cu = xamlCompiler.GetCompilationUnit(); }else{ #endif Parser p = new Parser(compilation.TargetModule); cu = p.ParseCompilationUnit(source, fname, compilation.CompilerParameters, errors, sink); if (cu != null) cu.Compilation = compilation; this.parsingStatement = p.parsingStatement; #if Xaml } #endif this.partialCompilationUnit = cu; return cu; }