Probleme avec ?

Le
Marc Boyer
Bonjour,

j'ai un petit problème avec un mode pour un langage specifique
qui utilise des choses de la forme

(defconst mod-regexp
(concat "\(\<\(f\|o\)?\(mod\|th\)\>\)"
white "\(" anything-nongreedy "\)"
white "\(\is\)" white
)
)

C'est le ? qui pose problème. Xemacs (et emacs idem)
se plaignent:
Non-hex digit used for Unicode escape ?
J'en déduis que dans ces chaines de caractères, [X]emacs
vois ? comme un marique spécial pour spécifier un caractère
Unicode à partir de son code en hexa.

Mais ici dans le mode que j'utilise, c'est visiblement plutôt
fait pour décrire une expression régulière.

Quelle issue ? Un moyen de dire à [x]emacs de ne pas
interpréter ces chaines là comme de l'Unicode ?

Merci d'avance,
Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. André Maurois)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Asgeir
Le #21774771
Project-Id-Version: Claws-Mail-3.3.1cvs57 (3.4.0)
Report-Msgid-Bugs-To:
POT-Creation-Date: 2008-06-27 15:06+0100
PO-Revision-Date: 2008-06-23 11:53+0100
Last-Translator: Tristan Chabredier (wwp) Language-Team: MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n>1;

J'sais si ça peut aider, mais normalement, le \ est associatif à
droite. Sta dire qu'il faut pas lire « ? » dans « \)?\( » mais
« \) », « ? », « \) ».

Le principe, c'est que l'anti-slash indique que la parenthèse est une
parenthèse d'expression régulière, c'est à dire qu'il n e faut pas la
considérer comme du texte mais comme un indicateur de « groupe ».
Sauf que le truc, c'est que l'expression régulière représent ée ici
comme une chaine de caractères passe dans deux analyseurs, et le
premier retire un anti-slash. Donc il faut en mettre deux pour que le
second analyseur obtienne (.

Enfin bref, si on rajoute un \ devant le point d'interrogation, ptêtre
que ça changera quelque chose, mais c'est juste une idée au passa ge
sans grand intérêt histoire de faire monter mon nombre de posts s ur
usenet. (le truc super utile, d'ailleurs)

--
Asgeir
Vincent Belaïche
Le #21774761
Autre piste: as-tu précisé le type de codage du tampon dans lequel tu
écris ce code. Sur la première ligne du fichier tu tapes

; -*- coding:iso-8859-1-unix -*-

et puis tu sauvegardes ton fichier et tu le re-ouvres.

A+,
Vincent.



Asgeir a écrit :
Project-Id-Version: Claws-Mail-3.3.1cvs57 (3.4.0)
Report-Msgid-Bugs-To:
POT-Creation-Date: 2008-06-27 15:06+0100
PO-Revision-Date: 2008-06-23 11:53+0100
Last-Translator: Tristan Chabredier (wwp) Language-Team: MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n>1;

J'sais si ça peut aider, mais normalement, le \ est associatif à
droite. Sta dire qu'il faut pas lire « ? » dans « \)?\( » mais
« \) », « ? », « \) ».

Le principe, c'est que l'anti-slash indique que la parenthèse est une
parenthèse d'expression régulière, c'est à dire qu'il ne faut pas la
considérer comme du texte mais comme un indicateur de « groupe ».
Sauf que le truc, c'est que l'expression régulière représentée ici
comme une chaine de caractères passe dans deux analyseurs, et le
premier retire un anti-slash. Donc il faut en mettre deux pour que le
second analyseur obtienne (.

Enfin bref, si on rajoute un \ devant le point d'interrogation, ptêtre
que ça changera quelque chose, mais c'est juste une idée au passage
sans grand intérêt histoire de faire monter mon nombre de posts sur
usenet. (le truc super utile, d'ailleurs)

Marc Boyer
Le #21774741
On 2008-09-30, Asgeir <_asgeir_/> wrote:
J'sais si ça peut aider, mais normalement, le \ est associatif à
droite. Sta dire qu'il faut pas lire « ? » dans « \)?\( » mais
« \) », « ? », « \) ».

