Blame src/entities.tcl

Packit ed3af9
#!/usr/bin/tclsh
Packit ed3af9
Packit ed3af9
# get names for html-4.0 characters from:
Packit ed3af9
#          http://www.w3.org/TR/REC-html40/sgml/entities.html
Packit ed3af9
set f [open entities.html r]
Packit ed3af9
set entity_name_length_max 0
Packit ed3af9
set nr_of_entities 0
Packit ed3af9
while {! [eof $f]} {
Packit ed3af9
        set rec [gets $f]
Packit ed3af9
        if {[scan $rec {<!ENTITY %s CDATA "&#%d;"; --} name val] == 2} {
Packit ed3af9
                set entity($name) $val
Packit ed3af9
		set entity_name_length [string length $name]
Packit ed3af9
		if {$entity_name_length > $entity_name_length_max} {
Packit ed3af9
			set entity_name_length_max $entity_name_length
Packit ed3af9
		}
Packit ed3af9
		incr nr_of_entities
Packit ed3af9
        }
Packit ed3af9
}
Packit ed3af9
close $f
Packit ed3af9
Packit ed3af9
set f [open entities.h w]
Packit ed3af9
puts $f "/*"
Packit ed3af9
puts $f " * Generated file - do not edit directly."
Packit ed3af9
puts $f " *"
Packit ed3af9
puts $f " * This file was generated from:"
Packit ed3af9
puts $f " *       http://www.w3.org/TR/REC-html40/sgml/entities.html"
Packit ed3af9
puts $f " * by means of the script:"
Packit ed3af9
puts $f " *       entities.tcl"
Packit ed3af9
puts $f " */"
Packit ed3af9
puts $f ""
Packit ed3af9
puts $f "#ifdef __cplusplus"
Packit ed3af9
puts $f "extern \"C\" {"
Packit ed3af9
puts $f "#endif"
Packit ed3af9
puts $f ""
Packit ed3af9
puts $f "static struct entities_s {"
Packit ed3af9
puts $f "	char	*name;"
Packit ed3af9
puts $f "	int	value;"
Packit ed3af9
puts $f "} entities\[\] = {"
Packit ed3af9
foreach name [lsort [array names entity]] {
Packit ed3af9
        puts $f "	{\"$name\", $entity($name)},"
Packit ed3af9
}
Packit ed3af9
puts $f "};"
Packit ed3af9
puts $f ""
Packit ed3af9
puts $f "#define ENTITY_NAME_LENGTH_MAX $entity_name_length_max"
Packit ed3af9
puts $f "#define NR_OF_ENTITIES $nr_of_entities"
Packit ed3af9
puts $f ""
Packit ed3af9
puts $f "#ifdef __cplusplus"
Packit ed3af9
puts $f "}"
Packit ed3af9
puts $f "#endif"
Packit ed3af9
close $f