0

TeXでは、方程式はの間に定義され$...$ます。2つのドル記号の間にある任意の数の文字のインスタンスに対して、lexのレクサールールをどのように定義できますか?

私は試した:

equation  \$[^\$]*\$

成功せずに。

4

1 に答える 1

1

方程式の一部としてドル記号を含めたくない場合は、開始条件を使用してみてください。

%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()

于 2013-02-05T22:47:47.290 に答える