Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Est il possible d'etendre la syntaxe de PHP

15 réponses
Avatar
BertrandB
EN fait je cherche à savoir s'il est possible en php d'étendre la
syntaxe de celui-ci en rajoutant des tokens (éléments lexicaux)
supplémentaires.

Pour l'instant je ne crois pas mais parfois cantonade est de bon conseil.

10 réponses

1 2
Avatar
Olivier Miakinen
EN fait je cherche à savoir s'il est possible en php d'étendre la
syntaxe de celui-ci en rajoutant des tokens (éléments lexicaux)
supplémentaires.


À moins d'aller modifier et recompiler le code source, je ne vois pas
bien comment ce serait possible.

Pour l'instant je ne crois pas mais parfois cantonade est de bon conseil.


Alors justement, en voici un (de conseil) : si ton adresse est invalide,
elle doit être syntaxiquement correcte et terminée par le TLD .invalid
(quelle que soit la casse).

Par exemple :


Ou bien :


Merci !

Avatar
Denis Beauregard
Le 23 Mar 2008 21:08:06 GMT, BertrandB
écrivait dans
fr.comp.lang.php:

EN fait je cherche à savoir s'il est possible en php d'étendre la
syntaxe de celui-ci en rajoutant des tokens (éléments lexicaux)
supplémentaires.

Pour l'instant je ne crois pas mais parfois cantonade est de bon conseil.


PHP est un langage interprété. Je pense que les langages où on peut
redéfinir les opérateurs comme le C++ sont toujours compilés.


Denis

Avatar
Olivier Miakinen
Le 24/03/2008 09:50, Denis Beauregard répondait à BertrandB :

EN fait je cherche à savoir s'il est possible en php d'étendre la
syntaxe de celui-ci en rajoutant des tokens (éléments lexicaux)
supplémentaires.


[...] les langages où on peut
redéfinir les opérateurs comme le C++ [...]


Je n'ai pas compris la question comme ça. En C++ on peut redéfinir ce
que font certains opérateurs (sans changer toutefois leur nombre de
paramètres), alors que BertrandB semble vouloir rajouter une structure
du langage, par exemple un truc du genre « do <instr> until <test> ».


Avatar
Denis Beauregard
Le 24 Mar 2008 09:35:40 GMT, Olivier Miakinen <om+
écrivait dans fr.comp.lang.php:

Le 24/03/2008 09:50, Denis Beauregard répondait à BertrandB :

EN fait je cherche à savoir s'il est possible en php d'étendre la
syntaxe de celui-ci en rajoutant des tokens (éléments lexicaux)
supplémentaires.


[...] les langages où on peut
redéfinir les opérateurs comme le C++ [...]


Je n'ai pas compris la question comme ça. En C++ on peut redéfinir ce
que font certains opérateurs (sans changer toutefois leur nombre de
paramètres), alors que BertrandB semble vouloir rajouter une structure
du langage, par exemple un truc du genre « do <instr> until <test> ».


Tu en connais des langages que l'on peut modifier sans recompiler ?
À part faire des sous-programmes ou routines, ce qui est très répandu,
il reste la redéfinition des éléments du langage. Ajouter des
structures me semble trop demander si on ne veut pas ré-écrire le
compilateur. De toutes façons, le PHP tournant sous Linux, le source
est disponible, donc le langage peut être recompilé de façon
différente. Mais il me semble que l'on chercherait d'abord à
redéfinir les opérateurs avant d'en ajouter.


Denis



Avatar
Olivier Miakinen

Tu en connais des langages que l'on peut modifier sans recompiler ?


Non, sauf peut-être lisp mais c'est un cas assez particulier. D'ailleurs
je n'ai pas dit autre chose.

[...] il me semble que l'on chercherait d'abord à
redéfinir les opérateurs avant d'en ajouter.


J'ai répondu à ce que j'ai compris de la question de BertrandB. Je
suppose qu'il reviendra préciser ce qu'il avait en tête.

Avatar
BertrandB
Le 24 Mar 2008 09:35:40 GMT, Olivier Miakinen <om+
écrivait dans fr.comp.lang.php:

Le 24/03/2008 09:50, Denis Beauregard répondait à BertrandB :
EN fait je cherche à savoir s'il est possible en php d'étendre la
syntaxe de celui-ci en rajoutant des tokens (éléments lexicaux)
supplémentaires.
[...] les langages où on peut

redéfinir les opérateurs comme le C++ [...]
Je n'ai pas compris la question comme ça. En C++ on peut redéfinir ce

que font certains opérateurs (sans changer toutefois leur nombre de
paramètres), alors que BertrandB semble vouloir rajouter une structure
du langage, par exemple un truc du genre « do <instr> until <test> ».


Tu en connais des langages que l'on peut modifier sans recompiler ?
Oui SCHEME entre autre (smalltalk aussi)





Avatar
BertrandB
EN fait je cherche à savoir s'il est possible en php d'étendre la
syntaxe de celui-ci en rajoutant des tokens (éléments lexicaux)
supplémentaires.


À moins d'aller modifier et recompiler le code source, je ne vois pas
bien comment ce serait possible.

Pour l'instant je ne crois pas mais parfois cantonade est de bon conseil.


Alors justement, en voici un (de conseil) : si ton adresse est invalide,
elle doit être syntaxiquement correcte et terminée par le TLD .invalid
(quelle que soit la casse).

Par exemple :


Ou bien :


Merci !
ça va maintenant ?



Avatar
BertrandB
Tu en connais des langages que l'on peut modifier sans recompiler ?


Non, sauf peut-être lisp mais c'est un cas assez particulier. D'ailleurs
je n'ai pas dit autre chose.

[...] il me semble que l'on chercherait d'abord à
redéfinir les opérateurs avant d'en ajouter.


J'ai répondu à ce que j'ai compris de la question de BertrandB. Je
suppose qu'il reviendra préciser ce qu'il avait en tête.
Me revoilà ... et j'ai essayé de trouver de la doc sur zend et je n'ai

pas trouvé

en fait pour le fun et la beauté j'aurais voulu définir un équivalent à
echo heredoc à la mode de python.
J'aurais voulu faire interpréter """ {$fun($truc)} """ comme
echo <<< EOT
{$fun($truc)}
EOT;


Avatar
Olivier Miakinen

J'ai répondu à ce que j'ai compris de la question de BertrandB. Je
suppose qu'il reviendra préciser ce qu'il avait en tête.
Me revoilà ... et j'ai essayé de trouver de la doc sur zend et je n'ai

pas trouvé

en fait pour le fun et la beauté j'aurais voulu définir un équivalent à
echo heredoc à la mode de python.
J'aurais voulu faire interpréter """ {$fun($truc)} """ comme
echo <<< EOT
{$fun($truc)}
EOT;


C'est donc bien ce que j'avais compris il me semble. Il doit être
possible de modifier le code source de PHP (en C) pour faire ce que
tu souhaites, mais bien sûr ce ne sera plus du PHP. Sinon, tu peux
aussi développer un moteur de templates au dessus de PHP (donc en PHP)
mais bien sûr ce ne sera plus du PHP non plus.

Par ailleurs, merci pour ton adresse invalide, comme ça c'est parfait.


Avatar
BertrandB
J'ai répondu à ce que j'ai compris de la question de BertrandB. Je
suppose qu'il reviendra préciser ce qu'il avait en tête.
Me revoilà ... et j'ai essayé de trouver de la doc sur zend et je n'ai

pas trouvé

en fait pour le fun et la beauté j'aurais voulu définir un équivalent à
echo heredoc à la mode de python.
J'aurais voulu faire interpréter """ {$fun($truc)} """ comme
echo <<< EOT
{$fun($truc)}
EOT;


C'est donc bien ce que j'avais compris il me semble. Il doit être
possible de modifier le code source de PHP (en C) pour faire ce que
tu souhaites, mais bien sûr ce ne sera plus du PHP. Sinon, tu peux
aussi développer un moteur de templates au dessus de PHP (donc en PHP)
mais bien sûr ce ne sera plus du PHP non plus.

J'en arrive à la même conclusion suite aux ponts suivant :

- depuis php4 l'analyse lexicale est une tâche séparée
- certaines erreurs ne sont pas récupérables dont E_PARSE

Pour ce qui est des moteur de template : PHP en est déjà tellement prêt
que je trouve que cela fait pansement sur une jambe en bois.

Par contre où est donc cette foutu doc sur zend api ?



1 2