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