2017-04-18 13 views
0

나는 C 문법을 찾고 있는데,이 링크가 https://www.lysator.liu.se/c/ANSI-C-grammar-y.html#cast-expression이라는 것을 발견했다. C와 lex 코드에 대한 문법이 있지만 더하기와 같은 의미론이 보이지 않는다. 구현 된 yacc은 yacc 만 사용된다는 것을 알고있다. 구문 검사를하지만 우리는 또한 다른 도구에서 구현 된 의미 체계가 구현 된 의미론을 작성할 수 있습니다.의미 문장과 yacc

나는 시맨틱 스를 작성해야하는 곳에서 작은 컴파일러를 구현하려고하는데, 함수를 사용하여 yacc로 작성하는 것이 좋다.

답변

2

예문 문법 (매우 오래된 버전의 C 용)에는 특별한 의미론이 포함되어 있지 않습니다. 확실히 추가 할 수 있습니다. 의미 규칙은 당신이 구축하고있는 도구의 종류에 달려 있습니다.

Bison/yacc는 확실히 컴파일러를 빌드 할 수있는 도구입니다. 많은 사람들이 그렇게 해왔다. 의미 론적 코드를 재사용 가능한 기능으로 리팩토링하든 아니면 각 액션에 직접 코드를 넣는 것이 든 당신에게 달린 디자인 선택입니다. 나는 우리 중 대부분이 코드 반복을 피하기 위해 함수의 일부 사용을 권장한다고 생각한다.

+0

나를 새로운 C 문법에 연결해 주시겠습니까 –

+0

@jeevansai : C 표준에 하나가 있습니다. 바이슨 형식으로 바꾸려면 약간의 작업이 필요합니다. 전체 C 컴파일러를 작성하는 것은 첫 번째 컴파일러 프로젝트에 너무 야심 찬 것입니다. 더 간단한 언어를위한 문법을 ​​직접 작성하는 것이 좋습니다. 당신은 그것을 이해하지 않고 복잡한 것을 복사하는 것보다 더 많은 것을 배울 것입니다. 물론, C 문법의 일부가 도움이 될 수 있습니다. – rici

+0

들소에서 변수를 저장하는 방법 –