الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

creating a Lexical Analyzer in c

مغلقرائج
بدأه CoMPuTeR-Q8 في 5 يوليو 2006 · 51 رد · 11,243 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

حبيت اهدي المنتدى مشروع بسيط عملته عن creating a Lexical Analyzer in c بالكورس الي طاف لمن كنت بالجامعه

عشان اتعم الفايده عالشباب العربي.

مشروع فيه نقص فقط في حالة number

وحالة number موجوده بالسؤال الي فيه الشغلات المطلوب انسويها بالproject

اتمنى اني افدتكم

سلملم (h)

CoMPuTeR_Q8

CoMPuTeR SCIeNCe

Kuwait University

PROJECT1.zip

#3

انشااللله أخي العزيز سأشرح المشروع

طبعا الجميع يعرف انا تصميم compiler يمر بعدة مراحل ومنها :

Lexical analyzer

Syntax analyzer

Semantic analyzer

Intermed. code generator

Code optimizer

Code generator

وبالملف scrap.zip توضح الصوره الخطوات لتصميم المترجم

طبعا لتصميم المترجم هناك عدة ادوات تساعد لتصميمه مثل yac & flex وغيره من الأدوات

بالمشروع لم استخدم اي منها وطبعا المشروع بس كان يتناول فقط مرحلة Lexical analyzer

طبعا قبل البدء ببرمجة lexical analyzer يحب معرفة ماهو دوره بتصميم المترجم

ويمكن تعريفه بالتعريف التالي:

=============

Breaks the source code into individual lexical units or lexemes collectively called “tokens”

وذياده على ذلك استطيع ان اقول عن lexical analyzer أنه هو الذي المنظم لأي لغه كانت والمجمع والمصرف والمتحكم لجميع الكلمات والاحرف باي برنامج

وأيضا هم المشكل لقواعد أي لغه كانت.

يمكن ان أوجز عمله بالنقاط التاليه :

=================

1-يسمى lexical analyzer بالمساح أي ماهو معناه (scanning).

2-يقوم بقراءة مجموعة الحروف للبرنامج المكتوب بأي لغه كانت (source code of program) من اليسار الى اليمين.

3-يميز بين التعليقات وبين المسافات الفاضيه بالبرنامج.

4-الكلمات التي يقسمها lexical analyzer الى tokens المذكوره بالتعريف تنقسم الى نوعين:

النوع الاول يسمى tokens ومنها:

================

identifiers, keywords, numeric constants, string constants, operators

النوع الثاني يسمى non tokens ومنها:

===================

Comments, preprocessor directives and macros (in C/C++), blanks, tabs and new lines

وهذا مثال لكيفية تقسيمه للأنواع المختلفه التى ذكرتها ل tokens

Token type Example lexemes

======== =============

ID sum, rate, calc

NUM 60, 0, 23, 082

REAL 66.1, .5, 10. , 1e-9

IF (keyword)

EQ =

PLUS +

SCOLON ;

LPAREN (

وطبعا بعد عملية التقسيمه التي ذكرتها جميع اسامي variable تذهب الى جدول يمسى ب symbol table الذي تتمثل وظيفت في الأتي :

1-يعمل كdatabase لي المترجم.

2-ويحتوي على جميع أنواع وصفات كل عنصر معرف بالبرنامج (define in program).

وبعد كل تلك الأشياء التي ذكرتها يقوم Lexical analyzer بتحويل tokens الى parsing لينتقل الى مرحله أخرى من مراحل تصميم المترجم.

وبعد هالشرح عن lexical analyzer عرفها طريقة تصميمه وطبعا تصميمه تختلف من مبرمج لي الأخر لأن يعتمد على رغبته على قواعد اللغه التي يريدها

وأي شي انتو مو عارفينه بالبرنامج اسالوني اي شي فيه وإن شاء الله اشرحه حقكم وطبعا قواعد اللفه الي انا سويتها سويتها على حسب المذكور بالسؤال فكل شي تبونه اسألوني اياه من البروجكت.

Scrap.zip

#4

وحبيت اقول شغله على طريقة input لتقسيم برنامج الى tokens وطريقة كتابة output .

طبعا البرنامج اول ماتشغله راح يقرا input ماله من ملف اسمه SOURCE.TXT الذي يحتوي على برنامج مكتوب مثلا بلغة c ويقوم بتقسيم مكوناته الى tokens ويقوم بطباعة النتائج على ملفين هما

ST.TXT & TOKENS.TXT

ST.TXT is the symbol table created by the lexical analyzer

TOKENS.TXT is the list of tokens produced by the lexical analyzer

طريقة طباعتهما مذكوهره بالروجكت

طبعا في شغله مكتوبه اخر شي برنامج وهي

Your program is to be accompanied with the drawing of transition diagrams which correspond to the regular definitions above.

The program must be based on the simulation of the NFA corresponding to the transition diagrams. Denote the states in your program the same way as they are denoted in your drawing.

هذي يبيلها رسمه سامحوني لني ماحطيتها لني رسمتها طويله وانا كتبتها على ورقه مو بالكمبيوتر

وبعد اشوي بحطلكم ملف input الي نسيت احطه

كاهو حطيت الملف كله ويا input

ويحتوي على project.c ترا نفس برنامج ماغيرت فيه شي

وحطيت ملف input الي نسيت احطه اول شي source.txt

وسؤال البروجكت p1.doc

وشغلوه واي شي تبونه انا حاضر

سلملم :D

CoMPuTeR_Q8

CoMPuTeR SCIeNCe

Kuwait University

سوري كاهو ملف نسيت احطه:)

