|  | %option prefix="perf_pmu_" | 
|  |  | 
|  | %{ | 
|  | #include <stdlib.h> | 
|  | #include <linux/bitops.h> | 
|  | #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; | 
|  | } |