diff options
Diffstat (limited to 'parser/html/java/htmlparser/translator-src')
3 files changed, 13 insertions, 1 deletions
diff --git a/parser/html/java/htmlparser/translator-src/nu/validator/htmlparser/cpptranslate/AnnotationHelperVisitor.java b/parser/html/java/htmlparser/translator-src/nu/validator/htmlparser/cpptranslate/AnnotationHelperVisitor.java index 337394a89..dc524820f 100644 --- a/parser/html/java/htmlparser/translator-src/nu/validator/htmlparser/cpptranslate/AnnotationHelperVisitor.java +++ b/parser/html/java/htmlparser/translator-src/nu/validator/htmlparser/cpptranslate/AnnotationHelperVisitor.java @@ -72,6 +72,10 @@ public class AnnotationHelperVisitor<T> extends VoidVisitorAdapter<T> { return hasAnnotation("NoLength"); } + protected boolean unsigned() { + return hasAnnotation("Unsigned"); + } + protected boolean auto() { return hasAnnotation("Auto"); } diff --git a/parser/html/java/htmlparser/translator-src/nu/validator/htmlparser/cpptranslate/CppTypes.java b/parser/html/java/htmlparser/translator-src/nu/validator/htmlparser/cpptranslate/CppTypes.java index 80216da0e..6cbba4162 100644 --- a/parser/html/java/htmlparser/translator-src/nu/validator/htmlparser/cpptranslate/CppTypes.java +++ b/parser/html/java/htmlparser/translator-src/nu/validator/htmlparser/cpptranslate/CppTypes.java @@ -192,6 +192,10 @@ public class CppTypes { return "int32_t"; } + public String unsignedIntType() { + return "uint32_t"; + } + public String stringType() { return "nsHtml5String"; } diff --git a/parser/html/java/htmlparser/translator-src/nu/validator/htmlparser/cpptranslate/CppVisitor.java b/parser/html/java/htmlparser/translator-src/nu/validator/htmlparser/cpptranslate/CppVisitor.java index f4f00070a..bf5775eb6 100644 --- a/parser/html/java/htmlparser/translator-src/nu/validator/htmlparser/cpptranslate/CppVisitor.java +++ b/parser/html/java/htmlparser/translator-src/nu/validator/htmlparser/cpptranslate/CppVisitor.java @@ -548,7 +548,11 @@ public class CppVisitor extends AnnotationHelperVisitor<LocalSymbolTable> { case Float: throw new IllegalStateException("Unsupported primitive."); case Int: - printer.print(cppTypes.intType()); + if (unsigned()) { + printer.print(cppTypes.unsignedIntType()); + } else { + printer.print(cppTypes.intType()); + } break; case Long: throw new IllegalStateException("Unsupported primitive."); |