Enable inheritance diagrams.

This commit is contained in:
Jakob Olesen
2016-02-09 08:11:20 -08:00
parent 06f9b65e12
commit 29cc36c8d9
3 changed files with 31 additions and 16 deletions

View File

@@ -38,6 +38,8 @@ extensions = [
'sphinx.ext.todo',
'sphinx.ext.mathjax',
'sphinx.ext.ifconfig',
'sphinx.ext.graphviz',
'sphinx.ext.inheritance_diagram',
'cton_domain',
'cton_lexer',
]
@@ -293,3 +295,10 @@ texinfo_documents = [
# If true, do not generate a @detailmenu in the "Top" node's menu.
#texinfo_no_detailmenu = False
# -- Options for Graphviz -------------------------------------------------
graphviz_output_format = 'svg'
inheritance_graph_attrs = dict(rankdir='TD')

View File

@@ -13,21 +13,28 @@ directory that has a global variable called ``instructions``. The basic
Cretonne instruction set described in :doc:`langref` is defined by the Python
module :mod:`cretonne.instrs`.
.. module:: cretonne
Types
=====
Concrete value types are represented as instances of :class:`cretonne.Type`. There are
subclasses to represent scalar and vector types.
.. autoclass:: cretonne.Type
.. autoclass:: cretonne.ScalarType
.. inheritance-diagram:: Type ScalarType VectorType IntType FloatType
:parts: 1
.. autoclass:: Type
.. autoclass:: ScalarType
:members:
.. autoclass:: cretonne.VectorType
.. autoclass:: VectorType
:members:
.. autoclass:: cretonne.IntType
.. autoclass:: IntType
:members:
.. autoclass:: cretonne.FloatType
.. autoclass:: FloatType
:members:
Predefined types
----------------
.. automodule:: cretonne.types
:members:

View File

@@ -1,17 +1,21 @@
"""Predefined types."""
"""
The cretonne.types module predefines all the Cretonne scalar types.
"""
from . import ScalarType, IntType, FloatType
#: Boolean.
bool = ScalarType('bool', 0,
"""
A boolean value that is either true or false.
""")
i8 = IntType(8)
i16 = IntType(16)
i32 = IntType(32)
i64 = IntType(64)
i8 = IntType(8) #: 8-bit int.
i16 = IntType(16) #: 16-bit int.
i32 = IntType(32) #: 32-bit int.
i64 = IntType(64) #: 64-bit int.
#: IEEE single precision.
f32 = FloatType(32,
"""
A 32-bit floating point type represented in the IEEE 754-2008 *binary32*
@@ -19,15 +23,10 @@ f32 = FloatType(32,
C implementations.
""")
#: IEEE double precision.
f64 = FloatType(64,
"""
A 64-bit floating point type represented in the IEEE 754-2008 *binary64*
interchange format. This corresponds to the :c:type:`double` type in
most C implementations.
""")
i8x16 = i8.by(16)
f32x4 = f32.by(4)
f64x2 = f64.by(2)