سلام
واسه انجام يه پروژه احتياج دارم به گرامر زبان c از كجا مي تونم پيدا كنم؟
Printable View
سلام
واسه انجام يه پروژه احتياج دارم به گرامر زبان c از كجا مي تونم پيدا كنم؟
Token ها شو می خوایی یا سینتکسشو برنامه شو ؟
token هاشو مي خوام
////////////////////////////////////////////////////////////////////////////////////////////////
%{
#include "myparser.h"
#include <string>
%}
////////////////////////////////////////////////////////////////////////////////////////////////
%name mylexer
///////////////////// Members /////////////////////
{
//////////////////////////////////////
ifstream in;
ofstream out;
//////////////////////////////////////
int yygetchar(){
char ch;
ch = in.get();
if (!ch )return -1;
else return ch;
}
//////////////////////////////////////
void lexical_error(char* text) {
cout << "\n" << text << " at line no: " << yylineno << ", Unknown character " << yytext[0] << "\n";
}
/////////////////////////////////////
}
///////////////////// Constructor /////////////////////
{
in.open("in.txt");
out.open("out.txt");
}
///////////////////// Destructor /////////////////////
{
in.close();
out.close();
}
////////////////////////////////////////////////////////////////////////////////////////////////
delim [ \t\n]
ws {delim}+
op [\+\-\*\/%!=;,\[\]\{\}\(\)]
id [A-Za-z][A-Za-z0-9]*
num [0-9]+
////////////////////////////////////////////////////////////////////////////////////////////////
%%
{ws} {
int i;
for (i = 0; i <strlen(yytext); i++) if (yytext[i] == '\n') line++;
}
{op} {return(yytext[0]);}
"<" {return (LT); }
"<=" {return (LE); }
">" {return (GT); }
">=" {return (GE); }
"==" {return (EQ); }
"!=" {return (NE); }
"if" {return(IF);}
"else" {return(ELSE);}
"switch" {return(SWITCH);}
"case" {return(CASE);}
"while" {return(WHILE);}
"do" {return(DO);}
"for" {return(FOR);}
"continue" {return(CONTINUE);}
"brerak" {return(BREAK);}
"return" {return(RETURN);}
"default" {return(DEFAULT);}
"float" {return(FLOAT);}
"int" {return(INT);}
"void" {return(VOID);}
"++" {return(INC_OP);}
"--" {return(DEC_OP);}
"&&" {return(AND);}
"||" {return(OR);}
"char" {return(CHAR);}
{num} {return(NUM);}
{id} {return(ID);}
. {
lexical_error("Lexical error");
return(ERROR);
}
%%
/////////////////////////////////////////////////////////////////////////////
// programs section
این پروزه ی lexش هست ولی مال تموم گرامرش نیست در واقع مال قسمتی از زبانش هست.
اگه اطلاعات بیشتری بهم بدی شاید بتونم بیشتر کمکت کنم.
سلام
ممنون كه راهنماييم كردين.
من ميخوام bnf زبان c رو بنويسم
براي اين كار به token هاش احتياج دارم
سلام
ممنون كه راهنماييم كردين.
من ميخوام bnf زبان c رو بنويسم
براي اين كار به token هاش احتياج دارم
در
سلام
من ميخوام bnf گرامر زبان c رو بنويسم
احتياج دارم به اصل گرامر زبان.
مثل اينا
type-qualifier: ("const" | "volatile")
assignment-expression: (
unary-expression (
"=" | "*=" | "/=" | "%=" | "+=" | "-=" | "<<=" | ">>=" | "&=" |
"^=" | "|="
)
)* conditional-expression
سلام من به یک گرامر ساده به زبان c احتیاج دارم , داخل سایت های مختلف چیزی پیدا نکردم , فقط یک نمونه است که خیلی گنگه , ممنون میشم کمکم کنید.