Traces

TatSu compiling and parsing actions have a trace= argument ( --trace on the command line). When used with the colorize= option ( --color on the command line), it produces trace like the following, in which colors mean try, suceed, and fail.

↙start ~1:1
3 + 5 * ( 10 - 20 )
↙expression↙start ~1:1
3 + 5 * ( 10 - 20 )
↙expression↙expression↙start ~1:1
3 + 5 * ( 10 - 20 )
⟲ expression↙expression↙start ~1:1
3 + 5 * ( 10 - 20 )
↙expression↙expression↙start ~1:1
3 + 5 * ( 10 - 20 )
⟲ expression↙expression↙start ~1:1
3 + 5 * ( 10 - 20 )
↙term↙expression↙start ~1:1
3 + 5 * ( 10 - 20 )
↙term↙term↙expression↙start ~1:1
3 + 5 * ( 10 - 20 )
⟲ term↙term↙expression↙start ~1:1
3 + 5 * ( 10 - 20 )
↙term↙term↙expression↙start ~1:1
3 + 5 * ( 10 - 20 )
⟲ term↙term↙expression↙start ~1:1
3 + 5 * ( 10 - 20 )
↙factor↙term↙expression↙start ~1:1
3 + 5 * ( 10 - 20 )
≢’(’ ~1:1
3 + 5 * ( 10 - 20 )
↙number↙factor↙term↙expression↙start ~1:1
3 + 5 * ( 10 - 20 )
≡’3’ /d+/ ~1:2
+ 5 * ( 10 - 20 )
≡number↙factor↙term↙expression↙start ~1:2
+ 5 * ( 10 - 20 )
≡factor↙term↙expression↙start ~1:2
+ 5 * ( 10 - 20 )
↙term↙term↙expression↙start ~1:3
+ 5 * ( 10 - 20 )
≡term↙term↙expression↙start ~1:3
+ 5 * ( 10 - 20 )
≢’*’ ~1:3
+ 5 * ( 10 - 20 )
↙term↙term↙expression↙start ~1:3
+ 5 * ( 10 - 20 )
≡term↙term↙expression↙start ~1:3
+ 5 * ( 10 - 20 )
≢’/’ ~1:3
+ 5 * ( 10 - 20 )
↙factor↙term↙expression↙start ~1:3
+ 5 * ( 10 - 20 )
≢’(’ ~1:3
+ 5 * ( 10 - 20 )
↙number↙factor↙term↙expression↙start ~1:3
+ 5 * ( 10 - 20 )
≢’’ /d+/ ~1:3
+ 5 * ( 10 - 20 )
≢factor↙term↙expression↙start ~1:3
+ 5 * ( 10 - 20 )
≡term↙expression↙start ~1:2
+ 5 * ( 10 - 20 )
↙expression↙expression↙start ~1:3
+ 5 * ( 10 - 20 )
≡expression↙expression↙start ~1:3
+ 5 * ( 10 - 20 )
≡’+’ ~1:4
5 * ( 10 - 20 )
↙term↙expression↙start ~1:4
5 * ( 10 - 20 )
↙term↙term↙expression↙start ~1:5
5 * ( 10 - 20 )
⟲ term↙term↙expression↙start ~1:5
5 * ( 10 - 20 )
↙term↙term↙expression↙start ~1:5
5 * ( 10 - 20 )
⟲ term↙term↙expression↙start ~1:5
5 * ( 10 - 20 )
↙factor↙term↙expression↙start ~1:5
5 * ( 10 - 20 )
≢’(’ ~1:5
5 * ( 10 - 20 )
↙number↙factor↙term↙expression↙start ~1:5
5 * ( 10 - 20 )
≡’5’ /d+/ ~1:6
* ( 10 - 20 )
≡number↙factor↙term↙expression↙start ~1:6
* ( 10 - 20 )
≡factor↙term↙expression↙start ~1:6
* ( 10 - 20 )
↙term↙term↙expression↙start ~1:7
* ( 10 - 20 )
≡term↙term↙expression↙start ~1:7
* ( 10 - 20 )
≡’*’ ~1:8
( 10 - 20 )
↙factor↙term↙expression↙start ~1:8
( 10 - 20 )
≡’(’ ~1:10
10 - 20 )
↙expression↙factor↙term↙expression↙start ~1:10
10 - 20 )
↙expression↙expression↙factor↙term↙expression↙start ~1:11
10 - 20 )
⟲ expression↙expression↙factor↙term↙expression↙start ~1:11
10 - 20 )
↙expression↙expression↙factor↙term↙expression↙start ~1:11
10 - 20 )
⟲ expression↙expression↙factor↙term↙expression↙start ~1:11
10 - 20 )
↙term↙expression↙factor↙term↙expression↙start ~1:11
10 - 20 )
↙term↙term↙expression↙factor↙term↙expression↙start ~1:11
10 - 20 )
⟲ term↙term↙expression↙factor↙term↙expression↙start ~1:11
10 - 20 )
↙term↙term↙expression↙factor↙term↙expression↙start ~1:11
10 - 20 )
⟲ term↙term↙expression↙factor↙term↙expression↙start ~1:11
10 - 20 )
↙factor↙term↙expression↙factor↙term↙expression↙start ~1:11
10 - 20 )
≢’(’ ~1:11
10 - 20 )
↙number↙factor↙term↙expression↙factor↙term↙expression↙start ~1:11
10 - 20 )
≡’10’ /d+/ ~1:13
- 20 )
≡number↙factor↙term↙expression↙factor↙term↙expression↙start ~1:13
- 20 )
≡factor↙term↙expression↙factor↙term↙expression↙start ~1:13
- 20 )
↙term↙term↙expression↙factor↙term↙expression↙start ~1:14
- 20 )
≡term↙term↙expression↙factor↙term↙expression↙start ~1:14
- 20 )
≢’*’ ~1:14
- 20 )
↙term↙term↙expression↙factor↙term↙expression↙start ~1:14
- 20 )
≡term↙term↙expression↙factor↙term↙expression↙start ~1:14
- 20 )
≢’/’ ~1:14
- 20 )
↙factor↙term↙expression↙factor↙term↙expression↙start ~1:14
- 20 )
≢’(’ ~1:14
- 20 )
↙number↙factor↙term↙expression↙factor↙term↙expression↙start ~1:14
- 20 )
≢’’ /d+/ ~1:14
- 20 )
≢factor↙term↙expression↙factor↙term↙expression↙start ~1:14
- 20 )
≡term↙expression↙factor↙term↙expression↙start ~1:13
- 20 )
↙expression↙expression↙factor↙term↙expression↙start ~1:14
- 20 )
≡expression↙expression↙factor↙term↙expression↙start ~1:14
- 20 )
≢’+’ ~1:14
- 20 )
↙expression↙expression↙factor↙term↙expression↙start ~1:14
- 20 )
≡expression↙expression↙factor↙term↙expression↙start ~1:14
- 20 )
≡’-’ ~1:15
20 )
↙term↙expression↙factor↙term↙expression↙start ~1:15
20 )
↙term↙term↙expression↙factor↙term↙expression↙start ~1:16
20 )
⟲ term↙term↙expression↙factor↙term↙expression↙start ~1:16
20 )
↙term↙term↙expression↙factor↙term↙expression↙start ~1:16
20 )
⟲ term↙term↙expression↙factor↙term↙expression↙start ~1:16
20 )
↙factor↙term↙expression↙factor↙term↙expression↙start ~1:16
20 )
≢’(’ ~1:16
20 )
↙number↙factor↙term↙expression↙factor↙term↙expression↙start ~1:16
20 )
≡’20’ /d+/ ~1:18
)
≡number↙factor↙term↙expression↙factor↙term↙expression↙start ~1:18
)
≡factor↙term↙expression↙factor↙term↙expression↙start ~1:18
)
↙term↙term↙expression↙factor↙term↙expression↙start ~1:19
)
≡term↙term↙expression↙factor↙term↙expression↙start ~1:19
)
≢’*’ ~1:19
)
↙term↙term↙expression↙factor↙term↙expression↙start ~1:19
)
≡term↙term↙expression↙factor↙term↙expression↙start ~1:19
)
≢’/’ ~1:19
)
↙factor↙term↙expression↙factor↙term↙expression↙start ~1:19
)
≢’(’ ~1:19
)
↙number↙factor↙term↙expression↙factor↙term↙expression↙start ~1:19
)
≢’’ /d+/ ~1:19
)
≢factor↙term↙expression↙factor↙term↙expression↙start ~1:19
)
≡term↙expression↙factor↙term↙expression↙start ~1:18
)
↙expression↙expression↙factor↙term↙expression↙start ~1:19
)
≡expression↙expression↙factor↙term↙expression↙start ~1:19
)
≢’+’ ~1:19
)
↙expression↙expression↙factor↙term↙expression↙start ~1:19
)
≡expression↙expression↙factor↙term↙expression↙start ~1:19
)
≢’-’ ~1:19
)
↙term↙expression↙factor↙term↙expression↙start ~1:19
)
≢term↙expression↙factor↙term↙expression↙start ~1:19
)
≡expression↙factor↙term↙expression↙start ~1:18
)
≡’)’
≡factor↙term↙expression↙start
↙term↙term↙expression↙start
≡term↙term↙expression↙start
≢’*’
↙term↙term↙expression↙start
≡term↙term↙expression↙start
≢’/’
↙factor↙term↙expression↙start
≢’(’
↙number↙factor↙term↙expression↙start
≢’’ /d+/
≢factor↙term↙expression↙start
≡term↙expression↙start
↙expression↙expression↙start
≡expression↙expression↙start
≢’+’
↙expression↙expression↙start
≡expression↙expression↙start
≢’-’
↙term↙expression↙start
≢term↙expression↙start
≡expression↙start
≡start