Commit | Line | Data |
---|---|---|
cd82a32e | 1 | %option prefix="perf_pmu_" |
3d88aec0 IR |
2 | %option reentrant |
3 | %option bison-bridge | |
cd82a32e JO |
4 | |
5 | %{ | |
6 | #include <stdlib.h> | |
7 | #include <linux/bitops.h> | |
8 | #include "pmu.h" | |
9 | #include "pmu-bison.h" | |
10 | ||
3d88aec0 IR |
11 | char *perf_pmu_get_text(yyscan_t yyscanner); |
12 | YYSTYPE *perf_pmu_get_lval(yyscan_t yyscanner); | |
13 | ||
14 | static int value(yyscan_t scanner, int base) | |
cd82a32e | 15 | { |
3d88aec0 IR |
16 | YYSTYPE *yylval = perf_pmu_get_lval(scanner); |
17 | char *text = perf_pmu_get_text(scanner); | |
cd82a32e JO |
18 | long num; |
19 | ||
20 | errno = 0; | |
3d88aec0 | 21 | num = strtoul(text, NULL, base); |
cd82a32e JO |
22 | if (errno) |
23 | return PP_ERROR; | |
24 | ||
3d88aec0 | 25 | yylval->num = num; |
cd82a32e JO |
26 | return PP_VALUE; |
27 | } | |
28 | ||
29 | %} | |
30 | ||
31 | num_dec [0-9]+ | |
32 | ||
33 | %% | |
34 | ||
3d88aec0 | 35 | {num_dec} { return value(yyscanner, 10); } |
cd82a32e | 36 | config { return PP_CONFIG; } |
cd82a32e JO |
37 | - { return '-'; } |
38 | : { return ':'; } | |
39 | , { return ','; } | |
40 | . { ; } | |
41 | \n { ; } | |
42 | ||
43 | %% | |
44 | ||
3d88aec0 | 45 | int perf_pmu_wrap(void *scanner __maybe_unused) |
cd82a32e JO |
46 | { |
47 | return 1; | |
48 | } |