summaryrefslogtreecommitdiffstats
path: root/mmss/config.l
diff options
context:
space:
mode:
Diffstat (limited to 'mmss/config.l')
-rw-r--r--mmss/config.l170
1 files changed, 0 insertions, 170 deletions
diff --git a/mmss/config.l b/mmss/config.l
deleted file mode 100644
index d81ba20..0000000
--- a/mmss/config.l
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- Copyright (c) 2013, Matthias Schiffer <mschiffer@universe-factory.net>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-%option prefix="mmss_config_yy"
-%option noyywrap
-%option nounput
-%option noinput
-%option bison-bridge
-%option bison-locations
-%option reentrant
-%option warn
-
-
-%top {
- #include <config.yy.hpp>
-
- #include <cassert>
- #include <cstdio>
-}
-
-%{
- /* register is deprecated in C++11 */
- #define register
-
- #pragma GCC diagnostic ignored "-Wunused-parameter"
-%}
-
-%s NEEDSPACE
-%s STRING
-%s COMMENT
-
-%%
-%{
- #define UPDATE_LOCATION do { \
- yylloc->first_line = yylloc->last_line; \
- yylloc->first_column = yylloc->last_column+1; \
- yylloc->last_column += yyleng; \
- } while (0)
-
- #define TOKEN(tok) do { UPDATE_LOCATION; BEGIN(NEEDSPACE); return tok; } while (0)
-%}
-
-<INITIAL>{
-[0-9]+ { UPDATE_LOCATION; yylval->num = std::atoi(yytext); BEGIN(NEEDSPACE); return TOK_INTEGER; }
-[0-9]*\.[0-9]+ { UPDATE_LOCATION; yylval->fnum = float(std::atof(yytext)); BEGIN(NEEDSPACE); return TOK_FLOAT; }
-
-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); }
-etx { TOKEN(TOK_ETX); }
-const { TOKEN(TOK_CONST); }
-min { TOKEN(TOK_MIN); }
-max { TOKEN(TOK_MAX); }
-sine { TOKEN(TOK_SINE); }
-period { TOKEN(TOK_PERIOD); }
-phase { TOKEN(TOK_PHASE); }
-
-([[: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]; }
-
-[ \t] { yylloc->last_column++; }
-\n { yylloc->last_column = 0; yylloc->last_line++; }
-\r ;
-}
-
-<INITIAL,NEEDSPACE>{
-s { TOKEN(TOK_S); }
-m { TOKEN(TOK_M); }
-h { TOKEN(TOK_H); }
-days { TOKEN(TOK_DAYS); }
-}
-
-<NEEDSPACE>{
-[;:\{\}] { UPDATE_LOCATION; BEGIN(INITIAL); return yytext[0]; }
-
-[ \t] { yylloc->last_column++; BEGIN(INITIAL); }
-\n { yylloc->last_column = 0; yylloc->last_line++; BEGIN(INITIAL); }
-\r ;
-}
-
-<INITIAL>\" { UPDATE_LOCATION; BEGIN(STRING); }
-<STRING>[^"\\\n\r] { yylloc->last_column++; yymore(); }
-<STRING>\n { yylloc->last_line++; yylloc->last_column = 0; yymore(); }
-<STRING>\r { yymore(); }
-<STRING>\\. { yylloc->last_column+=2; yymore(); }
-<STRING>\\\n { yylloc->last_line++; yylloc->last_column = 0; yymore(); }
-<STRING>\" {
- size_t i, esc = 0;
-
- for (i = 0; i < yyleng; i++) {
- if (yytext[i] == '\\') {
- i++;
- if (yytext[i] == '\n') {
- esc+=2;
- }
- else {
- yytext[i-esc-1] = yytext[i];
- esc++;
- }
- }
- else if(esc) {
- yytext[i-esc] = yytext[i];
- }
- }
- yytext[yyleng-esc-1] = 0;
- yylval->str = strdup(yytext);
- BEGIN(NEEDSPACE);
- yylloc->last_column++;
- return TOK_STRING;
-
- }
-
-<INITIAL,NEEDSPACE>#.* { yylloc->last_column += yyleng; }
-<INITIAL,NEEDSPACE>\/\/.* { yylloc->last_column += yyleng; }
-
-<INITIAL,NEEDSPACE>\/\* { UPDATE_LOCATION; BEGIN(COMMENT); }
-<COMMENT>\*\/ { yylloc->last_column += yyleng; BEGIN(INITIAL); }
-<COMMENT>[^\n\r] { yylloc->last_column++; }
-<COMMENT>\n { yylloc->last_line++; yylloc->last_column = 0; }
-<COMMENT>\r {}
-
-. {
- yylloc->first_line = yylloc->last_line;
- yylloc->first_column = yylloc->last_column+1;
- yylval->error = "syntax error";
- return -1;
- }
-
-<INITIAL><<EOF>> { return 0; }
-<COMMENT><<EOF>> { yylval->error = "unterminated block comment"; return -1; }
-<STRING><<EOF>> { yylval->error = "unterminated string"; return -1; }
-%%