# Introduction

Avertissement

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 les bibliothèques de » ces librairies et nécessite un compilateur compatible avec » C++14. L'analyse lexicale est basé 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'analyseur lexical 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

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.