expand_variable その2

変数の展開処理がほぼ実装完了しました。

  • 変数展開修飾子E,T,W,P,Jを実装
  • $(1)〜$(9)、$(<)、$(>)に対応

variable_expansion.cppの差分
expand_variable_test.cppの差分


残りは、TMPDIRやTMPNAME等の組み込みの変数だけです。
現在、変数テーブルから値を取得するインタフェースが、

typedef std::vector<std::string> list_type;

class variable_table
{
public:
    const list_type& get_values(const std::string& name) const;

    // ...
};

となっているため、呼ぶたびに値が変わるTMPNAMEを扱えず悩んでいます。
文脈によっては二つ以上の参照を同時に扱う可能性もあるのでmutableはダメです。
値返しは論外なので、戻り値をshared_ptrにするか、expand_variableの中で別処理にするか、ですね。