enhance dis output to print line numbers

This commit is contained in:
Jeong YunWon 2022-08-11 01:00:46 +09:00
parent 1a09ba0ede
commit 75b886bcd6
4 changed files with 111 additions and 98 deletions

View file

@ -2,12 +2,13 @@
source: compiler/src/compile.rs source: compiler/src/compile.rs
expression: "compile_exec(\"\\\nif True and False and False:\n pass\n\")" expression: "compile_exec(\"\\\nif True and False and False:\n pass\n\")"
--- ---
0 LoadConst (True) 1 0 LoadConst (True)
1 JumpIfFalse (6) 1 JumpIfFalse (6)
2 LoadConst (False) 2 LoadConst (False)
3 JumpIfFalse (6) 3 JumpIfFalse (6)
4 LoadConst (False) 4 LoadConst (False)
5 JumpIfFalse (6) 5 JumpIfFalse (6)
>> 6 LoadConst (None)
2 >> 6 LoadConst (None)
7 ReturnValue 7 ReturnValue

View file

@ -2,7 +2,7 @@
source: compiler/src/compile.rs source: compiler/src/compile.rs
expression: "compile_exec(\"\\\nif (True and False) or (False and True):\n pass\n\")" expression: "compile_exec(\"\\\nif (True and False) or (False and True):\n pass\n\")"
--- ---
0 LoadConst (True) 1 0 LoadConst (True)
1 JumpIfFalse (4) 1 JumpIfFalse (4)
2 LoadConst (False) 2 LoadConst (False)
3 JumpIfTrue (8) 3 JumpIfTrue (8)
@ -10,6 +10,7 @@ expression: "compile_exec(\"\\\nif (True and False) or (False and True):\n pa
5 JumpIfFalse (8) 5 JumpIfFalse (8)
6 LoadConst (True) 6 LoadConst (True)
7 JumpIfFalse (8) 7 JumpIfFalse (8)
>> 8 LoadConst (None)
2 >> 8 LoadConst (None)
9 ReturnValue 9 ReturnValue

View file

@ -2,12 +2,13 @@
source: compiler/src/compile.rs source: compiler/src/compile.rs
expression: "compile_exec(\"\\\nif True or False or False:\n pass\n\")" expression: "compile_exec(\"\\\nif True or False or False:\n pass\n\")"
--- ---
0 LoadConst (True) 1 0 LoadConst (True)
1 JumpIfTrue (6) 1 JumpIfTrue (6)
2 LoadConst (False) 2 LoadConst (False)
3 JumpIfTrue (6) 3 JumpIfTrue (6)
4 LoadConst (False) 4 LoadConst (False)
5 JumpIfFalse (6) 5 JumpIfFalse (6)
>> 6 LoadConst (None)
2 >> 6 LoadConst (None)
7 ReturnValue 7 ReturnValue

View file

