IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Caml Discussion :

Module Genlex syntax error


Sujet :

Caml

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Points : 13
    Points
    13
    Par défaut Module Genlex syntax error
    Bonjour à tous,
    Je suis actuellement sur un projet qui nécessite l'utilisation des graphes et de ce fait je dois coder un outil permettant de créer un graphe.
    J'utilise un fichier.dat pour la création et pour analyser ce fichier, j'utilise le module Genlex d'analyse lexicale.
    J'ai suivis un tutoriel etc et quand je compile j'ai une erreur de syntaxe que je n'arrive pas à corriger.
    Voici les quelques bouts de codes avec l'interpréteur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # let keywords = [ "TAILLE"; "SOMMET"; "ARC"; "#"];;
    val keywords : string list = ["TAILLE"; "SOMMET"; "ARC"; "#"]
    # let lexer_line l = Genlex.make_lexer keywords (Stream.of_string l);;
    val lexer_line : string -> Genlex.token Stream.t = <fun>
    # let parser_line g s = match  s with parser
       [< '(Genlex.Kwd  "TAILLE"); '(Genlex.Int n) >] -> 
           g := cree_graphe "" n
     | [< '(Genlex.Kwd  "SOMMET"); '(Genlex.Ident nom) >] -> 
           ajoute_sommet nom !g
     | [< '(Genlex.Kwd  "ARC"); '(Genlex.Ident n1); 
          '(Genlex.Ident  n2); '(Genlex.Float c) >] -> 
           ajoute_arc n1 n2 c !g
     | [< '(Genlex.Kwd  "#") >] -> ()
     | [<>] -> ();;
                      Characters 46-48:
         [< '(Genlex.Kwd  "TAILLE"); '(Genlex.Int n) >] -> 
         ^^
    Error: Syntax error
    J'ai essayé de chercher un peu dans la doc que j'ai trouvé sur Genlex mais apparemment ce n'est pas une erreur de syntaxe lié à la libraire.

    Si quelqu'un a une solution, un indice ou quoi que ce soit, je suis prenneur

  2. #2
    Expert confirmé Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 619
    Points : 4 350
    Points
    4 350
    Par défaut
    Citation Envoyé par Yyukk Voir le message
    [CODE]# let parser_line g s = match s with parser
    [< '(Genlex.Kwd "TAILLE"); '(Genlex.Int n) >] ->
    g := cree_graphe "" n
    C'est quoi parser ?

    D'habitude quand j'utilise un match with, c'est "match bidule with truc -> " et pas "match bidule with truc machin ->".
    Ensuite je suis pas un pro de CAML, donc si c'est une utilisation que je ne connais pas, désolé pour le faux espoir :p

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Points : 1 104
    Points
    1 104
    Par défaut
    La syntaxe "match .. with parser" et des flots ( "[< ... >]" ) était incluse par défaut dans Caml Light, mais dans Objective Caml c'est un préprocesseur externe (camlp4) qui s'en charge.

    Dans le toplevel il faut faire:

    #load "camlp4o.cma";;

    ou alors, si tu as findlib :

    #use "topfind";;
    #camlp4o;;

    Pour compiler, ajouter l'option "-pp camlp4o"

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Merci pour l'information, je vais essayer de voir ça.

    @ManusDei: J'ai toujours utiliser match x with (sans rien derrière), donc ça m'a surpris un peu aussi je savais pas qu'on pouvait le faire, je ne peux donc pas te donner la réponse je m'y connais trop peu pour m'y aventurer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème Module Ocaml syntax error
    Par momo_m dans le forum Caml
    Réponses: 1
    Dernier message: 25/11/2013, 18h11
  2. syntax error
    Par ludovik dans le forum C
    Réponses: 5
    Dernier message: 18/03/2006, 21h32
  3. Syntax error
    Par vincedjs dans le forum Langage
    Réponses: 3
    Dernier message: 01/02/2006, 16h58
  4. Syntax Error / Questions
    Par kedare dans le forum Général Python
    Réponses: 15
    Dernier message: 12/09/2005, 14h05
  5. "vector" provoque "syntax error", malgré
    Par seenkay dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 24/08/2003, 03h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo