
    daf)                         d dl Z d dlmZ  ej                  d        ej                  d      5  d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ ddd        G d d	e j                        Zy# 1 sw Y   xY w)
    N)
test_toolspeg_generator)GeneratedParser)SubRuleValidatorValidationError)parse_string)Grammarc                   $    e Zd ZddZddZddZy)	TestPegenNc                     d}t        |t              }t        |      }|j                  j	                         D ]  \  }}|j                  ||        y )Nzf
        start: bad_rule
        sum:
            | NAME '-' NAME
            | NAME '+' NAME
        )r   GrammarParserr   rulesitemsvalidate_ruleselfgrammar_sourcegrammar	validator	rule_namerules         I/root/Python-3.12.4/Lib/test/test_peg_generator/test_grammar_validator.pytest_rule_with_no_collisionz%TestPegen.test_rule_with_no_collision   sQ     (F$W-	&}}224 	5OIt##It4	5    c                     d}t        |t              }t        |      }| j                  t              5  |j
                  j                         D ]  \  }}|j                  ||        	 d d d        y # 1 sw Y   y xY w)Nzj
        start: bad_rule
        sum:
            | NAME '+' NAME
            | NAME '+' NAME ';'
        r   r   r   assertRaisesr   r   r   r   r   s         r   test_rule_with_simple_collisionz)TestPegen.test_rule_with_simple_collision   st     (F$W-	/ 	9#*==#6#6#8 9	4''	489	9 	9 	9   5A22A;c                     d}t        |t              }t        |      }| j                  t              5  |j
                  j                         D ]  \  }}|j                  ||        	 d d d        y # 1 sw Y   y xY w)Nz
        start: bad_rule
        sum:
            | NAME '+' NAME
            | NAME '*' NAME ';'
            | NAME '-' NAME
            | NAME '+' NAME ';'
        r   r   s         r   /test_rule_with_collision_after_some_other_rulesz9TestPegen.test_rule_with_collision_after_some_other_rules&   st     (F$W-	/ 	9#*==#6#6#8 9	4''	489	9 	9 	9r   )returnN)__name__
__module____qualname__r   r   r!    r   r   r   r      s    
599r   r   )unittesttestr   skip_if_missingimports_under_toolpegen.grammar_parserr   r   pegen.validatorr   r   pegen.testutilr   pegen.grammarr	   TestCaser   r&   r   r   <module>r0      s^      
  ? +"Z""?3 &EA+%	&'9!! '9& &s   A((A1