begin process at 2012 02 09 08:46:12
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > PARSER QUI SE VEUT GÉNÉRIQUE

PARSER QUI SE VEUT GÉNÉRIQUE


 Information sur la source

Note :
Aucune note
Catégorie :Application Classé sous :parser, script, langage Niveau :Initié Date de création :21/04/2006 Vu / téléchargé :7 577 / 509

Auteur : dominion

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note


 Description

Voici un code source sur lequel je travaille depuis quelques temps...
Il s'agit d'un parser qui se veut être générique, c'est-à-dire que les règles ne sont pas définies au départ. Il a été développé avec comme langage de référence le C like, et en partie le XML like...
La sortie est de type linéaire, mais je travaille actuellement sur une version en arbre, pour les langages plus descriptifs.

En C like, la vitesse de lecture avoisine les 20.000chars/s


 Conclusion

A venir :
la correction des bugs éventuels (j'espère qu'ils seront peu nombreux)
un fichier expliquant le fonctionnement détaillé du parser
une version en arbre

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

MERGE SORT
Source avec Zip CRÉATEUR DE FICHIER LIB

 Sources de la même categorie

Source avec Zip Source avec une capture CONTACTS MANAGER par eapaceinfo
Source avec Zip Source avec une capture CONTACTES BOOK par mature
Source avec Zip Source avec une capture [C++/QT] SLIDEALWAYS, RÉALISEZ DES SLIDES POUR VOTRE SITE AV... par doderic
Source avec Zip Source avec une capture MAILLAGE 3D (VTK + QT) par ammoun007
Source avec Zip Source avec une capture CONVHTML : UN UTILITAIRE DE CONVERSION POUR FICHIERS HTML par pgl10

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip PARSER XML par MagnumPP
Source avec Zip INI PARSER FLEX++ / BISON++ par neria
Source avec Zip INTERPRETEUR BRAINFUCK par coucou747
Source avec Zip Source avec une capture INTERPRÈTEUR DE SCRIPT EN LANGAGE "K" par LiBe444

Commentaires et avis

Commentaire de Kirua le 22/04/2006 14:12:10

[je simule une FAQ]

Hmm, le parser sort quoi exactement, une liste de lexèmes?

Comment spécifie-t-on la syntaxe?

Est-ce qu'on pourrait lire des expressions arithmétiques / logiques?

Si oui, la version "en arbre" permettra-t-elle de récupérer de suite l'arbre de l'expression?

Commentaire de dominion le 22/04/2006 14:23:27

Le parser sort une suite de lexèmes, plus exactement dans un map dont l'index est la position du lexem.
Pour spécifier la syntaxe, un exemple est donné dans le main. Comme je l'ai déjà dit, une documentation arrivera d'ici peu.
Expressions arithmétiques/logiques, tu penses à quoi ?

Quant à la version en arbre, je travaille actuellement sur la façon dont ce sera rendu, donc je ne préfère pas répondre encore.

Commentaire de Kirua le 22/04/2006 14:40:54

par exemple:
5*x + 3 > 1 && cos(pi/3) ^ (1/2) >= max(0.0, pi/6)

c'est une expr débile évidemment, mais c'est pr essayer de reprendre les éléments syntaxiques importants (opérateurs, priorités, parenthésage, fonctions mono/multi variables, valeurs réelles/entières etc)

j'ai pas mis de string dedans, mais ça serait indispensable pour réaliser un langage de script par exemple.

l'arbre à générer est déjà assez chiant à construire quand on sait ce qu'on fait, alors deviser un méthode générique, je serais positivement impressionné ... et soulagé dans mes futurs développements :D.

Commentaire de Kirua le 22/04/2006 14:44:26


this->ExpressionChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";

ça devrait pas plutôt être les identifier chars ?

Commentaire de Kirua le 22/04/2006 14:46:46

il te manque plein de mots clefs et pas mal d'opérateurs dans ton main.cpp ;)


masks[i] = new xParser_mask<L>(LX_EXPRESSION, "\"%\"");
masks[i+1] = new xParser_mask<L>(LX_EXPRESSION, "\\\"");

