sl.Add(newsemantic_check_sugared_statement_node(typeof(assign_tuple),newList<syntax_tree_node>{asstup.vars,asstup.expr},asstup.source_context));// Это нужно для проверок на этапе преобразования в семантику
// Состоит из var_def_statements. Некоторые являются var_tuple_def_statement
// Их надо найти и сделать несколько секций variable_definitions - без семантических проверок.
// Каждую var_tuple_def_statement надо заменить на assign_var_tuple - одну на секцию variable_definitions
// А потом оставшаяся часть визитора сделает семантические проверки
vartname="#temp_var"+UniqueNumStr();
varvd=newList<var_def_statement>();
vd.Add(newsemantic_check_sugared_var_def_statement_node(typeof(assign_var_tuple),newList<syntax_tree_node>{vtd.vars,vtd.inital_value},vtd.source_context));// Это нужно для проверок на этапе преобразования в семантику
ld.Add(newsemantic_check_sugared_statement_node(typeof(assign_var_tuple),newList<syntax_tree_node>{assvartup.idents,assvartup.expr},assvartup.source_context));// Это нужно для проверок на этапе преобразования в семантику
sl.Add(newsemantic_check_sugared_statement_node(typeof(assign_var_tuple),newList<syntax_tree_node>{assvartup.idents,assvartup.expr},assvartup.source_context));// Это нужно для проверок на этапе преобразования в семантику
vartt=newvar_statement(newident(tname),assvartup.expr);// тут для assvartup.expr внутри повторно вызывается convert_strong, это плохо, но если там лямбда, то иначе - с semantic_addr_value - не работает!!!
sl.Add(tt);// он же помещается в новое синтаксическое дерево