@@ -52,18 +52,28 @@ def RefWrap(s, kind):
52
52
return f':ref:`{ kind } <{ s } >`'
53
53
54
54
55
- def Instruction (name , opcode , type = None , validation = None , execution = None , operator = None ):
55
+ def Instruction (name , opcode , type = None , validation = None , execution = None , operator = None , validation2 = None , execution2 = None ):
56
56
if operator :
57
57
execution_str = ', ' .join ([RefWrap (execution , 'execution' ),
58
58
RefWrap (operator , 'operator' )])
59
+ elif execution2 :
60
+ execution_str = ', ' .join ([RefWrap (execution , 'execution' ),
61
+ RefWrap (execution , 'execution' )])
62
+
59
63
else :
60
64
execution_str = RefWrap (execution , 'execution' )
61
65
66
+ if validation2 :
67
+ validation_str = ', ' .join ([RefWrap (validation , 'validation' ),
68
+ RefWrap (validation2 , 'validation' )])
69
+ else :
70
+ validation_str = RefWrap (validation , 'validation' )
71
+
62
72
return (
63
73
MathWrap (name , '(reserved)' ),
64
74
MathWrap (opcode ),
65
75
MathWrap (type ),
66
- RefWrap ( validation , 'validation' ) ,
76
+ validation_str ,
67
77
execution_str
68
78
)
69
79
@@ -75,10 +85,10 @@ def Instruction(name, opcode, type=None, validation=None, execution=None, operat
75
85
Instruction (r'\LOOP~\X{bt}' , r'\hex{03}' , r'[t_1^\ast] \to [t_2^\ast]' , r'valid-loop' , r'exec-loop' ),
76
86
Instruction (r'\IF~\X{bt}' , r'\hex{04}' , r'[t_1^\ast~\I32] \to [t_2^\ast]' , r'valid-if' , r'exec-if' ),
77
87
Instruction (r'\ELSE' , r'\hex{05}' ),
78
- Instruction (None , r'\hex{06}' ),
79
- Instruction (None , r'\hex{07}' ),
80
- Instruction (None , r'\hex{08}' ),
81
- Instruction (None , r'\hex{09}' ),
88
+ Instruction (r'\TRY~\X{bt}' , r'\hex{06}' , r'[t_1^\ast] \to [t_2^\ast]' , r'valid-try-catch' , r'exec-try-catch' , None , r'valid-try-delegate' , r'exec-try-delegate ' ),
89
+ Instruction (r'\CATCH~x' , r'\hex{07}' ),
90
+ Instruction (r'\THROW~x' , r'\hex{08}' , r'[t_1^\ast~t_x^\ast] \to [t_2^\ast]' , r'valid-throw' , r'exec-throw ' ),
91
+ Instruction (r'\RETHROW~n' , r'\hex{09}' , r'[t_1^\ast] \to [t_2^\ast]' , r'valid-rethrow' , r'exec-rethrow ' ),
82
92
Instruction (None , r'\hex{0A}' ),
83
93
Instruction (r'\END' , r'\hex{0B}' ),
84
94
Instruction (r'\BR~l' , r'\hex{0C}' , r'[t_1^\ast~t^\ast] \to [t_2^\ast]' , r'valid-br' , r'exec-br' ),
@@ -93,8 +103,8 @@ def Instruction(name, opcode, type=None, validation=None, execution=None, operat
93
103
Instruction (None , r'\hex{15}' ),
94
104
Instruction (None , r'\hex{16}' ),
95
105
Instruction (None , r'\hex{17}' ),
96
- Instruction (None , r'\hex{18}' ),
97
- Instruction (None , r'\hex{19}' ),
106
+ Instruction (r'\DELEGATE~l' , r'\hex{18}' ),
107
+ Instruction (r'\CATCHALL' , r'\hex{19}' , None , r'valid-try-catch' , r'exec-try-catch ' ),
98
108
Instruction (r'\DROP' , r'\hex{1A}' , r'[t] \to []' , r'valid-drop' , r'exec-drop' ),
99
109
Instruction (r'\SELECT' , r'\hex{1B}' , r'[t~t~\I32] \to [t]' , r'valid-select' , r'exec-select' ),
100
110
Instruction (r'\SELECT~t' , r'\hex{1C}' , r'[t~t~\I32] \to [t]' , r'valid-select' , r'exec-select' ),
0 commit comments