From 1abb89ff21b509e94c0c1204d2b361a0c886cc07 Mon Sep 17 00:00:00 2001 From: Walter Hennecke Date: Tue, 4 Dec 2012 15:14:40 +0100 Subject: [PATCH] Minor changes to the lua function definitions lexer --- code/tools/luaDefParser/export_lyx.c | 82 ++++++++++++++++++++++++++++ code/tools/luaDefParser/export_lyx.h | 51 +++++++++++++++++ code/tools/luaDefParser/luadef.l | 50 ++++++++--------- 3 files changed, 158 insertions(+), 25 deletions(-) create mode 100644 code/tools/luaDefParser/export_lyx.c create mode 100644 code/tools/luaDefParser/export_lyx.h diff --git a/code/tools/luaDefParser/export_lyx.c b/code/tools/luaDefParser/export_lyx.c new file mode 100644 index 0000000..6c79781 --- /dev/null +++ b/code/tools/luaDefParser/export_lyx.c @@ -0,0 +1,82 @@ +#include "export_lyx.h" + +#include + +function_p create_function(void) { + function_p n = (function_p)malloc(sizeof(function_s)); + + if(n == NULL) return NULL; + + n->desc = create_list(); + if(n->desc == NULL) { + free(n); + return NULL; + } + + n->params = create_list(); + if(n->params == NULL) { + destroy_list(n->desc); + free(n); + return NULL; + } + + return n; +} + +void destroy_function(function_p f) { + if(f != NULL) { + if(f->desc != NULL) { + destroy_list(f->desc); + } + if(f->params != NULL) { + destroy_list(f->params); + } + free(f); + } +} + + +desc_p create_desc(void) { + desc_p n = (desc_p)malloc(sizeof(desc_s)); + + if(n == NULL) return NULL; + + return n; +} + +void destroy_desc(desc_p d) { + if(d != NULL) { + if(d->text != NULL) { + free(d->text); + } + + free(d); + } +} + +param_p create_param(void) { + param_p n = (param_p)malloc(sizeof(param_s)); + + if(n == NULL) return NULL; + + n->desc = create_list(); + if(n->desc == NULL) { + free(n); + return NULL; + } + + return n; +} + +void destroy_param(param_p p) { + if (p != NULL) { + if(p->name != NULL) { + free(p->name); + } + if(p->desc != NULL) { + destroy_list(p->desc); + } + + free(p); + } +} diff --git a/code/tools/luaDefParser/export_lyx.h b/code/tools/luaDefParser/export_lyx.h new file mode 100644 index 0000000..c38b6f9 --- /dev/null +++ b/code/tools/luaDefParser/export_lyx.h @@ -0,0 +1,51 @@ +#ifndef EXPORT_LYX_H_ +#define EXPORT_LYX_H_ + +#include "../../game/list.h" + +typedef struct function_s* function_p; +struct function_s { + char* name; + list_p desc; + list_p params; +} function_s; +function_p create_function(void); +void destroy_function(function_p f); + +typedef struct desc_s* desc_p; +struct desc_s { + char* text; +} desc_s; +desc_p create_desc(void); +void destroy_desc(desc_p d); + +typedef enum { FLOAT, ENTITY, VECTOR } pType; + +typedef struct param_s* param_p; +struct param_s { + pType type; + char* name; + list_p desc; +} param_s; +param_p create_param(void); +void destroy_param(param_p p); + +void write_function(function_p f); +void write_desc(list_p d); +void write_param(param_p p); + +#define BEGIN_SECTION "\\begin_layout Section" +#define BEGIN_SUBSECTION "\\begin_layout Subsection" +#define BEGIN_STANDART "\\begin_layout Standart" +#define END_LAYOUT "\\ent_layout + +#define BEGIN_TABULAR "\ +\\begin_layout Standard\ +\\begin_inset Tabular\ +\ +\ +\ +\ +" + +#endif diff --git a/code/tools/luaDefParser/luadef.l b/code/tools/luaDefParser/luadef.l index 755e470..0b1cada 100644 --- a/code/tools/luaDefParser/luadef.l +++ b/code/tools/luaDefParser/luadef.l @@ -19,46 +19,46 @@ FUNCTEXT [a-zA-z0-9.(), \t]+ STRING [a-zA-z0-9.(), \t\n!?<>/\\\[\]\{\}]+ VAR [a-zA-Z0-9]+ %% -"/*" { BEGIN(C_COMMENT); puts("Found a comment"); } +"/*" { BEGIN(C_COMMENT); puts("Found a comment"); } "*/" { BEGIN(INITIAL); puts("End of comment"); } [ \t\n*] ; -"luamodule" { BEGIN(C_MODULE); puts("Found a luamodule"); } -"\\function" { BEGIN(C_FUNCTION); puts("Found a \\function"); } +"luamodule" { BEGIN(C_MODULE); puts("Found a luamodule"); } +"\\function" { BEGIN(C_FUNCTION); puts("Found a \\function"); } "\\desc" { BEGIN(C_DESC); puts("Found a \\desc"); } -"\\param" { BEGIN(C_PARAM); puts("Found a \\param"); } +"\\param" { BEGIN(C_PARAM); puts("Found a \\param"); } [ \t\n]* ; . ; [ \t\n] ; -{VAR} { BEGIN(C_COMMENT); printf("module name: %s\n", yytext); } -. ; +{VAR} { BEGIN(C_COMMENT); printf("module name: %s\n", yytext); } +. ; -";" { BEGIN(C_COMMENT); puts("End of function"); } -{FUNCTEXT} { printf("function text: %s\n", yytext); } +";" { BEGIN(C_COMMENT); puts("End of function"); } +{FUNCTEXT} { printf("function text: %s\n", yytext); } . ; -";" { BEGIN(C_COMMENT); puts("End of desc"); } -"\"" { BEGIN(C_STRING); lastState = C_DESC; puts("Found a String"); } -[.\n]+ { printf("desc text: %s\n", yytext); } -. ; +";" { BEGIN(C_COMMENT); puts("End of desc"); } +"\"" { BEGIN(C_STRING); lastState = C_DESC; puts("Found a String"); } +[.\n]+ { printf("desc text: %s\n", yytext); } +. ; -";" { BEGIN(C_COMMENT); puts("End of param"); } +";" { BEGIN(C_COMMENT); puts("End of param"); } "\"" { BEGIN(C_STRING); lastState = C_PARAM; puts("Found a string"); } [ \t] ; -"float" { printf("foud type: %s\n", yytext); } -"vec" { printf("foud type: %s\n", yytext); } -"vector" { printf("foud type: %s\n", yytext); } -"ent" { printf("foud type: %s\n", yytext); } -"entity" { printf("foud type: %s\n", yytext); } -{VAR} { printf("foud name: %s\n", yytext); } -. ; +"float" { printf("foud type: %s\n", yytext); } +"vec" { printf("foud type: %s\n", yytext); } +"vector" { printf("foud type: %s\n", yytext); } +"ent" { printf("foud type: %s\n", yytext); } +"entity" { printf("foud type: %s\n", yytext); } +{VAR} { printf("foud name: %s\n", yytext); } +. ; -"\"" { BEGIN(lastState); puts("End of String"); } -{STRING} { printf("string text: %s\n", yytext); } -. ; +"\"" { BEGIN(lastState); puts("End of String"); } +{STRING} { printf("string text: %s\n", yytext); } +. ; -"\n" ; -. ; +"\n" ; +. ; %% main(int argc, char *argv[]) {