Attualmente sto scrivendo una grammatica per un linguaggio di programmazione (PowerBuilder) e sto anche raccogliendo documentazione sulla creazione di parsing e compilatori.
Ora vorrei aggiungere nella mia grammatica (che assomiglia approssimativamente a Visual Basic) la possibilità di gestire istruzioni SQL incorporate supportate in linea dal linguaggio (con l'uso di variabili di binding come select foo into :ls_bar from baz where col=:ls_criteria;
). Poiché l'SQL incorporato è una normale sintassi SQL, non vorrei complessare la grammatica esistente, ma piuttosto adattare una grammatica SQL-92 esistente alle mie esigenze e usarla su questi blocchi SQL.
Il generatore di parser che sto usando principalmente (AntLR) ha alcune possibilità di supportare grammatiche miste o "island" come descritto in quell'articolo o un'altra .
Mi piacerebbe confrontare queste tecniche con AntLR con altri strumenti come Lex / Yacc, Flex, JFlex, che ho usato mentre giocavo con diversi design di linguaggio semplici descritti in diversi corsi CS disponibili online.
Potresti indicarmi esempi di implementazioni di parser che supportano grammatiche miste?