Go to the source code of this file.
◆ YY_TYPEDEF_YY_SCANNER_T
#define YY_TYPEDEF_YY_SCANNER_T |
◆ SEG
◆ yyscan_t
◆ seg_scanner_finish()
void seg_scanner_finish |
( |
yyscan_t |
yyscanner | ) |
|
Definition at line 116 of file segscan.l.
117{
118 yylex_destroy(yyscanner);
119}
Referenced by seg_in().
◆ seg_scanner_init()
void seg_scanner_init |
( |
const char * |
str, |
|
|
yyscan_t * |
yyscannerp |
|
) |
| |
Definition at line 99 of file segscan.l.
100{
102
103 if (yylex_init(yyscannerp) != 0)
105
106 yyscanner = *yyscannerp;
107
108 yy_scan_string(
str, yyscanner);
109}
References elog, ERROR, and str.
Referenced by seg_in().
◆ seg_yyerror()
void seg_yyerror |
( |
SEG * |
result, |
|
|
struct Node * |
escontext, |
|
|
yyscan_t |
yyscanner, |
|
|
const char * |
message |
|
) |
| |
Definition at line 67 of file segscan.l.
68{
70
71
72
74 return;
75
76 if (*yytext == YY_END_OF_BUFFER_CHAR)
77 {
80 errmsg(
"bad seg representation"),
81
82 errdetail(
"%s at end of input", message)));
83 }
84 else
85 {
88 errmsg(
"bad seg representation"),
89
90 errdetail(
"%s at or near \"%s\"", message, yytext)));
91 }
92}
int errdetail(const char *fmt,...)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define errsave(context,...)
#define SOFT_ERROR_OCCURRED(escontext)
References errcode(), errdetail(), errmsg(), errsave, and SOFT_ERROR_OCCURRED.
Referenced by seg_in().
◆ seg_yylex()
◆ seg_yyparse()
int seg_yyparse |
( |
SEG * |
result, |
|
|
struct Node * |
escontext, |
|
|
yyscan_t |
yyscanner |
|
) |
| |
◆ significant_digits()
int significant_digits |
( |
const char * |
s | ) |
|
Definition at line 1065 of file seg.c.
1066{
1067 const char *p = s;
1068 int n,
1070 zeroes;
1071
1072 zeroes = 1;
1073
1074 for (
c = *p; (
c ==
'0' ||
c ==
'+' ||
c ==
'-') &&
c != 0;
c = *(++p));
1075
1076
1077 for (
c = *p; (
c ==
'0' ||
c ==
'.') &&
c != 0;
c = *(++p))
1078 {
1080 zeroes++;
1081 }
1082
1083
1084 for (
c = *p, n = 0;
c != 0;
c = *(++p))
1085 {
1086 if (!((
c >=
'0' &&
c <=
'9') || (
c ==
'.')))
1087 break;
1089 n++;
1090 }
1091
1092 if (!n)
1093 return zeroes;
1094
1095 return n;
1096}