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
29 lines
690 B
C++
29 lines
690 B
C++
#include "SequenceBinding.h"
|
|
|
|
#include "bscript/compiler/ast/Node.h"
|
|
#include "bscript/compiler/ast/NodeVisitor.h"
|
|
#include "clib/clib.h"
|
|
|
|
namespace Pol::Bscript::Compiler
|
|
{
|
|
SequenceBinding::SequenceBinding( const SourceLocation& loc,
|
|
std::vector<std::unique_ptr<Node>> bindings )
|
|
: Node( loc, std::move( bindings ) )
|
|
{
|
|
}
|
|
u8 SequenceBinding::binding_count() const
|
|
{
|
|
return Clib::clamp_convert<u8>( children.size() );
|
|
}
|
|
|
|
void SequenceBinding::accept( NodeVisitor& visitor )
|
|
{
|
|
visitor.visit_sequence_binding( *this );
|
|
}
|
|
|
|
void SequenceBinding::describe_to( std::string& w ) const
|
|
{
|
|
w += "sequence-binding";
|
|
}
|
|
|
|
} // namespace Pol::Bscript::Compiler
|