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()); }
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 ); } }
public Errors(Scanner scanner) { this.scanner=scanner; this.ErrorDatas = errorDatas.AsReadOnly(); }
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); }
public Parser(System.IO.Stream str) { scanner = new Scanner(str); errors = new Errors(scanner); }
public Parser(Scanner scanner) { this.scanner = scanner; errors = new Errors(scanner); }