Files
oasis-linux-mirror/pkg/netsurf/libparserutils/aliases.awk
Michael Forney e7181404bf Add netsurf 3.6
{nsgenbind,webidl}-{lexer,parser}.{c,h} were generated using flex and bison on
unmodified 0.4 sources.
2016-12-29 23:29:18 -08:00

47 lines
1.1 KiB
Awk

BEGIN {
print "static parserutils_charset_aliases_canon canonical_charset_names[] = {"
n = 0
}
/^(#|$)/ {next}
function addalias(s) {
s = tolower(s)
gsub("[^a-z0-9]", "", s)
if (!(s in aliases))
++num_aliases
aliases[s] = n
}
{
print "\t{ "$2", "length($1)", \""$1"\" },"
addalias($1)
for (i = 3; i <= NF; ++i)
addalias($i)
if ($1 ~ /^ISO-10646-UCS-[24]$/ || $1 ~ /^UTF-(8$|16|32)/)
isunicode = (isunicode ? (isunicode" || ") : "") "((x) == "$2")"
++n
}
END {
print "};"
print "static const uint16_t charset_aliases_canon_count = "n";"
print "typedef struct {"
print "\tuint16_t name_len;"
print "\tconst char *name;"
print "\tparserutils_charset_aliases_canon *canon;"
print "} parserutils_charset_aliases_alias;"
print "static parserutils_charset_aliases_alias charset_aliases[] = {"
for (alias in aliases) {
i = aliases[alias]
print "\t{ "length(alias)", \""alias"\", &canonical_charset_names["i"] }," | "sort -t '\"' -k 2"
}
close("sort -t '\"' -k 2")
print "};"
print "static const uint16_t charset_aliases_count = "num_aliases";"
print "#define MIBENUM_IS_UNICODE(x) ("isunicode")"
}