. C 언어 분석기

이제 실제로 문법을 해석할 수 있는 분석기를 작성해보자. 여러 종류의 문서가 있지만 우리가 제일 잘 알고 있는 문법은 역시 C 소스이므로 C 언어의 문법대로 구문 분석을 하는 C 언어 분석기 클래스를 제일 먼저 만들어 볼 것이다. 하나만 제대로 만들어 보면 HTML이나 SQL 분석기를 만드는 것도 거의 비슷한 방법으로 만들 수 있게 된다. C 언어 분석기 클래스의 이름은 CParseCpp이며 CParse로부터 상속받는다. Parse.h에 다음과 같이 클래스를 선언하였다.

 

class CParseCpp : public CParse

{

public:

     CParseCpp();

     ~CParseCpp() {};

     TCHAR *GetInfo(int iIndex);

 

private:

     void ParseLine(CApiEdit &ae,int nLine);

     BOOL IsKeyword(CApiEdit &ae,int s, int e);

     BOOL IsPreProcessor(CApiEdit &ae,int s, int e);

};

 

생성자와 파괴자가 선언되어 있고 CParse로부터 상속받은 두 개의 순수 가상함수를 재정의하고 있다. 이외에 두 개의 private 멤버함수를 추가로 가지는데 이 함수들은 ParseLine 함수의 문서 분석을 보조하는 도우미 함수들이다. 너무 당연한 얘기겠지만 파생 클래스는 부모 클래스로부터 상속받은 멤버 외에 더 필요한 멤버함수나 멤버변수를 추가로 선언해서 사용할 수 있다.