Est il possible d'etendre la syntaxe de PHP

Le
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #1844988
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 !

Denis Beauregard
Le #1845191
Le 23 Mar 2008 21:08:06 GMT, BertrandB
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

Olivier Miakinen
Le #1846057
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> ».


Denis Beauregard
Le #1846056
Le 24 Mar 2008 09:35:40 GMT, Olivier Miakinen é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



Olivier Miakinen
Le #1846272

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.

BertrandB
Le #1846271
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 ?



BertrandB
Le #1846488
Le 24 Mar 2008 09:35:40 GMT, Olivier Miakinen é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)





BertrandB
Le #1847628
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;


Olivier Miakinen
Le #1855690

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.


BertrandB
Le #1857054
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 ?



Publicité
Poster une réponse
Anonyme