Définition d'un parser

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#1
Bonjour,
Je voudrais savoir ce qu'est un parser, car mes recherches sur le forum comme sur Google n'ont rien donné...
Je connais les parser des compilateurs, et j'ai trouvé grâce à google les parsers d'analyse syntaxique en linguistique, mais je ne vois pas trop le rapport.

J'ai compris que ça avait rapport avec le reader, mais bon...

Merci !
 
Inscrit
15 Avril 2011
Messages
457
Reactions
1
#2
Je ne suis pas sûr, mais je crois que c'est le fait de "transformer" le code du jeu (ActionScript en l'occurence) en code de ton bot (par exemple C++, C#, VB, etc).
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#3
Mais tu veux dire le code source en as ?
J'avais plus compris que ça avait rapport avec les paquets reçus...
 

FastFrench

Membre Actif
Inscrit
19 Octobre 2010
Messages
214
Reactions
0
#4
Salut,

le terme de parser n'est pas forcément très justifié dans le contexte d'un bot D@fus, mais l'idée c'est de faire une couche qui te permet d'analyser/décoder le contenu des message. En général (dans les langages objets), on s'arrange pour transformer les paquets TCP/IP entrant en des objets facilement manipulables.
 

Sparkdaemon

Staff
Membre du personnel
Inscrit
7 Avril 2009
Messages
556
Reactions
3
#5
Je ne suis pas un expert en la matière mais, si j'ai bien compris les dires de nôtre ami FF (Pour vulgariser tout ça)
Un parseur permets de faire en sorte de traiter un packet une seule fois en définissant toutes les possibilités de celui-ci. Exemple:

Une réponse HTTP:

Code:
HTTP/1.0 200 OK    
Date : Sat, 15 Jan 2000 14:37:12 GMT Server : Microsoft-IIS/2.0    
Content-Type : text/HTML    
Content-Length : 1245    
Last-Modified : Fri, 14 Jan 2000 08:25:13 GMT

<contenu de la page>
Dans cet exemple, beaucoup d'informations nous intéressent.

La version HTTP utilisée (HTTP/1.0)
Le code réponse (200)
La signification du code (OK)

Date de début de transfert des données (Sat, 15 Jan 2000)
L'heure de début du transfert (14:37:12)
La timezone (GMT)
Le serveur (Microsoft-IIS/2.0)

Le type de contenu (text/HTML)
La longueur du contenu (1245)
La dernière modification effectuée (Fri, 14 Jan 2000 08:25:13 GMT)

Un parser permettra simplement de bien ranger ces données.

Par exemple, Je veux récupérer le code de réponse de chaque packet que je reçoit. Je regarde donc si le code es bien 200 (C'est à dire que la page existe.)

Plutôt que de traiter ce packet a la réception, avec un code tout dégueu, je vais avoir une fonction qui va me créer un objet contenant tout ce donc j'ai besoin.

Une fois ces données traitées, Si je veux vérifier la disponibilité de la page, Je vais faire:
PHP:
<span class="syntaxdefault">echo $reponse</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">code</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span>
Ce qui me retournera
Code:
200
Cela permets aussi de n'avoir qu'une seule fonction qui traite tous les packets, C'est beaucoup moins bordélique dans le cas d'une erreur.

Voila voila^^
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#6
Merci beaucoup, maintenant j'ai tout compris !!!
Mais ça veut dire que le parser de Toons "connaît" les ID des actions ? Parce que si oui, c'est vraiment pratique !!!
Sinon (et même si oui, parce que je fais du C++, et je préfère faire mon parser mal plutôt que de convertir celui d'un autre), vous connaissez un désassembleur AS sous Mac OS (ou disponible avec un gestionnaire de paquets sous Linux, je pourrai quand même l'installer avec .99 chances de succès) ? (si je suis sensé poser cette question dans un nouveau topic, dites-le moi parce que je suis pas trop habitué aux forums)
 

Sparkdaemon

Staff
Membre du personnel
Inscrit
7 Avril 2009
Messages
556
Reactions
3
#7
Très bonne question. je ne travaille pas sous OSX
 

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#8
Labo a dit:
vous connaissez un désassembleur AS sous Mac OS
Tu veut dire un logiciel pour ouvrir les SWF pour récupérer le code AS ? Si c'est le cas, il existe JPEXS FFDec qui est en Java, donc tu peut le lancé sans problème sur Mac OS X ;)
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#9
Génial ! Merci beaucoup ! :D

Et est-ce que le parser de Toons reconnaît les ID des actions ?
 

FastFrench

Membre Actif
Inscrit
19 Octobre 2010
Messages
214
Reactions
0
#10
Je ne connais pas le "Parser de Toons", mais sans aucun doute, il reconnait l'ID d'au moins certaines actions. Selon la façon de générer le parser, celui-ci n'est en effet pas nécessairement exhaustif. Quand il est codé à la main, il n'est jamais exhaustif (car on se passe très bien de la plupart des messages). Par contre, quand il est construit automatiquement, il est à priori complet, se basant sur une conversion automatique du code D@fus (comme BiM).
 
Haut Bas