Sha256: 657ca95586537bb8b12bc95c92513c4f59857e7089c3545da222b22e69b59838

Contents?: true

Size: 957 Bytes

Versions: 33

Compression:

Stored size: 957 Bytes

Contents

# Creates C data structures for binary lookup table of entities,
# using python's html5 entity data.
# Usage: python3 tools/make_entities_inc.py > src/entities.inc

import html

entities5 = html.entities.html5

# remove keys without semicolons.  For some reason the list
# has duplicates of a few things, like auml, one with and one
# without a semicolon.
entities = sorted([(k[:-1], entities5[k].encode('utf-8')) for k in entities5.keys() if k[-1] == ';'])

# Print out the header:
print("""/* Autogenerated by tools/make_headers_inc.py */

struct cmark_entity_node {
	unsigned char *entity;
        unsigned char bytes[8];
};

#define CMARK_ENTITY_MIN_LENGTH 2
#define CMARK_ENTITY_MAX_LENGTH 32""")

print("#define CMARK_NUM_ENTITIES " + str(len(entities)));

print("\nstatic const struct cmark_entity_node cmark_entities[] = {");

for (ent, bs) in entities:
  print('{(unsigned char*)"' + ent + '", {' + ', '.join(map(str, bs)) + ', 0}},')

print("};")

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
commonmarker-0.17.7 ext/commonmarker/cmark-upstream/tools/make_entities_inc.py
commonmarker-0.17.6 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.17.5 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.17.4 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.17.2 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.17.1 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.17.0 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.16.8 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.16.7 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.16.6 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.16.5 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.16.4 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.16.1 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.16.2 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.16.3 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.16.0 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.15.0 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.14.15 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.14.14 ext/commonmarker/cmark/tools/make_entities_inc.py
commonmarker-0.14.13 ext/commonmarker/cmark/tools/make_entities_inc.py