@@ -146,10 +146,10 @@ def test_repetition_range_exact():
146146 """Test repetition range with exact count {n}."""
147147 before = """root ::= "a"{3}
148148"""
149- expected = """root ::= (((root_1_xgrammar_repetition_context root_1_xgrammar_repetition_context_1 root_1_xgrammar_repetition_context_2 )))
150- root_1_xgrammar_repetition_context ::= (("a")) (=(root_1_xgrammar_repetition_context_1 root_1_xgrammar_repetition_context_2 ))
151- root_1_xgrammar_repetition_context_1 ::= (("a")) (=(root_1_xgrammar_repetition_context_2 ))
152- root_1_xgrammar_repetition_context_2 ::= (("a"))
149+ expected = """root ::= (((root_repeat_1 root_repeat_2 root_repeat_3 )))
150+ root_repeat_1 ::= (("a")) (=(root_repeat_2 root_repeat_3 ))
151+ root_repeat_2 ::= (("a")) (=(root_repeat_3 ))
152+ root_repeat_3 ::= (("a"))
153153"""
154154 grammar = _ebnf_to_grammar_no_normalization (before )
155155 after = str (grammar )
@@ -160,11 +160,11 @@ def test_repetition_range_min_max():
160160 """Test repetition range with min and max {n,m}."""
161161 before = """root ::= "a"{2,4}
162162"""
163- expected = """root ::= (((root_1_xgrammar_repetition_context root_1_xgrammar_repetition_context_1 root_1_xgrammar_repetition_context_2 root_1_xgrammar_repetition_context_3 )))
164- root_1_xgrammar_repetition_context ::= ("" | ("a")) (=(root_1_xgrammar_repetition_context_1 root_1_xgrammar_repetition_context_2 root_1_xgrammar_repetition_context_3 ))
165- root_1_xgrammar_repetition_context_1 ::= ("" | ("a")) (=(root_1_xgrammar_repetition_context_2 root_1_xgrammar_repetition_context_3 ))
166- root_1_xgrammar_repetition_context_2 ::= (("a")) (=(root_1_xgrammar_repetition_context_3 ))
167- root_1_xgrammar_repetition_context_3 ::= (("a"))
163+ expected = """root ::= (((root_repeat_1 root_repeat_2 root_repeat_3 root_repeat_4 )))
164+ root_repeat_1 ::= ("" | ("a")) (=(root_repeat_2 root_repeat_3 root_repeat_4 ))
165+ root_repeat_2 ::= ("" | ("a")) (=(root_repeat_3 root_repeat_4 ))
166+ root_repeat_3 ::= (("a")) (=(root_repeat_4 ))
167+ root_repeat_4 ::= (("a"))
168168"""
169169 grammar = _ebnf_to_grammar_no_normalization (before )
170170 after = str (grammar )
@@ -175,12 +175,10 @@ def test_repetition_range_min_only():
175175 """Test repetition range with only min {n,}."""
176176 before = """root ::= "a"{2,}
177177"""
178- expected = """root ::= (((root_1_xgrammar_repetition_context{0, 2147483643} root_1_xgrammar_repetition_context_1 root_1_xgrammar_repetition_context_2 root_1_xgrammar_repetition_context_3 root_1_xgrammar_repetition_context_4)))
179- root_1_xgrammar_repetition_context ::= (("a")) (=(root_1_xgrammar_repetition_context_1 root_1_xgrammar_repetition_context_2 root_1_xgrammar_repetition_context_3 root_1_xgrammar_repetition_context_4))
180- root_1_xgrammar_repetition_context_1 ::= ("" | ("a")) (=(root_1_xgrammar_repetition_context_2 root_1_xgrammar_repetition_context_3 root_1_xgrammar_repetition_context_4))
181- root_1_xgrammar_repetition_context_2 ::= ("" | ("a")) (=(root_1_xgrammar_repetition_context_3 root_1_xgrammar_repetition_context_4))
182- root_1_xgrammar_repetition_context_3 ::= (("a")) (=(root_1_xgrammar_repetition_context_4))
183- root_1_xgrammar_repetition_context_4 ::= (("a"))
178+ expected = """root ::= (((root_repeat_1 root_repeat_2 root_repeat_inf)))
179+ root_repeat_inf ::= ("" | ("a" root_repeat_inf))
180+ root_repeat_1 ::= (("a")) (=(root_repeat_2 root_repeat_inf))
181+ root_repeat_2 ::= (("a")) (=(root_repeat_inf))
184182"""
185183 grammar = _ebnf_to_grammar_no_normalization (before )
186184 after = str (grammar )
@@ -275,12 +273,12 @@ def test_combined_features():
275273rule2 ::= [0-9]+ "." [0-9]*
276274"""
277275 expected = """root ::= (("start" root_1 "end"))
278- rule1 ::= (((rule1_1_xgrammar_repetition_context rule1_1_xgrammar_repetition_context_1 rule1_1_xgrammar_repetition_context_2 ))) (=((":")))
276+ rule1 ::= (((rule1_repeat_1 rule1_repeat_2 rule1_repeat_3 ))) (=((":")))
279277rule2 ::= ((rule2_1 "." [0-9]*))
280278root_1 ::= ((((rule1) | (rule2)) root_1) | ((rule1) | (rule2)))
281- rule1_1_xgrammar_repetition_context ::= ("" | ([a-z])) (=(rule1_1_xgrammar_repetition_context_1 rule1_1_xgrammar_repetition_context_2 ))
282- rule1_1_xgrammar_repetition_context_1 ::= ("" | ([a-z])) (=(rule1_1_xgrammar_repetition_context_2 ))
283- rule1_1_xgrammar_repetition_context_2 ::= (([a-z]))
279+ rule1_repeat_1 ::= ("" | ([a-z])) (=(rule1_repeat_2 rule1_repeat_3 ))
280+ rule1_repeat_2 ::= ("" | ([a-z])) (=(rule1_repeat_3 ))
281+ rule1_repeat_3 ::= (([a-z]))
284282rule2_1 ::= (([0-9] rule2_1) | [0-9])
285283"""
286284 grammar = _ebnf_to_grammar_no_normalization (before )
@@ -354,35 +352,29 @@ def test_repetition_range():
354352"""
355353
356354 expected = """root ::= ((a b c d e f g))
357- a ::= ((a_1_xgrammar_repetition_context a_1_xgrammar_repetition_context_1 ))
358- b ::= ((b_1_xgrammar_repetition_context {0, 1} b_1_xgrammar_repetition_context_1 b_1_xgrammar_repetition_context_2 b_1_xgrammar_repetition_context_3 b_1_xgrammar_repetition_context_4 ))
359- c ::= ((c_1_xgrammar_repetition_context c_1_xgrammar_repetition_context_1 ))
360- d ::= ((d_1_xgrammar_repetition_context{0, 2147483643} d_1_xgrammar_repetition_context_1 d_1_xgrammar_repetition_context_2 d_1_xgrammar_repetition_context_3 d_1_xgrammar_repetition_context_4 ))
361- e ::= ((e_1_xgrammar_repetition_context{0, 2147483643} e_1_xgrammar_repetition_context_1 e_1_xgrammar_repetition_context_2 e_1_xgrammar_repetition_context_3 e_1_xgrammar_repetition_context_4 ))
362- f ::= ((f_1_xgrammar_repetition_context f_1_xgrammar_repetition_context_1 f_1_xgrammar_repetition_context_2 ))
355+ a ::= ((a_repeat_1 a_repeat_2 ))
356+ b ::= ((b_repeat_1 {0, 1} b_repeat_2 b_repeat_3 b_repeat_4 b_repeat_5 ))
357+ c ::= ((c_repeat_1 c_repeat_2 ))
358+ d ::= ((d_repeat_inf ))
359+ e ::= ((e_repeat_1 e_repeat_2 e_repeat_inf ))
360+ f ::= ((f_repeat_1 f_repeat_2 f_repeat_3 ))
363361g ::= ("")
364- a_1_xgrammar_repetition_context ::= ("" | ("a")) (=(a_1_xgrammar_repetition_context_1))
365- a_1_xgrammar_repetition_context_1 ::= (("a"))
366- b_1_xgrammar_repetition_context ::= ((a) | ("b")) (=(b_1_xgrammar_repetition_context_1 b_1_xgrammar_repetition_context_2 b_1_xgrammar_repetition_context_3 b_1_xgrammar_repetition_context_4))
367- b_1_xgrammar_repetition_context_1 ::= ("" | (a) | ("b")) (=(b_1_xgrammar_repetition_context_2 b_1_xgrammar_repetition_context_3 b_1_xgrammar_repetition_context_4))
368- b_1_xgrammar_repetition_context_2 ::= ("" | (a) | ("b")) (=(b_1_xgrammar_repetition_context_3 b_1_xgrammar_repetition_context_4))
369- b_1_xgrammar_repetition_context_3 ::= ("" | (a) | ("b")) (=(b_1_xgrammar_repetition_context_4))
370- b_1_xgrammar_repetition_context_4 ::= ((a) | ("b"))
371- c_1_xgrammar_repetition_context ::= ("" | ("c")) (=(c_1_xgrammar_repetition_context_1))
372- c_1_xgrammar_repetition_context_1 ::= ("" | ("c"))
373- d_1_xgrammar_repetition_context ::= (("d")) (=(d_1_xgrammar_repetition_context_1 d_1_xgrammar_repetition_context_2 d_1_xgrammar_repetition_context_3 d_1_xgrammar_repetition_context_4))
374- d_1_xgrammar_repetition_context_1 ::= ("" | ("d")) (=(d_1_xgrammar_repetition_context_2 d_1_xgrammar_repetition_context_3 d_1_xgrammar_repetition_context_4))
375- d_1_xgrammar_repetition_context_2 ::= ("" | ("d")) (=(d_1_xgrammar_repetition_context_3 d_1_xgrammar_repetition_context_4))
376- d_1_xgrammar_repetition_context_3 ::= ("" | ("d")) (=(d_1_xgrammar_repetition_context_4))
377- d_1_xgrammar_repetition_context_4 ::= ("" | ("d"))
378- e_1_xgrammar_repetition_context ::= (("e")) (=(e_1_xgrammar_repetition_context_1 e_1_xgrammar_repetition_context_2 e_1_xgrammar_repetition_context_3 e_1_xgrammar_repetition_context_4))
379- e_1_xgrammar_repetition_context_1 ::= ("" | ("e")) (=(e_1_xgrammar_repetition_context_2 e_1_xgrammar_repetition_context_3 e_1_xgrammar_repetition_context_4))
380- e_1_xgrammar_repetition_context_2 ::= ("" | ("e")) (=(e_1_xgrammar_repetition_context_3 e_1_xgrammar_repetition_context_4))
381- e_1_xgrammar_repetition_context_3 ::= (("e")) (=(e_1_xgrammar_repetition_context_4))
382- e_1_xgrammar_repetition_context_4 ::= (("e"))
383- f_1_xgrammar_repetition_context ::= (("f")) (=(f_1_xgrammar_repetition_context_1 f_1_xgrammar_repetition_context_2))
384- f_1_xgrammar_repetition_context_1 ::= (("f")) (=(f_1_xgrammar_repetition_context_2))
385- f_1_xgrammar_repetition_context_2 ::= (("f"))
362+ a_repeat_1 ::= ("" | ("a")) (=(a_repeat_2))
363+ a_repeat_2 ::= (("a"))
364+ b_repeat_1 ::= ((a) | ("b")) (=(b_repeat_2 b_repeat_3 b_repeat_4 b_repeat_5))
365+ b_repeat_2 ::= ("" | (a) | ("b")) (=(b_repeat_3 b_repeat_4 b_repeat_5))
366+ b_repeat_3 ::= ("" | (a) | ("b")) (=(b_repeat_4 b_repeat_5))
367+ b_repeat_4 ::= ("" | (a) | ("b")) (=(b_repeat_5))
368+ b_repeat_5 ::= ((a) | ("b"))
369+ c_repeat_1 ::= ("" | ("c")) (=(c_repeat_2))
370+ c_repeat_2 ::= ("" | ("c"))
371+ d_repeat_inf ::= ("" | ("d" d_repeat_inf))
372+ e_repeat_inf ::= ("" | ("e" e_repeat_inf))
373+ e_repeat_1 ::= (("e")) (=(e_repeat_2 e_repeat_inf))
374+ e_repeat_2 ::= (("e")) (=(e_repeat_inf))
375+ f_repeat_1 ::= (("f")) (=(f_repeat_2 f_repeat_3))
376+ f_repeat_2 ::= (("f")) (=(f_repeat_3))
377+ f_repeat_3 ::= (("f"))
386378"""
387379
388380 grammar = _ebnf_to_grammar_no_normalization (before )
0 commit comments