xref: /aosp_15_r20/external/ply/ply/test/yacc_nested.py (revision 09948d41d6b3b06d4f51351d12c4c470db0bfb8f)
1*09948d41SKrzysztof Kosińskiimport sys
2*09948d41SKrzysztof Kosiński
3*09948d41SKrzysztof Kosińskiif ".." not in sys.path: sys.path.insert(0,"..")
4*09948d41SKrzysztof Kosiński
5*09948d41SKrzysztof Kosińskifrom ply import lex, yacc
6*09948d41SKrzysztof Kosiński
7*09948d41SKrzysztof Kosińskit_A = 'A'
8*09948d41SKrzysztof Kosińskit_B = 'B'
9*09948d41SKrzysztof Kosińskit_C = 'C'
10*09948d41SKrzysztof Kosiński
11*09948d41SKrzysztof Kosińskitokens = ('A', 'B', 'C')
12*09948d41SKrzysztof Kosiński
13*09948d41SKrzysztof Kosińskithe_lexer = lex.lex()
14*09948d41SKrzysztof Kosiński
15*09948d41SKrzysztof Kosińskidef t_error(t):
16*09948d41SKrzysztof Kosiński    pass
17*09948d41SKrzysztof Kosiński
18*09948d41SKrzysztof Kosińskidef p_error(p):
19*09948d41SKrzysztof Kosiński    pass
20*09948d41SKrzysztof Kosiński
21*09948d41SKrzysztof Kosińskidef p_start(t):
22*09948d41SKrzysztof Kosiński    '''start : A nest C'''
23*09948d41SKrzysztof Kosiński    pass
24*09948d41SKrzysztof Kosiński
25*09948d41SKrzysztof Kosińskidef p_nest(t):
26*09948d41SKrzysztof Kosiński   '''nest : B'''
27*09948d41SKrzysztof Kosiński   print(t[-1])
28*09948d41SKrzysztof Kosiński
29*09948d41SKrzysztof Kosińskithe_parser = yacc.yacc(debug = False, write_tables = False)
30*09948d41SKrzysztof Kosiński
31*09948d41SKrzysztof Kosińskithe_parser.parse('ABC', the_lexer)
32*09948d41SKrzysztof Kosińskithe_parser.parse('ABC', the_lexer, tracking=True)
33*09948d41SKrzysztof Kosińskithe_parser.parse('ABC', the_lexer, tracking=True, debug=1)
34