summaryrefslogtreecommitdiffstats
path: root/WebCore/make-hash-tools.pl
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/make-hash-tools.pl')
-rw-r--r--WebCore/make-hash-tools.pl105
1 files changed, 102 insertions, 3 deletions
diff --git a/WebCore/make-hash-tools.pl b/WebCore/make-hash-tools.pl
index 8cc9952..3ad5ee9 100644
--- a/WebCore/make-hash-tools.pl
+++ b/WebCore/make-hash-tools.pl
@@ -27,24 +27,123 @@ my $outdir = $ARGV[0];
shift;
my $option = basename($ARGV[0],".gperf");
+my $hashToolsHeader = "$outdir/HashTools.h";
+
+sub createHashToolsHeader() {
+
+open HEADER, ">$hashToolsHeader" || die "Could not open $hashToolsHeader for writing";
+print HEADER << "EOF";
+/* This file is automatically generated by make-hash-tools.pl, do not edit */
+
+#ifndef HashTools_h
+#define HashTools_h
+
+#include "wtf/Platform.h"
+
+namespace WebCore {
+
+struct PubIDInfo {
+ enum eMode {
+ eQuirks,
+ eQuirks3,
+ eAlmostStandards
+ };
+
+ const char* name;
+ eMode mode_if_no_sysid;
+ eMode mode_if_sysid;
+};
+
+struct NamedColor {
+ const char* name;
+ int RGBValue;
+};
+
+struct Property {
+ const char* name;
+ int id;
+};
+
+struct Value {
+ const char* name;
+ int id;
+};
+
+const PubIDInfo* findDoctypeEntry(register const char* str, register unsigned int len);
+const NamedColor* findColor(register const char* str, register unsigned int len);
+const Property* findProperty(register const char* str, register unsigned int len);
+const Value* findValue(register const char* str, register unsigned int len);
+}
+
+#endif // HashTools_h
+
+EOF
+close HEADER;
+
+}
+
switch ($option) {
case "DocTypeStrings" {
- my $docTypeStringsGenerated = "$outdir/DocTypeStrings.cpp";
+ createHashToolsHeader();
+
+ my $docTypeStringsImpl = "$outdir/DocTypeStrings.cpp";
+ my $docTypeStringsGenerated = "$outdir/DocTypeStringsHash.h";
my $docTypeStringsGperf = $ARGV[0];
shift;
+ open DOCTYPESTRINGS, ">$docTypeStringsImpl" || die "Could not open $docTypeStringsImpl for writing";
+ print DOCTYPESTRINGS << "EOF";
+/* This file is automatically generated by make-hash-tools.pl, do not edit */
+
+#include <string.h>
+#include "HashTools.h"
+
+namespace WebCore {
+#include "DocTypeStringsHash.h"
+
+const PubIDInfo* findDoctypeEntry (register const char* str, register unsigned int len)
+{
+ return DocTypeStringsHash::findDoctypeEntryImpl(str, len);
+}
+
+}
+
+EOF
+ close DOCTYPESTRINGS;
+
system("gperf --key-positions=\"*\" -s 2 $docTypeStringsGperf > $docTypeStringsGenerated") == 0 || die "calling gperf failed: $?";
} # case "DocTypeStrings"
case "ColorData" {
- my $colorDataGenerated = "$outdir/ColorData.cpp";
- my $colorDataGperf = $ARGV[0];
+ my $colorDataImpl = "$outdir/ColorData.cpp";
+ my $colorDataGenerated = "$outdir/ColorDataHash.h";
+ my $colorDataGperf = $ARGV[0];
shift;
+ open COLORDATA, ">$colorDataImpl" || die "Could not open $colorDataImpl for writing";
+ print COLORDATA << "EOF";
+/* This file is automatically generated by make-hash-tools.pl, do not edit */
+
+#include <string.h>
+#include "HashTools.h"
+
+namespace WebCore {
+#include "ColorDataHash.h"
+
+const struct NamedColor* findColor (register const char* str, register unsigned int len)
+{
+ return ColorDataHash::findColorImpl(str, len);
+}
+
+}
+
+EOF
+ close COLORDATA;
+
system("gperf --key-positions=\"*\" -D -s 2 $colorDataGperf > $colorDataGenerated") == 0 || die "calling gperf failed: $?";
} # case "ColorData"