diff --git a/xo-reader2/include/xo/reader2/DExpectFormalArgSsm.hpp b/xo-reader2/include/xo/reader2/DExpectFormalArgSsm.hpp index 540b66c2..1860853c 100644 --- a/xo-reader2/include/xo/reader2/DExpectFormalArgSsm.hpp +++ b/xo-reader2/include/xo/reader2/DExpectFormalArgSsm.hpp @@ -54,8 +54,12 @@ namespace xo { DExpectFormalArgSsm(); /** create empty instance using memory from @p mm **/ - DExpectFormalArgSsm * _make(DArena & mm); + static obj make(DArena & mm); + /** create empty instance using memory from @p mm **/ + static DExpectFormalArgSsm * _make(DArena & mm); + + /** puah instance of this ssm onto @p p_psm **/ static void start(ParserStateMachine * p_psm); /** @defgroup scm-expectformalargssm-ssm-facet syntaxstatemachine facet methods **/ diff --git a/xo-reader2/include/xo/reader2/DExpectSymbolSsm.hpp b/xo-reader2/include/xo/reader2/DExpectSymbolSsm.hpp index 4cb04019..d874e63a 100644 --- a/xo-reader2/include/xo/reader2/DExpectSymbolSsm.hpp +++ b/xo-reader2/include/xo/reader2/DExpectSymbolSsm.hpp @@ -38,8 +38,7 @@ namespace xo { * to the state machine on top of the stack * as of when this start() method invoked **/ - static void start(DArena & parser_mm, - ParserStateMachine * p_psm); + static void start(ParserStateMachine * p_psm); /** update state for this syntax on incoming token @p tk, * with overall parser state in @p p_psm diff --git a/xo-reader2/src/reader2/DDefineSsm.cpp b/xo-reader2/src/reader2/DDefineSsm.cpp index af8cee87..f7edd2a3 100644 --- a/xo-reader2/src/reader2/DDefineSsm.cpp +++ b/xo-reader2/src/reader2/DDefineSsm.cpp @@ -597,7 +597,7 @@ namespace xo { if (defstate_ == defexprstatetype::def_0) { this->defstate_ = defexprstatetype::def_1; - DExpectSymbolSsm::start(p_psm->parser_alloc(), p_psm); + DExpectSymbolSsm::start(p_psm); return; } diff --git a/xo-reader2/src/reader2/DExpectFormalArgSsm.cpp b/xo-reader2/src/reader2/DExpectFormalArgSsm.cpp index 7952c8f2..2a19ce62 100644 --- a/xo-reader2/src/reader2/DExpectFormalArgSsm.cpp +++ b/xo-reader2/src/reader2/DExpectFormalArgSsm.cpp @@ -4,12 +4,14 @@ **/ #include "DExpectFormalArgSsm.hpp" +#include "ssm/ISyntaxStateMachine_DExpectFormalArgSsm.hpp" +#include "DExpectSymbolSsm.hpp" +#include "ssm/ISyntaxStateMachine_DExpectSymbolSsm.hpp" #ifdef NOT_YET -#include "expect_symbol_xs.hpp" #include "expect_type_xs.hpp" -#include "parserstatemachine.hpp" -#include "exprstatestack.hpp" +//#include "parserstatemachine.hpp" +//#include "exprstatestack.hpp" #include "xo/expression/Variable.hpp" #endif @@ -38,6 +40,12 @@ namespace xo { DExpectFormalArgSsm::DExpectFormalArgSsm() = default; + obj + DExpectFormalArgSsm::make(DArena & mm) + { + return obj(_make(mm)); + } + DExpectFormalArgSsm * DExpectFormalArgSsm::_make(DArena & mm) { @@ -46,6 +54,14 @@ namespace xo { return new (mem) DExpectFormalArgSsm(); } + void + DExpectFormalArgSsm::start(ParserStateMachine * p_psm) + { + p_psm->push_ssm(DExpectFormalArgSsm::make(p_psm->parser_alloc())); + + DExpectSymbolSsm::start(p_psm); + } + syntaxstatetype DExpectFormalArgSsm::ssm_type() const noexcept { return syntaxstatetype::expect_formal_arg; @@ -161,14 +177,8 @@ namespace xo { expr, this->get_expect_str()); } + #ifdef NOT_YET - void - DExpectFormalSsm::start(ParserStateMachine * p_psm) { - p_psm->push_exprstate(expect_formal_xs::make()); - - expect_symbol_xs::start(p_psm); - } - expect_formal_xs::expect_formal_xs() : exprstate(exprstatetype::expect_formal) {} diff --git a/xo-reader2/src/reader2/DExpectFormalArglistSsm.cpp b/xo-reader2/src/reader2/DExpectFormalArglistSsm.cpp index 3912a43d..eaad8028 100644 --- a/xo-reader2/src/reader2/DExpectFormalArglistSsm.cpp +++ b/xo-reader2/src/reader2/DExpectFormalArglistSsm.cpp @@ -5,6 +5,8 @@ #include "DExpectFormalArglistSsm.hpp" #include "ssm/ISyntaxStateMachine_DExpectFormalArglistSsm.hpp" +#include "DExpectFormalArgSsm.hpp" +#include "ssm/ISyntaxStateMachine_DExpectFormalArgSsm.hpp" #include #include #include @@ -213,14 +215,10 @@ namespace xo { DExpectFormalArglistSsm::on_leftparen_token(const Token & tk, ParserStateMachine * p_psm) { - scope log(XO_DEBUG(true)); - if (fastate_ == formalarglstatetype::argl_0) { this->fastate_ = formalarglstatetype::argl_1a; - log && log("STUB: DExpectFormalArglistSsm::on_leftparen_token -> DExpectFormalSsm::start()"); - - //DExpectFormalSsm::start(p_psm); + DExpectFormalArgSsm::start(p_psm); return; } diff --git a/xo-reader2/src/reader2/DExpectSymbolSsm.cpp b/xo-reader2/src/reader2/DExpectSymbolSsm.cpp index c10678f2..7a86e721 100644 --- a/xo-reader2/src/reader2/DExpectSymbolSsm.cpp +++ b/xo-reader2/src/reader2/DExpectSymbolSsm.cpp @@ -29,11 +29,10 @@ namespace xo { } void - DExpectSymbolSsm::start(DArena & parser_alloc, - ParserStateMachine * p_psm) + DExpectSymbolSsm::start(ParserStateMachine * p_psm) { DExpectSymbolSsm * sym_ssm - = DExpectSymbolSsm::make(parser_alloc); + = DExpectSymbolSsm::make(p_psm->parser_alloc()); // note: // relying on [ISyntaxStateMachine_DExpectedSymbolSsm.hpp] diff --git a/xo-reader2/src/reader2/reader2_register_facets.cpp b/xo-reader2/src/reader2/reader2_register_facets.cpp index 1cb37de9..9dc10aa2 100644 --- a/xo-reader2/src/reader2/reader2_register_facets.cpp +++ b/xo-reader2/src/reader2/reader2_register_facets.cpp @@ -20,6 +20,9 @@ #include #include +#include +#include + #include #include @@ -63,6 +66,9 @@ namespace xo { FacetRegistry::register_impl(); FacetRegistry::register_impl(); + FacetRegistry::register_impl(); + FacetRegistry::register_impl(); + FacetRegistry::register_impl(); FacetRegistry::register_impl(); @@ -80,6 +86,7 @@ namespace xo { log && log(xtag("DLambdaSsm.tseq", typeseq::id())); log && log(xtag("DIfElseSsm.tseq", typeseq::id())); log && log(xtag("DExpectFormalArglistSsm.tseq", typeseq::id())); + log && log(xtag("DExpectFormalArgSsm.tseq", typeseq::id())); log && log(xtag("DExpectSymbolSsm.tseq", typeseq::id())); log && log(xtag("DExpectTypeSsm.tseq", typeseq::id())); log && log(xtag("DExpectExprSsm.tseq", typeseq::id()));