なんちゃって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 が節で使いたいのですが、うまく書けませんでした。

ここで進まない方がよさそうなので、ダメダメ途中経過でおしまいにします。

それではまた。

Posted by 春日井 優