:P

CoMPuTeR_Q8

CoMPuTeR SCIeNCe

Kuwait University

PROJECT1.zip

#5

مشكور خوش برنامج وشرح وافي

#6
/***************************************************************
Program describtion :
=====================
This program is for creating a Lexical Analyzer in c

Created by :
=============
CoMPuTeRQ8

  kuwait university
  Major : COMPuTeR-SCIeNCe

*****************************************************************/


/****************************************************************
Necessary Header files used in program.
*****************************************************************/

#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<ctype.h>

/****************************************************************
Functions prototype.
*****************************************************************/

void   Open_File();
void   Demage_Lexeme();
int	Search(char[256],int);
void   analyze();
void   Skip_Comment();
void   Read_String();
void   Is_Keyword_Or_Not();
void   Is_Identifier_Or_Not();
void   Is_Operator_Or_Not();
void   Read_Number();
void   Is_Special_Or_Not();
void   Is_Comparison_Or_Not();
void   Add_To_Lexical (char[256],int,char[256]);
void   Print_ST();
void   Print_TOKEN();
void   Token_Attribute();

/****************************************************************
Data structure used in program.
*****************************************************************/

struct lexical
{
	char	data[256];		  //Value of token.
	int	 line[256];		  //Line # which token appear in input file.
	int	 times;			  //# of times that token appear in input file.
	char	type[256];		   //Type of each token.
	struct  lexical *next;
};

typedef struct lexical Lex;
typedef Lex *lex;

/****************************************************************
File pointer for accessing the file.
*****************************************************************/

FILE *fp;
FILE *st;
FILE *token;
char lexeme[256],ch;
int f,flag,line=1,i=1;
lex head=NULL,tail=NULL;

/****************************************************************
Array holding all keywords for checking.
*****************************************************************/

char *keywords[]={"procedure","is","begin","end","var","cin","cout","if",
		  "then","else","and","or","not","loop","exit","when",
		  "while","until"};

/****************************************************************
Array holding all arithmetic operations for checking.
*****************************************************************/

char arithmetic_operator[]={'+','-','*','/'};

/****************************************************************
Array holding all comparison operations for checking.
*****************************************************************/

char *comparison_operator[]={"<",">","=","<=","<>",">="};

/****************************************************************
Array holding all special for checking.
*****************************************************************/

char special[]={'%','!','@','~','$'};

/****************************************************************

			**************
			*MAIN PROGRAM*
			**************

*****************************************************************/

void main()
{
  Open_File();
  analyze();
  fclose(fp);
  Print_ST();
  Print_TOKEN();
}

/****************************************************************
This function open input sourse file.
*****************************************************************/

void Open_File()
{

  fp=fopen("source.txt","r");   //provide path for source.txt here
  if(fp==NULL)
  {
	printf("!!!Can't open input file - source.txt!!!");
	getch();
	exit(0);
  }
}

/****************************************************************
Function to add item to structure of array to store data and
information of lexical items.
*****************************************************************/

void Add_To_Lexical (char value[256],int line,char type[256])
{
	lex new_lex;

	if (!Search(value,line))	//When return 1 the token not found.
	{

	  new_lex=malloc(sizeof(Lex));

	  if (new_lex!=NULL)
	  {
		strcpy(new_lex->data,value);
		new_lex->line[0]=line;
		new_lex->times=1;
		strcpy(new_lex->type,type);
		new_lex->next=NULL;

		if (head==NULL)
		   head=new_lex;
		else
		   tail->next=new_lex;

		tail=new_lex;
	  }
	}
}

/****************************************************************
Function to search token.
*****************************************************************/

