aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/java/com/sun/gluegen/cgram/GnuCParser.g1
-rw-r--r--src/java/com/sun/gluegen/cgram/HeaderParser.g1
-rw-r--r--src/java/com/sun/gluegen/pcpp/PCPP.java21
3 files changed, 23 insertions, 0 deletions
diff --git a/src/java/com/sun/gluegen/cgram/GnuCParser.g b/src/java/com/sun/gluegen/cgram/GnuCParser.g
index c90e011..e087a5c 100644
--- a/src/java/com/sun/gluegen/cgram/GnuCParser.g
+++ b/src/java/com/sun/gluegen/cgram/GnuCParser.g
@@ -308,6 +308,7 @@ typeSpecifier [int specCount] returns [int retSpecCount]
| "char"
| "short"
| "int"
+ | "__int32"
| "__int64"
| "long"
| "float"
diff --git a/src/java/com/sun/gluegen/cgram/HeaderParser.g b/src/java/com/sun/gluegen/cgram/HeaderParser.g
index a9da663..abb3de4 100644
--- a/src/java/com/sun/gluegen/cgram/HeaderParser.g
+++ b/src/java/com/sun/gluegen/cgram/HeaderParser.g
@@ -462,6 +462,7 @@ typeSpecifier[int attributes] returns [Type t] {
| "short" { t = new IntType("short", SizeThunk.SHORT, unsigned, cvAttrs); }
| "int" { t = new IntType("int" , SizeThunk.INT, unsigned, cvAttrs); }
| "long" { t = new IntType("long" , SizeThunk.LONG, unsigned, cvAttrs); }
+ | "__int32" { t = new IntType("__int32", SizeThunk.INT, unsigned, cvAttrs); }
| "__int64" { t = new IntType("__int64", SizeThunk.INT64, unsigned, cvAttrs); }
| "float" { t = new FloatType("float", SizeThunk.FLOAT, cvAttrs); }
| "double" { t = new DoubleType("double", SizeThunk.DOUBLE, cvAttrs); }
diff --git a/src/java/com/sun/gluegen/pcpp/PCPP.java b/src/java/com/sun/gluegen/pcpp/PCPP.java
index 3978e18..4a98542 100644
--- a/src/java/com/sun/gluegen/pcpp/PCPP.java
+++ b/src/java/com/sun/gluegen/pcpp/PCPP.java
@@ -651,6 +651,27 @@ public class PCPP {
ifValue = ifValue || rhs;
}
break;
+ case '>':
+ {
+ // NOTE: we don't handle expressions like this properly
+ boolean rhs = handleIfRecursive(true);
+ ifValue = false;
+ }
+ break;
+ case '<':
+ {
+ // NOTE: we don't handle expressions like this properly
+ boolean rhs = handleIfRecursive(true);
+ ifValue = false;
+ }
+ break;
+ case '=':
+ {
+ // NOTE: we don't handle expressions like this properly
+ boolean rhs = handleIfRecursive(true);
+ ifValue = false;
+ }
+ break;
case StreamTokenizer.TT_WORD:
{
String word = curTokenAsString();