TeXでは、方程式はの間に定義され$...$
ます。2つのドル記号の間にある任意の数の文字のインスタンスに対して、lexのレクサールールをどのように定義できますか?
私は試した:
equation \$[^\$]*\$
成功せずに。
TeXでは、方程式はの間に定義され$...$
ます。2つのドル記号の間にある任意の数の文字のインスタンスに対して、lexのレクサールールをどのように定義できますか?
私は試した:
equation \$[^\$]*\$
成功せずに。
方程式の一部としてドル記号を含めたくない場合は、開始条件を使用してみてください。
%x EQN
%%
\$ { BEGIN(EQN); } /* switch to EQN start condition upon seeing $ */
<EQN>{
\$ { BEGIN(INITIAL); } /* return to initial state upon seeing another $ */
[^\$]* { printf(yytext); } /* match everything that isn't a $ */
}
代わりに、を使用する代わりに、レクサーで他の状態が定義されている場合に使用BEGIN(STATE)
できます。yy_push_state()
yy_pop_state()