Skip to content

Commit 99e57ae

Browse files
committed
grammar debugging aide for gdb
1 parent f3b1065 commit 99e57ae

2 files changed

Lines changed: 249 additions & 0 deletions

File tree

src/express/generated/ybreaks.txt

Lines changed: 229 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
1+
expparse.y:2
2+
expparse.y:124
3+
expparse.y:2440
4+
expparse.y:297
5+
expparse.y:303
6+
expparse.y:320
7+
expparse.y:337
8+
expparse.y:341
9+
expparse.y:347
10+
expparse.y:353
11+
expparse.y:359
12+
expparse.y:364
13+
expparse.y:369
14+
expparse.y:379
15+
expparse.y:387
16+
expparse.y:397
17+
expparse.y:411
18+
expparse.y:423
19+
expparse.y:442
20+
expparse.y:456
21+
expparse.y:463
22+
expparse.y:475
23+
expparse.y:486
24+
expparse.y:491
25+
expparse.y:501
26+
expparse.y:506
27+
expparse.y:510
28+
expparse.y:516
29+
expparse.y:523
30+
expparse.y:529
31+
expparse.y:533
32+
expparse.y:538
33+
expparse.y:543
34+
expparse.y:547
35+
expparse.y:551
36+
expparse.y:557
37+
expparse.y:583
38+
expparse.y:593
39+
expparse.y:599
40+
expparse.y:609
41+
expparse.y:618
42+
expparse.y:628
43+
expparse.y:634
44+
expparse.y:642
45+
expparse.y:646
46+
expparse.y:653
47+
expparse.y:658
48+
expparse.y:663
49+
expparse.y:668
50+
expparse.y:675
51+
expparse.y:694
52+
expparse.y:726
53+
expparse.y:733
54+
expparse.y:738
55+
expparse.y:745
56+
expparse.y:760
57+
expparse.y:775
58+
expparse.y:786
59+
expparse.y:819
60+
expparse.y:834
61+
expparse.y:841
62+
expparse.y:855
63+
expparse.y:862
64+
expparse.y:868
65+
expparse.y:872
66+
expparse.y:878
67+
expparse.y:907
68+
expparse.y:913
69+
expparse.y:919
70+
expparse.y:925
71+
expparse.y:931
72+
expparse.y:937
73+
expparse.y:943
74+
expparse.y:949
75+
expparse.y:955
76+
expparse.y:961
77+
expparse.y:967
78+
expparse.y:973
79+
expparse.y:979
80+
expparse.y:985
81+
expparse.y:995
82+
expparse.y:1001
83+
expparse.y:1007
84+
expparse.y:1013
85+
expparse.y:1019
86+
expparse.y:1025
87+
expparse.y:1031
88+
expparse.y:1037
89+
expparse.y:1055
90+
expparse.y:1059
91+
expparse.y:1064
92+
expparse.y:1087
93+
expparse.y:1092
94+
expparse.y:1098
95+
expparse.y:1104
96+
expparse.y:1129
97+
expparse.y:1138
98+
expparse.y:1146
99+
expparse.y:1154
100+
expparse.y:1159
101+
expparse.y:1169
102+
expparse.y:1178
103+
expparse.y:1182
104+
expparse.y:1188
105+
expparse.y:1194
106+
expparse.y:1202
107+
expparse.y:1211
108+
expparse.y:1224
109+
expparse.y:1232
110+
expparse.y:1240
111+
expparse.y:1245
112+
expparse.y:1253
113+
expparse.y:1265
114+
expparse.y:1278
115+
expparse.y:1284
116+
expparse.y:1292
117+
expparse.y:1296
118+
expparse.y:1300
119+
expparse.y:1308
120+
expparse.y:1313
121+
expparse.y:1318
122+
expparse.y:1324
123+
expparse.y:1342
124+
expparse.y:1346
125+
expparse.y:1355
126+
expparse.y:1365
127+
expparse.y:1378
128+
expparse.y:1384
129+
expparse.y:1397
130+
expparse.y:1420
131+
expparse.y:1432
132+
expparse.y:1437
133+
expparse.y:1444
134+
expparse.y:1452
135+
expparse.y:1460
136+
expparse.y:1487
137+
expparse.y:1521
138+
expparse.y:1529
139+
expparse.y:1536
140+
expparse.y:1548
141+
expparse.y:1565
142+
expparse.y:1571
143+
expparse.y:1577
144+
expparse.y:1583
145+
expparse.y:1599
146+
expparse.y:1616
147+
expparse.y:1640
148+
expparse.y:1646
149+
expparse.y:1651
150+
expparse.y:1658
151+
expparse.y:1664
152+
expparse.y:1681
153+
expparse.y:1686
154+
expparse.y:1691
155+
expparse.y:1696
156+
expparse.y:1707
157+
expparse.y:1711
158+
expparse.y:1716
159+
expparse.y:1720
160+
expparse.y:1730
161+
expparse.y:1735
162+
expparse.y:1742
163+
expparse.y:1750
164+
expparse.y:1760
165+
expparse.y:1786
166+
expparse.y:1794
167+
expparse.y:1801
168+
expparse.y:1810
169+
expparse.y:1819
170+
expparse.y:1827
171+
expparse.y:1835
172+
expparse.y:1842
173+
expparse.y:1846
174+
expparse.y:1850
175+
expparse.y:1854
176+
expparse.y:1858
177+
expparse.y:1862
178+
expparse.y:1866
179+
expparse.y:1870
180+
expparse.y:1878
181+
expparse.y:1886
182+
expparse.y:1891
183+
expparse.y:1896
184+
expparse.y:1907
185+
expparse.y:1915
186+
expparse.y:1936
187+
expparse.y:1942
188+
expparse.y:1949
189+
expparse.y:1957
190+
expparse.y:1984
191+
expparse.y:1993
192+
expparse.y:2012
193+
expparse.y:2023
194+
expparse.y:2036
195+
expparse.y:2041
196+
expparse.y:2090
197+
expparse.y:2100
198+
expparse.y:2106
199+
expparse.y:2112
200+
expparse.y:2118
201+
expparse.y:2131
202+
expparse.y:2137
203+
expparse.y:2143
204+
expparse.y:2149
205+
expparse.y:2153
206+
expparse.y:2158
207+
expparse.y:2169
208+
expparse.y:2175
209+
expparse.y:2180
210+
expparse.y:2185
211+
expparse.y:2190
212+
expparse.y:2215
213+
expparse.y:2223
214+
expparse.y:2234
215+
expparse.y:2241
216+
expparse.y:2284
217+
expparse.y:2292
218+
expparse.y:2297
219+
expparse.y:2301
220+
expparse.y:2328
221+
expparse.y:2334
222+
expparse.y:2341
223+
expparse.y:2347
224+
expparse.y:2362
225+
expparse.y:2371
226+
expparse.y:2377
227+
expparse.y:2391
228+
expparse.y:2396
229+
expparse.y:2424

src/express/ybreaks.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/usr/bin/python3
2+
3+
# to use in your gdb session
4+
# pi (enters the interactive python interpreter)
5+
# import gdb
6+
# f = open(r'../../ybreaks.txt')
7+
# ybreaks = [gdb.Breakpoint(x.strip()) for x in f]
8+
#
9+
# note you'll also need to set the gdb source path to include the location of the grammar
10+
# dir ../src/express
11+
# dir ../src/express/generated
12+
#
13+
14+
import re
15+
16+
y_line_re = re.compile(r'^#line\s(?P<lineno>[0-9]+)\s"expparse.y"')
17+
18+
with open(r'generated/expparse.c') as f, open(r'generated/ybreaks.txt', 'w+') as g:
19+
ybreaks = ['expparse.y:%s' % y_line_re.match(l).group('lineno') for l in f if y_line_re.match(l)]
20+
g.writelines(x + '\n' for x in ybreaks)

0 commit comments

Comments
 (0)