test
[parefeu.git] / policy_test.l
index d1d72099780e123e936bb3a026f2c1799cbce4ce..be13edbdec8fb0d2efc061ddc6fe7cf227b0d182 100644 (file)
 /* common section */
 nl             \n
 ws             [ \t]+
-socket [\/][a-zA-Z0-9\/]+
-topic  [\"][a-zA-Z0-9/]+[\"]
+special        [()+\|\?\*,]
+sstring [a-zA-Z0-9]
+socket \/{sstring}[^{special}][a-zA-Z0-9\/\.]+
+quotedstring   \"[^"\n]*\"
+bracketstring  \<[^>]*\>
+comment                ^\#[^\n]*
 
 %%
 
-any            { return(ANY); }
-drop   { yylval.number=0;return (ACTION);}
-pass   { yylval.number=1;return (ACTION);}
-in             { yylval.number=0;return (DIR);}
-out            { yylval.number=1;return (DIR);}
-{topic}        { yylval.string=strdup(yytext);return WORD;}
-{socket}       { yylval.string=strdup(yytext);return SOCKET;}
-"FROM" { return FROM;}
-"ANY"  { return ANY;}
+"DROP" { yylval.number=0;return (ACTION);}
+"PASS" { yylval.number=1;return (ACTION);}
+"IN"           { return (IN);}
+"OUT"          { return (OUT);}
+"ANY"          { return (ANY);}
+{bracketstring}        { yylval.string=strndup(yytext+1, yyleng -2);return WORD;}
+{ws}"FROM"{ws}{socket}$        { yylval.string=strdup(yytext);return SOCKET;}
+^"LOG" { return LOG;}
+"QUICK" { return QUICK;}
 
 {ws}           { ; }
 {nl}           { ; }
-
+{comment}      { return COMMENT; }
 %%
 
+