예제 #1
0
        void CompileOCLs(string[] ocls)
        {
            var aspects = new List <Aspect>();

            foreach (var ocl in ocls)
            {
                Console.WriteLine();
                Console.WriteLine("OCL: " + ocl);
                var aspect = Aspect.OclToAspect(ocl);
                Console.WriteLine("Aspect: " + aspect.ToString());
                aspects.Add(aspect);
            }

            Console.WriteLine();

            var gens = new List <CodeGenerator>();

            foreach (var aspect in aspects)
            {
                Console.WriteLine("Generating assembly for " + aspect.ConstraintName + ".");
                gens.Add(GenCode(aspect));
            }

            Console.WriteLine();
            Console.WriteLine("Invoking Apply() methods.");
            foreach (var gen in gens)
            {
                gen.InvokeApplyMethod();
            }

            Console.WriteLine();
        }