diff options
Diffstat (limited to 'WebCore/make-hash-tools.pl')
-rw-r--r-- | WebCore/make-hash-tools.pl | 105 |
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" |