ça gère TOUTES les chaînes de caractères ça ?

Commentaire de dominion le 22/04/2006 15:02:04

Premier comment : oui, et la version en arbre gèrera les parenthèses.
Deuxième comment : si tu veux, c'est utilisé comme tel
Troisième comment : je sais et oui ^_^ enfin, ça gère toutes les chaines en C like... Si tu veux faire un test plus facile à comprendre, change la ligne 183 du main en
oli.Code = //code;
Ca prendra la chaine juste en dessous comme script, ce sera plus facile pour la compréhension, puisque plus court. Et tu verras par la même occasion que la chaine est parsée correctement.

Commentaire de Kirua le 22/04/2006 17:12:05

Ça me tue que tu utilises encore oli comme variable métasyntactique, c'est du narcissisme de pointe ^^.

Commentaire de dominion le 22/04/2006 17:19:42

non, c'est juste que les 3 touches sont placée l'une à côté de l'autre, et que j'ai l'habitude de signer oli, du coup ben c'est un réflexe...

Commentaire de Jallo2008 le 31/07/2008 14:18:27

j'ai récupérer ce code sur le parser generique. mais j'ai pas réussi à l'utiliser.
Je voudrais l'utiliser pour parser un projet codé en C++.
Est ce possible?
J'ai cette erreur de compilation:error C2065: 'clock_t' : undeclared identifier
Merci de votre aide

Commentaire de dominion le 10/08/2008 01:40:01

Cette version est périmée, je pourrai vous envoyer la nouvelle d'ici quelques temps, actuellement je suis en vacances, et je n'ai pas accès à mes sources.

Commentaire de uaip le 18/11/2008 17:13:40

Ce serait avec grand plaisir :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Pb pour intégrer un langage de script (Ch) avec C++ [ par MIPSMAJED ] Bonjour tout le monde, J'essaie d 'int&#233;grer un langage de script avec mon projet (sous VC++ 6.0), lors de ma pahse de test j'ai r&#233;ussi &#224 pb script [ par Arnaud16022 ] helloje voudrais faire un petit langage de script pour mon jeu (les missions) mais il se pose un probleme:exemple:if (c==123){....}if (c==d){.....}dan Renvoie au début du script [ par Malixxx13 ] Bonjour! J'aimerais savoir si il y a une façon de retourner au début du script pour lui faire refaire tout le script! J'aimerais aussi savoir qu'est-c Formation C++ [ par johann36 ] Bonjour,Je voudrai savoir si le langage C++ est dur à apprendre.J'ai déjà des connaissances sur d'autres langage (VB, Fox pro, Win dev ...).Je m'inter Votre avis m'intéresse passer de VB à C++ [ par cuq ] Bonjour,Je bidouille depuis pas mal de temps en VB et c'est un langage que j'adore. Cela me permet de créer rapidement et facilement des applis .Cepen Appel script cgi d'une WebCam IP en c++ [ par chasse18 ] Bonjour:)Nous travaillons sur un projet de cam Ip qui possède ses propres scripts CGI.Par une commande telle que :http://xx.xx.xx.xx:8080/axis-cgi/jp a l aide !!! [ par romigui ] est ce que quelqu un peu m aider ??? je m y connais pas du tout en programmation et je voudrais faire mes debuts , on m as dit qu il fallé d abord cho Programmation Systeme : Shell Linux [ par salvio3223 ] Re bonjour.J'ai une autre ( petite ? ) question à poser.Là encore je pense que cela est possible enfin ...Je voudrai exécuter un programme dans un scr Logigramme vers C [ par DoYL ] Bonjour, je suis en Terminale S science de l'ing&#233;nieur et pour mon projet il faut que je fasse du langage C, j'ai fais mon logigramme mais je n'a Timer en langage C sous envirronement Windows [ par BaptX ] Coucou &#224; tous,Je cherche &#224; faire un compte &#224; rebours en langage C sous environnement windows dans le cadre d'une d&#233;monstration &#2


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,034 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales