-
문자 종류 표 설정
식별자에서 사용 가능한 문자를 확인하는 방식 중 하나로 배열에 허용되는 문자를 저장해두는 방식으로 이를 통해 문자가 허용되는 문자인지 여부와 어떤 종류의 문자인지 파악할 수 있다.
예를 들어 문자 a~z A~Z가 허용되고 _를 영문자의 일부로 본다면 다음과 같이 설정할 수 있다.
enum TokenKind { Letter, }; TokenKind charType[256]; void Initialize() { for (int i = 'a'; i <= 'z'; i++) { charType[i] = TokenKind::Letter; } for (int i = 'A'; i <= 'Z'; i++) { charType[i] = TokenKind::Letter; } charType['_'] = TokenKind::Letter; }
※ 추가로 더 많은 종류의 문자를 지원하려면 TokenKind에 종류를 추가하고 해당하는 문자를 문자 종류 표에 추가하면 된다.
또한, 어떤 토큰이 단독으로 사용될 수 있는 경우엔 TokenKind에 종류를 추가할 때 해당하는 문자로 값을 설정해주면 표현력을 향상할 수 있다.
+와 -가 추가되는 경우 다음과 같이 문자 종류 표를 설정한다.
enum TokenKind { Plus = '+', Minus = '-', }; TokenKind charType[256]; void Initialize() { charType['+'] = Plus; charType['-'] = Minus; }
이후 토큰을 사용할 때 다음과 같이 사용할 수 있게 된다.
UseToken(Plus); UseToken('+');
더보기참고문헌