%option prefix="perf_pmu_" %{ #include #include #include "pmu.h" #include "pmu-bison.h" static int value(int base) { long num; errno = 0; num = strtoul(perf_pmu_text, NULL, base); if (errno) return PP_ERROR; perf_pmu_lval.num = num; return PP_VALUE; } %} num_dec [0-9]+ %% {num_dec} { return value(10); } config { return PP_CONFIG; } config1 { return PP_CONFIG1; } config2 { return PP_CONFIG2; } - { return '-'; } : { return ':'; } , { return ','; } . { ; } \n { ; } %% int perf_pmu_wrap(void) { return 1; }