InstagramTwitterSnapChat


 
وصف

العودة   منتديات سكاو > الكليات الجامعية > منتدى كلية الحاسبات وتقنية المعلومات > منتدى قسم علوم الحاسبات
التسجيل مشاركات اليوم البحث
   
   


واجب معمل كومبالير

منتدى قسم علوم الحاسبات

 
 
أدوات الموضوع إبحث في الموضوع انواع عرض الموضوع
منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
  #1  
قديم 17-01-2011, 11:02 PM
الصورة الرمزية jehan alahmadi

jehan alahmadi jehan alahmadi غير متواجد حالياً

جامعي

 
تاريخ التسجيل: Sep 2009
التخصص: علوم حاسبات
نوع الدراسة: إنتظام
المستوى: العاشر
الجنس: أنثى
المشاركات: 14
افتراضي واجب معمل كومبالير


دا واجب لمعمل الكومبالير بس ماني عارفه فين الغلط فممكن الي يعرف فين الخطا يقولي
yacc
كود:
%{
#include <stdio.h>

int yylex(void);
void yyerror(char *);

%}
%token NOUN PRONOUN VERB ADVERB ADJECTIVE PREPOSITION CONJUNCTION

%%

sentence: simple_sentence { printf("parsed a simple sentence.\n", $1); }
				| compound_sentence { printf("parsed a compound sentence.\n", $1); }
				;
simple_sentence: subject verb object
						| subject verb object prep_phrase
						;
compound_sentence: simple_sentence CONJUNCTION simple_sentence
					| compound_sentence CONJUNCTION simple_sentence
					;
subject:  NOUN
        | PRONOUN
        | ADJECTIVE subject
        ;
verb: VERB
		| ADVERB VERB
		| verb VERB
		;
object:  NOUN
        | ADJECTIVE object
        ;
prep_phrase: PREPOSITION NOUN
		;

%%

void yyerror(char *s) {
    fprintf(stderr, "%s\n", s);
}

int main(void) {
    printf("Please enter any NOUN PRONOUN VERB ADVERB ADJECTIVE PREPOSITION CONJUNCTION  or sentence\n");
  	 yyparse();
    return 0;
}
lex

كود:
%{
    #include "y.tab.h"
    #include <stdlib.h>
    void yyerror(char *);
    #define LOOKUP 0

    int state;
%}

%%

\n           { state = LOOKUP ;}
\.\n         { state = LOOKUP ;
               return 0 ;}
^noun        { state = NOUN ; }
^pronoun     { state = PRONOUN ; }
^verb        { state = VERB ; }
^adverb      { state = ADVERB ; }
^adjective   { state = ADJECTIVE ;}
^preposition { state = PREPOSITION ;}
^conjunction { state = CONJUNCTION ;}
[a-zA-Z]+    {
               if (state != LOOKUP)
                   {
                    add_word(state, yytext);
                    }
               else
                    {
                      switch (lookup_word(yytext))
                            {
                              case  NOUN : { printf(" %s : NOUN\n",yytext);return (NOUN) ;}
                              case  PRONOUN : {printf(" %s : PRONOUN\n",yytext); return (PRONOUN) ;}
                              case  VERB : { printf(" %s : VERB\n",yytext); return (VERB) ;}
                              case  ADVERB :{printf(" %s : ADVERB\n",yytext);return (ADVERB) ;}
                              case  ADJECTIVE :{  printf(" %s : ADJECTIVE\n",yytext);return (ADJECTIVE) ;}
                              case  PREPOSITION :{printf(" %s : PREPOSITION\n",yytext);return (PREPOSITION) ;}
                              case  CONJUNCTION :{printf(" %s : CONJUNCTION\n",yytext);return (CONJUNCTION) ; }
                              default :    printf(" %s : don't recognize\n",yytext);
                            }
                    }

            }

%%
struct word
          {
           char *word_name;
           int word_type;
           struct word *next;
          };

struct word *word_list;
extern void *malloc();
int add_word( int type, char *word)
    {
      struct word *wp;
      if(lookup_word(word) != LOOKUP)
         {
           printf(" !!! warning: word %s already defined \n",word);
           return 0;
         }
      wp = (struct word *) malloc( sizeof(struct word)) ;
      wp->next = word_list;
      wp->word_name = (char *) malloc( strlen(word)+1);
      strcpy(wp->word_name, word);
      wp->word_type =  type;
      word_list = wp ;
      return 1;
    }
int  lookup_word(char *word)
    {
      struct word *wp = word_list;
      for( ; wp; wp= wp->next)
          {
           if(strcmp(wp->word_name, word) == 0)
              {
               return wp->word_type;
              }
          }
      return  LOOKUP;
    }

int yywrap(void) {
    return 1;
}
رد مع اقتباس

 

 


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

 


الساعة الآن 02:13 AM


Powered by vBulletin® Version 3.8.9 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Ads Organizer 3.0.3 by Analytics - Distance Education

أن كل ما ينشر في المنتدى لا يمثل رأي الإدارة وانما يمثل رأي أصحابها

جميع الحقوق محفوظة لشبكة سكاو

2003-2024