int Search (char value[256],int line)
{
  lex x=head;
  int flag=0;

  while (x->next!=NULL && !flag)
  {
	if (strcmp(x->data,value)==0)
	{
	  x->line[x->times]=line;
	  x->times++;
	  flag=1;
	}
	x=x->next;
  }
  return flag;
}

/****************************************************************
Function to print the ST.TXT .
*****************************************************************/

void Print_ST()
{
  lex x=head;
  int j;

  if ((st=fopen("ST.TXT","w"))==NULL)
	  printf("The file ST.TXT cat not open. \n");

  else

  {
	fprintf(st,"\t %s \t	%s \t %s \n","Line#","Lexeme","Type");
	fprintf(st,"\t ---- \t	------ \t ---- \n");

	while (x!=NULL)
	{
	  if ((strcmp(x->type,"num")==0)		 ||
	 (strcmp(x->type,"keyword")==0)	  ||
	 (strcmp(x->type,"identifier")==0))
	  {
	 fprintf(st,"\t ");

	 for (j=0;j<x->times;j++)
	 {
	   fprintf(st,"%d",x->line[j]);
		if (j!=x->times-1)	  //This condition to prevent the comma
	   fprintf(st,",",x->line[j]);  //"," to not print after last line #.
	 }

	fprintf(st,"\t	%-6s   \t%-6s \n",x->data,x->type);
	  }
	  x=x->next;
	}

	fclose(st);
  }
}

/****************************************************************
Function to print the TOKENS.TXT .
*****************************************************************/

void Print_TOKEN()
{
  int flag=0;

  fp=fopen("source.txt","r");

	if(fp==NULL)
	{
	   printf("!!!Can't open input file - source.txt!!!");
	   getch();
	   exit(0);
	}

  else

	{
	if ((token=fopen("TOKENS.TXT","w"))==NULL)
	  printf("The file ST.TXT cat not open. \n");

	  else

	  {
	ch=fgetc(fp);

	while (!(feof(fp)))
	{

	  if (ch==' ' && !flag)
	  {
		do
		  ch=fgetc(fp);
		while (ch==' ');

		fseek(fp,-2,1);
		ch=fgetc(fp);
		flag=1;
	  }

	  if (ch!='\n' && ch!='\t')
		fprintf(token,"%c",ch);

	  if (ch=='\n')
	  {
		fprintf(token,"\n");
		Token_Attribute();
		i++;
		flag=0;
	  }

	  ch=fgetc(fp);
	}
	  }
	}
	fclose(fp);
	fclose(token);
}

/****************************************************************
Function to put the token and atrribute in TOKENS.TXT .
*****************************************************************/

void Token_Attribute()
{
  lex x=head;
  int j;

  while (x!=NULL)
  {
	if (x->line[0]==i)
	{
	  fprintf(token,"token : %-4s\t",x->type);

	  if ((strcmp(x->type,"num")==0)		 ||
	 (strcmp(x->type,"keyword")==0)	  ||
	 (strcmp(x->type,"identifier")==0))

	  {
	  fprintf(token,"attribute : line#=%-4d \n",i);
	  }

	  else

	  {
	  fprintf(token,"attribute : %-4s \n",x->data);
	  }

	}
	x=x->next;
  }
  fprintf(token,"\n");
}

/****************************************************************
Function to create lexical analysis.
*****************************************************************/

void analyze()
{

  ch=fgetc(fp);					  //Read character.

  while(!feof(fp))				   //While the file is not end.
  {

	  if(ch=='\n')				   //Compute # of lines in source.txt .
	  {
		line++;
		ch=fgetc(fp);
	  }

	  if(isspace(ch) && ch=='\n' )
	  {
	  line++;
	  ch=fgetc(fp);
	  }
	  if(isspace(ch) && ch!='\n' )		  //The character is space.
	  ch=fgetc(fp);


	  if(ch=='/' || ch=='"')	//Function for skipping comments in the file
	  Skip_Comment();	//and '"' with display statements.


	  if(isalpha(ch))			  //The character is leter.
	{
		Read_String();
		Is_Keyword_Or_Not();
		Is_Operator_Or_Not();
		Is_Identifier_Or_Not();
	}


	  if(isdigit(ch))			 //The character is digit.
	 Read_Number();


	  if (ch==';')				//The character is semicolon.
	Add_To_Lexical(";",line,"semicolon");


	  if (ch==':')				//The character is colon.
	Add_To_Lexical(":",line,"colon");


	  if (ch==',')				//The character is comma.
	Add_To_Lexical(",",line,"comma");


	  if (ch=='(')				//The character is parenthesis.
	Add_To_Lexical("(",line,"parenthesis");


	  if (ch==')')				//The character is parenthesis.
	Add_To_Lexical(")",line,"parenthesis");

				 //The character is comparison_operator
	  if (ch=='<' || ch=='=' || ch=='>')
	Is_Comparison_Or_Not();


	  Is_Special_Or_Not();	   //After failed scaning in before cases
				 //check the character is special or not.
	  Demage_Lexeme();

	  if(isspace(ch) && ch=='\n' )
	  {
	  line++;
	  ch=fgetc(fp);
	  }
	  else
	  ch=fgetc(fp);
  }
}

/****************************************************************
This function read all character of strings.
*****************************************************************/

void Read_String()
{
  int j=0;

  do
  {
	lexeme[j++]=ch;
	ch=fgetc(fp);
  } while(isalpha(ch));

	fseek(fp,-1,1);
	lexeme[j]='\0';
}

/****************************************************************
This function demage the data stored in the lexeme to store
next word without any previous character of previous word .
*****************************************************************/

void Demage_Lexeme()
{
  int j=0;

  while (lexeme[j]!='\0')
  {
	lexeme[j]='\0';
	j++;
  }
}

/****************************************************************
This function check the string is keyword or not.
*****************************************************************/

void Is_Keyword_Or_Not()
{
  int j=0;

  flag=0;

  for (j=0;j<18;j++)		 //search for keyword & # of keywords = 18.
  {
	if (strcmp(lexeme,keywords[j])==0)
	{
		Add_To_Lexical(lexeme,line,"keyword");
		flag=1;
		break;
	}
  }
}

/****************************************************************
This function check the string is indentifier or not.
*****************************************************************/

void Is_Identifier_Or_Not()
{
	if(flag==0)   //identifier
	   Add_To_Lexical(lexeme,line,"identifier");
}

/*****************************************************************
This function check if the character is operator or not.
******************************************************************/

void Is_Operator_Or_Not()
{
  int j;

	  for (j=0;j<4;j++)			   //The # of arithmetic_operator is 4.
	if (ch==arithmetic_operator[j])
	{
	  lexeme[0]=ch;
	  lexeme[1]='\0';
	  Add_To_Lexical(lexeme,line,"operator");
	  break;
	}
}

/*****************************************************************
This function check if the character is special symbol or not.
******************************************************************/

void Is_Special_Or_Not()
{
  int j;

  for (j=0;j<5;j++)			   //The # of special symbol is 5.
	if (ch==special[j] )
	  {
	lexeme[0]=ch;
	lexeme[1]='\0';
	Add_To_Lexical(lexeme,line,"special");
	break;
	  }

}

/*****************************************************************
This function check if the character is special symbol or not.
******************************************************************/

void Is_Comparison_Or_Not()
{
	int j,flag=0;
	char k=ch;

	ch=fgetc(fp);

	if (isalpha(ch) && k=='<')		 //Skip words between #include<>.
	{
	  do
	ch=fgetc(fp);
	  while (ch!='>');
	  flag=1;
	}

	else

	if (ch=='<' && k=='<')			//Skip cout <<.
	  flag=1;

	else

	if (ch=='>' && k=='>')			//Skip cin >>.
	  flag=1;

	if (!flag)
	{

	  lexeme[0]=ch;		  //We read here to check if the comparision
	  ch=fgetc(fp);		  //operator is single which is only (> or < or =)
				 //or like ( >= or == or <= ).

	  if (ch=='<' || ch=='=' || ch=='>')
	  {
	lexeme[1]=ch;
	lexeme[2]='\0';
	  }
	  else
	  {
	lexeme[1]='\0';
	fseek(fp,-1,1);
	  }

	  for (j=0;j<6;j++)	  //The # of comparison_operator is 6.
	if (strcmp(lexeme,comparison_operator[j])==0)
	  {
		Add_To_Lexical(lexeme,line,"comparision");
		break;
	  }
   }
}


/*****************************************************************
This function check if the character is number or not.
******************************************************************/

void Read_Number()
{

   int j=0;

   while(isdigit(ch) || ch=='.')  //search for digits
   {
	  lexeme[j]=ch;
	  ch=fgetc(fp);
	  j++;
   }

   lexeme[j]='\0';
   Add_To_Lexical(lexeme,line,"num");

}

/****************************************************************
Function to skip comment statements.
*****************************************************************/

void Skip_Comment()
{
	if (ch=='"')			 //Skipping printf statements and
	{						//other such display statements.
	if(ch=='"')
	while((ch=getc(fp))!='"');
	}

	else
		 //Skip comments.
	{
	ch=getc(fp);
	if(ch=='/')	//Checking single line comments
	{
		while((ch=getc(fp))!='\n');
	}
	else if(ch=='*')	//Checking multiple line comments.
	{
		while(f==0)
		{
			ch=getc(fp);
			if(ch=='*')
			{
				ch=getc(fp);
				if(ch=='/')
					f=1;
			}
		}
		f=0;
	   }
	}
}
#7

