New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
camlp4 et location bidon #8290
Comments
Comment author: administrator Salut Alain, Si je reproduis ton exemple avec loc = (0,0), j'obtiens ce que (je
où ./bar.cmo est ton code ci-dessous où loc vaut (0,0), et Ai-je raté qque chose? -- Michel Alain.Frisch@ens.fr wrote/écrivait (Thu, Sep 18, 2003 at 11:37:01PM +0200):
|
Comment author: administrator On Thu, 2 Oct 2003, Michel Mauny wrote:
Ah euh oui, en effet, ça marche. Je pensais bien avoir essayé (0,0) sans -- Alain |
Comment author: administrator Ca marche bien avec loc = (0,0). |
Original bug ID: 1841
Reporter: administrator
Status: closed
Resolution: not a bug
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)
Bug description
Hello,
Comment est-on censé faire en Camlp4 pour ajouter des str_item qui ne
correspondent à rien dans le source?
Par exemple, on peut faire ça:
let () =$list:[]$ end >>, loc) :: items, d
let old_parse_implem = !Pcaml.parse_implem in
let new_parse_implem s =
let (items,d) = old_parse_implem s in
let loc = (-1,-1) in
(<:str_item< declare
in
Pcaml.parse_implem := new_parse_implem
Ça marche quand on utilise pr_dump, mais pas avec pr_o. Par exemple sur
un fichier x.ml qui est:
--x.ml--
let x = 1
La sortie est:
(* *)llet x = 1
Il y a un l en trop. En fait, c'est la premiere lettre du fichier qui est
recopiée partout où le pretty-printer veut afficher un str_item
pour lequel loc = (-1,-1). Soit c'est un bug de pr_o, soit il y une valeur
de loc qui évite le probleme... J'ai essayé avec (0,0), (0,-1), sans
succès.
Si je rajoute un -sep "" comme argument à pr_o, je contourne le problème.
À vue de nez, je dirais qu'il faut modifier dans pr_o le List.fold_left
qui appelle copy_source (dans apply_printer), pour traiter le cas
bp=ep=-1 à part.
-- Alain
The text was updated successfully, but these errors were encountered: