Come sostenere grammatiche miste?

3

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?

    
posta Seki 19.07.2012 - 12:05
fonte

1 risposta

2

PEG e tutti gli altri approcci lesserless permettono di mescolare qualsiasi tipo di grammatica. Vedi Katahdin per un'ispirazione.

    
risposta data 19.07.2012 - 12:24
fonte

Leggi altre domande sui tag