컴파일러를 만들려고 하닌깐 asm을 첫번째 읽을때는 주소를 붙이고 두번째 읽을때 instruction을 만들어야 되는데
두번 파싱하기 위해서 어떻게 해야 됩니까?
yylex라는 함수를 다른 정의에 의해서 두번 호출하는게 가능한지?
어셈 컴파일 할려면 2 pass 여야 하는 사실이 원시 파일을 (어셈 소스 코드)를 2번 파싱 해야 한다는 의미일까요? 제 생각에는 원시 파일을 한번 파싱해서 내가 쓰기 좋은 중간 형태로 파싱을 하고, 그 후에 그 중간 형태의 데이터를 2 pass 처리 하는 쪽이 더 좋을 듯 한데요.
2-pass 어셈블러들은
첫번째에서 파싱하면서 명령어들을 기계어 OP코드로 다 변환합니다. (모든 명령이 주소부분만 뺀 채로 이 단계에서 다 변환됩니다)
두번째 단계는 점프명령이나 일부 메모리주소 접근명령의 주소를 조정해 주죠.
파싱은 한번밖에 필요 없습니다.
Written By the Black Knight of Destruction
token을 정의하는 rule을 그때그때 다르게 적용하고 싶단 말인것 같은데, 그럼 여기를 참고하세요.
Flex info page: start condition
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html Korean Ver: http://cinsk.github.io/cfaqs/
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
어셈 컴파일 할려면 2 pass 여야 하는 사실이 원시 파일을 (어셈 소
어셈 컴파일 할려면 2 pass 여야 하는 사실이 원시 파일을 (어셈 소스 코드)를 2번 파싱 해야 한다는 의미일까요?
제 생각에는 원시 파일을 한번 파싱해서 내가 쓰기 좋은 중간 형태로 파싱을 하고, 그 후에 그 중간 형태의 데이터를 2 pass 처리 하는 쪽이 더 좋을 듯 한데요.
2-pass 어셈블러들은 첫번째에서 파싱하면서 명령어들을 기계어
2-pass 어셈블러들은
첫번째에서 파싱하면서 명령어들을 기계어 OP코드로
다 변환합니다. (모든 명령이 주소부분만 뺀 채로 이 단계에서
다 변환됩니다)
두번째 단계는 점프명령이나 일부 메모리주소 접근명령의
주소를 조정해 주죠.
파싱은 한번밖에 필요 없습니다.
Written By the Black Knight of Destruction
token을 정의하는 rule을 그때그때 다르게 적용하고 싶단 말인것 같
token을 정의하는 rule을 그때그때 다르게 적용하고 싶단 말인것 같은데, 그럼 여기를 참고하세요.
Flex info page: start condition
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
댓글 달기