blob: 4f5feb162d1683adb92583a1edaa3d21fd99f338 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#
# indented_block_example.py
#
import pyparsing as pp
ppc = pp.pyparsing_common
data = """\
A
100
101
102
B
200
201
C
300
"""
integer = ppc.integer
group = pp.Group(pp.Char(pp.alphas) + pp.Group(pp.IndentedBlock(integer)))
print(group[...].parseString(data).dump())
# example of a recursive IndentedBlock
data = """\
A
100
101
102
B
200
b
210
211
202
C
300
"""
group = pp.Forward()
group <<= pp.Group(pp.Char(pp.alphas) + pp.Group(pp.IndentedBlock(integer | group)))
print("using searchString")
print(sum(group.searchString(data)).dump())
|