projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: handle invalid URL passed to lttng_create_session_live
[lttng-tools.git]
/
src
/
lib
/
lttng-ctl
/
filter
/
filter-parser.y
diff --git
a/src/lib/lttng-ctl/filter/filter-parser.y
b/src/lib/lttng-ctl/filter/filter-parser.y
index 6250054a0eb788a59f7dbffe42bf9e32d0f9ffa4..29e2866a7b0990979703ad5bc0a7434786e20c91 100644
(file)
--- a/
src/lib/lttng-ctl/filter/filter-parser.y
+++ b/
src/lib/lttng-ctl/filter/filter-parser.y
@@
-40,9
+40,9
@@
LTTNG_HIDDEN
int filter_parser_debug = 0;
LTTNG_HIDDEN
int filter_parser_debug = 0;
LTTNG_HIDDEN
-int yyparse(struct filter_parser_ctx *parser_ctx);
+int yyparse(struct filter_parser_ctx *parser_ctx
, yyscan_t scanner
);
LTTNG_HIDDEN
LTTNG_HIDDEN
-int yylex(union YYSTYPE *yyval,
struct filter_parser_ctx *parser_ctx
);
+int yylex(union YYSTYPE *yyval,
yyscan_t scanner
);
LTTNG_HIDDEN
int yylex_init_extra(struct filter_parser_ctx *parser_ctx, yyscan_t * ptr_yy_globals);
LTTNG_HIDDEN
LTTNG_HIDDEN
int yylex_init_extra(struct filter_parser_ctx *parser_ctx, yyscan_t * ptr_yy_globals);
LTTNG_HIDDEN
@@
-188,7
+188,7
@@
static struct filter_node *make_op_node(struct filter_parser_ctx *scanner,
}
LTTNG_HIDDEN
}
LTTNG_HIDDEN
-void yyerror(struct filter_parser_ctx *parser_ctx, const char *str)
+void yyerror(struct filter_parser_ctx *parser_ctx,
yyscan_t scanner,
const char *str)
{
fprintf(stderr, "error %s\n", str);
}
{
fprintf(stderr, "error %s\n", str);
}
@@
-201,7
+201,7
@@
int yywrap(void)
#define parse_error(parser_ctx, str) \
do { \
#define parse_error(parser_ctx, str) \
do { \
- yyerror(parser_ctx,
YY_("parse error: " str "\n"));
\
+ yyerror(parser_ctx,
parser_ctx->scanner, YY_("parse error: " str "\n"));
\
YYERROR; \
} while (0)
YYERROR; \
} while (0)
@@
-238,7
+238,7
@@
static void filter_ast_free(struct filter_ast *ast)
LTTNG_HIDDEN
int filter_parser_ctx_append_ast(struct filter_parser_ctx *parser_ctx)
{
LTTNG_HIDDEN
int filter_parser_ctx_append_ast(struct filter_parser_ctx *parser_ctx)
{
- return yyparse(parser_ctx);
+ return yyparse(parser_ctx
, parser_ctx->scanner
);
}
LTTNG_HIDDEN
}
LTTNG_HIDDEN
@@
-301,7
+301,8
@@
void filter_parser_ctx_free(struct filter_parser_ctx *parser_ctx)
%define api.pure
/* %locations */
%parse-param {struct filter_parser_ctx *parser_ctx}
%define api.pure
/* %locations */
%parse-param {struct filter_parser_ctx *parser_ctx}
-%lex-param {struct filter_parser_ctx *parser_ctx}
+%parse-param {yyscan_t scanner}
+%lex-param {yyscan_t scanner}
%start translation_unit
%token CHARACTER_CONSTANT_START SQUOTE STRING_LITERAL_START DQUOTE
%token ESCSEQ CHAR_STRING_TOKEN
%start translation_unit
%token CHARACTER_CONSTANT_START SQUOTE STRING_LITERAL_START DQUOTE
%token ESCSEQ CHAR_STRING_TOKEN
@@
-313,7
+314,7
@@
void filter_parser_ctx_free(struct filter_parser_ctx *parser_ctx)
%token ASSIGN COLON SEMICOLON DOTDOTDOT DOT EQUAL COMMA
%token XOR_BIN AND_BIN OR_BIN NOT_BIN
%token ASSIGN COLON SEMICOLON DOTDOTDOT DOT EQUAL COMMA
%token XOR_BIN AND_BIN OR_BIN NOT_BIN
-%token <gs> IDENTIFIER
+%token <gs> IDENTIFIER
GLOBAL_IDENTIFIER
%token ERROR
%union
{
%token ERROR
%union
{
@@
-387,6
+388,13
@@
primary_expression
$$->u.expression.type = AST_EXP_IDENTIFIER;
$$->u.expression.u.identifier = yylval.gs->s;
}
$$->u.expression.type = AST_EXP_IDENTIFIER;
$$->u.expression.u.identifier = yylval.gs->s;
}
+ | GLOBAL_IDENTIFIER
+ {
+ $$ = make_node(parser_ctx, NODE_EXPRESSION);
+ $$->u.expression.type = AST_EXP_GLOBAL_IDENTIFIER;
+ $$->u.expression.u.identifier = yylval.gs->s;
+ }
+
| DECIMAL_CONSTANT
{
$$ = make_node(parser_ctx, NODE_EXPRESSION);
| DECIMAL_CONSTANT
{
$$ = make_node(parser_ctx, NODE_EXPRESSION);
This page took
0.037071 seconds
and
4
git commands to generate.