1.2.2 스니펫
이 책에는 글자 그대로 인터프리터 구현에 필요한 모든 코드 줄이 들어 있어서 스니펫 역시 아주 정확하다. 또한 주요 기능이 아직 없어도 프로그램은 실행 가능한 상태로 맞춰 놔야 하므로 나중에 스니펫에서 대체할 코드를 임시로 추가하는 식으로 기술했다.
모든 종소리와 휘파람(bells and whistles)이 포함된12 스니펫은 다음과 같은 모습이다.
lox/Scanner.java ▶ scanToken() 메서드 코드 1줄 교체
default:
if (isDigit(c)) { number(); } else { Lox.error(line, "Unexpected character."); }
break;
가운데 컬러로 표시한 부분이 새로 추가한 코드다. 그 위/아래 검은색 코드 줄은 기존 주변 코드다. 상단에는 이 스니펫이 어느 파일, 어디에 들어가는지 짤막한 글귀로 표시했다. ‘~줄 교체’는 이전에 검은색으로 표시한 코드 줄 사이에 있던 몇 줄의 코드를 새 스니펫으로 교체한다는 뜻이다.