Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/08/2011, 14h32   #1
Futur Membre du Club
 
Inscription : février 2007
Messages : 40
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 40
Points : 19
Points : 19
Par défaut parser du javascript - ANTLR

Bonjour,

Je dois parser du javascript en php.
Mon objectif est d'utiliser le php un peu comme un "compilateur" javascript:
a. se servir du php comme on utilise les directives de compilation en C par exemple.
b. interpreter le javascript généré pour y apporter certaines modifications (de l'obfuscation par exemple).

Le code php ne sera pas mis en ligne, les temps de calculs peuvent être longs et gourmands, ce n'est pas un problème. Je veux m'en servir pour générer des fichiers javascript, un peu comme l'on crée des librairies C (.dll, .o). Ce sont ces librairies qui seront ensuite exploitées par les développeurs web.

Le processus de création de ces librairies est le suivant:
1) rédaction du code javascript, ce dernier peut contenir du code php grâce à <?php ... ?> qui peut alors être assimilé aux directives de compilation.
2) lancer une première pass de php sur ce code: cela rempli le buffer de sortie du serveur php local.
3) parser le buffer de sortie et interpréter son contenu javascript pour y apporter les modifications voulues

Les deux premières étapes ne sont pas un problème, c'est l'essence même du php. La principale difficulté dans ce projet est le point 3: l’interprétation en php du code javascript.

Via ce post, je recherche des conseils pour compléter ma recherche personnelle. J'ai retenu 2 liens intéressants:
- http://timwhitlock.info/blog/2008/05...arser-for-php/
- ANTLR, un ensemble d'outils pour l'interpretation de langages. J'ai également trouvé le lien suivant : un portage de ANTLR pour php. Malheureusement la documentation est très faible.

Si vous avez travaillé avec ces outils, ou connaissez quelque chose d'équivalent, je suis tout ouïe !
Je suis également ouvert pour échanger autour d'autres techniques me permettant un résultat similaire.

Merci pour votre attention et à très bientôt.
Zbouirf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 14h35   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
tu peux utiliser spidermonkey

http://devzone.zend.com/article/4704
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/08/2011, 15h51   #3
Futur Membre du Club
 
Inscription : février 2007
Messages : 40
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 40
Points : 19
Points : 19
Merci bien !

Après un rapide premier coup d'oeil, il semble que ce soit tout à fait ce que je cherche ! Et bien plus approprié qu'un portage de ANTLR (qui reste un excellent outil mais pas vraiment adapté au PHP...). En outre, étant issu de la fondation Mozilla, je suis à peu près certains de sa pérennité et presque autant de sa conformité au standard. En outre, ses 3 licences apportent une certaine souplesse... 'fin bref, je vais commencer par la c'est certain !
Zbouirf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 17h08   #4
Futur Membre du Club
 
Inscription : février 2007
Messages : 40
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 40
Points : 19
Points : 19
Je suis donc parti sur spidermonkey et j'ai encore quelques petits soucis:
1) peu de doc
2) je m'inspire donc de la version C de l’interpréteur javascript qui possède une doc sur le site de mozilla. J'imagine que l'on retrouve les mêmes fonctions dans la version php.
Je la parcours depuis un petit moment maintenant et je ne vois pas comment récupérer l'arbre correspondant à la structure grammaticale du code javascript interprété. En d'autres termes, je ne vois pas comment récupérer le résultat du parsing: variables, fonctions et objets créés, leur prototype, etc.
Seulement ensuite, je pourrais réaliser les changements désirés: parcourir chaque noeud de l'arbre, et en fonction de son type et de sa valeur, procéder à quelques modifications... Pour finalement généré le script final à partir de cet arbre.

Encore un petit coup de pouce s'il vous plait... Merci d'avance.
Zbouirf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 17h39   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
spidermonkey pour PHP exécute uniquement du code javascript, si tu veux parser du javascript tu peux t'inspirer de Jison
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h06.


 
 
 
 
Partenaires

Hébergement Web