2009-06-16 20 views
11

Sto cercando un modo per ottenere il supporto Flex/Bison (o Lex/Yacc, et. Al.) In PHP. In particolare, sto implementando un parser di query booleane in un'interfaccia utente web e preferisco mantenere tutte le operazioni all'interno di PHP (al contrario di chiamare un parser C o passare cose a Python, ecc.).Funzionalità Flex/Bison in PHP

risposta

11

LIME generatore di parser per PHP:

LALR Complete (1) generatore di parser e del motore (come BISONTE o YACC) ma è tutto fatto in PHP, e la grammatica di ingresso è più facile e più gestibile . Scrivi le tue azioni in PHP. Genera il codice di uscita PHP . Guida il tuo parser con PHP. Vuoi fare una lingua?


aggiornamento:

Da quando ho scritto quanto sopra, vedo che ci sono alcuni altri strumenti per la generazione di parser, ha annunciato qui:

http://wezfurlong.org/blog/2006/nov/parser-and-lexer-generators-for-php/

Non sono sicuro se queste sono meglio mantenuto ora nel 2014, ma conosco Wez Furlong, è stato lo sviluppatore originale di PDO ed è un ottimo sviluppatore.

+1

Hai mai usato questo? Non è stato aggiornato da quasi due anni e non ha bug archiviati, aperti o chiusi, quindi sono titubante a credere che sia stato testato o realmente utilizzato, mai. – Wang

+1

No, non ho mai avuto bisogno di implementare un parser completo in PHP. Il fatto che sia abandonware e nessun altro strumento esista può essere un indizio del fatto che PHP non è lo strumento giusto per analizzare i lavori. –

+0

Qualcuno sembra voler provare ad aggiornarlo: https://github.com/rvanvelzen/lime (non è stato toccato in 2 anni, ma è un inizio!) – Andrea