1# formatting.py 2# Sphinx extension providing formatting for Gallium-specific data 3# (c) Corbin Simpson 2010 4# Public domain to the extent permitted; contact author for special licensing 5 6import docutils.nodes 7import sphinx.addnodes 8 9def parse_envvar(env, sig, signode): 10 envvar, t, default = sig.split(" ", 2) 11 envvar = envvar.strip().upper() 12 t = "Type: %s" % t.strip(" <>").lower() 13 default = "Default: %s" % default.strip(" ()") 14 signode += sphinx.addnodes.desc_name(envvar, envvar) 15 signode += docutils.nodes.Text(' ') 16 signode += sphinx.addnodes.desc_type(t, t) 17 signode += docutils.nodes.Text(', ') 18 signode += sphinx.addnodes.desc_annotation(default, default) 19 return envvar 20 21def parse_opcode(env, sig, signode): 22 opcode, desc = sig.split("-", 1) 23 opcode = opcode.strip().upper() 24 desc = " (%s)" % desc.strip() 25 signode += sphinx.addnodes.desc_name(opcode, opcode) 26 signode += sphinx.addnodes.desc_annotation(desc, desc) 27 return opcode 28 29def setup(app): 30 app.add_object_type("envvar", "envvar", "%s (environment variable)", 31 parse_envvar) 32 app.add_object_type("opcode", "opcode", "%s (TGSI opcode)", 33 parse_opcode) 34