나는 C에 대한 문맥없는 파생어 목록을 찾으려고한다. BNF 나 그와 비슷한 문법을 사용하는 것이 이상적이다. 나는 그런 물건이 밖에 있다는 것을 확신한다. 그러나 인터넷 검색은 나를 많이주지 않았다.C에 대한 문맥없는 문법
기존 파서/컴파일러의 소스 코드를 읽는 것이 도움이되는 것보다 훨씬 혼란 스럽습니다. 대부분 내가 발견 한 것보다 훨씬 야심적이고 복잡하기 때문입니다.
나는 C에 대한 문맥없는 파생어 목록을 찾으려고한다. BNF 나 그와 비슷한 문법을 사용하는 것이 이상적이다. 나는 그런 물건이 밖에 있다는 것을 확신한다. 그러나 인터넷 검색은 나를 많이주지 않았다.C에 대한 문맥없는 문법
기존 파서/컴파일러의 소스 코드를 읽는 것이 도움이되는 것보다 훨씬 혼란 스럽습니다. 대부분 내가 발견 한 것보다 훨씬 야심적이고 복잡하기 때문입니다.
언제나 C11 표준 자체의 부속서 A를 사용할 수 있습니다. 자유롭게 사용할 수있는 초안 표준이 귀하의 목적을 위해 작동합니다 (http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf).
이것은 ANSI-C 문법이며 C11 표준으로 업데이트되었습니다. 당신의 목적에 부합해야합니다. 함수 정의 :
C99의 ANSI 문법 외부 선언 버그있다.
Kernighan - C 프로그래밍 언어, ANSI C 버전의 부록 A.13을 사용할 수 있습니다.
C의 yacc 문법 : http://www.lysator.liu.se/c/ANSI-C-grammar-y.html – congusbongus
이것이 좋은 점을 확인할 수 있습니다. 저는 그 페이지의 LEX/YACC 문법에서 flex/bison 파서를 만들었습니다. –
@CongXu, 좋게 보입니다. 단점은 그것이 역사적인 C이며 C99도 C11도 아니란 것을 알았습니다. –