Parsing de code Javascript
mickey18-Feb-2008/15:25:36+1:00
salut,
je découvre le Rebol, et cherche à comprendre le parsing car je souhaite l'utiliser sur un cas précis : un fichier javascript de plusieurs milliers de lignes dans lequel je souhaite extraire des infos
la structure js est la suivante : des blocs de déclaration incluant un ou plusieurs libellés de fonctions
<du code JS>
myappjs.declare("test.widget.UserPreferences", ..;
fonction1: function(
<du code JS>
fonction2: function(
<du code JS>

et on recommence n fois le même genre de bloc.

J'ai pu récupérer les declare, mais comment récuperer les noms de fonctions (boucle ?) (un peu comme prendre les nom des chapitres et ceux des sous-chapitres).
Merci de votre aide
Didec19-Feb-2008/9:46:29+1:00
Un petit exemple concret et complet (mais court) de ce que tu as a parser donnera plus d'inspiration pour d'éventuelles réponses.
Le parsing étant quelque chose de précis, il faut un exemple précis !!
mickey20-Feb-2008/9:30:53+1:00
ben voilà du code (dojo).
ce que je veux, c'est récupérer la liste des déclarations de type provide (rule: [thru {.provide("} copy class to {");} ] mais aussi les fonctions déclarées dans cette classe (isCollapsed, GetBookmark, etc )
C'est la boucle sur les fonctions que je n'arrive pas à faire, pb sur les any et some que je mélange.
C'est basique peut-être ?


dojo._hasResource["dijit._base.focus"] = true;
dojo.provide("dijit._base.focus");

	isCollapsed: function(){
.. du code Javascript


	getBookmark: function(){
.. du code Javascript


	moveToBookmark: function(/*Object*/bookmark){

.. du code Javascript

	getFocus: function(/*Widget*/menu, /*Window*/ openedForWindow){
.. du code Javascript



dojo._hasResource["dijit._base.manager"] = true;
dojo.provide("dijit._base.manager");

dojo.declare("dijit.WidgetSet", null, {
	constructor: function(){
.. du code Javascript
	},

	add: function(/*Widget*/ widget){
.. du code Javascript

	remove: function(/*String*/ id){
.. du code Javascript

	forEach: function(/*Function*/ func){
.. du code Javascript

	filter: function(/*Function*/ filter){
.. du code Javascript

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2