1*4882a593Smuzhiyun %option prefix="perf_pmu_" 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun %{ 4*4882a593Smuzhiyun #include <stdlib.h> 5*4882a593Smuzhiyun #include <linux/bitops.h> 6*4882a593Smuzhiyun #include "pmu.h" 7*4882a593Smuzhiyun #include "pmu-bison.h" 8*4882a593Smuzhiyun value(int base)9*4882a593Smuzhiyunstatic int value(int base) 10*4882a593Smuzhiyun { 11*4882a593Smuzhiyun long num; 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun errno = 0; 14*4882a593Smuzhiyun num = strtoul(perf_pmu_text, NULL, base); 15*4882a593Smuzhiyun if (errno) 16*4882a593Smuzhiyun return PP_ERROR; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun perf_pmu_lval.num = num; 19*4882a593Smuzhiyun return PP_VALUE; 20*4882a593Smuzhiyun } 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun %} 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun num_dec [0-9]+ 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun %% 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun {num_dec} { return value(10); } 29*4882a593Smuzhiyun config { return PP_CONFIG; } 30*4882a593Smuzhiyun - { return '-'; } 31*4882a593Smuzhiyun : { return ':'; } 32*4882a593Smuzhiyun , { return ','; } 33*4882a593Smuzhiyun . { ; } 34*4882a593Smuzhiyun \n { ; } 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun %% 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun int perf_pmu_wrap(void) 39*4882a593Smuzhiyun { 40*4882a593Smuzhiyun return 1; 41*4882a593Smuzhiyun } 42