File tree Expand file tree Collapse file tree 1 file changed +3
-7
lines changed Expand file tree Collapse file tree 1 file changed +3
-7
lines changed Original file line number Diff line number Diff line change @@ -857,18 +857,14 @@ def resolve_term_references(term_dict):
857857                        except  KeyError :
858858                            raise  GrammarError ("Terminal used but not defined: %s"  %  item )
859859                        assert  term_value  is  not   None 
860+                         if  term_value  is  token_tree :
861+                             raise  GrammarError (
862+                                 "Recursion in terminal '%s' (recursion is only allowed in rules, not terminals)"  %  name )
860863                        exp .children [0 ] =  term_value 
861864                        changed  =  True 
862865        if  not  changed :
863866            break 
864867
865-     for  name , term  in  term_dict .items ():
866-         if  term :    # Not just declared 
867-             for  child  in  term .children :
868-                 ids  =  [id (x ) for  x  in  child .iter_subtrees ()]
869-                 if  id (term ) in  ids :
870-                     raise  GrammarError ("Recursion in terminal '%s' (recursion is only allowed in rules, not terminals)"  %  name )
871- 
872868
873869def  options_from_rule (name , params , * x ):
874870    if  len (x ) >  1 :
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments