가 있는 것이 가능한 두 개 또는 더 렉스/Yacc 파서에서 같은 응용 프로그램

StackOverflow https://stackoverflow.com/questions/730029

문제

나는 응용 프로그램이 어디에 있음서 한 종류의 문법과 필요를 추가 두 번째로 다른 문법을 위한 또 다른 목적이 있다.

그것은 하나 이상의?

그렇다면 당신은 어떻게 다른 항목이 포인트는?

감사

데이비드 란 finch

도움이 되었습니까?

해결책

나는 당신이 이것을 사용하여 할 수 있다고 생각합니다 --name-prefix 들소에 대한 옵션 --prefix 굴곡 옵션.

두 경우 모두 기본값을 교체 할 수 있습니다.yy"자신의 선택의 접두사로 생성 된 함수에 사용 된 접두사.

다른 팁

예, 가능합니다.

YACC에는 -p 플래그가 있어야하며 기본 "YY"대신 다른 접두사를 지정할 수 있습니다.

Lex Conatins에 의해 생성 된 파일은 외부에 사용 된 하나의 기호 만 있습니다 : Yylex. 예를 들어 -dyylex = mysecondlex로 컴파일 할 수 있습니다.

에 대한 직접적인 대답이 아니지만,당신이 고려할 수 있습을 사용하여 더 일반적인 접근 방식 등 GoldParser 를 사용할 수 있도록 일반적인 엔진을 처 LALR 및 DFA 상정에서 생성되는 당신의 문법.

이 주위에 방법이 사용할 수 있습니다 숫자의 서로 다른 문법이 같은 응용 프로그램을 변경하는 문법을 만들지 않는 새로운 소스 코드는 오히려 그냥 새로운 테이블은 파일(는 포함할 수 있으로 포함된 자원 또는 이와 유사한).

표준 Lex와 YACC는 그렇게 할 방법이 없습니다. Flex와 Bison은 다른 구현과 마찬가지로 수행합니다. lex와 yacc 버전의 Flex and Bison을 사용하지 않는다고 말한 이후 ~이다 당신은 사용하고 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top