Le principe, c'est que l'anti-slash indique que la parenthèse est une
parenthèse d'expression régulière, c'est à dire qu'il ne faut pas la
considérer comme du texte mais comme un indicateur de « groupe ».
Sauf que le truc, c'est que l'expression régulière représentée ici
comme une chaine de caractères passe dans deux analyseurs, et le
premier retire un anti-slash. Donc il faut en mettre deux pour que le
second analyseur obtienne (.

Enfin bref, si on rajoute un \ devant le point d'interrogation, ptêtre
que ça changera quelque chose, mais c'est juste une idée au passage
sans grand intérêt histoire de faire monter mon nombre de posts sur
usenet. (le truc super utile, d'ailleurs)



Toute idée est bonne à prendre. Mais la réponse est "ça marche pas".
J'imagine qu'il fait d'abord l'interprétation Unicode avant de
d'essayer d'interpréter la chaine comme une regexp...

Merci,

Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. André Maurois)
Marc Boyer
Le #21774731
On 2008-09-30, Vincent Belaïche
Autre piste: as-tu précisé le type de codage du tampon dans lequel tu
écris ce code. Sur la première ligne du fichier tu tapes

; -*- coding:iso-8859-1-unix -*-

et puis tu sauvegardes ton fichier et tu le re-ouvres.



Ca ne marche pas non plus....


Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. André Maurois)
Lucas Levrel
Le #21774721
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.

--8323584-228900412-1222850508=:4599
Content-Type: TEXT/PLAIN; charset=UTF-8
Content-Transfer-Encoding: QUOTED-PRINTABLE

Le 30 septembre 2008, Vincent Belaïche a écrit :

Autre piste: as-tu précisé le type de codage du tampon dans leq uel tu écris ce
code. Sur la première ligne du fichier tu tapes

; -*- coding:iso-8859-1-unix -*-

et puis tu sauvegardes ton fichier et tu le re-ouvres.



Est-ce que justement ce n'est pas dans ces codages qu'emacs va chercher
des séquences d'échappement pour l'Unicode ? En mettant coding:ut f-8-unix
ça ne désactiverait pas ces séquences ?

LL
--8323584-228900412-1222850508=:4599--
Jacques L'helgoualc'h
Le #21774711
Le 01-10-2008, Marc Boyer a écrit :
[...]
Toute idée est bonne à prendre. Mais la réponse est "ça marche pas".
J'imagine qu'il fait d'abord l'interprétation Unicode avant de
d'essayer d'interpréter la chaine comme une regexp...



Chez moi® pas de bug (emacs 21 et 23 (mais pas utf8)) ; comme ta chaîne
est déjà dans un (concat ...), essaye de la couper entre les deux
caractères « ? » et «  » ? Au moins ça pourrait soigner le symptôme.
--
Jacques L'helgoualc'h
Vincent Belaïche
Le #21774671
Au fait, quand tu fais `C-x =' sur le ? et le tu as bien les mêmes
codes que si c'était des ? et tapé dans le *scratch*

Autre piste: que valent les variable white et anything-nongreedy, c'est
peut-être elles qui contiennent un caractère zarbi.

A+
Vincent.

Jacques L'helgoualc'h a écrit :
Le 01-10-2008, Marc Boyer a écrit :
[...]
Toute idée est bonne à prendre. Mais la réponse est "ça marche pas".
J'imagine qu'il fait d'abord l'interprétation Unicode avant de
d'essayer d'interpréter la chaine comme une regexp...



Chez moi® pas de bug (emacs 21 et 23 (mais pas utf8)) ; comme ta chaîne
est déjà dans un (concat ...), essaye de la couper entre les deux
caractères « ? » et « » ? Au moins ça pourrait soigner le symptôme.
Publicité
Poster une réponse
Anonyme