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 );
|