diff --git a/document/legacy/exceptions/appendix/index-instructions.py b/document/legacy/exceptions/appendix/index-instructions.py index d839a299..bc7f7ff4 100755 --- a/document/legacy/exceptions/appendix/index-instructions.py +++ b/document/legacy/exceptions/appendix/index-instructions.py @@ -26,11 +26,6 @@ """ FOOTER = """\ - -.. note:: - Multi-byte opcodes are given with the shortest possible encoding in the table. - However, what is following the first byte is actually a :ref:`u32 ` with variable-length encoding - and consequently has multiple possible representations.\ """ COLUMNS = [ diff --git a/document/legacy/exceptions/binary.rst b/document/legacy/exceptions/binary.rst index f605c566..f5c95be2 100644 --- a/document/legacy/exceptions/binary.rst +++ b/document/legacy/exceptions/binary.rst @@ -17,14 +17,16 @@ Control Instructions .. _binary-rethrow: .. math:: - \begin{array}{llcllll} + \begin{array}{@{}llcllll} \production{instruction} & \Binstr &::=& \dots \\ &&|& - \hex{06}~~\X{bt}{:}\Bblocktype~~(\X{in}_1{:}\Binstr)^\ast~~ - (\hex{07}~~x{:}\Btagidx~~(\X{in}_2{:}\Binstr)^\ast)^\ast~~ + \hex{06}~~\X{bt}{:}\Bblocktype~~ + (\X{in}_1{:}\Binstr)^\ast~~ \\&&& + (\hex{07}~~x{:}\Btagidx~~(\X{in}_2{:}\Binstr)^\ast)^\ast~~ \\&&& (\hex{19}~~(\X{in}_3{:}\Binstr)^\ast)^?~~\hex{0B} &\Rightarrow& \TRY~\X{bt}~\X{in}_1^\ast~(\CATCH~x~\X{in}_2^\ast)^\ast~ (\CATCHALL~\X{in}_3^\ast)^?\END \\ &&|& - \hex{06}~~\X{bt}{:}\Bblocktype~~(\X{in}{:}\Binstr)^\ast~~\hex{18}~~l{:}\Blabelidx + \hex{06}~~\X{bt}{:}\Bblocktype~~(\X{in}{:}\Binstr)^\ast~~ \\&&& + \hex{18}~~l{:}\Blabelidx &\Rightarrow& \TRY~\X{bt}~\X{in}^\ast~\DELEGATE~l \\ &&|& \hex{09}~~l{:}\Blabelidx &\Rightarrow& \RETHROW~l \\ \end{array} diff --git a/document/legacy/exceptions/conf.py b/document/legacy/exceptions/conf.py index 5be09c13..e774aafe 100644 --- a/document/legacy/exceptions/conf.py +++ b/document/legacy/exceptions/conf.py @@ -301,6 +301,9 @@ # Fancy chapters [Bjarne, Sonny, Lenny, Glenn, Conny, Rejne] 'fncychap': '\\usepackage[Sonny]{fncychap}', + + # Allow chapters to start on even pages + 'extraclassoptions': 'openany' } # Grouping the document tree into LaTeX files. List of tuples @@ -311,7 +314,7 @@ name + '.tex', title, author + '\\\\ \\hfill\\large ' + editor, - 'manual' + 'howto' ), ] diff --git a/document/legacy/exceptions/exec.rst b/document/legacy/exceptions/exec.rst index a935eaca..e2c9b239 100644 --- a/document/legacy/exceptions/exec.rst +++ b/document/legacy/exceptions/exec.rst @@ -16,8 +16,7 @@ Stack .. _syntax-handler: -Exception Handlers -.................. +**Exception Handlers** Legacy exception handlers are installed by |TRY| instructions. Instead of branch labels, their catch clauses have instruction blocks associated with them. diff --git a/document/legacy/exceptions/text.rst b/document/legacy/exceptions/text.rst index 0bf0a30d..1968c112 100644 --- a/document/legacy/exceptions/text.rst +++ b/document/legacy/exceptions/text.rst @@ -21,15 +21,16 @@ The label identifier on a structured control instruction may optionally be repea pseudo instructions, to indicate the matching delimiters. .. math:: - \begin{array}{llclll} + \begin{array}{@{}llclll} \production{block instruction} & \Tblockinstr_I &::=& \dots \\ &&|& - \text{try}~~I'{:}\Tlabel_I~~\X{bt}{:}\Tblocktype~~(\X{in}_1{:}\Tinstr_{I'})^\ast~~ - (\text{catch}~~\Tid_1^?~~x{:}\Ttagidx_I~~(\X{in}_2{:}\Tinstr_{I'})^\ast)^\ast~~ - \\ &&&\qquad\qquad (\text{catch\_all}~~\Tid_1^?~~(\X{in}_3{:}\Tinstr_{I'})^\ast)^?~~\text{end}~~\Tid_2^? + \text{try}~~I'{:}\Tlabel_I~~\X{bt}{:}\Tblocktype~~(\X{in}_1{:}\Tinstr_{I'})^\ast~~\\&&& + (\text{catch}~~\Tid_1^?~~x{:}\Ttagidx_I~~(\X{in}_2{:}\Tinstr_{I'})^\ast)^\ast~~ \\&&& + (\text{catch\_all}~~\Tid_1^?~~(\X{in}_3{:}\Tinstr_{I'})^\ast)^?~~ \\&&& + \text{end}~~\Tid_2^? \\ &&&\qquad \Rightarrow\quad \TRY~\X{bt}~\X{in}_1^\ast~(\CATCH~x~\X{in}_2^\ast)^\ast~(\CATCHALL~\X{in}_3^\ast)^?~\END \\ &&&\qquad\qquad (\iff \Tid_1^? = \epsilon \vee \Tid_1^? = \Tlabel, \Tid_2^? = \epsilon \vee \Tid_2^? = \Tlabel) \\ &&|& - \text{try}~~I'{:}\Tlabel_I~~\X{bt}{:}\Tblocktype~~(\X{in}_1{:}\Tinstr_{I'})^\ast - ~~\text{delegate}~~l{:}\Tlabelidx_I~~\X{l}{:}\Tlabelidx_I + \text{try}~~I'{:}\Tlabel_I~~\X{bt}{:}\Tblocktype~~(\X{in}_1{:}\Tinstr_{I'})^\ast~~ \\&&& + \text{delegate}~~l{:}\Tlabelidx_I~~\X{l}{:}\Tlabelidx_I \\ &&&\qquad \Rightarrow\quad \TRY~\X{bt}~\X{in}_1^\ast~\DELEGATE~l \qquad\quad~~ (\iff \Tid^? = \epsilon \vee \Tid^? = \Tlabel) \\ \production{plain instruction} & \Tplaininstr_I &::=& \dots \\ &&|& diff --git a/document/legacy/exceptions/valid.rst b/document/legacy/exceptions/valid.rst index 80e11636..03f337d5 100644 --- a/document/legacy/exceptions/valid.rst +++ b/document/legacy/exceptions/valid.rst @@ -36,7 +36,6 @@ Existing typing rules are adjusted as follows: Instructions ------------ - .. _valid-instr-control: Control Instructions