begin process at 2012 05 29 17:38:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Probleme : interpretation des declarations en C


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme : interpretation des declarations en C

vendredi 4 mars 2005 à 15:44:53 | Probleme : interpretation des declarations en C

nerone21

Bonjour, G besoin d'une aide rapide, en fait G un projet a rendre mais G vraiment du mal a faire le TP ki m'es demander donc j'aurais besoin d'une ame charitable pour m'aider SVP.

Voilà le sujet de ce TP: G besoin d'un code en C et vraiment le plus simple possible qui soit possible de faire, et si possible de mettre des commentaires pour ke je comprenne comment ca marche.

G besoin d'un interpreteur de declarations qui soit capable de me dire ce ke fait exactement une declaration. par exemple si on rentre :
int(*(*f[])())[];

ke le programme soit capable de me dire que :
Ceci representeun tableau f de pointeurs vers des fonctions qui retournent un pointeur vers un tableau d'entiers

Voila, en fait un programme qui gere les priorités de chaque declaration en C.

Alors merci beaucoup beaucoup d'avance si un programmeur est capable de m'aider. Je n'en doute pas. J'espere que G était assez comprehensible, si ce n'es pa le cas, demander moi je ferait ce ke je peux.

MERCI, MERCI.
samedi 5 mars 2005 à 00:11:53 | Re : Probleme : interpretation des declarations en C

vecchio56

Administrateur CodeS-SourceS
#include <stdio.h>
#include <string.h>
#include <ctype.h>

#define MAXTOKEN  100

enum { NAME, PARENS, BRACKETS };

void dcl(void);
void dirdcl(void);

int gettoken(void);
int tokentype;           /* type of last token */
char token[MAXTOKEN];    /* last token string */
char name[MAXTOKEN];     /* identifier name */
char datatype[MAXTOKEN]; /* data type = char, int, etc. */
char out[1000];

int gettoken(void)  /* return next token */
{
  int c, getch(void);
  void ungetch(int);
  char *p = token;

  while ((c = getch()) == ' ' || c == '\t')
    ;
  if (c == '(') {
    if ((c = getch()) == ')') {
      strcpy(token, "()");
      return tokentype = PARENS;
    } else {
      ungetch(c);
      return tokentype = '(';
    }
  } else if (c == '[') {
    for (*p++ = c; (*p++ = getch()) != ']'; )
      ;
    *p = '\0';
    return tokentype = BRACKETS;
  } else if (isalpha(c)) {
    for (*p++ = c; isalnum(c = getch()); )
      *p++ = c;
    *p = '\0';
    ungetch(c);
    return tokentype = NAME;
  } else
    return tokentype = c;

}

/* dcl:  parse a declarator */
void dcl(void)
{
  int ns;

  for (ns = 0; gettoken() == '*'; ) /* count *'s */
    ns++;
  dirdcl();
  while (ns-- > 0)
    strcat(out, " pointer to");
}

void dirdcl(void)
{
  int type;

  if (tokentype == '(') {         /* ( dcl ) */
    dcl();
    if (tokentype != ')')
      printf("error: missing )\n");
  } else if (tokentype == NAME)  /* variable name */
    strcpy(name, token);
  else
    printf("error: expected name or (dcl)\n");
  while ((type=gettoken()) == PARENS || type == BRACKETS)
    if (type == PARENS)
      strcat(out, " function returning");
    else {
      strcat(out, " array");
      strcat(out, token);
      strcat(out, " of");
    }
}

main()  /* convert declaration to words */
{
  while (gettoken() != EOF) {   /* 1st token on line */
    strcpy(datatype, token);  /* is the datatype */
    out[0] = '\0';
    dcl();       /* parse rest of line */
    if (tokentype != '\n' && tokentype != '\r')
      printf("syntax error\n");
    printf("%s: %s %s\n", name, out, datatype);
  }
  return 0;
}

samedi 5 mars 2005 à 15:51:45 | Re : Probleme : interpretation des declarations en C

nerone21

Alors merci de cette reponse mais ca marche pa ca me fait des erreur de linkage sous visual.net, et puis ca C encore trop compliké lol, plus simple plus simple. merci!!
samedi 5 mars 2005 à 16:57:27 | Re : Probleme : interpretation des declarations en C

vecchio56

Administrateur CodeS-SourceS
Ca marche en compilant un projet C ou C++ standard, et puis tu sait on ne peut pas faire de choses difficiles de manière simple, à moins d'utiliser des trucs déja faits, mais dans ce cas la tu ne fait rien.


Cette discussion est classée dans : possible, ke, probleme, capable, declarations


Répondre à ce message

Sujets en rapport avec ce message

trouver l'IP [ par 24Karas ] Est-ce ke c possible de recuperer l'IP à partir d'un sockaddr et si oui comment il fo faire ??? (je crois ke c possible avec sockaddr_in mais moi g un Clavier "internet" [ par ntamac ] J'ai un probleme, je vous explique : j'ai fais l'aquisition d'un clavier dit "internet" avec des touches supplémentaire du type play pause zoom, Volum un ptit probleme [ par aladdin_wydadi ] je suis un etudiant débutant en langage c ; j' ai un exercice je veux ke vous m'aiderez si c possible ;alors pour l' énoncé d'exercice c'est la conver probleme capture webcam [ par kain31 ] Bonjour tt le monde, Je voulais savoir s'il est possible d'enregistrer ce que film ma webcam lorsque j'appuie sur un bouton de mon aplication, sachant Probleme SDL [ par Thanatos ] salut,voila plusieurs petites questions que je me pose sur le SDL.Est-il possible de parametrer la position de la fenetre principale en SDL ? Est-il p probleme link de dll [ par ToasTy62 ] c encore moi... :oPj'ai un enorme probleme ac une dll ke je fais ac devc++...j'arrive a creer la dll, aucun probleme, j'arrive a l'utiliser ac VB, auc Probleme FrameSet + Scrollbar [ par 666BlackDragoon666 ] Alors voila je veux faire un site avec 3 frame (un a gauche (le menu), un en haut (le logo et titre du site) et un au mileur et et a droite (page prin Probleme d'algo pour toutes combinaisons possible d'un tableau [ par arnaud8888 ] Bonjour à tous, j'ai un problème d'algo ... en gros j'ai un tableau qui contient des valeurs, disons : A B C D j'aurais besoin à la fin de mon algo petit probleme de debuant pour fusionner plusieurs fichiers excel [ par magorr ] bonjour,je suit tous nouveau ici et dans la programmationj'ai une petite question de débutant ;)voila je vais être le plus claire possible :j'ai plusi probleme read jusque a un \n [ par skatouse ] Bonjours, j'aimerais savoir si il est possible darreter un read a un caratere defini. je mexpliaue, je veut ouvrir un fichier, puis en suite le le sto


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales