Messages in this thread | | | From | Jiri Olsa <> | Subject | [PATCHv3 0/5] perf expr: Add flex scanner | Date | Fri, 28 Feb 2020 10:36:11 +0100 |
| |
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?
v3 changes: - keep the EXPR_MAX_OTHER not too high (Andi) - add normalize call to flexer, so we have all symbols covered [kajoljain]
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 | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/expr.y | 185 +++++++++++++++++++++---------------------------------------------------------------------------------------------------- tools/perf/util/stat-shadow.c | 4 +-- 7 files changed, 276 insertions(+), 168 deletions(-) create mode 100644 tools/perf/util/expr.c create mode 100644 tools/perf/util/expr.l
| |