L'outil le plus proche que j'ai vu est Grammar Recovery System par Ralf Lammel. Il dépend de l'accessibilité des diagrammes de chemin de fer comme les chaînes de texte. Ce n'est généralement pas comment ils sont trouvés. Vous semblez avoir de la chance dans l'affaire DB2, les points de travail de Ralf vont dans la bonne direction. Considérant que ces diagrammes sont habituellement rendus comme un ensemble de pixels (les PLSQL sont comme cela dans les fichiers PDF fournis pour la documentation), vous avez plusieurs types de problèmes: reconnaître des entités graphiques à partir de pixels, les assembler en représentations réelles de les diagrammes de chemin de fer, puis en utilisant comme votre assistant. Je pense que c'est une approche longue, difficile et peu pratique. Si vous l'avez fait fonctionner, vous découvrirez que les diagrammes sont légèrement faux dans de nombreux endroits (lisez l'article de Ralf ou découvrez à la dure), et donc inutilisable pour un outil qui est censé produire le "bon" truc pour aider votre DBA. Bien sûr, vous vous opposez à l'autre approche longue, difficile, "impraticable" de lire la documentation et de produire des grammaires qui correspondent, puis de valider ces grammaires par rapport au monde réel. Oui, c'est aussi un slogan difficile, mais en réalité cela produit des résultats utiles. Vous devez trouver des fournisseurs qui ont fait cela et le rendront disponible pour vous.
ANTLR.org offre une variété de grammaires. Avez-vous vérifié là?
Mon entreprise propose des grammaires et des outils pour les traiter. Nous l'avons fait pour PLSQL et SQL2011 mais pas encore DB2. Étant donné une grammaire, vous devez maintenant l'utiliser pour fournir des «conseils» à vos utilisateurs. Vos utilisateurs ne vont pas taper un "programme" complet; ils veulent générer des fragments (par exemple, des instructions SELECT). Maintenant vous avez besoin d'un analyseur qui traitera les fragments de grammaire et au moins dira "légal" ou "non". La plupart ne le feront pas. Notre DMS Software Reengineering Toolkitle fera.
Pour fournir conseiller, vous devez être capable de marcher la grammaire (autant que vous avez considéré pour les diagrammes de chemin de fer) pour calculer "ce qui est légal suivant". C'est en fait assez difficile (en fait, il est à peu près équivalent à ce que fait un générateur d'analyseur LR/GLR lors de la construction de tables). Notre moteur DMS le fait lors de la réparation d'erreur de syntaxe en parcourant ses tables d'analyse GLR (puisque ce travail est déjà encodé dans les tables!). Ce n'est pas facile à faire, car c'est une variante particulière de l'algorithme d'analyse GLR. Vous pourriez faire mieux avec un analyseur Earley, qui conserve toutes les analyses possibles comme un ensemble de choix; vous pourriez simplement inspecter chacun d'eux.
Mais cela demande beaucoup de travail et je pense que vous serez surpris par la quantité de machines dont vous avez besoin.
Le meilleur travail dans ce domaine est Harmonia, qui produit des éditeurs incrémentiels pour le code. L'analyseur de notre moteur DMS est basé sur les travaux antérieurs de ce projet, car nous sommes intéressés par l'aspect incrémentalité.