Je suis nouveau au concept de lexing et essaie d'écrire un lexer en OCaml pour lire l'entrée exemple suivant:Comment vais-je implémenter le lexing des chaînes en utilisant ocamllex?
(blue, 4, dog, 15)
Fondamentalement, l'entrée est une liste d'une chaîne aléatoire ou entier. J'ai trouvé de nombreux exemples pour les entrées basées sur les int, car la plupart d'entre elles modélisent une calculatrice, mais n'ont trouvé aucune indication à travers des exemples ou la documentation des chaînes de lexage. Voici ce que j'ai jusqu'à mon lexer:
(* File lexer.mll *)
{
open Parser
}
rule lexer_main = parse
[' ' '\r' '\t'] { lexer_main lexbuf } (* skip blanks *)
| ['0'-'9']+ as lxm { INT(int_of_string lxm) }
| '(' { LPAREN }
| ')' { RPAREN }
| ',' { COMMA }
| eof { EOF }
| _ { syntax_error "couldn't identify the token" }
Comme vous pouvez le voir je manque la capacité d'analyser des chaînes. Je suis conscient qu'une chaîne peut être représentée sous la forme ['a'-'z']
donc serait-ce aussi simple que ['a'-'z'] { STRING }
Merci pour votre aide.