summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-11-04 00:42:37 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-11-04 00:42:37 +0000
commit3a3a92379caceb0299b203f56df2981771ec3d8d (patch)
tree9bfe9b0a425cd96924cc8bca5c3736ba3685d408
parentb74c3ce9b719f1b325370d067ad44fa2404a23c3 (diff)
downloadATCD-3a3a92379caceb0299b203f56df2981771ec3d8d.tar.gz
ChangeLogTag: Mon Nov 3 18:40:31 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog12
-rw-r--r--TAO/TAO_IDL/be/be_codegen.cpp8
-rw-r--r--TAO/TAO_IDL/fe/idl.ll222
-rw-r--r--TAO/TAO_IDL/fe/lex.yy.cpp201
4 files changed, 282 insertions, 161 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 948e4f47d1c..105e07d0ad9 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,15 @@
+Mon Nov 3 18:40:31 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/be/be_codegen.cpp:
+
+ Added generation of include of ace/OS_NS_String.h if any
+ kind of interface is seen in the IDL file.
+
+ * TAO_IDL/fe/idl.ll:
+ * TAO_IDL/fe/lex.yy.cpp:
+
+ Cosmetic changes to source code.
+
Mon Nov 3 04:43:43 UTC 2003 Don Hinton <dhinton@dresystems.com>
* Makefile:
diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp
index 904e937e591..1116ceb5440 100644
--- a/TAO/TAO_IDL/be/be_codegen.cpp
+++ b/TAO/TAO_IDL/be/be_codegen.cpp
@@ -1476,6 +1476,14 @@ TAO_CodeGen::gen_stub_src_includes (void)
// Includes whatever arg helper template classes that may be needed.
this->gen_arg_file_includes (this->client_stubs_);
+ if (ACE_BIT_ENABLED (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.interface_seen_))
+ {
+ // Needed for _narrow(), which is now template-based.
+ this->gen_standard_include (this->client_stubs_,
+ "ace/OS_NS_String.h");
+ }
+
if (be_global->gen_amh_classes () == I_TRUE)
{
*this->client_stubs_ << be_nl;
diff --git a/TAO/TAO_IDL/fe/idl.ll b/TAO/TAO_IDL/fe/idl.ll
index ff3b398be11..7e6c7b79e3c 100644
--- a/TAO/TAO_IDL/fe/idl.ll
+++ b/TAO/TAO_IDL/fe/idl.ll
@@ -667,25 +667,39 @@ idl_store_pragma (char *buf)
static long
idl_atoi(char *s, long b)
{
- long r = 0;
- s++;
-
- if (b == 8 && *s == '0')
- s++;
- else if (b == 16 && *s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X'))
- s += 2;
-
- for (; *s; s++)
- if (*s <= '9' && *s >= '0')
- r = (r * b) + (*s - '0');
- else if (b > 10 && *s <= 'f' && *s >= 'a')
- r = (r * b) + (*s - 'a' + 10);
- else if (b > 10 && *s <= 'F' && *s >= 'A')
- r = (r * b) + (*s - 'A' + 10);
- else
- break;
-
- return -r;
+ long r = 0;
+ s++;
+
+ if (b == 8 && *s == '0')
+ {
+ s++;
+ }
+ else if (b == 16 && *s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X'))
+ {
+ s += 2;
+ }
+
+ for (; *s; ++s)
+ {
+ if (*s <= '9' && *s >= '0')
+ {
+ r = (r * b) + (*s - '0');
+ }
+ else if (b > 10 && *s <= 'f' && *s >= 'a')
+ {
+ r = (r * b) + (*s - 'a' + 10);
+ }
+ else if (b > 10 && *s <= 'F' && *s >= 'A')
+ {
+ r = (r * b) + (*s - 'A' + 10);
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ return -r;
}
/*
@@ -694,82 +708,118 @@ idl_atoi(char *s, long b)
static ACE_UINT64
idl_atoui(char *s, long b)
{
- ACE_UINT64 r = 0;
-
- if (b == 8 && *s == '0')
- s++;
- else if (b == 16 && *s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X'))
- s += 2;
-
- for (; *s; s++)
- if (*s <= '9' && *s >= '0')
- r = (r * b) + (*s - '0');
- else if (b > 10 && *s <= 'f' && *s >= 'a')
- r = (r * b) + (*s - 'a' + 10);
- else if (b > 10 && *s <= 'F' && *s >= 'A')
- r = (r * b) + (*s - 'A' + 10);
- else
- break;
-
- return r;
+ ACE_UINT64 r = 0;
+
+ if (b == 8 && *s == '0')
+ {
+ s++;
+ }
+ else if (b == 16 && *s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X'))
+ {
+ s += 2;
+ }
+
+ for (; *s; ++s)
+ {
+ if (*s <= '9' && *s >= '0')
+ {
+ r = (r * b) + (*s - '0');
+ }
+ else if (b > 10 && *s <= 'f' && *s >= 'a')
+ {
+ r = (r * b) + (*s - 'a' + 10);
+ }
+ else if (b > 10 && *s <= 'F' && *s >= 'A')
+ {
+ r = (r * b) + (*s - 'A' + 10);
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ return r;
}
/*
* Convert a string to a float; atof doesn't seem to work, always.
*/
static double
-idl_atof(char *s)
+idl_atof (char *s)
{
- char *h = s;
- double d = 0.0;
- double f = 0.0;
- double e, k;
- long neg = 0, negexp = 0;
-
- ACE_UNUSED_ARG (f);
- ACE_UNUSED_ARG (h);
-
- if (*s == '-') {
- neg = 1;
- s++;
- }
- while (*s >= '0' && *s <= '9') {
- d = (d * 10) + *s - '0';
- s++;
- }
- if (*s == '.') {
- s++;
- e = 10;
- while (*s >= '0' && *s <= '9') {
- d += (*s - '0') / (e * 1.0);
- e *= 10;
- s++;
- }
- }
- if (*s == 'e' || *s == 'E') {
- s++;
- if (*s == '-') {
- negexp = 1;
- s++;
- } else if (*s == '+')
- s++;
- e = 0;
- while (*s >= '0' && *s <= '9') {
- e = (e * 10) + *s - '0';
- s++;
- }
- if (e > 0) {
- for (k = 1; e > 0; k *= 10, e--);
- if (negexp)
- d /= k;
- else
- d *= k;
- }
- }
+ double d = 0.0;
+ double e, k;
+ long neg = 0, negexp = 0;
+
+ if (*s == '-')
+ {
+ neg = 1;
+ s++;
+ }
+
+ while (*s >= '0' && *s <= '9')
+ {
+ d = (d * 10) + *s - '0';
+ s++;
+ }
+
+ if (*s == '.')
+ {
+ s++;
+ e = 10;
+
+ while (*s >= '0' && *s <= '9')
+ {
+ d += (*s - '0') / (e * 1.0);
+ e *= 10;
+ s++;
+ }
+ }
+
+ if (*s == 'e' || *s == 'E')
+ {
+ s++;
+
+ if (*s == '-')
+ {
+ negexp = 1;
+ s++;
+ }
+ else if (*s == '+')
+ {
+ s++;
+ }
+
+ e = 0;
+
+ while (*s >= '0' && *s <= '9')
+ {
+ e = (e * 10) + *s - '0';
+ s++;
+ }
- if (neg) d *= -1.0;
+ if (e > 0)
+ {
+ for (k = 1; e > 0; k *= 10, e--);
- return d;
+ if (negexp)
+ {
+ d /= k;
+ }
+ else
+ {
+ d *= k;
+ }
+ }
+ }
+
+ if (neg)
+ {
+ d *= -1.0;
+ }
+
+ return d;
}
/*
diff --git a/TAO/TAO_IDL/fe/lex.yy.cpp b/TAO/TAO_IDL/fe/lex.yy.cpp
index 5cbba1041ea..19dc4c5f20f 100644
--- a/TAO/TAO_IDL/fe/lex.yy.cpp
+++ b/TAO/TAO_IDL/fe/lex.yy.cpp
@@ -2860,25 +2860,39 @@ idl_store_pragma (char *buf)
static long
idl_atoi(char *s, long b)
{
- long r = 0;
- s++;
+ long r = 0;
+ s++;
- if (b == 8 && *s == '0')
- s++;
- else if (b == 16 && *s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X'))
- s += 2;
-
- for (; *s; s++)
- if (*s <= '9' && *s >= '0')
- r = (r * b) + (*s - '0');
- else if (b > 10 && *s <= 'f' && *s >= 'a')
- r = (r * b) + (*s - 'a' + 10);
- else if (b > 10 && *s <= 'F' && *s >= 'A')
- r = (r * b) + (*s - 'A' + 10);
- else
- break;
+ if (b == 8 && *s == '0')
+ {
+ s++;
+ }
+ else if (b == 16 && *s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X'))
+ {
+ s += 2;
+ }
+
+ for (; *s; ++s)
+ {
+ if (*s <= '9' && *s >= '0')
+ {
+ r = (r * b) + (*s - '0');
+ }
+ else if (b > 10 && *s <= 'f' && *s >= 'a')
+ {
+ r = (r * b) + (*s - 'a' + 10);
+ }
+ else if (b > 10 && *s <= 'F' && *s >= 'A')
+ {
+ r = (r * b) + (*s - 'A' + 10);
+ }
+ else
+ {
+ break;
+ }
+ }
- return -r;
+ return -r;
}
/*
@@ -2887,82 +2901,118 @@ idl_atoi(char *s, long b)
static ACE_UINT64
idl_atoui(char *s, long b)
{
- ACE_UINT64 r = 0;
+ ACE_UINT64 r = 0;
- if (b == 8 && *s == '0')
- s++;
- else if (b == 16 && *s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X'))
- s += 2;
-
- for (; *s; s++)
- if (*s <= '9' && *s >= '0')
- r = (r * b) + (*s - '0');
- else if (b > 10 && *s <= 'f' && *s >= 'a')
- r = (r * b) + (*s - 'a' + 10);
- else if (b > 10 && *s <= 'F' && *s >= 'A')
- r = (r * b) + (*s - 'A' + 10);
- else
- break;
+ if (b == 8 && *s == '0')
+ {
+ s++;
+ }
+ else if (b == 16 && *s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X'))
+ {
+ s += 2;
+ }
+
+ for (; *s; ++s)
+ {
+ if (*s <= '9' && *s >= '0')
+ {
+ r = (r * b) + (*s - '0');
+ }
+ else if (b > 10 && *s <= 'f' && *s >= 'a')
+ {
+ r = (r * b) + (*s - 'a' + 10);
+ }
+ else if (b > 10 && *s <= 'F' && *s >= 'A')
+ {
+ r = (r * b) + (*s - 'A' + 10);
+ }
+ else
+ {
+ break;
+ }
+ }
- return r;
+ return r;
}
/*
* Convert a string to a float; atof doesn't seem to work, always.
*/
static double
-idl_atof(char *s)
+idl_atof (char *s)
{
- char *h = s;
- double d = 0.0;
- double f = 0.0;
- double e, k;
- long neg = 0, negexp = 0;
+ double d = 0.0;
+ double e, k;
+ long neg = 0, negexp = 0;
- ACE_UNUSED_ARG (f);
- ACE_UNUSED_ARG (h);
+ if (*s == '-')
+ {
+ neg = 1;
+ s++;
+ }
+
+ while (*s >= '0' && *s <= '9')
+ {
+ d = (d * 10) + *s - '0';
+ s++;
+ }
- if (*s == '-') {
- neg = 1;
+ if (*s == '.')
+ {
+ s++;
+ e = 10;
+
+ while (*s >= '0' && *s <= '9')
+ {
+ d += (*s - '0') / (e * 1.0);
+ e *= 10;
s++;
}
- while (*s >= '0' && *s <= '9') {
- d = (d * 10) + *s - '0';
- s++;
+ }
+
+ if (*s == 'e' || *s == 'E')
+ {
+ s++;
+
+ if (*s == '-')
+ {
+ negexp = 1;
+ s++;
+ }
+ else if (*s == '+')
+ {
+ s++;
}
- if (*s == '.') {
- s++;
- e = 10;
- while (*s >= '0' && *s <= '9') {
- d += (*s - '0') / (e * 1.0);
- e *= 10;
- s++;
- }
+
+ e = 0;
+
+ while (*s >= '0' && *s <= '9')
+ {
+ e = (e * 10) + *s - '0';
+ s++;
}
- if (*s == 'e' || *s == 'E') {
- s++;
- if (*s == '-') {
- negexp = 1;
- s++;
- } else if (*s == '+')
- s++;
- e = 0;
- while (*s >= '0' && *s <= '9') {
- e = (e * 10) + *s - '0';
- s++;
- }
- if (e > 0) {
- for (k = 1; e > 0; k *= 10, e--);
- if (negexp)
- d /= k;
- else
- d *= k;
- }
+
+ if (e > 0)
+ {
+ for (k = 1; e > 0; k *= 10, e--);
+
+ if (negexp)
+ {
+ d /= k;
+ }
+ else
+ {
+ d *= k;
+ }
}
+ }
- if (neg) d *= -1.0;
+ if (neg)
+ {
+ d *= -1.0;
+ }
- return d;
+ return d;
}
/*
@@ -3060,6 +3110,7 @@ idl_wchar_escape_reader (char *str)
{
continue;
}
+
char save = str[i];
str[i] = '\0';
ACE_CDR::WChar out = (ACE_CDR::WChar) idl_atoui (&str[2], 16);