outil libre (fitre textuel Linux) reformattant du C++
Basile Starynkevitch <[email protected]> Wed, 01 Apr 2026 10:19:12 +0200
| Newsgroups | gmane.linux.debian.user.french,gmane.linux.debian.devel.french |
|---|---|
| Message-ID | <[email protected]> |
Bonjour la liste,
J'utilise carburetta https://carburetta.com/ comme generateur
d'analyseur lexical et syntaxique.
Cet outil est tr=C3=A8s pratique, libre et facilement compilable sur Debian=
.
Mais il requiert (=C3=A0 mon grand regret) en entr=C3=A9e un fichier avec (=
en
plein d'endroits) une seule ligne logique en C++ par exemple voir le
fichier
https://github.com/RefPerSys/RefPerSys/blob/master/carbrepl_rps.cbrt
et plus particuli=C3=A8rement dans le commit 96d25ff0bada41 de RefPerSys=
=20
par exemple les lignes 160 =C3=A0 169 du fichier carbrepl_rps.cbrt
Le code C++ g=C3=A9n=C3=A9r=C3=A9 par carburetta (j'en utilise la version 0=
.8.28)
contient les memes lignes logiques longues, par exemple=20
#line 169 "carbrepl_rps.cbrt"
{ _Pragma("message \"token_action for INT\""); \
(stack->sym_data_->v_.uv0_) =3D carbdata.cardata_i; \
RPS_DEBUG_LOG(REPL, "token_action for INT tksrc=3D" << *tksrc \
<< " cardata_i=3D" << carbdata.cardata_i); \
RPS_FATALOUT("INT token_action is incomplete tksrc=3D" \
<< tksrc << " sym=3D" << sym \
<< ":" << RPS_CARBREPL_SYMBOL_NAME(sym) \
<< RPS_FULL_BACKTRACE(1, "token_action INT")); \
}
#line 3484 "_carbrepl_rps.cc"
mais les antislashs finaux en ligne physique m'indisposent, et je
cherche un outil (filtre Linux) pour les enlever.
Les conventions lexicales de C++ sont dans le d=C3=A9tail tr=C3=A8s complex=
es,
donc coder un tel filtre me parait compliqu=C3=A9
Librement
--=20
Basile STARYNKEVITCH =20
<[email protected]>
8 rue de la Fa=C3=AFencerie =20
http://starynkevitch.net/Basile/ =20
92340 Bourg-la-Reine =20
https://github.com/bstarynk
France =20
https://github.com/RefPerSys/RefPerSys
https://orcid.org/0000-0003-0908-5250