(-! comment !-)
という1 つのトークンとして認識するフレックス ファイルを作成しようとしていますcomment
。以下は私のファイルです:
%{
#include <stdio.h>
void showToken(char* name);
void error();
void enter();
int lineNum=1;
%}
%option yylineno
%option noyywrap
whitespace ([\t ])
enter ([\n])
startcomment (\(\-\!)
endcomment (\!\-\))
comment (^\!\-\))
%%
{startcomment}{comment}*{endcomment} showToken("COMMENT");
{enter} enter();
{whitespace}
. error();
%%
void showToken(char* name){
printf("%d %s %s %d% \n",lineNum,name, yytext);
}
void enter(){
lineNum++;
}
void error(){
printf("%d error %s \n",lineNum,yytext);
}
しかし、単純な(-! comment !-)
入力では失敗します。このファイルは(-!
andを認識しますが、ルール!-)
を認識できません。comment
に置き換えてみましたcomment (^{endcomment})
が、うまくいきませんでした。何か提案はありますか?