私の問題は、このコードは、この形式のファイルからURLを検出しなければならない私のルールフレックスコードに認識できないルールがあるのはなぜですか?
です:
ftp://[<user>[:<password>]@]<host>[:<port>]/<path>[;<ftptype>]
。
私はすでにホームブリューとフレックスを更新しました。私は私のルール
を "フレックスexample.flex" を使用してコンパイルすると、 "./a.out file.txtを" を使用して実行しようとしていた。
LETRA [A-Za-z]
DIG [0-9]
CAR {"_"|"$"}
IDENT {LETRA|"$"|"_"}({LETRA|DIG|"_"|"$"|"-"}*)
%%
{LETRA}({LETRA|DIG}{3,})({LETRA}|{DIG}*) {
printf("(<user>,%s)",yytext);
}
{LETRA}{CAR}({LETRA|DIG|CAR}{4,})({LETRA|DIG|CAR}*)|
{LETRA}{LETRA|DIG}{CAR}({LETRA|DIG|CAR}{3,})|
{LETRA}({LETRA|DIG}{2}){CAR}{LETRA|DIG|CAR}{2,}|
{LETRA}({LETRA|DIG}{3}){CAR}({LETRA|DIG|CAR}+)|
{LETRA}({LETRA|DIG}{4}){CAR}({LETRA|DIG|CAR}*)|
{LETRA}({LETRA|DIG}{5}){CAR}({LETRA|DIG|CAR}*) {printf("(<password>,%s)",yytext);}
({IDENT[.]}+{IDENT})+ {
printf("(<host>,%s)",yytext);
}
{DIG}({DIG})* {
printf("(<port>,%s)",yytext);
}
({IDENT[/]}+{IDENT})+ {
printf("(<path>,%s)",yytext);
}
{[#]DIG}({DIG})* {
printf("(<ftptype>,%s)",yytext);
}
. {printf("%s",yytext);}
%%
int main(){
yylex();
}