127 yyextra->have_lookahead =
false;
190 *(
yyextra->lookahead_end) =
'\0';
192 yyextra->have_lookahead =
true;
285 lvalp->core_yystype.str =
296 yyextra->have_lookahead =
false;
301 lvalp->core_yystype.str =
330 if (
c >=
'0' &&
c <=
'9')
332 if (
c >=
'a' &&
c <=
'f')
333 return c -
'a' + 0xA;
334 if (
c >=
'A' &&
c <=
'F')
335 return c -
'A' + 0xA;
336 elog(
ERROR,
"invalid hexadecimal digit");
347 errmsg(
"invalid Unicode escape value")));
410 in -
str + position + 3);
418 else if (
isxdigit((
unsigned char) in[1]) &&
452 else if (in[1] ==
'+' &&
494 errmsg(
"invalid Unicode escape"),
495 errhint(
"Unicode escapes must be \\XXXX or \\+XXXXXX.")));
523 errmsg(
"invalid Unicode surrogate pair"),
List * raw_parser(const char *str, RawParseMode mode)
static unsigned int hexval(unsigned char c)
static char * str_udeescape(const char *str, char escape, int position, core_yyscan_t yyscanner)
static void check_unicode_value(char32_t c)
static bool check_uescapechar(unsigned char escape)
#define Assert(condition)
int errhint(const char *fmt,...)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
#define pg_yyget_extra(yyscanner)
static bool next_token(char **lineptr, StringInfo buf, bool *initial_quote, bool *terminating_comma)
PGDLLIMPORT const ScanKeywordList ScanKeywords
void pg_unicode_to_server(char32_t c, unsigned char *s)
void * repalloc(void *pointer, Size size)
@ RAW_PARSE_PLPGSQL_ASSIGN2
@ RAW_PARSE_PLPGSQL_ASSIGN1
@ RAW_PARSE_PLPGSQL_ASSIGN3
static PgChecksumMode mode
static bool is_utf16_surrogate_first(char32_t c)
static bool is_utf16_surrogate_second(char32_t c)
static char32_t surrogate_pair_to_codepoint(char16_t first, char16_t second)
#define MAX_UNICODE_EQUIVALENT_STRING
static bool is_valid_unicode_codepoint(char32_t c)
int scanner_errposition(int location, core_yyscan_t yyscanner)
core_yyscan_t scanner_init(const char *str, core_yy_extra_type *yyext, const ScanKeywordList *keywordlist, const uint16 *keyword_tokens)
void setup_scanner_errposition_callback(ScannerCallbackState *scbstate, core_yyscan_t yyscanner, int location)
void scanner_finish(core_yyscan_t yyscanner)
void cancel_scanner_errposition_callback(ScannerCallbackState *scbstate)
const uint16 ScanKeywordTokens[]
void scanner_yyerror(const char *message, core_yyscan_t yyscanner)
int core_yylex(core_YYSTYPE *yylval_param, YYLTYPE *yylloc_param, core_yyscan_t yyscanner)
void truncate_identifier(char *ident, int len, bool warn)
bool scanner_isspace(char ch)