public static Tuple <Metadata, List <string> > Parse(string metadata) { var lex = new MetadataParserImpl.MetadataLexer(new ANTLRStringStream(metadata)); var tokens = new CommonTokenStream(lex); var parser = new MetadataParserImpl.MetadataParser(tokens); var parsed = parser.file(); if (lex.Errors.Count > 0 || parser.Errors.Count > 0) { return(Tuple.Create((Metadata)null, lex.Errors.Concat(parser.Errors).ToList())); } var errors = new List <string>(); foreach (var item in parsed.Item1) { if (string.IsNullOrEmpty(item.Namespace) && item.Generate) { errors.Add("Must specify namespace for the type `" + item.TypeName + "'"); } } return(Tuple.Create(errors.Count == 0 ? new Metadata(parsed.Item1, parsed.Item2) : null, errors)); }
public static Tuple<Metadata, List<string>> Parse(string metadata) { var lex = new MetadataParserImpl.MetadataLexer(new ANTLRStringStream(metadata)); var tokens = new CommonTokenStream(lex); var parser = new MetadataParserImpl.MetadataParser(tokens); var parsed = parser.file(); if (lex.Errors.Count > 0 || parser.Errors.Count > 0) return Tuple.Create((Metadata)null, lex.Errors.Concat(parser.Errors).ToList()); var errors = new List<string>(); foreach (var item in parsed.Item1) { if (string.IsNullOrEmpty(item.Namespace) && item.Generate) errors.Add("Must specify namespace for the type `" + item.TypeName + "'"); } return Tuple.Create(errors.Count == 0 ? new Metadata(parsed.Item1, parsed.Item2) : null, errors); }