Author: julianalbo
Date: Wed Dec 3 04:40:02 2008
New Revision: 33453
Modified:
trunk/compilers/imcc/imcc.l
trunk/compilers/imcc/imclexer.c
Log:
[imcc] fix c++ build
Modified: trunk/compilers/imcc/imcc.l
==============================================================================
--- trunk/compilers/imcc/imcc.l (original)
+++ trunk/compilers/imcc/imcc.l Wed Dec 3 04:40:02 2008
@@ -1065,6 +1065,8 @@
define_macro(PARROT_INTERP, ARGIN(const char *name), ARGIN(const params_t
*params),
ARGIN(const char *expansion), int start_line)
{
+ DECL_CONST_CAST;
+
macro_t *m = find_macro(interp, name);
if (m) {
@@ -1076,7 +1078,8 @@
if (!IMCC_INFO(interp)->macros)
parrot_new_cstring_hash(interp, &IMCC_INFO(interp)->macros);
- parrot_hash_put(interp, IMCC_INFO(interp)->macros, name, m);
+ parrot_hash_put(interp, IMCC_INFO(interp)->macros,
+ PARROT_const_cast(char *, name), m);
}
if (params)
Modified: trunk/compilers/imcc/imclexer.c
==============================================================================
--- trunk/compilers/imcc/imclexer.c (original)
+++ trunk/compilers/imcc/imclexer.c Wed Dec 3 04:40:02 2008
@@ -30,7 +30,7 @@
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 35
+#define YY_FLEX_SUBMINOR_VERSION 34
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
@@ -75,6 +75,7 @@
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -105,8 +106,6 @@
#define UINT32_MAX (4294967295U)
#endif
-#endif /* ! C99 */
-
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -214,6 +213,13 @@
#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
+/* The following is because we cannot portably get our hands on size_t
+ * (without autoconf's help, which isn't available because we want
+ * flex-generated scanners to compile on their own).
+ * Given that the standard has decreed that size_t exists since 1989,
+ * I guess we can afford to depend on it. Manoj.
+ */
+
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
@@ -2583,7 +2589,7 @@
-#line 2587 "compilers/imcc/imclexer.c"
+#line 2593 "compilers/imcc/imclexer.c"
#define INITIAL 0
#define emit 1
@@ -2726,7 +2732,7 @@
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -2737,7 +2743,7 @@
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- size_t n; \
+ int n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -2842,7 +2848,7 @@
return 0;
}
-#line 2846 "compilers/imcc/imclexer.c"
+#line 2852 "compilers/imcc/imclexer.c"
if ( !yyg->yy_init )
{
@@ -4033,7 +4039,7 @@
#line 724 "compilers/imcc/imcc.l"
ECHO;
YY_BREAK
-#line 4037 "compilers/imcc/imclexer.c"
+#line 4043 "compilers/imcc/imclexer.c"
case YY_STATE_EOF(pod):
case YY_STATE_EOF(cmt1):
case YY_STATE_EOF(cmt2):
@@ -5581,6 +5587,8 @@
define_macro(PARROT_INTERP, ARGIN(const char *name), ARGIN(const params_t
*params),
ARGIN(const char *expansion), int start_line)
{
+ DECL_CONST_CAST;
+
macro_t *m = find_macro(interp, name);
if (m) {
@@ -5592,7 +5600,8 @@
if (!IMCC_INFO(interp)->macros)
parrot_new_cstring_hash(interp, &IMCC_INFO(interp)->macros);
- parrot_hash_put(interp, IMCC_INFO(interp)->macros, name, m);
+ parrot_hash_put(interp, IMCC_INFO(interp)->macros,
+ PARROT_const_cast(char *, name), m);
}
if (params)