Ejemplo n.º 1
0
        void ParseRootEntry(BibTexDatabase database)
        {
            Consume(TokenType.At);

            var entryType = Consume(TokenType.Text).Data;

            Consume(TokenType.OpeningBrace);

            switch (entryType.ToLower())
            {
            case "string":
                ParseAbbreviation(database);
                break;

            case "preamble":
                ParsePreamble();
                break;

            case "comment":
                ParseComment();
                break;

            default:
                var entry = ParseEntry(database, entryType);
                database.AddEntry(entry);
                //Console.WriteLine("@{0}{{{1},", entry.EntryType, entry.Name);
                break;
            }
        }
Ejemplo n.º 2
0
        public BibTexDatabase CreateSubsetDatabase(params string[] keys)
        {
            var result = new BibTexDatabase(abbreviations);

            foreach (var key in keys)
            {
                var entry = this[key];
                if (entry == null)
                {
                    continue;
                }

                result.AddEntry(entry);
            }

            return(result);
        }