diff options
-rw-r--r-- | src/java/com/sun/gluegen/cgram/GnuCParser.g | 1 | ||||
-rw-r--r-- | src/java/com/sun/gluegen/cgram/HeaderParser.g | 1 | ||||
-rw-r--r-- | src/java/com/sun/gluegen/pcpp/PCPP.java | 21 |
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(); |