문제

해석 된 프로그래밍 언어를 개발했습니다. 그것은 C를 기준으로 강력하게 기초합니다. 문제는 추가하고 싶습니다. foreach 지시를 받고 방법에 대한 단서가 없습니다.

Parser 및 Lexer Generator로 Bison과 Flex를 사용하고 있습니다.

도움이 되었습니까?

해결책

문법에서는 다음과 같은 표현을 원할 것입니다.

foreach := foreach ( name in name ) { statements }

이것을 구문 분석 할 때, 당신은 처음에 변수를 할당하는 추가 명령문을 가지고 AST의 WIDE 루프로 직접 번역 할 수 있어야합니다.

이것은 나에게 가장 간단한 방법으로 보이지만 아마도 반복 가능한 데이터 유형 (예 : 목록 대 배열)으로 제한이있을 것입니다. 이 경우, 다음 요소를 얻는 일관된 방법을 갖도록 모든 반복을 통합하는 것을 고려할 수 있습니다.

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