virtual ~Parser() {}
// 受け取ったlexerからの字句の取得を行い、解析を行なう。
- // 成功した場合には、先頭から順番にdatumとして読み込んだObjectの
- // vectorを返す。
+ // 成功した場合には、datum一つを表す状態を返す。
// 致命的なエラーが発生した場合には例外を返す。
- smart_ptr<interpreter::Object> parse(smart_ptr<reader::StreamReader>& strm,
- gc::GarbageCollector& gc);
+ smart_ptr<data::Object> parse(smart_ptr<reader::StreamReader>& strm,
+ gc::GarbageCollector& gc);
private:
smart_ptr<lexer::Lexer> lexer_;
};
// <list>に対応するものだけは、carとcdrでハンドラが分離している。
- class ListCarHandler : public IParserHandler
+ class ListHandler : public IParserHandler
{
// PS_LIST_CARである間に対応するハンドラ
public:
- ListCarHandler() {}
- virtual ~ListCarHandler() {}
+ ListHandler() {}
+ virtual ~ListHandler() {}
private:
};
-
- class ListCdrHandler : public IParserHandler
- {
- // PS_LIST_CDRである間に対応するハンドラ
- public:
- ListCdrHandler() {}
- virtual ~ListCdrHandler() {}
-
- private:
-
- bool exec_(HandlerData& data);
-
- };
-
-
- class DotHandler : public IParserHandler
- {
- // PS_AFTER_DOTに対応するハンドラ
- public:
- DotHandler() {}
- virtual ~DotHandler() {}
-
- private:
-
- bool exec_(HandlerData& data);
-
- };
-
- // <list>に対応するものだけは、carとcdrでハンドラが分離している。
+ // .後のdatumに対応するためのハンドラ
class DotEndHandler : public IParserHandler
{
// PS_END_DOTに対応するハンドラ。