From: Viktor M. <mih...@us...> - 2005-06-14 15:08:39
|
Update of /cvsroot/sblim/mofc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17484 Modified Files: ChangeLog NEWS mofc.y mofs.l symtab.c symtab.h Log Message: Bug fixed: 1220394 - Coredump on char16 literals. Index: symtab.h =================================================================== RCS file: /cvsroot/sblim/mofc/symtab.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- symtab.h 3 Mar 2005 09:08:48 -0000 1.1.1.1 +++ symtab.h 14 Jun 2005 15:08:28 -0000 1.2 @@ -142,6 +142,7 @@ value_chain * make_value_list(const char * value); void value_list_add(value_chain * val_ch1, const char * val); char * make_string(const char * string); +char * make_char(const char * string); char * append_string(char * string1, const char * string2); prop_or_method_list * make_pom_list(qual_chain * qu_ch, type_type typeid, Index: mofc.y =================================================================== RCS file: /cvsroot/sblim/mofc/mofc.y,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- mofc.y 3 Mar 2005 09:08:48 -0000 1.1.1.1 +++ mofc.y 14 Jun 2005 15:08:28 -0000 1.2 @@ -70,6 +70,7 @@ %token <lval_literal> IntLiteral %token <lval_literal> FloatLiteral %token <lval_literal> StringLiteral +%token <lval_literal> CharLiteral %token <lval_literal> BoolLiteral %token <lval_literal> NullLiteral %token AS @@ -279,6 +280,7 @@ base_literal : IntLiteral | FloatLiteral + | CharLiteral {$$=make_char($1);} | string_literal_list | BoolLiteral | NullLiteral Index: mofs.l =================================================================== RCS file: /cvsroot/sblim/mofc/mofs.l,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- mofs.l 3 Mar 2005 09:08:48 -0000 1.1.1.1 +++ mofs.l 14 Jun 2005 15:08:28 -0000 1.2 @@ -151,7 +151,7 @@ #if ! defined SCANDEBUG yylval.lval_literal = strdup(yytext); #endif - return token(StringLiteral); + return token(CharLiteral); } {punctuation}|"["|"]" { Index: ChangeLog =================================================================== RCS file: /cvsroot/sblim/mofc/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ChangeLog 14 Jun 2005 09:01:40 -0000 1.3 +++ ChangeLog 14 Jun 2005 15:08:28 -0000 1.4 @@ -1,3 +1,13 @@ +2005-06-14 <mih...@dy...> + + * mofc.y: + * mofc.l: + Bug 1220394: Syntax Support for char literals. + + * symtab.c: + * symtab.h: + Bug 1220394: Helper functions for char literal extraction added. + 2005-06-13 <schuur@localhost.localdomain> * backend_sfcb.c: Index: NEWS =================================================================== RCS file: /cvsroot/sblim/mofc/NEWS,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- NEWS 14 Jun 2005 09:01:40 -0000 1.3 +++ NEWS 14 Jun 2005 15:08:28 -0000 1.4 @@ -1,3 +1,9 @@ +Changes in 0.7.3 +================ + +Bugs fixed: +- 1220394: Coredump on char literals. + Changes in 0.7.2 ================ Index: symtab.c =================================================================== RCS file: /cvsroot/sblim/mofc/symtab.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- symtab.c 3 Mar 2005 09:08:48 -0000 1.1.1.1 +++ symtab.c 14 Jun 2005 15:08:28 -0000 1.2 @@ -324,6 +324,16 @@ return dups; } +char * make_char(const char * string) +{ + char * dups; + char *strstart = strchr(string,'\''); + char *strend = strrchr(string,'\''); + dups = calloc( strend - strstart, 1 ); + strncpy(dups,strstart + 1,strend-strstart - 1); + return dups; +} + char * append_string(char * string1, const char * string2) { char * newstring = malloc ( strlen( string1 ) + strlen( string2 ) + 1 ); |