From a881bec0778c8b64da3b2bed824aca60dc369ca9 Mon Sep 17 00:00:00 2001 From: "silveira.kaue" Date: Tue, 20 Apr 2010 16:43:57 -0300 Subject: [PATCH] =?utf8?q?gerando=20o=20codigo=20e=20tratando=20visibilida?= =?utf8?q?de=20dos=20m=C3=A9todos?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- cpptolua | Bin 29269 -> 69158 bytes cpptolua.l | 18 +++++--- cpptolua.y | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++--------- in.cpp | 6 +++ node.h | 25 ++++++++++- 5 files changed, 160 insertions(+), 27 deletions(-) rewrite cpptolua (81%) diff --git a/cpptolua b/cpptolua dissimilarity index 81% index d1f33eaa97c70aff52e22749671d290e6968af41..3e47eca336913a615892d6d550e0e3d196ffc47c 100755 GIT binary patch literal 69158 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 literal 29269 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 Y4cu8(OKYvAqDK4yjBWZ@lo(V08|wGmeEs = string(yytext); + //printf("passou por aqui: %s\n", s); + yylval.sv = new StringVec; + yylval.sv->vs.push_back(string(yytext)); + //yylval.n = new Node; + //yylval.n->s = string(yytext); char types[][99] = {"public", "private", "protected", ""}; int i; for(i = 0; types[i][0]; i++) { if(!strcmp(types[i], s)) { + if(i == 0) { //public index on types vector + member_scope_public = true; + } else { + member_scope_public = false; + } return VISIBILITY; } } diff --git a/cpptolua.y b/cpptolua.y index e2df12d..9d5ecc7 100644 --- a/cpptolua.y +++ b/cpptolua.y @@ -5,13 +5,18 @@ #include #include #include +#include #include "node.h" +using namespace std; #define YY_(x) (char *) (x) int yylex(void); void yyerror(char *); +/* if the member has public scope */ +bool member_scope_public = false; + %} @@ -19,53 +24,147 @@ void yyerror(char *); %union { char *s; struct sNode *n; + struct sStringVec *sv; + struct sStringVecVec *svv; + struct sIdf *i; }; -%token IDF +%token IDF %token CLASS VISIBILITY -%type idf_list idf_comma_list idf_comma_list_opt idf_list_opt +%type idf_list idf_list_opt +%type idf_comma_list idf_comma_list_opt +%type function +%type class_body %% +//problemas: herdar metodos de outras classes.... +// nao deve pegar metodos private ou protected.... program: - CLASS IDF hierarchy_opt '{' class_body '}' ';' { printf("ClassName: %s\n",$2->s.c_str()); } + CLASS IDF hierarchy_opt '{' class_body '}' ';' + { + printf("ClassName: %s\n", $2->vs[0].c_str()); + string className = $2->vs[0].c_str(); + for(int i=0; i<$5->vi.size(); i++) + { + string type = $5->vi[i].type; + string fooName = $5->vi[i].name; + if(type == "Constructor" + || fooName == "" /*caso seja um enum*/ + || fooName.find("operator") != string::npos /*caso seja um operator*/ + || !$5->vi[i].isPublic /* caso nao seja publico */) + continue; + //problema: quando o método tiver a palavra operator e nao for um operatorX() + // ele vai ignorar.... + + printf("int %s_%s(lua_State* L) {\n", className.c_str(), fooName.c_str()); + printf("\t%s *c = (%s*) lua_touserdata(L, 1);\n", className.c_str(), className.c_str()); + for(int j=0; j<$5->vi[i].param.size(); j++) + { + string paramType = $5->vi[i].param[j].type; + string paramName = $5->vi[i].param[j].name; + if(paramType=="int" || paramType=="float" || paramType=="double") + printf("\t%s %s = luaL_checknumber(L, %d);\n", paramType.c_str(), paramName.c_str(), j+2); + } + + printf("\t"); + if(type == "boolean") + printf("lua_pushboolean(L, "); + else if(type == "char*") + printf("lua_pushstring(L, "); + else //if(type == "double" || type == "int" || type == "float") + printf("lua_pushnumber(L, "); + //problema: enums devem ser tratados com pushnumber mas classes definidas pelo usuário + //devem ser tratadas com pushlightuserdata. Como fazer???? + + printf("c->%s(", fooName.c_str()); + for(int j=0; j<$5->vi[i].param.size(); j++) + { + if(j>0) printf(", "); + printf("%s", $5->vi[i].param[j].name.c_str()); + } + printf(")"); + + if(type != "void") printf(");\n"); + else printf(";\n"); + + printf("}\n\n"); + /* + printf("%s: %s %s( ", $2->vs[0].c_str(), $5->vi[i].type.c_str(), $5->vi[i].name.c_str()); + for(int j=0; j<$5->vi[i].param.size(); j++) + printf("%s %s ", $5->vi[i].param[j].type.c_str(), $5->vi[i].param[j].name.c_str()); + printf(")\n"); + */ + } + } ; class_body: - VISIBILITY ':' class_body - | function class_body - | idf_comma_list ';' class_body - | /* empty */ + VISIBILITY ':' class_body { $$ = $3; } + | function class_body { $$ = $2; $$->vi.push_back(*$1); } + | idf_comma_list ';' class_body { $$ = $3; } + | /* empty */ { $$ = new Node; } ; hierarchy_opt: - ':' VISIBILITY idf_comma_list + ':' VISIBILITY idf_comma_list | /* empty */ ; idf_comma_list_opt: - idf_comma_list - | /* empty */ { $$ = new Node; $$->s = ""; } + idf_comma_list { $$ = $1; } + | /* empty */ { $$ = new StringVecVec; } ; idf_comma_list: - idf_list - | idf_comma_list ',' idf_list { $$ = new Node; $$->s = $1->s + ", " + $3->s; } + idf_list { $$ = new StringVecVec; $$->vvs.push_back($1->vs); } + | idf_comma_list ',' idf_list { $$ = $1; $$->vvs.push_back($3->vs); } ; idf_list_opt: - idf_list - | /* empty */ { $$ = new Node; $$->s = ""; } + idf_list { $$ = $1; } + | /* empty */ { $$ = new StringVec; } ; idf_list: - idf_list IDF { $$ = new Node; $$->s = $1->s + " " + $2->s; } - | IDF + idf_list IDF { $$ = $1; $$->vs.push_back($2->vs[0]); } + | IDF { $$ = $1; } ; function: - idf_list '(' idf_comma_list_opt ')' idf_list_opt function_body { printf("[%s](%s)[%s]\n", $1->s.c_str(), $3->s.c_str(), $5->s.c_str()); } - | idf_list '{' '}' ';'// for enum + idf_list '(' idf_comma_list_opt ')' idf_list_opt function_body + { + + $$ = new Idf; + if($1->vs.size() >= 2) //se nao for construtor/destrutor, vai ter um tipo + $$->type = $1->vs[$1->vs.size()-2]; + else + $$->type = "Constructor"; + $$->name = $1->vs[$1->vs.size()-1]; + //for(int i=0; i<$1->vs.size(); i++) + // printf("%s ", $1->vs[i].c_str()); + vector vp; + for(int i=0; i<$3->vvs.size(); i++) + { + Idf p; + p.type = $3->vvs[i][$3->vvs[i].size()-2]; + p.name = $3->vvs[i][$3->vvs[i].size()-1]; + vp.push_back(p); + } + $$->param = vp; + $$->isPublic = member_scope_public; + /* This shows what functions are in the data structure + printf("%s %s( ", $$->type.c_str(), $$->name.c_str()); + for(int i=0; i<$$->param.size(); i++) + printf("%s %s ", $$->param[i].type.c_str(), $$->param[i].name.c_str()); + printf(")\n"); + */ + //for(int i=0; i<$3->vvs.size(); i++) + // for(int j=0; j<$3->vvs[i].size(); j++) + //printf("%s ", $3->vvs[i][j].c_str()); + //printf("\n"); + } + | idf_list '{' '}' ';' { $$ = new Idf; } // for enum ; function_body: @@ -82,7 +181,7 @@ block: %% -int main(int argc, char **argv) +int main(int argc, char **argv) { yyparse(); return 0; @@ -91,4 +190,3 @@ int main(int argc, char **argv) void yyerror(char *s) { fprintf(stdout, "%s\n", s); } - diff --git a/in.cpp b/in.cpp index 6f56844..f0a04a5 100644 --- a/in.cpp +++ b/in.cpp @@ -1,8 +1,14 @@ class MinhaClass { int intF(); +public: float floatF(); +protected: int int float intInfFloatF(); +private: int intFint(int x, float f); +public: + int publicInt(int nada); + //int * intP(int * ip, float * fp); }; diff --git a/node.h b/node.h index cc86dab..fa0a922 100644 --- a/node.h +++ b/node.h @@ -2,12 +2,33 @@ #define __NODE_H__ #include +#include +#include +using namespace std; +//using std::string; -using std::string; +typedef struct sStringVec +{ + vector vs; +} StringVec; + +typedef struct sStringVecVec +{ + vector< vector > vvs; +} StringVecVec; + +typedef struct sIdf { + string type; + string name; + bool isPublic; + vector param; +} Idf; typedef struct sNode { string s; + vector vi; } Node; -#endif +extern bool member_scope_public; +#endif -- 2.11.4.GIT