예제 #1
0
        public TypeVisitor(Module module)
        {
            new NameVisitor(module);

            ignoreErrors = true;
            module.Accept(this);

            if (result.Count > 0)
            {
                throw new InvalidOperationException();
            }

            ignoreErrors = false;
            module.Accept(this);
        }
예제 #2
0
        protected override CodeDomLocalizationModel GetCurrentLocalizationModelFromDesignedFile()
        {
            Module m = ParseFormAsModule();
            FindLocalizationModelVisitor visitor = new FindLocalizationModelVisitor();

            m.Accept(visitor);
            return(visitor.Model);
        }
예제 #3
0
 public static bool Compile(Log log, Module module)
 {
     Visitor<Null>[] passes = new Visitor<Null>[] {
         new StructuralCheckPass(log),
         new DefineSymbolsPass(log),
         new ComputeSymbolTypesPass(log),
         new ComputeTypesPass(log),
         new DefaultInitializePass(),
         new FlowValidationPass(log),
     };
     foreach (Visitor<Null> pass in passes) {
         module.Accept(pass);
         if (log.errors.Count > 0) {
             return false;
         }
     }
     return true;
 }
예제 #4
0
        CodeCompileUnit ParseForm()
        {
            ParseInformation parseInfo = ParserService.ParseFile(this.Generator.ViewContent.DesignerCodeFile.FileName, this.Generator.ViewContent.DesignerCodeFileContent, false);
            Module           module    = ParseFormAsModule();

                        #if DEBUG
            Console.WriteLine(module.ToCodeString());
                        #endif

            CodeDomVisitor visitor = new CodeDomVisitor(parseInfo.MostRecentCompilationUnit.ProjectContent);
            module.Accept(visitor);

                        #if DEBUG
            // output generated CodeDOM to the console :
            ICSharpCode.NRefactory.Visitors.CodeDomVerboseOutputGenerator outputGenerator = new ICSharpCode.NRefactory.Visitors.CodeDomVerboseOutputGenerator();
            outputGenerator.GenerateCodeFromMember(visitor.OutputCompileUnit.Namespaces[0].Types[0], Console.Out, null);
            CodeDomProvider cSharpProvider = new Microsoft.CSharp.CSharpCodeProvider();
            cSharpProvider.GenerateCodeFromCompileUnit(visitor.OutputCompileUnit, Console.Out, null);
                        #endif

            return(visitor.OutputCompileUnit);
        }
예제 #5
0
 public NameVisitor(Module module)
 {
     module.Accept(this);
 }
예제 #6
0
 public override Null Visit(Module node)
 {
     node.Accept(builder);
     analyzer.Run(builder);
     File.WriteAllText("graphs.dot", builder.ToDotGraph());
     base.Visit(node);
     return null;
 }
예제 #7
0
파일: Module.cs 프로젝트: romanych/cassette
        public void AcceptCallsAcceptForEachAsset()
        {
            var visitor = new Mock<IAssetVisitor>();
            var module = new Module("~/test");
            var asset1 = new Mock<IAsset>();
            var asset2 = new Mock<IAsset>();
            module.Assets.Add(asset1.Object);
            module.Assets.Add(asset2.Object);

            module.Accept(visitor.Object);

            asset1.Verify(a => a.Accept(visitor.Object));
            asset2.Verify(a => a.Accept(visitor.Object));
        }
예제 #8
0
파일: Module.cs 프로젝트: romanych/cassette
        public void AcceptCallsVisitOnVistor()
        {
            var visitor = new Mock<IAssetVisitor>();
            var module = new Module("~/test");

            module.Accept(visitor.Object);

            visitor.Verify(v => v.Visit(module));
        }
 public bool ModuleContainsPath(string path, Module module)
 {
     pathToFind = path.IsUrl() ? path : NormalizePath(path, module);
     module.Accept(this);
     return isFound;
 }