mirror of
https://github.com/oasislinux/oasis.git
synced 2026-02-05 11:33:57 +01:00
{nsgenbind,webidl}-{lexer,parser}.{c,h} were generated using flex and bison on
unmodified 0.4 sources.
47 lines
1.1 KiB
Awk
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")"
|
|
}
|