를 해결하는 방법을 나는 다음 (플렉스/들소)를 준 플렉스에서큰 프로그램에서 2 + 2, 2 + 2 충돌
:
pn [\+|\-]
dig [0-9]+
exp [e|E]{dig}+
.
.
. 들소에서
"+" {printf("+ detected\n");
return PLUS_SIGN;}
{pn}?{dig}+ { printf("digit detected - %s\n",yytext);
sscanf(yytext, "%d", (int*)&yylval);
return TYPE_INT;}
:
expr:
expr PLUS_SIGN expr
{
$$ = $1 + $3;
printf(" $$=%f\n",$$);
}
| TYPE_INT
{
$$ = (int)$1;
printf(" $$=%f\n",$$);
}
;
문제는 :
나는 2 + 2가, 2 +2 대신 2의 인식 + 줄 때 2
어떻게 나는 그걸 추가로 할 수 있니?
몇 실행 후 다목적 문장 부호/연산자의 모호성 문제 나는 재귀 적으로 w/o (f) lex/bison/yacc를 사용했다. –