Ejemplo n.º 1
0
        public CompilerResults Compile(string generatedCodeFileName = null)
        {
            var options = new Dictionary<string, string>
                          {
                          	{"CompilerVersion", "v3.5"}
                          };
            var codeProvider = new CSharpCodeProvider(options);

            var scanner = new Scanner(this.fileName);
            var parser = new Parser(scanner);

            parser.Parse();

            var generatator = new Generator();
            var generatedCode = generatator.Generate(null, parser.ruleClassStatement, "");

            if (generatedCodeFileName != null)
            {
                using (var stream = new StreamWriter(generatedCodeFileName, false, Encoding.UTF8))
                {
                    stream.Write(generatedCode);
                }
            }

            return codeProvider.CompileAssemblyFromSource(this._compilerParams, generatedCode.ToString());
        }
Ejemplo n.º 2
0
        static void Main()
        {
            var scanner = new Scanner( @"Rules\Main.txt" );
            var parser = new Parser( scanner );

            parser.Parse();

            var mainClass = new MainClass();

            try
            {
                Console.WriteLine( mainClass.Main( new object[] { "Id", "Name" } ) );
            }
            catch (Exception e)
            {
                Console.WriteLine( e );
            }
            var code = new Generator().Generate( null, parser.ruleClassStatement, "test.rule" ).ToString();

            using (var stream = new StreamWriter( "../../GeneratedClass.cs" ))
            {
                stream.WriteLine( code );
            }
        }
Ejemplo n.º 3
0
        public Errors(Scanner scanner)
        {
            this.scanner=scanner;

            this.ErrorDatas = errorDatas.AsReadOnly();
        }
Ejemplo n.º 4
0
 public Parser(string source)
 {
     MemoryStream memIn = new MemoryStream();
     byte[] b=System.Text.Encoding.ASCII.GetBytes(source);
     memIn.Write(b,0,b.Length);
     memIn.Seek(0,0);
     this.scanner = new Scanner(memIn);
     errors = new Errors(scanner);
 }
Ejemplo n.º 5
0
 public Parser(System.IO.Stream str)
 {
     scanner = new Scanner(str);
     errors = new Errors(scanner);
 }
Ejemplo n.º 6
0
 public Parser(Scanner scanner)
 {
     this.scanner = scanner;
     errors = new Errors(scanner);
 }