identifier can contain weird things @ string ( @f0/0\:0 = "foo" ) @string { foo = "foo" # @f0/0\:0 } @ preamble( foo ) @preamble { foo } entry can be empty @misc{} key can be empty @misc(,) key can contain weird things @misc( (}cr@zy{,) @misc{ ()cr@zy{,} Now testing entries with unknown type. @cr@zy {key1, year = 2010, title = @f0/0\:0 # "jou{"}rn@l" # { {j}our"n@{l} } # @f0/0\:0, author = "Jœhn Nash", } @comment{ This is a comment The following line starts a new entry, even though few parsers will catch it @article{key2, year = "2010", } we are now outside of an entry again, balancedness does not matter } } @ comment The next line defines an entry of type "commentarticle" @ commment@article {key3,}