caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Grammaires et pretty print
@ 1997-12-02 12:45 Emmanuel Engel
  1997-12-02 20:58 ` Daniel de Rauglaudre
  1997-12-07 15:30 ` Grammars and " Daniel de Rauglaudre
  0 siblings, 2 replies; 4+ messages in thread
From: Emmanuel Engel @ 1997-12-02 12:45 UTC (permalink / raw)
  To: caml-list

J'ai une  question sur les  grammaires et le pretty-print. Chaque fois
que je doit debugger un programme, je suis toujours plus ou moin amene
a definir des pretty printer  pour avoir une  chance de faire afficher
au debugger  ou aux  "print" que  j'insere partout  dans le   code les
informations  (de  facon lisible)  qui  me sont utiles  pour suivre le
deroulement de l'execution  du  programme. Par  ailleurs bien  souvent
j'ai ecrit un parser (avec camlyacc) pour ces structures de donnees.

Il me  semble qu'un outil qui  sait engendre  des parser devrait aussi
savoir faire du pretty-print. Je m'explique:

Un outil comme (caml)yacc (camlp4) prend  en entree une grammaire, des
(meta) regles pour  desambiguer cette grammaire et  rend un parser qui
reconnait les   expressions du  langage   engendre par  la  grammaire.
Pourquoi de  tels outils ne rendent pas   aussi un pretty-printer pour
les expressions  engendrees par la  grammaire ? Cela ne me semble plus
facile que le parsing:

Soit la grammaire non ambigue

E   -> E_1 + E   | E_1
E_1 -> E_2 * E_1 | E_2
E_2 -> cst | (E)

Engendrer  le    pretty-printer  de   maniere   systematique  avec  un
parenthesage minimal n'est pas difficile, il suffit d'ecrire une serie
de  fonction  mutuellement   recursives   qui  suivent exactement   la
structure de la grammaire:

let rec print_E = function
  x1 + x2 -> 
   print_E_1 x1;
   print_token +;
   print_E x2
 |x       ->
   print_E_1 x

and print_E_1 = function
  x1 * x2 ->
   print_E_2 x1;
   print_token *;
   print_E_1 x2
 |x ->
   print_E_2 

and print_E_2 = function
  cst -> 
    print cst 
 |x   ->
    print_token (;
    print x;
    print_token )


De tels outils n'existent pas. Il doit y  avoir une bonne raison, quel
est le point que j'ai loupe ??

-- 

- Emmanuel Engel





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~1997-12-07 15:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-12-02 12:45 Grammaires et pretty print Emmanuel Engel
1997-12-02 20:58 ` Daniel de Rauglaudre
1997-12-03 17:38   ` Pierre Weis
1997-12-07 15:30 ` Grammars and " Daniel de Rauglaudre

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).