اتمنى ان لاتكثر من تحميل المرفق ..

اشوف عدد المحملين المرفف فوق اربعة الاف تحميل ..

أتمنى تترك هذا الاسلوب .

وللمعلومية ... تعرف عضو اسمه حاسوبيه كويتيه

هذا يقرب لك ..

يا اخي نحن في منتد علمي وليس منتدى سخافات ..

الاكواد سارقها .. وعندي الدليل .

انت مشارك باسم اخر .. وقاعد تشكر نفسك .

انت شخص .. تبحث عن شكرا ..

شكرا ..

ارتحت الان ...

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#8

السلام

مشكور مابي شكرك استفادة الأعضاء من الكود هذا يكفيني

وأنا ماراح ارد عليك على كلمة منتدى سخافات الي ذكرتها لنا أخلاقي ماتسمحلي ارد عليها

بس اتمنى اتكون انك تتمل على قد مسئوليتك كمشرف لبرمجة العاب وتحط الدليل انا كود انا مو كاتبه وأتمنى انك ماتحطه لنا راح أفضح كذبك أمام الأعضاء وخليك تندم على كلامك لنا والله العظيم كود مالي

وبعدين حاسوبيه كويتيه هذي ماتصيرلي ولا شي حاسوبيه كويتيه انا صاحب هالاسم واذا مومصدقيني اعطيكم رقم سري مال حاسوبيه كويتيه لو حبيتو عشان اثبتلكم كذب هذا المشرف وانا حاضر بالطريقه الي تبونها عشان اثبتلكم اني صاحب الكود

واقسم للأعضاء انا الكود انا كاتبته

واذا كنت رجل و صج مشرف حريص على المنتدى واذا كنت تستاهل هالللقب عطني دليل اني مو كاتب الكود

وأتحداك انك تثبت كود مو مالي

وانا حاضر بأي طريقه تبونها أثبتلكم انا الكود مالي

اما بالنسبه للتحميل والله العظيم انا ماحملت هالعدد لو كنت مسوي هالطريقه جان لاحظت عدد المشاهدين لحد هذي الساعه لم يتجاوز العدد 100 مشاهد للموضوع والتحميل فوق 4000

لوكنت بسويها جان ادش احمل الموضوع واطلع بنفس الوقت لكي يذداد اعداد مشاهدين للموضوع

أي بمعنى أخلي التحميل والمشاهده متساوين بالرقم

#9
اقتباس
وبعدين حاسوبيه كويتيه هذي ماتصيرلي ولا شي حاسوبيه كويتيه انا صاحب هالاسم واذا مومصدقيني اعطيكم رقم سري مال حاسوبيه كويتيه لو حبيتو عشان اثبتلكم كذب هذا المشرف وانا حاضر بالطريقه الي تبونها عشان اثبتلكم اني صاحب الكود

اذا لماذا تشكر نفسك ..

انظروا الى الرد الخامس... في هذا الموضوع ...

================

ثانيا ::

انظروا لهذه المشاركة ..

/index.php?showtopic=100915

يدعي انه هو من كتب الكود ..

اذا فتحتوا الملف CPP ستجدون اسم كاتب الكود الحقيقي ..

*Author : Cheok Yan Cheng

لماذا تكذب ..

حبل الكذب قصير

تم تعديل هذه المشاركة بواسطة الشمري في 12 يوليو 2006 في 12:55

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#10
اقتباس
السلام

هذا ملف فيه كود لعبه انا برمجتها لعبة اكس او TiC TaC

بلغة C للمبتدئين الي مثلي

ومافيها لا opengl وdirectx ومافيها اي شي ثاني من مكتبات

بس إن شاء الله يفيدك ببرمجة الألعاب كألعاب حقق مثل انا ماستفدت منه وإن شاء الله مع الوقت يفيدني اطور نفسي بهالمجال

اتمنى يعجبكم

سلملم

^_^

CoMPuTeRQ8

Kuwait University

Major : CoMPuTeR SCIeNCe

CoNPuTeR-SCIeNCe الاسم القديم سابقا

وين الدليل الي تقول عنه

انا صاحب هالمشاركه ومبرمج اللعبه انظر الاسم نفس الاسك

اذا قصدك على هذي

CoNPuTeR-SCIeNCe الاسم القديم سابقا

