Merge in all changes related to being able to read configuration files.
[awesomized/libmemcached] / libmemcached / options / scanner.l
index 1afc50eb5a12ca337dc03715ff7f1982e5516851..f5d09e7a3aaa1e1755f5bc3cf4ab2470d7c1f830 100644 (file)
@@ -81,6 +81,10 @@ static void get_lex_chars(char* buffer, int& result, int max_size, struct type_s
 
 [\t\r\n] ; /* skip whitespace */
 
+^#.*$ {
+      return COMMENT;
+    }
+
 "--" { return DASH_OPTION; }
 
 SERVER                          { return SERVER; }
@@ -148,6 +152,9 @@ USER-DATA                   { return USER_DATA; }
 USE_UDP                                { return USE_UDP; }
 USE-UDP                                { return USE_UDP; }
 
+PREFIX-KEY                             { return PREFIX_KEY; }
+PREFIX_KEY                             { return PREFIX_KEY; }
+
 CONSISTENT      { return CONSISTENT; }
 MODULA          { return MODULA; }
 RANDOM          { return RANDOM; }
@@ -165,14 +172,15 @@ JENKINS                   { return JENKINS; }
 [[:alnum:]][[:alnum:].]*[[:alpha:]]: { 
       yylval->string.c_str = yytext;
       yylval->string.length = yyleng;
-      return SERVER_WITH_PORT;
+      return HOSTNAME_WITH_PORT;
     }
 
-[[:alnum:]][[:alnum:].]*[[:alpha:]] { 
+[[:alnum:]]+"."[[:alpha:].]+ { 
       yylval->string.c_str = yytext;
       yylval->string.length = yyleng;
-      return IDENTIFIER;
+      return HOSTNAME;
     }
+
 [[:digit:]]{1,3}"."[[:digit:]]{1,3}"."[[:digit:]]{1,3}"."[[:digit:]]{1,3}: { 
       yylval->string.c_str = yytext;
       yylval->string.length = yyleng;
@@ -185,6 +193,18 @@ JENKINS                    { return JENKINS; }
       return IPADDRESS;
     }
 
+[[:alnum:]]+ { 
+      yylval->string.c_str = yytext;
+      yylval->string.length = yyleng;
+      return STRING;
+    }
+
+\".*\" { 
+      yylval->string.c_str = yytext;
+      yylval->string.length = yyleng;
+      return QUOTED_STRING;
+    }
+
 .   {
       return UNKNOWN;
     }