/** * Parse in the “file” context defined in the language specification. */ public System.Type ParseFile(ErrorCollector collector, CompilationUnit unit, string type_name) { file result; var position = new ParserPosition(this, collector); if (file.ParseRule_Base(ref position, out result) && position.Finished) { if (result.Analyse(collector)) { return(unit.CreateRootGenerator(result, type_name, generator => result.Generate(generator, generator.Return))); } } else { collector.ReportParseError(FileName, Index, Row, Column, Message); } return(null); }
public XmlDocument DocumentFile(ErrorCollector collector, string lib_name, string github) { file result; var position = new ParserPosition(this, collector); if (file.ParseRule_Base(ref position, out result) && position.Finished) { if (result.Analyse(collector)) { var api = ApiGenerator.Create(lib_name, github); result.GenerateApi(api, true); return(api.Document); } } else { collector.ReportParseError(FileName, Index, Row, Column, Message); } return(null); }
/** * Parse in the “repl” context defined in the language specification. */ public System.Type ParseRepl(ErrorCollector collector, CompilationUnit unit, string type_name) { repl result; var position = new ParserPosition(this, collector); if (repl.ParseRule_Base(ref position, out result) && position.Finished) { if (result.Analyse(collector)) { return(unit.CreateReplGenerator(result, type_name, (generator, root, current, update_current, escape_value, print_value) => result.Generate(generator, root, current, update_current, escape_value, print_value, generator.Return))); } } else { collector.ReportParseError(FileName, Index, Row, Column, Message); } return(null); }
internal void NameConstraint(string name) { error_collector.ReportParseError(Parser.FileName, Index, Row, Column, "The name " + name + " is already in use in this context."); }