Le sujet est pas très clair donc je vais tenter d'éclaircir la
situation.
Je dois faire un programme qui effectuera une vérification syntaxique
simple (Vérifier si les accolades, crochets ou parenthèses sont bien
refermées si ouvertes. Même chose pour les guillemets et commentaires)
Le question que je me pose est :
Est il possible dans un code C de voir des accolades après des
parenthèses.
Genre : fonction(... blabla { ... } );
Si la réponse est non, je dois rajouter une vérification à mon programme.
(Pas de '{' ou de '}' après des parenthèses).
Mais je suis pas sûr du tout...
Merci,
--
Remove 'dot' INVALID to mail me
EN-FR : dot->point :P
Mais je suppose que pour ne pas perdre trop de points de santé mentale, tu opères sur des après préprocesseur, donc sans macros... ;)
En C90, je pense que ce n'est pas possible (mais je n'ai pas trop réfléchi). En C99, par contre, c'est certainement possible, avec les arguments typés:
Il y a des accolades à l'intérieur des parenthèses qui délimitent les arguments passés à printf.
Dans ce cas, une parenthèse fermante précédera toujours une accolade ouvrante; de plus, à l'intérieur des accolades, les parenthèses doivent être équilibrées, et vice-versa; et même les crochets, carrés comme pointus, doivent aussi être équilibrés entre eux. (Tout ceci n'est évidement pas vrai avec les macros, où là tu peux faire ce que tu veux).
Antoine
En 40756f39$0$26438$626a14ce@news.free.fr, Eddahbi Karim va escriure:
Le question que je me pose est :
Est il possible dans un code C de voir des accolades après des
parenthèses.
D'abord, à l'intérieur des arguments d'une macro, oui bien sûr.
Par exemple:
Mais je suppose que pour ne pas perdre trop de points de santé mentale, tu
opères sur des après préprocesseur, donc sans macros... ;)
En C90, je pense que ce n'est pas possible (mais je n'ai pas trop réfléchi).
En C99, par contre, c'est certainement possible, avec les arguments typés:
Il y a des accolades à l'intérieur des parenthèses qui délimitent les
arguments passés à printf.
Dans ce cas, une parenthèse fermante précédera toujours une accolade
ouvrante; de plus, à l'intérieur des accolades, les parenthèses doivent être
équilibrées, et vice-versa; et même les crochets, carrés comme pointus,
doivent aussi être équilibrés entre eux. (Tout ceci n'est évidement pas vrai
avec les macros, où là tu peux faire ce que tu veux).
Mais je suppose que pour ne pas perdre trop de points de santé mentale, tu opères sur des après préprocesseur, donc sans macros... ;)
En C90, je pense que ce n'est pas possible (mais je n'ai pas trop réfléchi). En C99, par contre, c'est certainement possible, avec les arguments typés:
Il y a des accolades à l'intérieur des parenthèses qui délimitent les arguments passés à printf.
Dans ce cas, une parenthèse fermante précédera toujours une accolade ouvrante; de plus, à l'intérieur des accolades, les parenthèses doivent être équilibrées, et vice-versa; et même les crochets, carrés comme pointus, doivent aussi être équilibrés entre eux. (Tout ceci n'est évidement pas vrai avec les macros, où là tu peux faire ce que tu veux).
Antoine
Horst Kraemer
On 08 Apr 2004 15:26:49 GMT, Eddahbi Karim wrote:
Bonjour/Bonsoir,
Le sujet est pas très clair donc je vais tenter d'éclaircir la situation.
Je dois faire un programme qui effectuera une vérification syntaxique simple (Vérifier si les accolades, crochets ou parenthèses sont bien refermées si ouvertes. Même chose pour les guillemets et commentaires)
Le question que je me pose est :
Est il possible dans un code C de voir des accolades après des parenthèses.
Genre : fonction(... blabla { ... } );
Oui.
void f ( struct { int i,j; } *s ) { s->i = s->j = 0; }
-- Horst
On 08 Apr 2004 15:26:49 GMT, Eddahbi Karim
<ThETemPLaR@free.fr.INVALID> wrote:
Bonjour/Bonsoir,
Le sujet est pas très clair donc je vais tenter d'éclaircir la
situation.
Je dois faire un programme qui effectuera une vérification syntaxique
simple (Vérifier si les accolades, crochets ou parenthèses sont bien
refermées si ouvertes. Même chose pour les guillemets et commentaires)
Le question que je me pose est :
Est il possible dans un code C de voir des accolades après des
parenthèses.
Genre : fonction(... blabla { ... } );
Oui.
void f ( struct { int i,j; } *s )
{
s->i = s->j = 0;
}
Le sujet est pas très clair donc je vais tenter d'éclaircir la situation.
Je dois faire un programme qui effectuera une vérification syntaxique simple (Vérifier si les accolades, crochets ou parenthèses sont bien refermées si ouvertes. Même chose pour les guillemets et commentaires)
Le question que je me pose est :
Est il possible dans un code C de voir des accolades après des parenthèses.
Genre : fonction(... blabla { ... } );
Oui.
void f ( struct { int i,j; } *s ) { s->i = s->j = 0; }
-- Horst
Eddahbi Karim
Le 08-04-2004, Antoine Leca a martirisé son clavier pour dire:
En 40756f39$0$26438$, Eddahbi Karim va escriure:
Le question que je me pose est :
Est il possible dans un code C de voir des accolades après des parenthèses.
D'abord, à l'intérieur des arguments d'une macro, oui bien sûr. Par exemple:
Il y a des accolades à l'intérieur des parenthèses qui délimitent les arguments passés à printf.
Dans ce cas, une parenthèse fermante précédera toujours une accolade ouvrante; de plus, à l'intérieur des accolades, les parenthèses doivent être équilibrées, et vice-versa; et même les crochets, carrés comme pointus, doivent aussi être équilibrés entre eux. (Tout ceci n'est évidement pas vrai avec les macros, où là tu peux faire ce que tu veux).
Je pense avoir trouvé une méthode pour vérifier tout équilibrement entre parenthèses et accolades à un quelquonque endroit du fichier source sans se préoccuper des "espaced sequences" (On dit comment en bon Français : séquence d'échappement ? Je n'ai que deux livres anglais...)
Je vais aussi, pour l'instant, demander à ce que l'on utilise un fichier sans macro :P
Antoine
Karim,
--
Remove 'dot' INVALID to mail me EN-FR : dot->point :P
Le 08-04-2004,
Antoine Leca <root@localhost.gov> a martirisé son clavier pour dire:
En 40756f39$0$26438$626a14ce@news.free.fr, Eddahbi Karim va escriure:
Le question que je me pose est :
Est il possible dans un code C de voir des accolades après des
parenthèses.
D'abord, à l'intérieur des arguments d'une macro, oui bien sûr.
Par exemple:
Il y a des accolades à l'intérieur des parenthèses qui délimitent les
arguments passés à printf.
Dans ce cas, une parenthèse fermante précédera toujours une accolade
ouvrante; de plus, à l'intérieur des accolades, les parenthèses doivent être
équilibrées, et vice-versa; et même les crochets, carrés comme pointus,
doivent aussi être équilibrés entre eux. (Tout ceci n'est évidement pas vrai
avec les macros, où là tu peux faire ce que tu veux).
Je pense avoir trouvé une méthode pour vérifier tout équilibrement entre
parenthèses et accolades à un quelquonque endroit du fichier source sans
se préoccuper des "espaced sequences" (On dit comment en bon Français :
séquence d'échappement ? Je n'ai que deux livres anglais...)
Je vais aussi, pour l'instant, demander à ce que l'on utilise un fichier
sans macro :P
Antoine
Karim,
--
Remove 'dot' INVALID to mail me
EN-FR : dot->point :P
Il y a des accolades à l'intérieur des parenthèses qui délimitent les arguments passés à printf.
Dans ce cas, une parenthèse fermante précédera toujours une accolade ouvrante; de plus, à l'intérieur des accolades, les parenthèses doivent être équilibrées, et vice-versa; et même les crochets, carrés comme pointus, doivent aussi être équilibrés entre eux. (Tout ceci n'est évidement pas vrai avec les macros, où là tu peux faire ce que tu veux).
Je pense avoir trouvé une méthode pour vérifier tout équilibrement entre parenthèses et accolades à un quelquonque endroit du fichier source sans se préoccuper des "espaced sequences" (On dit comment en bon Français : séquence d'échappement ? Je n'ai que deux livres anglais...)
Je vais aussi, pour l'instant, demander à ce que l'on utilise un fichier sans macro :P
Antoine
Karim,
--
Remove 'dot' INVALID to mail me EN-FR : dot->point :P
Eddahbi Karim
Le 08-04-2004, Horst Kraemer a martirisé son clavier pour dire:
On 08 Apr 2004 15:26:49 GMT, Eddahbi Karim wrote:
Oui.
void f ( struct { int i,j; } *s ) { s->i = s->j = 0; }
Ok merci bien.
--
Remove 'dot' INVALID to mail me EN-FR : dot->point :P
Le 08-04-2004,
Horst Kraemer <horst.kraemer@epost.de> a martirisé son clavier pour dire:
On 08 Apr 2004 15:26:49 GMT, Eddahbi Karim
<ThETemPLaR@free.fr.INVALID> wrote:
Oui.
void f ( struct { int i,j; } *s )
{
s->i = s->j = 0;
}
Ok merci bien.
--
Remove 'dot' INVALID to mail me
EN-FR : dot->point :P
Le 08-04-2004, Horst Kraemer a martirisé son clavier pour dire:
On 08 Apr 2004 15:26:49 GMT, Eddahbi Karim wrote:
Oui.
void f ( struct { int i,j; } *s ) { s->i = s->j = 0; }
Ok merci bien.
--
Remove 'dot' INVALID to mail me EN-FR : dot->point :P
Yves ROMAN
On 08 Apr 2004 15:26:49 GMT, Eddahbi Karim wrote:
Bonjour/Bonsoir,
Le sujet est pas très clair donc je vais tenter d'éclaircir la situation.
Je dois faire un programme qui effectuera une vérification syntaxique simple (Vérifier si les accolades, crochets ou parenthèses sont bien refermées si ouvertes. Même chose pour les guillemets et commentaires)
Le question que je me pose est :
Est il possible dans un code C de voir des accolades après des parenthèses.
Genre : fonction(... blabla { ... } );
Oui.
void f ( struct { int i,j; } *s ) { s->i = s->j = 0; }
Comment une telle fonction peut-elle être appelée sans une bordée d'injures du compilateur ?
struct { int i,j; } data ; f(&data) ;
Les 2 types (protoype et variable) sont ils compatibles ?
On 08 Apr 2004 15:26:49 GMT, Eddahbi Karim
<ThETemPLaR@free.fr.INVALID> wrote:
Bonjour/Bonsoir,
Le sujet est pas très clair donc je vais tenter d'éclaircir la
situation.
Je dois faire un programme qui effectuera une vérification syntaxique
simple (Vérifier si les accolades, crochets ou parenthèses sont bien
refermées si ouvertes. Même chose pour les guillemets et commentaires)
Le question que je me pose est :
Est il possible dans un code C de voir des accolades après des
parenthèses.
Genre : fonction(... blabla { ... } );
Oui.
void f ( struct { int i,j; } *s )
{
s->i = s->j = 0;
}
Comment une telle fonction peut-elle être appelée sans une bordée d'injures du
compilateur ?
struct { int i,j; } data ;
f(&data) ;
Les 2 types (protoype et variable) sont ils compatibles ?
Le sujet est pas très clair donc je vais tenter d'éclaircir la situation.
Je dois faire un programme qui effectuera une vérification syntaxique simple (Vérifier si les accolades, crochets ou parenthèses sont bien refermées si ouvertes. Même chose pour les guillemets et commentaires)
Le question que je me pose est :
Est il possible dans un code C de voir des accolades après des parenthèses.
Genre : fonction(... blabla { ... } );
Oui.
void f ( struct { int i,j; } *s ) { s->i = s->j = 0; }
Comment une telle fonction peut-elle être appelée sans une bordée d'injures du compilateur ?
struct { int i,j; } data ; f(&data) ;
Les 2 types (protoype et variable) sont ils compatibles ?
Horst Kraemer
On Fri, 09 Apr 2004 10:12:17 +0200, Yves ROMAN wrote:
On 08 Apr 2004 15:26:49 GMT, Eddahbi Karim wrote:
Bonjour/Bonsoir,
Le sujet est pas très clair donc je vais tenter d'éclaircir la situation.
Je dois faire un programme qui effectuera une vérification syntaxique simple (Vérifier si les accolades, crochets ou parenthèses sont bien refermées si ouvertes. Même chose pour les guillemets et commentaires)
Le question que je me pose est :
Est il possible dans un code C de voir des accolades après des parenthèses.
Genre : fonction(... blabla { ... } );
Oui.
void f ( struct { int i,j; } *s ) { s->i = s->j = 0; }
Comment une telle fonction peut-elle être appelée sans une bordée d'injures du compilateur ?
/* begin file a.c */ void f ( struct { int i,j; } *s ) { s->i = s->j = 0; } /* end file a.c */
/* begin file b.c */
struct { int i,j; } data ; f(&data) ;
/* end file b.c */
Voir la norme 6,2,7 paragraphe 1
-- Horst
On Fri, 09 Apr 2004 10:12:17 +0200, Yves ROMAN
<yves.roman@NO.unilog.SPAM.fr> wrote:
On 08 Apr 2004 15:26:49 GMT, Eddahbi Karim
<ThETemPLaR@free.fr.INVALID> wrote:
Bonjour/Bonsoir,
Le sujet est pas très clair donc je vais tenter d'éclaircir la
situation.
Je dois faire un programme qui effectuera une vérification syntaxique
simple (Vérifier si les accolades, crochets ou parenthèses sont bien
refermées si ouvertes. Même chose pour les guillemets et commentaires)
Le question que je me pose est :
Est il possible dans un code C de voir des accolades après des
parenthèses.
Genre : fonction(... blabla { ... } );
Oui.
void f ( struct { int i,j; } *s )
{
s->i = s->j = 0;
}
Comment une telle fonction peut-elle être appelée sans une bordée d'injures du
compilateur ?
/* begin file a.c */
void f ( struct { int i,j; } *s )
{
s->i = s->j = 0;
}
/* end file a.c */
On Fri, 09 Apr 2004 10:12:17 +0200, Yves ROMAN wrote:
On 08 Apr 2004 15:26:49 GMT, Eddahbi Karim wrote:
Bonjour/Bonsoir,
Le sujet est pas très clair donc je vais tenter d'éclaircir la situation.
Je dois faire un programme qui effectuera une vérification syntaxique simple (Vérifier si les accolades, crochets ou parenthèses sont bien refermées si ouvertes. Même chose pour les guillemets et commentaires)
Le question que je me pose est :
Est il possible dans un code C de voir des accolades après des parenthèses.
Genre : fonction(... blabla { ... } );
Oui.
void f ( struct { int i,j; } *s ) { s->i = s->j = 0; }
Comment une telle fonction peut-elle être appelée sans une bordée d'injures du compilateur ?
/* begin file a.c */ void f ( struct { int i,j; } *s ) { s->i = s->j = 0; } /* end file a.c */
/* begin file b.c */
struct { int i,j; } data ; f(&data) ;
/* end file b.c */
Voir la norme 6,2,7 paragraphe 1
-- Horst
Antoine Leca
En 4075ca8e$0$26424$, Eddahbi Karim va escriure:
Je pense avoir trouvé une méthode pour vérifier tout équilibrement entre parenthèses et accolades à un quelquonque endroit du fichier source sans se préoccuper des "espaced sequences"
Quelles "séquences d'échappement" ? Les chaînes de caractères ont été traitées auparavant, non ?
Parce que si tu mélanges ce qui est du niveau du découpage lexical (les chaînes de caractères) avec ce qui est du niveau syntaxique (les parenthèses et autres signes de ponctuation), tu vas au devant de gros problèmes. Je te recommande de prendre un bouquin d'introduction à la théorie des compilateurs et de le potasser, avant toute chose (le moins épais fera l'affaire).
Antoine
En 4075ca8e$0$26424$626a14ce@news.free.fr, Eddahbi Karim va escriure:
Je pense avoir trouvé une méthode pour vérifier tout équilibrement
entre parenthèses et accolades à un quelquonque endroit du fichier
source sans se préoccuper des "espaced sequences"
Quelles "séquences d'échappement" ?
Les chaînes de caractères ont été traitées auparavant, non ?
Parce que si tu mélanges ce qui est du niveau du découpage lexical (les
chaînes de caractères) avec ce qui est du niveau syntaxique (les parenthèses
et autres signes de ponctuation), tu vas au devant de gros problèmes.
Je te recommande de prendre un bouquin d'introduction à la théorie des
compilateurs et de le potasser, avant toute chose (le moins épais fera
l'affaire).
Je pense avoir trouvé une méthode pour vérifier tout équilibrement entre parenthèses et accolades à un quelquonque endroit du fichier source sans se préoccuper des "espaced sequences"
Quelles "séquences d'échappement" ? Les chaînes de caractères ont été traitées auparavant, non ?
Parce que si tu mélanges ce qui est du niveau du découpage lexical (les chaînes de caractères) avec ce qui est du niveau syntaxique (les parenthèses et autres signes de ponctuation), tu vas au devant de gros problèmes. Je te recommande de prendre un bouquin d'introduction à la théorie des compilateurs et de le potasser, avant toute chose (le moins épais fera l'affaire).
Antoine
Eddahbi Karim
Le 2004-04-13, Antoine Leca a martirisé son clavier pour dire:
Quelles "séquences d'échappement" ? Les chaînes de caractères ont été traitées auparavant, non ?
Parce que si tu mélanges ce qui est du niveau du découpage lexical (les chaînes de caractères) avec ce qui est du niveau syntaxique (les parenthèses et autres signes de ponctuation), tu vas au devant de gros problèmes. Je te recommande de prendre un bouquin d'introduction à la théorie des compilateurs et de le potasser, avant toute chose (le moins épais fera l'affaire).
Je dois vérifier que les guillemets (Je sais pas si c'est la bonne traduction de 'quote') simple et doubles sont bien équilibrés. Mais je dois éviter ce tomber dans ce genre de panneau :
''' : Unbalanced quotes...
C'est pour cela que j'ai dit que je gérais aussi les séquences d'échappement. C'est un des buts du projet (En faites c'est qu'un simple exercice)
--
Remove 'dot' INVALID to mail me EN-FR : dot->point :P
Le 2004-04-13,
Antoine Leca <root@localhost.gov> a martirisé son clavier pour dire:
Quelles "séquences d'échappement" ?
Les chaînes de caractères ont été traitées auparavant, non ?
Parce que si tu mélanges ce qui est du niveau du découpage lexical (les
chaînes de caractères) avec ce qui est du niveau syntaxique (les parenthèses
et autres signes de ponctuation), tu vas au devant de gros problèmes.
Je te recommande de prendre un bouquin d'introduction à la théorie des
compilateurs et de le potasser, avant toute chose (le moins épais fera
l'affaire).
Je dois vérifier que les guillemets (Je sais pas si c'est la bonne
traduction de 'quote') simple et doubles sont bien équilibrés.
Mais je dois éviter ce tomber dans ce genre de panneau :
''' : Unbalanced quotes...
C'est pour cela que j'ai dit que je gérais aussi les séquences d'échappement.
C'est un des buts du projet (En faites c'est qu'un simple exercice)
--
Remove 'dot' INVALID to mail me
EN-FR : dot->point :P
Le 2004-04-13, Antoine Leca a martirisé son clavier pour dire:
Quelles "séquences d'échappement" ? Les chaînes de caractères ont été traitées auparavant, non ?
Parce que si tu mélanges ce qui est du niveau du découpage lexical (les chaînes de caractères) avec ce qui est du niveau syntaxique (les parenthèses et autres signes de ponctuation), tu vas au devant de gros problèmes. Je te recommande de prendre un bouquin d'introduction à la théorie des compilateurs et de le potasser, avant toute chose (le moins épais fera l'affaire).
Je dois vérifier que les guillemets (Je sais pas si c'est la bonne traduction de 'quote') simple et doubles sont bien équilibrés. Mais je dois éviter ce tomber dans ce genre de panneau :
''' : Unbalanced quotes...
C'est pour cela que j'ai dit que je gérais aussi les séquences d'échappement. C'est un des buts du projet (En faites c'est qu'un simple exercice)
--
Remove 'dot' INVALID to mail me EN-FR : dot->point :P