انا صاحب هالاسم كان اسمي بالمنتدى اول ماعرفت على المنتدى وراها غيرته الى CoMPuTer-Q8 الحالي

حتى روحو شوفو متندى برمجة الألعاب وتلقون اسمي اني صاحب المشاركه

اقتباس
TiC TaC لعبة X/O

كود مكتوب تقدر تعبره للمبتدئين 1 CoMPuTeR-Q8 54 7th July 2006 - 05:58 AM

بواسطة : CoMPuTeR-Q8

مادري وين قصده الدليل يقول عنه انا صاحب هالمشاركتين يعني الولد عليه كذب ما بعده كذب

فأعتقد الان بينت الحقائق واتمنى مره ثانيه لاتشوف روحك وتتبلا على الأعضاء

وأتمنى منكم اتشوفون على اسم صاحب المشاركه بمنتدى الألعاب لتتاكدو اني صاحب مشاركه واني والله العظيم ماجذب عليكم

وأتمنى من الاداره يشوفون هالشمري الي سوا سابقه اولى وخطيره بالمنتدى عندما يتهم مشرف عضو بالكذب وماعتقد ترضون بهشي وانا ماغلطت عليه اهوه الي بدا

اتمنى بس اتشوفون على اسم صاحب مشاركه بمندى الألعاب تصميم لعبة tic tac وعلى صاحب اسم مشاكرة تصميم analyzer بمنتدى c++ عشان تلقون تطابق الأسماء وبين كذب ونفاق هالمشرف.

#11
اقتباس
مادري وين قصده الدليل يقول عنه انا صاحب هالمشاركتين يعني الولد عليه كذب ما بعده كذب

فأعتقد الان بينت الحقائق واتمنى مره ثانيه لاتشوف روحك وتتبلا على الأعضاء

يبدو انك ذكي من الطراز الأول ..

شوف يا ذكي .. الملف المرفق اللذي تدعي انك برمجته:

/*ttt.c

*Compiler : Borland 5.0 c++ (c++ version)

DJGPP c compiler.(c version)

*Version : Beta

*Author : Cheok Yan Cheng

*Date started coding : 14/6/2000

*Date finished coding : 16/6/2000(c++ version)

*Date finished coding : 23/6/2000(c version)

*Date finished coding : 16/7/2000(final version which used arrays as board

* representive, help section added)

*/

/*If you had encounted any problem, bugs or comment on this source code

you are welcomed to contact me by my e-mail : yccheok@yahoo.com*/

اذا بعدك ما فهمت .. فهذا سيكون اكبر دليل على انك لم تبرمج هذا الـ lexical analyzer لأنك مستوى الذكاء اللذي يحتاجه المرء لفهم ملابسات هذا الموضوع اقل بكثير من درجة الذكاء المطلوبة لبرمجة lexical analyzer

#12

/*ttt.c

*Compiler : Borland 5.0 c++ (c++ version)

DJGPP c compiler.(c version)

*Version : Beta

*Author : Cheok Yan Cheng

*Date started coding : 14/6/2000

*Date finished coding : 16/6/2000(c++ version)

*Date finished coding : 23/6/2000(c version)

*Date finished coding : 16/7/2000(final version which used arrays as board

* representive, help section added)

*/

/*If you had encounted any problem, bugs or comment on this source code

you are welcomed to contact me by my e-mail : yccheok@yahoo.com*/

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#13

واللله العظيم انا الي مسويه

analyzer

اما لاسم الي مكتوب بtic tac

يعني بالعقل يا اخوان هالتعليقات المبرمج سنه اولا او حتى الي مايعرف برمجه يفهم هالشغلات مالها تأثير بالبرنامج

يعني انا ماأقدر اشيلها ومسح التعليقات

انا لقيت كود مشابه للبرنامج وسويتله كوبي وحطيته عندي بالفجوال وعدلته فيه وكتبت برنامج يديد بس التعليقات الي فوق ماشلتها عشان احفظ حق صاحب المشاركه وحتى والله مانتبهت عليها .

وبعدين الله عرفناه بالعقل لو كنت أبي ابوق أكود العاب ابوق لعبه مثل هذي بالعكس ابوق كود لعبه كبيره ولا واحد فيكم يقدر يكذبني ونسبها حقي.

وبعدين أبي الدليل الي يقول عنه والله هذا دليل ماله معنى والله انا الي مسوي analyzer

وحتى ورقة السؤال حاطها بالملف يعني لو ببوق ماجان حطيت ورقة السؤال

يعني اقدر اشيل اسم صاحب البرنامج بالعقل مايبيلها ذكاء مو صعب اشيلها ونسبها حقي بس والله انا الي كاتبه ولا جان بقت كود اي لعبه مشهوره ونسبته حقي

