aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Parser/pegen.h
diff options
context:
space:
mode:
Diffstat (limited to 'Parser/pegen.h')
-rw-r--r--Parser/pegen.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/Parser/pegen.h b/Parser/pegen.h
index e219aa0359e..1862fd7407e 100644
--- a/Parser/pegen.h
+++ b/Parser/pegen.h
@@ -5,6 +5,8 @@
#include <pycore_ast.h>
#include <pycore_token.h>
+#include "lexer/state.h"
+
#if 0
#define PyPARSE_YIELD_IS_KEYWORD 0x0001
#endif
@@ -24,6 +26,9 @@
#define CURRENT_POS (-5)
+#define TOK_GET_MODE(tok) (&(tok->tok_mode_stack[tok->tok_mode_stack_index]))
+#define TOK_GET_STRING_PREFIX(tok) (TOK_GET_MODE(tok)->string_kind == TSTRING ? 't' : 'f')
+
typedef struct _memo {
int type;
void *node;
@@ -327,6 +332,10 @@ StarEtc *_PyPegen_star_etc(Parser *, arg_ty, asdl_seq *, arg_ty);
arguments_ty _PyPegen_make_arguments(Parser *, asdl_arg_seq *, SlashWithDefault *,
asdl_arg_seq *, asdl_seq *, StarEtc *);
arguments_ty _PyPegen_empty_arguments(Parser *);
+expr_ty _PyPegen_template_str(Parser *p, Token *a, asdl_expr_seq *raw_expressions, Token *b);
+expr_ty _PyPegen_joined_str(Parser *p, Token *a, asdl_expr_seq *raw_expressions, Token *b);
+expr_ty _PyPegen_interpolation(Parser *, expr_ty, Token *, ResultTokenWithMetadata *, ResultTokenWithMetadata *, Token *,
+ int, int, int, int, PyArena *);
expr_ty _PyPegen_formatted_value(Parser *, expr_ty, Token *, ResultTokenWithMetadata *, ResultTokenWithMetadata *, Token *,
int, int, int, int, PyArena *);
AugOperator *_PyPegen_augoperator(Parser*, operator_ty type);
@@ -371,9 +380,6 @@ void *_PyPegen_run_parser(Parser *);
mod_ty _PyPegen_run_parser_from_string(const char *, int, PyObject *, PyCompilerFlags *, PyArena *);
asdl_stmt_seq *_PyPegen_interactive_exit(Parser *);
-// TODO: move to the correct place in this file
-expr_ty _PyPegen_joined_str(Parser *p, Token* a, asdl_expr_seq* expr, Token*b);
-
// Generated function in parse.c - function definition in python.gram
void *_PyPegen_parse(Parser *);