J'essaie d'analyser les fichiers Bibtex en utilisant lex/yacc. Les chaînes de la base de données bibtex peuvent être entourées de guillemets "..." ou d'accolades - {...}Regex pour les chaînes dans Bibtex
Mais chaque entrée est également entourée d'accolades. Comment faire la différence entre une entrée et une chaîne entourée d'accolades?
@Book{sweig42,
Author = { Stefan Sweig },
title = { The impossible book },
publisher = { Dead Poet Society},
year = 1942,
month = mar
}
Carsten ne pense pas. Mais cela ne peut pas être utilisé pour différencier le {} extérieur de la chaîne {}. La définition de @book peut ne pas avoir de sauts de ligne. –
Bonjour, Comme vous utilisez yacc de toute façon, vous pouvez retarder la désambiguïsation jusqu'à la phase d'analyse. Dans ce cas, vous n'êtes pas limité à regex. Existe-t-il une exigence particulière pour obtenir le travail effectué par le lexer? Cordialement carsten – collapsar