#14
اقتباس

Department of Mathematics, Faculty of Science, Kuwait University

Dr. Anton Černý

Date: 20/03/2006 Due: 29/04/2006

Course: 367/01A 12.00

هل كان هذا مشروع درسته بالجامعة هذه السنة؟

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#15

اي هذه السنه الكورس الي طاف

#16
http://www.geocities.com/yccheok/tictactoe/

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#17

^_^

بموتون من القهر لنا كذبهم انفضح انا بعرف اشفيكم على برنامج tic tac

انتو قلتو تبون تثبتون اني سرقت analayzer أين الدليل يا كذابين

وشنو يعني اتحط موقع هالشخص انا حاط اسمه وموقعه داخل طود برنامج وشوفو كوده وكودي بتلقون مليون اختلاف

واقول للأعضاء الكرام انا مستعد اشرح اي شي تبونه بالبرنامج عشان اثبت انا كود مالي

انا ماني مثل الي يتبلون عالناس.

بصراحه ناس حسوده ماشفت من قبل جذي انا بس احلف للأعضاء المحترفين بالقران انا كود مالي معنه مسأله ماتحتاج بس هالغوغائيين اظطروني لهذا ميتين من الحره لنا بعرهم ماسوو lexical analyzer بعمرهم مشرفين مادري على شنو

#18

CoMPuTeR-Q8 دعك من الكلام وخلينا في المفيد، نريد اكمال Lexical Analyzer

سلملم (h)

d4baa0.gif
#19
CoMPuTeR-Q8 كتب:
^_^

بموتون من القهر لنا كذبهم انفضح انا بعرف اشفيكم على برنامج tic tac

انتو قلتو تبون تثبتون اني سرقت analayzer أين الدليل يا كذابين

وشنو يعني اتحط موقع هالشخص انا حاط اسمه وموقعه داخل طود برنامج وشوفو كوده وكودي بتلقون مليون اختلاف

واقول للأعضاء الكرام انا مستعد اشرح اي شي تبونه بالبرنامج عشان اثبت انا كود مالي

انا ماني مثل الي يتبلون عالناس.

بصراحه ناس حسوده ماشفت من قبل جذي انا بس احلف للأعضاء المحترفين بالقران انا كود مالي معنه مسأله ماتحتاج بس هالغوغائيين اظطروني لهذا ميتين من الحره لنا بعرهم ماسوو lexical analyzer بعمرهم مشرفين مادري على شنو

يا أخ CoMPuTeR-Q8, أنت لست في محاكمة, بل من واجب المشرف هو التسيير وإدارة المنتدى. هذا ليس فيه عيب و لا ينعت من يتكرم بحمل هم الإدارة بالكذب و الغوغاء, فإتق الله يرحمك الله و لا تتسرع في السب و المشاتمة.

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#20

اي تكمله تقصد البرنامج كامل ومعمول على حسب السؤال

عدل كلامك اكوسان بس ترا الي اسمه شمري اهوه الي بدا وقال مشاركتي سخيفه يعني ماشوفك عاتبته او وجهت له كلام يعني لو انته مكاني ترضا احد يقول عن مشاركتك سخيفه

#21
CoMPuTeR-Q8 كتب:
اي تكمله تقصد البرنامج كامل ومعمول على حسب السؤال

عن اي سؤال تتحدث ؟؟؟؟ :blink:

هو ناقص و نريد تكملته...تذكر مشاركتك الأولى:

CoMPuTeR-Q8 كتب:
مشروع فيه نقص فقط في حالة number
d4baa0.gif
#22

عدل كلامك انا قلت في نقص بحالك numbers

لنا انا الي مسويها بس الارقام الصحيحه مثل 1و11و111و1111و2و45 ......الخ

ويأخذ ايضا ارقام عشريه ويحطها بtokens مثل 1.5و3.5و0.000001.....الخ

حالة النقص الي اقصدها ياخذ ارقم epsilon e

وأيضا 3X10^9

هذا الي اقصده وماعرفت اكملها لني ماعرف

#23

لا أدري هل أنت ذكر أم أنثـى .... لذلك عذراً على اللخبطـة التي ستجدها في ردي....

ألقيت نظرة على الكودين يا أخ\أخت حاسوبية\ Computer (للاختصار سأشير إليك بهذا الرمز ح & C ) ووجدت أن التشابه بينهـما هـو بنسبة 90% إن لم يكن 100% ... الاختلاف الوحيد الذي رأيتـه هـو اسم الملف.... أما بقية الأشياء فلم أجد لها اختلاف ...... ولم أجد مليون اختلاف بين الكـودين كما تقول\تقولين.... إلا طبعاً في حال أنا كنت أعـمـى أو أنني حملت نفس الكـود مرتين !!!!!!!!!!!...