@ -1,9 +1,8 @@
--- ---
source: compiler/src/compile.rs source: compiler/src/compile.rs
expression: "compile_exec(\"\\\nfor stop_exc in (StopIteration('spam'), StopAsyncIteration('ham')):\n with self.subTest(type=type(stop_exc)):\n try:\n async with woohoo():\n raise stop_exc\n except Exception as ex:\n self.assertIs(ex, stop_exc)\n else:\n self.fail(f'{stop_exc} was suppressed')\n\")" expression: "compile_exec(\"\\\nfor stop_exc in (StopIteration('spam'), StopAsyncIteration('ham')):\n with self.subTest(type=type(stop_exc)):\n try:\n async with woohoo():\n raise stop_exc\n except Exception as ex:\n self.assertIs(ex, stop_exc)\n else:\n self.fail(f'{stop_exc} was suppressed')\n\")"
--- ---
0 SetupLoop (69) 1 0 SetupLoop (69)
1 LoadNameAny (0, StopIteration) 1 LoadNameAny (0, StopIteration)
2 LoadConst ("spam") 2 LoadConst ("spam")
3 CallFunctionPositional (1) 3 CallFunctionPositional (1)
@ -14,7 +13,8 @@ expression: "compile_exec(\"\\\nfor stop_exc in (StopIteration('spam'), StopAsyn
8 GetIter 8 GetIter
>> 9 ForIter (68) >> 9 ForIter (68)
10 StoreLocal (2, stop_exc) 10 StoreLocal (2, stop_exc)
11 LoadNameAny (3, self)
2 11 LoadNameAny (3, self)
12 LoadMethod (subTest) 12 LoadMethod (subTest)
13 LoadNameAny (5, type) 13 LoadNameAny (5, type)
14 LoadNameAny (2, stop_exc) 14 LoadNameAny (2, stop_exc)
@ -23,8 +23,10 @@ expression: "compile_exec(\"\\\nfor stop_exc in (StopIteration('spam'), StopAsyn
17 CallMethodKeyword (1) 17 CallMethodKeyword (1)
18 SetupWith (65) 18 SetupWith (65)
19 Pop 19 Pop
20 SetupExcept (40)
21 LoadNameAny (6, woohoo) 3 20 SetupExcept (40)
4 21 LoadNameAny (6, woohoo)
22 CallFunctionPositional (0) 22 CallFunctionPositional (0)
23 BeforeAsyncWith 23 BeforeAsyncWith
24 GetAwaitable 24 GetAwaitable
@ -32,9 +34,11 @@ expression: "compile_exec(\"\\\nfor stop_exc in (StopIteration('spam'), StopAsyn
26 YieldFrom 26 YieldFrom
27 SetupAsyncWith (33) 27 SetupAsyncWith (33)
28 Pop 28 Pop
29 LoadNameAny (2, stop_exc)
5 29 LoadNameAny (2, stop_exc)
30 Raise (Raise) 30 Raise (Raise)
31 PopBlock
4 31 PopBlock
32 EnterFinally 32 EnterFinally
>> 33 WithCleanupStart >> 33 WithCleanupStart
34 GetAwaitable 34 GetAwaitable
@ -44,11 +48,13 @@ expression: "compile_exec(\"\\\nfor stop_exc in (StopIteration('spam'), StopAsyn
38 PopBlock 38 PopBlock
39 Jump (54) 39 Jump (54)
>> 40 Duplicate >> 40 Duplicate
41 LoadNameAny (7, Exception)
6 41 LoadNameAny (7, Exception)
42 TestOperation (ExceptionMatch) 42 TestOperation (ExceptionMatch)
43 JumpIfFalse (53) 43 JumpIfFalse (53)
44 StoreLocal (8, ex) 44 StoreLocal (8, ex)
45 LoadNameAny (3, self)
7 45 LoadNameAny (3, self)
46 LoadMethod (assertIs) 46 LoadMethod (assertIs)
47 LoadNameAny (8, ex) 47 LoadNameAny (8, ex)
48 LoadNameAny (2, stop_exc) 48 LoadNameAny (2, stop_exc)
@ -57,16 +63,20 @@ expression: "compile_exec(\"\\\nfor stop_exc in (StopIteration('spam'), StopAsyn
51 PopException 51 PopException
52 Jump (63) 52 Jump (63)
>> 53 Raise (Reraise) >> 53 Raise (Reraise)
>> 54 LoadNameAny (3, self)
9 >> 54 LoadNameAny (3, self)
55 LoadMethod (fail) 55 LoadMethod (fail)
56 LoadConst ("") 56 LoadConst ("")
57 LoadNameAny (2, stop_exc)
1 57 LoadNameAny (2, stop_exc)
58 FormatValue (None) 58 FormatValue (None)
59 LoadConst (" was suppressed")
9 59 LoadConst (" was suppressed")
60 BuildString (2) 60 BuildString (2)
61 CallMethodPositional (1) 61 CallMethodPositional (1)
62 Pop 62 Pop
>> 63 PopBlock
2 >> 63 PopBlock
64 EnterFinally 64 EnterFinally
>> 65 WithCleanupStart >> 65 WithCleanupStart
66 WithCleanupFinish 66 WithCleanupFinish