From 37c21678743c752cbbc2297871c47a3117303309 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sun, 28 Jul 2013 22:12:35 +0200 Subject: Implement config parser --- mmss/config.l | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'mmss/config.l') diff --git a/mmss/config.l b/mmss/config.l index f612613..4fdd346 100644 --- a/mmss/config.l +++ b/mmss/config.l @@ -36,6 +36,9 @@ %top { #include + + #include + #include } %s NEEDSPACE @@ -59,6 +62,22 @@ yes { TOKEN(TOK_YES); } no { TOKEN(TOK_NO); } network { TOKEN(TOK_NETWORK); } +protocol { TOKEN(TOK_PROTOCOL); } +node { TOKEN(TOK_NODE); } +load { TOKEN(TOK_LOAD); } +default { TOKEN(TOK_DEFAULT); } +interface { TOKEN(TOK_INTERFACE); } +address { TOKEN(TOK_ADDRESS); } + +([[:xdigit:]]{2}:){7}[[:xdigit:]]{2} { + UPDATE_LOCATION; + + assert(std::sscanf(yytext, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + &yylval->addr.d[0], &yylval->addr.d[1], &yylval->addr.d[2], &yylval->addr.d[3], + &yylval->addr.d[4], &yylval->addr.d[5], &yylval->addr.d[6], &yylval->addr.d[7]) == 8); + + return TOK_GMRF_ADDRESS; +} [;:\{\}] { UPDATE_LOCATION; return yytext[0]; } -- cgit v1.2.3