2010-01-14 4 views
9

s- 표현식에 C를 쓰고 컴파일 타임 매크로를 사용하고 싶습니다. 아무도이 일을하는 걸 모르고 있습니까? 그것은 표준 C.에 S-표현을 번역해야C를 s- 표현으로 작성하십시오.

+3

왜? ............ –

+0

코드에 포함될 s- 표현식의 예를 제공 할 수 있습니까? vatine이 예제를 주었지만, 당신이 원하는 것은 아니었다 고했습니다. 형식이 중요하지 않다면 왜 s- 표현으로 쓰고 싶은지 설명 할 수 있습니까? –

+0

답변

7
+0

scexp 링크가 더 이상 작동하지 않습니다. http://super.para.media.kyoto-u.ac.jp/~tasuku/sc/index.html – whoplisp

+0

#lisp의 francogrex에서 http://www.isi.edu/isd/LOOM/Stella를 사용하도록 권유하십시오./ – whoplisp

+0

kyoto-u.ac.jp에 대한 링크는 scexp 프로젝트와 동일하지 않습니다 (또한 C를 생성하고 꽤 큽니다). 이것은 scexp에 대한 링크입니다 : http://tenkan.org/~tim/scexp-0.9.tar.gz – whoplisp

2

얼마나을 의미합니까?

 
(c-expression 
    (int main ((int argc) ((array (pointer char)) argv) 
    (block 
     (printf "%d arguments\n" argc) 
     (if (argc >= 1) 
     (printf "The first arg is %s\n" (ref argv 1))) 
     (return 0)))) 
=> 
"int main (int argc, char *argv[]) 
{ 
    printf("%d arguments\n", argc); 
    if (argc >= 1) 
    printf(The first arg is %s\n", argv[1]); 
    return 0; 
} 

그렇다면 분명히 할 수 있습니다. 그러나, 그다지 사소하지는 않습니다.

+0

그런 종류입니다. 비록 내가 s- 표현 버전이 당신이 거기서 한 일들과 상당히 비슷하게 보일 것이라고 생각하지는 않지만. –

2

은 아마 당신은 소피아 시스템 히라이의 SC에서보세요 C.

0

에 커먼 리스프를 컴파일 ECL 같은 것을 원한다. 그의 국제 Lisp 회의 논문은 20052007에서 archive.org에서 보관됩니다.

그의 source repo, 특히 examples을 참조하십시오.

내 지식은 S-Expression 스타일 코딩 방법을 다른 바닐라 C 프로젝트에서 사용하려는 많은 시도 중에서 가장 좋습니다.

관련 문제