mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	bpo-40939: Remove the old parser (GH-20768)
This commit removes the old parser, the deprecated parser module, the old parser compatibility flags and environment variables and all associated support code and documentation.
This commit is contained in:
		
							parent
							
								
									311110abcd
								
							
						
					
					
						commit
						1ed83adb0e
					
				
					 53 changed files with 24447 additions and 35978 deletions
				
			
		
							
								
								
									
										46
									
								
								Parser/string_parser.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								Parser/string_parser.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,46 @@
 | 
			
		|||
#ifndef STRINGS_H
 | 
			
		||||
#define STRINGS_H
 | 
			
		||||
 | 
			
		||||
#include <Python.h>
 | 
			
		||||
#include <Python-ast.h>
 | 
			
		||||
#include "pegen.h"
 | 
			
		||||
 | 
			
		||||
#define EXPRLIST_N_CACHED  64
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    /* Incrementally build an array of expr_ty, so be used in an
 | 
			
		||||
       asdl_seq. Cache some small but reasonably sized number of
 | 
			
		||||
       expr_ty's, and then after that start dynamically allocating,
 | 
			
		||||
       doubling the number allocated each time. Note that the f-string
 | 
			
		||||
       f'{0}a{1}' contains 3 expr_ty's: 2 FormattedValue's, and one
 | 
			
		||||
       Constant for the literal 'a'. So you add expr_ty's about twice as
 | 
			
		||||
       fast as you add expressions in an f-string. */
 | 
			
		||||
 | 
			
		||||
    Py_ssize_t allocated;  /* Number we've allocated. */
 | 
			
		||||
    Py_ssize_t size;       /* Number we've used. */
 | 
			
		||||
    expr_ty    *p;         /* Pointer to the memory we're actually
 | 
			
		||||
                              using. Will point to 'data' until we
 | 
			
		||||
                              start dynamically allocating. */
 | 
			
		||||
    expr_ty    data[EXPRLIST_N_CACHED];
 | 
			
		||||
} ExprList;
 | 
			
		||||
 | 
			
		||||
/* The FstringParser is designed to add a mix of strings and
 | 
			
		||||
   f-strings, and concat them together as needed. Ultimately, it
 | 
			
		||||
   generates an expr_ty. */
 | 
			
		||||
typedef struct {
 | 
			
		||||
    PyObject *last_str;
 | 
			
		||||
    ExprList expr_list;
 | 
			
		||||
    int fmode;
 | 
			
		||||
} FstringParser;
 | 
			
		||||
 | 
			
		||||
void _PyPegen_FstringParser_Init(FstringParser *);
 | 
			
		||||
int _PyPegen_parsestr(Parser *, int *, int *, PyObject **,
 | 
			
		||||
                      const char **, Py_ssize_t *, Token *);
 | 
			
		||||
int _PyPegen_FstringParser_ConcatFstring(Parser *, FstringParser *, const char **,
 | 
			
		||||
                                const char *, int, int, Token *, Token *,
 | 
			
		||||
                                Token *);
 | 
			
		||||
int _PyPegen_FstringParser_ConcatAndDel(FstringParser *, PyObject *);
 | 
			
		||||
expr_ty _PyPegen_FstringParser_Finish(Parser *, FstringParser *, Token *, Token *);
 | 
			
		||||
void _PyPegen_FstringParser_Dealloc(FstringParser *);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue