なんちゃってPascalを作ってみる(2)
こんにちは。
前回に続けてなんちゃってPascal略してNPascalを作ってみます。
構文解析木を作る準備
本当はデザインパターンのCompositeパターンを使って、構文解析木の葉と節を作るときれいにまとめられそうなのですが、うまく動きませんでした。
ということで暫定版。
#pragma once
#include"token.h"
#include<string>
#include<list>
#include<sstream>
using namespace std;
class astNode{
public:
astNode(string ty){
_type = ty;
}
void addNode(astNode t){
_lis.push_back(t);
}
void addToken(token t){
_token = t;
}
string toFullString(){
ostringstream ss;
ss << _token.toFullString();
for(auto l :_lis){
ss << l.toFullString();
}
return ss.str();
}
private:
string _type;
token _token;
list<astNode> _lis;
};
_token が葉で使いたくて、_lis が節で使いたいのですが、うまく書けませんでした。
ここで進まない方がよさそうなので、ダメダメ途中経過でおしまいにします。
それではまた。
ディスカッション
コメント一覧
まだ、コメントがありません