Maison >développement back-end >tutoriel php >Programmation fonctionnelle avec Phunkie: construire un analyseur JSON PHP
Ce didacticiel en deux parties démontre des combinateurs d'analyseurs de construction en PHP à l'aide de la bibliothèque fonctionnelle Phunkie. Marcello Duarte, le créateur de la bibliothèque, vous guide tout au long du processus.
Ce tutoriel s'appuie sur les concepts de analyse de base, progressant vers des stratégies de séquençage et de choix plus avancées.
Combinateurs de séquençage
a sat
(satisfait) l'analyseur est introduit, vérifiant si un personnage répond à un prédicat donné. Il exploite les analyseurs primitifs item
, result
et zero
. S'appuyant sur sat
, des analyseurs simples comme char
, digit
, lower
, et upper
sont facilement créés.
combinateurs de choix
Les grammaires du monde réel nécessitent des choix de manipulation. Le combinateur plus
permet de choisir entre deux analyseurs. Ceci est implémenté en tant que méthode or
dans la classe Parser
pour une syntaxe améliorée. letter
(minuscules ou majuscules) et alphanum
(lettre ou chiffre) les analyseurs illustrent cela.
combinateurs récursifs
Les combinateurs récursifs permettent l'analyse non déterministe. Un analyseur word
le démontre, correspondant à des séquences de lettres récursivement. Un analyseur string
reconnaît une chaîne spécifique dans une entrée plus grande. La récursivité est gérée avec soin pour éviter les débordements de pile.
répétitions simples
L'analyseur many
généralise la répétition, permettant des occurrences zéro ou plus d'un analyseur. many1
est introduit pendant au moins une occurrence. Un analyseur nat
(numéro naturel) et un analyseur int
sont construits à l'aide de many1
et démontrent des résultats analysés à la coulée aux entiers.
Répétition avec les séparateurs
Le combinateur sepBy1
gère les répétitions séparées par un autre analyseur. Ceci est utilisé pour créer un analyseur ints
pour l'analyse des listes d'entiers dans le style des tableaux PHP (par exemple, [1,-42,500]
). Une fonction d'assistance surrounded
refactors en outre.
un analyser JSON
Un analyseur JSON est construit à l'aide des combinateurs précédemment définis. L'analyseur json_value
agit comme un analyseur de choix de haut niveau, combinant d'autres analyseurs spécialisés (par exemple, json_string
, json_boolean
, json_number
, json_array
, json_object
). Le combinateur sepBy1array
est utilisé pour construire des tableaux, et des cartes immuables sont utilisées pour les objets JSON.
Le tutoriel se termine par des liens vers le référentiel Phunkie et le référentiel de combinateur d'analyse de l'auteur. L'auteur encourage les questions et les commentaires sur Twitter.
[1] - Phunkie Repository: https://www.php.cn/link/630d790d0716246ca1aa250a6f86f755 [2] - Référentiel de combinateurs de l'analyse de Marcello Duarte: https://www.php.cn/link/793aaa24e931c05d077f434e33485574
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!