0
TeX에서 방정식은 $...$
사이에 정의됩니다. 의 인스턴스에 대해 lex에 대한 렉서 규칙을 어떻게 정의 할 수 있습니까? 사이의 문자는 몇 개입니까? TeX 방정식의 Lexer 규칙 (정규 표현식)
equation \$[^\$]*\$
을 성공없이.
TeX에서 방정식은 $...$
사이에 정의됩니다. 의 인스턴스에 대해 lex에 대한 렉서 규칙을 어떻게 정의 할 수 있습니까? 사이의 문자는 몇 개입니까? TeX 방정식의 Lexer 규칙 (정규 표현식)
equation \$[^\$]*\$
을 성공없이.
당신은 달러 기호가 방정식의 한 부분으로 포함하지 않으려면 start conditions를 사용하여 시도 할 수 있습니다 : 당신이 다른 상태를 가질 경우 yy_push_state()
및 yy_pop_state()
을 사용할 수 있습니다
%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)
를 사용하여 귀하의 렉서에 정의되어 있습니다.
위와 같이''$''과''$$''을 구별하기 위해 사용할 수도 있습니다 – hosolmaz