Cette extension est EXPERIMENTALE. Le comportement de cette extension, les noms de ses fonctions, et toute la documentation autour de cette extension peut changer sans prĂ©avis dans une prochaine version de PHP. Cette extension doit ĂȘtre utilisĂ©e Ă vos risques et pĂ©rils.
L'extension parle apporte des facilitĂ©s de lexing et de parsing Ă usage gĂ©nĂ©ral. L'implĂ©mentation est basĂ©e sur » ces bibliothĂšques et nĂ©cessite un compilateur compatible avec » C++14. L'analyse lexicale est basĂ©e sur la correspondance regex, l'analyse syntaxique est LALR(1). Les analyseurs sont gĂ©nĂ©rĂ©s Ă la volĂ©e et peuvent ĂȘtre utilisĂ©s immĂ©diatement aprĂšs avoir Ă©tĂ© finalisĂ©s. Parle traite l'analyse lexicale et syntaxique, la reprĂ©sentation et le traitement des structures de donnĂ©es appropriĂ©es sont la tĂąche de l'implĂ©menteur. La sĂ©rialisation et la gĂ©nĂ©ration de code ne sont pas prises en charge par l'extension, pour l'instant.
L'analyse lexicale est un processus de division d'une sĂ©quence de caractĂšres en une liste de lexĂšmes. La liste de lexĂšmes peut ensuite ĂȘtre utilisĂ©e pour l'analyse syntaxique par rapport Ă une grammaire formelle. Ces opĂ©rations sont Ă©galement connues sous le nom d'analyse lexicale (lexing) et d'analyse syntaxique (parsing). Cette documentation n'a pas pour but de fournir une information exhaustive sur le lexing et le parsing. De bonnes informations Ă ce sujet sont disponibles sur les nombreuses ressources sur le net. Plusieurs exemples d'utilisation sont inclus, pour montrer la fonctionnalitĂ©. L'extension est utile pour les dĂ©veloppeurs PHP dĂ©sireux d'apprendre ou d'utiliser l'analyse lexicale et syntaxique. Les machines Ă Ă©tats et l'analyse de grammaire n'ont pas Ă ĂȘtre implĂ©mentĂ©es manuellement, ces tĂąches complexes sont prises en charge par parle. GrĂące Ă cela, le dĂ©veloppement peut se concentrer sur la rĂ©solution de problĂšmes rĂ©els.
Les cas d'utilisation courants pour parle sont, quand un format de donnĂ©es est trop complexe pour ĂȘtre gĂ©rĂ© par la correspondance regex avec PCRE. L'application pratique est donc large. Que ce soit un format de donnĂ©es spĂ©cifique, une modification du comportement des fonctions existantes, voire un langage de programmation et au-delĂ . Les mĂ©thodes d'aide telles que Parle\Lexer::dump() pour inspecter la machine Ă Ă©tats gĂ©nĂ©rĂ©e, ou Parle\Parser::dump() pour inspecter la grammaire gĂ©nĂ©rĂ©e, sont utiles. La mĂ©thode Parle\Parser::trace() peut Ă©galement ĂȘtre utilisĂ©e pour suivre l'opĂ©ration d'analyse.