اقتباس
انتو قلتو تبون تثبتون اني سرقت analayzer أين الدليل يا كذابين

لماذا هذا الوصف كذابيـن يا ح& C .....لهذا الاسم "حاسوبية كويتية" سوابق أتذكرها أثناء إشرافي على المنتدى ، وبصراحـة مشاركـاته\هـا سخيفـة ؛ فكيف تتطاول على من أفاد الناس ووضع الدروس بينما أنت لم يتجاوز عدد مشاركاتك 15 و 11 تحت اسم "حاسوبية" ........

من حق الناس أن يشككوا بهذا الكـود لأنهـم أثبتوا أنك وللأسف أقولها إن لم تكن\تكوني على الأقل سارق للكـود السابق ، حتى وإن عدلت على الكـود كما تزعـم فليس من حقك أبداً ان تنشر ما عدلته على العـموم من دون إذن صاحب الكـود الأصلي أو على أقل تقدير ذكر صاحب الكـود الأصلي في نفس المشاركـة وليس لأنك نسيت مسحـه من الكـود الأصلي........

اقتباس
بصراحه ناس حسوده ماشفت من قبل جذي انا بس احلف للأعضاء المحترفين بالقران انا كود مالي معنه مسأله ماتحتاج بس هالغوغائيين اظطروني لهذا ميتين من الحره لنا بعرهم ماسوو lexical analyzer بعمرهم مشرفين مادري على شنو

أرجـو أن تلتزم بالكلام باللغـة العربية الفصحـى يا ح & C ، وأن تحترم الذين أفادوا الناس ولم يسرقوا أكـواد غيرهـم ..... أرجو ألا تغضب من الحقيقة!!!!!!!!!!!!!

وإني أرجـو بكل صراحـة أن تكون أنت من كتب هذا الكـود .........

#24

في اختلاف اكثر من 60 بالميه شوف الكود عدل وبعدين لو فيني سوء نيه جان شلت اسم صاحب برنامج الي موجود بcomment بس ماشلته لني سويتلاه كوبي وعدلت عليه وسويت نسختي خاصه فيني انا ولو ابي ابوق مابوق مثل هالاكواد ابوق اكواد ومحركات ألعاب لم تسمع فيها بحياتك وراح توصل حقها ونسبها حقي يعني بالعقل الواحد يايبوق شي كبير ولا مايبوق.

بعدين اهوه الي غلط علي بالاول قال مشاركتي سخيفه وبعدين انا مشاركتي مو سخيفه انت اسخف منها وأحقر بعد

وبعدين شنو انتو الي افدتو الناس في غيركم وايد فادو الناس وماتكلمو وماقالو شنو سوو للناس ترا انا هم فدت الناس يا ما كاتب اكود انا اهني وهذي نكات الي كتبت فيهم

CoMPuTeR-SCIeNCe

حاسوبيه الكويتيه

CoMPuTeRQ8

شوف مشاركاتي واهيا راح اترد عليك اني افدت الناس ولا لا وبعدين انا عمري ماشفتكم تكلمتم على احد الا انا ولا عشان طلع واحد سواه شي عمرك انته ربعك ماسويتوها واهيا analyzer قمتو تتهجمون علي بالمنتدى مو ذنبي انا انك ماتعرف بهالمواضيع .

وتقولون اني مايصير أغلط عليكم انتو لاتغلطون علي عشان ماغلط عليكم ولا عشان مشرف شايف روحك فاحترم نفسك أحسلك انته وياه

تم تعديل هذه المشاركة بواسطة CoMPuTeR-Q8 في 12 يوليو 2006 في 16:48

#25
CoMPuTeR-Q8 كتب:
عدل كلامك انا قلت في نقص بحالك numbers

هذا لييس كلامي بل كلامك انت في اول مشاركة:

CoMPuTeR-Q8 كتب:
السلام عليكم

حبيت اهدي المنتدى مشروع بسيط عملته عن creating a Lexical Analyzer in c بالكورس الي طاف لمن كنت بالجامعه

عشان اتعم الفايده عالشباب العربي.

مشروع فيه نقص فقط في حالة number

وحالة number موجوده بالسؤال الي فيه الشغلات المطلوب انسويها بالproject

CoMPuTeR-Q8 كتب:
هذا الي اقصده وماعرفت اكملها لني ماعرف

ما تعرف ؟ يعنى وقفت على الأرقام!

سلملم (h)

d4baa0.gif

هذا الموضوع مغلق.

مواضيع مشابهة