xo-reader xo-expression: nested lambdas working properly + docs
This commit is contained in:
parent
e6a3366349
commit
699ee5d38e
41 changed files with 736 additions and 137 deletions
|
|
@ -10,11 +10,15 @@
|
|||
#include "xo/expression/DefineExpr.hpp"
|
||||
#include "xo/expression/Constant.hpp"
|
||||
#include "xo/expression/ConvertExpr.hpp"
|
||||
//#include "xo/expression/GlobalEnv.hpp"
|
||||
#include "xo/expression/LocalEnv.hpp"
|
||||
//#include <regex>
|
||||
#include <stdexcept>
|
||||
|
||||
namespace xo {
|
||||
using xo::ast::Expression;
|
||||
//using xo::ast::GlobalEnv;
|
||||
using xo::ast::LocalEnv;
|
||||
//using xo::ast::DefineExpr;
|
||||
//using xo::ast::ConvertExpr;
|
||||
//using xo::ast::Constant;
|
||||
|
|
@ -28,14 +32,15 @@ namespace xo {
|
|||
: xs_stack_{}, env_stack_{}
|
||||
{
|
||||
/* top-level environment. initially empty */
|
||||
envframe toplevel_env;
|
||||
rp<LocalEnv> toplevel_env = LocalEnv::make_empty();
|
||||
|
||||
this->env_stack_.push_envframe(toplevel_env);
|
||||
}
|
||||
|
||||
bool
|
||||
parser::has_incomplete_expr() const {
|
||||
return !xs_stack_.empty();
|
||||
/* (don't count toplevel exprseq) */
|
||||
return xs_stack_.size() > 1;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -73,6 +78,8 @@ namespace xo {
|
|||
|
||||
/* stack_ is non-empty */
|
||||
|
||||
log && log(xtag("top", xs_stack_.top_exprstate()));
|
||||
|
||||
rp<Expression> retval;
|
||||
|
||||
parserstatemachine psm(&xs_stack_, &env_stack_, &retval);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue