Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / tools / perf / util / pmu.l
blob67b247be693b1f1fdb5e18d2bec043c5cf315245
1 %option prefix="perf_pmu_"
2 %option reentrant
3 %option bison-bridge
5 %{
6 #include <stdlib.h>
7 #include <linux/bitops.h>
8 #include "pmu.h"
9 #include "pmu-bison.h"
11 char *perf_pmu_get_text(yyscan_t yyscanner);
12 YYSTYPE *perf_pmu_get_lval(yyscan_t yyscanner);
14 static int value(yyscan_t scanner, int base)
16         YYSTYPE *yylval = perf_pmu_get_lval(scanner);
17         char *text = perf_pmu_get_text(scanner);
18         long num;
20         errno = 0;
21         num = strtoul(text, NULL, base);
22         if (errno)
23                 return PP_ERROR;
25         yylval->num = num;
26         return PP_VALUE;
31 num_dec         [0-9]+
35 {num_dec}       { return value(yyscanner, 10); }
36 config          { return PP_CONFIG; }
37 -               { return '-'; }
38 :               { return ':'; }
39 ,               { return ','; }
40 .               { ; }
41 \n              { ; }
45 int perf_pmu_wrap(void *scanner __maybe_unused)
47         return 1;