[PATCHv2 0/5] perf expr: Add flex scanner

From: Jiri Olsa
Date: Mon Feb 24 2020 - 03:29:37 EST


hi,
while preparing changes for user defined metric expressions
I also moved the expression manual parser to flex.

The reason is to have an easy and reasonable way to support
and parse multiple user-defined metric expressions from
command line or file.

I was posponing the change, but I just saw another update to
the expr manual scanner (from Kajol Jain), so cherry picked
just the expr flex code changes to get it out.

Kajol Jain,
I think it should ease up your change for unknown values marked
by '?'. Would you consider rebasing your changes on top of this?


v2 changes:
- handle special chars properly
- fix return value for expr__parse

Available also in:
git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
perf/metric_flex

thanks,
jirka


---
Jiri Olsa (5):
perf expr: Add expr.c object
perf expr: Move expr lexer to flex
perf expr: Increase EXPR_MAX_OTHER
perf expr: Straighten expr__parse/expr__find_other interface
perf expr: Make expr__parse return -1 on error

tools/perf/tests/expr.c | 10 +++---
tools/perf/util/Build | 11 ++++++-
tools/perf/util/expr.c | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tools/perf/util/expr.h | 8 ++---
tools/perf/util/expr.l | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++
tools/perf/util/expr.y | 208 ++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------------
tools/perf/util/stat-shadow.c | 4 +--
7 files changed, 272 insertions(+), 168 deletions(-)
create mode 100644 tools/perf/util/expr.c
create mode 100644 tools/perf/util/expr.l