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
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.
La libreria PEAR ha le classi LexerGenerator e ParserGenerator. La sintassi di LexerGenerator è compatibile con re2c, la sintassi di ParserGenerator è compatibile con lo Lemon Parser generator.
Hai provato a guardare i generatori di parser PEG in PHP: https://github.com/maetl/php-peg?
O un approccio combinatore di parser: http://qntm.org/locoparser?
- 1. php DateTime createFromFormat funzionalità
- 2. PHP: necessario json_encode() 5.3 funzionalità in 5.2
- 3. PHP - Mostra altri articoli funzionalità feedback
- 4. Strumento PHP esistente per funzionalità Toggle
- 5. Funzionalità di caricamento immagini utente sicuro in PHP
- 6. getpasswd funzionalità in Go?
- 7. __LINE__ funzionalità in Groovy
- 8. Implementazione delle funzionalità di annullamento e ripetizione javascript e php
- 9. Porta in funzionalità in HTML5
- 10. cos'è una funzionalità in sharepoint?
- 11. Animazione delle funzionalità in OpenLayers3
- 12. Funzionalità di arricciatura in Dart
- 13. Attiva/disattiva funzionalità in Symfony
- 14. gnuplot epslatex funzionalità in matplotlib
- 15. #regione funzionalità in SSMS 2008
- 16. Funzionalità parallele in .Net 4.0
- 17. Funzionalità di CDPATH in PowerShell?
- 18. Funzionalità Hadoop DistributedCache in Spark
- 19. Ricerca funzionalità PostMessage in Qt
- 20. Contattaci funzionalità in Rails 3
- 21. Funzionalità simultanea.
- 22. Funzionalità in file separati in OCaml?
- 23. Buone risorse per l'apprendimento di funzionalità OOP avanzate in PHP 5?
- 24. Cron in esecuzione ma la funzionalità non funziona
- 25. gruppo MongoDB da Funzionalità
- 26. Funzionalità di RStudio project
- 27. laravel funzionalità utente
- 28. funzionalità di hook pre-fetch in git
- 29. Dove implementare Funzionalità comune In Asp.net MVC
- 30. selezionare la funzionalità in boost :: asio
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
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. –
Qualcuno sembra voler provare ad aggiornarlo: https://github.com/rvanvelzen/lime (non è stato toccato in 2 anni, ma è un inizio!) – Andrea