Combinatore di parser che assomiglia a BNF

7

È possibile costruire una libreria di combinatori di parser che legge come una grammatica BNF? Non ne conosco, quindi ho iniziato a chiedermi se ci sono ragioni per cui è impossibile o indesiderabile farlo. Mi sembra che sarebbe il migliore di entrambi i mondi.

I linguaggi funzionali come F # consentono il sovraccarico dell'operatore. È solo questione di fornire la sintassi giusta o c'è dell'altro?

    
posta Daniel 16.02.2012 - 22:01
fonte

2 risposte

4

Le varie versioni di Parsec / AttoParsec, per il linguaggio di programmazione Haskell, sono piuttosto vicine: una definizione del parser Parsec sembra quasi come BNF, con alcune differenze minori (dove BNF usa | , Parsec ha <|> ; BNF := è = in Parsec; Parsec aggiunge segnalazione degli errori e la funzione try per look-ahead arbitrario).

    
risposta data 16.02.2012 - 22:08
fonte
0

Dovresti guardare al combinatore di Parser di Scala. È stato costruito a terra per corrispondere alla sintassi di BNF.

    
risposta data 17.02.2012 - 06:47
fonte

Leggi altre domande sui tag