mirror of
https://github.com/polserver/polserver
synced 2026-08-13 08:23:08 -04:00
* update grammar * add ast nodes; ast building * Rename to unpacking * semantic analysis * executor work part 1, unpacking indices * renamings; implement index binding * small cleanup * use multi_index; more tests * use multi_index only for rest, otherwise list * initial formatting * add missing token decoding * address self-review comments * formatting tweaks * add test for var binding in classes * add StringIterator * fix spread tests * add cfgfile iterator; add cfgelem opersubscript; tests * add iterator for SQLResultSet and SQLRow; tests * Copy value in take global/local * Allow any iterable can index rest unpacking Always use dictionary as rest object in index unpacking * add docs, core-changes, doc tests * formatting changes... * address self-review comments * update formatter, format all binding test srcs * address review comments - unset var scope * add cfgfile/cfgelem docs * reformat objref svg
27 lines
774 B
C++
27 lines
774 B
C++
#include "BindingStatement.h"
|
|
|
|
#include "bscript/compiler/ast/Expression.h"
|
|
#include "bscript/compiler/ast/NodeVisitor.h"
|
|
|
|
namespace Pol::Bscript::Compiler
|
|
{
|
|
BindingStatement::BindingStatement( const SourceLocation& source_location,
|
|
std::unique_ptr<Node> bindings,
|
|
std::unique_ptr<Expression> initializer )
|
|
: Statement( source_location )
|
|
{
|
|
children.reserve( 2 );
|
|
children.push_back( std::move( initializer ) );
|
|
children.push_back( std::move( bindings ) );
|
|
}
|
|
void BindingStatement::accept( NodeVisitor& visitor )
|
|
{
|
|
visitor.visit_binding_statement( *this );
|
|
}
|
|
|
|
void BindingStatement::describe_to( std::string& w ) const
|
|
{
|
|
w += "binding-statement";
|
|
}
|
|
|
|
} // namespace Pol::Bscript::Compiler
|