/******************************************************************************************** Этот файл создан программой PascalABC.NET: syntax tree generator v1.5(с) Водолазов Н., Ткачук А.В., Иванов С.О., 2007 Вручную не редактировать! *********************************************************************************************/ using System; using System.IO; namespace PascalABCCompiler.SyntaxTree { public class SyntaxTreeStreamWriter:IVisitor { public BinaryWriter bw; public void visit(expression _expression) { bw.Write((Int16)0); write_expression(_expression); } public void write_expression(expression _expression) { write_declaration(_expression); } public void visit(syntax_tree_node _syntax_tree_node) { bw.Write((Int16)1); write_syntax_tree_node(_syntax_tree_node); } public void write_syntax_tree_node(syntax_tree_node _syntax_tree_node) { if (_syntax_tree_node.source_context == null) { bw.Write((byte)0); } else { bw.Write((byte)1); if (_syntax_tree_node.source_context.begin_position == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_syntax_tree_node.source_context.begin_position.line_num); bw.Write(_syntax_tree_node.source_context.begin_position.column_num); } if (_syntax_tree_node.source_context.end_position == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_syntax_tree_node.source_context.end_position.line_num); bw.Write(_syntax_tree_node.source_context.end_position.column_num); } } } public void visit(statement _statement) { bw.Write((Int16)2); write_statement(_statement); } public void write_statement(statement _statement) { write_declaration(_statement); } public void visit(statement_list _statement_list) { bw.Write((Int16)3); write_statement_list(_statement_list); } public void write_statement_list(statement_list _statement_list) { write_statement(_statement_list); if (_statement_list.subnodes == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_statement_list.subnodes.Count); for(Int32 ssyy_i = 0; ssyy_i < _statement_list.subnodes.Count; ssyy_i++) { if (_statement_list.subnodes[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _statement_list.subnodes[ssyy_i].visit(this); } } } if (_statement_list.left_logical_bracket == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _statement_list.left_logical_bracket.visit(this); } if (_statement_list.right_logical_bracket == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _statement_list.right_logical_bracket.visit(this); } bw.Write(_statement_list.expr_lambda_body); } public void visit(ident _ident) { bw.Write((Int16)4); write_ident(_ident); } public void write_ident(ident _ident) { write_addressed_value_funcname(_ident); if (_ident.name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_ident.name); } } public void visit(assign _assign) { bw.Write((Int16)5); write_assign(_assign); } public void write_assign(assign _assign) { write_statement(_assign); if (_assign.to == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _assign.to.visit(this); } if (_assign.from == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _assign.from.visit(this); } bw.Write((byte)_assign.operator_type); } public void visit(bin_expr _bin_expr) { bw.Write((Int16)6); write_bin_expr(_bin_expr); } public void write_bin_expr(bin_expr _bin_expr) { write_addressed_value(_bin_expr); if (_bin_expr.left == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _bin_expr.left.visit(this); } if (_bin_expr.right == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _bin_expr.right.visit(this); } bw.Write((byte)_bin_expr.operation_type); } public void visit(un_expr _un_expr) { bw.Write((Int16)7); write_un_expr(_un_expr); } public void write_un_expr(un_expr _un_expr) { write_addressed_value(_un_expr); if (_un_expr.subnode == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _un_expr.subnode.visit(this); } bw.Write((byte)_un_expr.operation_type); } public void visit(const_node _const_node) { bw.Write((Int16)8); write_const_node(_const_node); } public void write_const_node(const_node _const_node) { write_addressed_value(_const_node); } public void visit(bool_const _bool_const) { bw.Write((Int16)9); write_bool_const(_bool_const); } public void write_bool_const(bool_const _bool_const) { write_const_node(_bool_const); bw.Write(_bool_const.val); } public void visit(int32_const _int32_const) { bw.Write((Int16)10); write_int32_const(_int32_const); } public void write_int32_const(int32_const _int32_const) { write_const_node(_int32_const); bw.Write(_int32_const.val); } public void visit(double_const _double_const) { bw.Write((Int16)11); write_double_const(_double_const); } public void write_double_const(double_const _double_const) { write_const_node(_double_const); bw.Write(_double_const.val); } public void visit(subprogram_body _subprogram_body) { bw.Write((Int16)12); write_subprogram_body(_subprogram_body); } public void write_subprogram_body(subprogram_body _subprogram_body) { write_syntax_tree_node(_subprogram_body); if (_subprogram_body.subprogram_code == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _subprogram_body.subprogram_code.visit(this); } if (_subprogram_body.subprogram_defs == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _subprogram_body.subprogram_defs.visit(this); } } public void visit(addressed_value _addressed_value) { bw.Write((Int16)13); write_addressed_value(_addressed_value); } public void write_addressed_value(addressed_value _addressed_value) { write_expression(_addressed_value); } public void visit(type_definition _type_definition) { bw.Write((Int16)14); write_type_definition(_type_definition); } public void write_type_definition(type_definition _type_definition) { write_declaration(_type_definition); if (_type_definition.attr_list == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _type_definition.attr_list.visit(this); } } public void visit(roof_dereference _roof_dereference) { bw.Write((Int16)15); write_roof_dereference(_roof_dereference); } public void write_roof_dereference(roof_dereference _roof_dereference) { write_dereference(_roof_dereference); } public void visit(named_type_reference _named_type_reference) { bw.Write((Int16)16); write_named_type_reference(_named_type_reference); } public void write_named_type_reference(named_type_reference _named_type_reference) { write_type_definition(_named_type_reference); if (_named_type_reference.names == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_named_type_reference.names.Count); for(Int32 ssyy_i = 0; ssyy_i < _named_type_reference.names.Count; ssyy_i++) { if (_named_type_reference.names[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _named_type_reference.names[ssyy_i].visit(this); } } } } public void visit(variable_definitions _variable_definitions) { bw.Write((Int16)17); write_variable_definitions(_variable_definitions); } public void write_variable_definitions(variable_definitions _variable_definitions) { write_declaration(_variable_definitions); if (_variable_definitions.var_definitions == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_variable_definitions.var_definitions.Count); for(Int32 ssyy_i = 0; ssyy_i < _variable_definitions.var_definitions.Count; ssyy_i++) { if (_variable_definitions.var_definitions[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _variable_definitions.var_definitions[ssyy_i].visit(this); } } } } public void visit(ident_list _ident_list) { bw.Write((Int16)18); write_ident_list(_ident_list); } public void write_ident_list(ident_list _ident_list) { write_syntax_tree_node(_ident_list); if (_ident_list.idents == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_ident_list.idents.Count); for(Int32 ssyy_i = 0; ssyy_i < _ident_list.idents.Count; ssyy_i++) { if (_ident_list.idents[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _ident_list.idents[ssyy_i].visit(this); } } } } public void visit(var_def_statement _var_def_statement) { bw.Write((Int16)19); write_var_def_statement(_var_def_statement); } public void write_var_def_statement(var_def_statement _var_def_statement) { write_declaration(_var_def_statement); if (_var_def_statement.vars == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _var_def_statement.vars.visit(this); } if (_var_def_statement.vars_type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _var_def_statement.vars_type.visit(this); } if (_var_def_statement.inital_value == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _var_def_statement.inital_value.visit(this); } bw.Write((byte)_var_def_statement.var_attr); bw.Write(_var_def_statement.is_event); } public void visit(declaration _declaration) { bw.Write((Int16)20); write_declaration(_declaration); } public void write_declaration(declaration _declaration) { write_syntax_tree_node(_declaration); if (_declaration.attributes == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _declaration.attributes.visit(this); } } public void visit(declarations _declarations) { bw.Write((Int16)21); write_declarations(_declarations); } public void write_declarations(declarations _declarations) { write_syntax_tree_node(_declarations); if (_declarations.defs == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_declarations.defs.Count); for(Int32 ssyy_i = 0; ssyy_i < _declarations.defs.Count; ssyy_i++) { if (_declarations.defs[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _declarations.defs[ssyy_i].visit(this); } } } } public void visit(program_tree _program_tree) { bw.Write((Int16)22); write_program_tree(_program_tree); } public void write_program_tree(program_tree _program_tree) { write_syntax_tree_node(_program_tree); if (_program_tree.compilation_units == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_program_tree.compilation_units.Count); for(Int32 ssyy_i = 0; ssyy_i < _program_tree.compilation_units.Count; ssyy_i++) { if (_program_tree.compilation_units[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _program_tree.compilation_units[ssyy_i].visit(this); } } } } public void visit(program_name _program_name) { bw.Write((Int16)23); write_program_name(_program_name); } public void write_program_name(program_name _program_name) { write_syntax_tree_node(_program_name); if (_program_name.prog_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _program_name.prog_name.visit(this); } } public void visit(string_const _string_const) { bw.Write((Int16)24); write_string_const(_string_const); } public void write_string_const(string_const _string_const) { write_literal(_string_const); if (_string_const.Value == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_string_const.Value); } } public void visit(expression_list _expression_list) { bw.Write((Int16)25); write_expression_list(_expression_list); } public void write_expression_list(expression_list _expression_list) { write_syntax_tree_node(_expression_list); if (_expression_list.expressions == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_expression_list.expressions.Count); for(Int32 ssyy_i = 0; ssyy_i < _expression_list.expressions.Count; ssyy_i++) { if (_expression_list.expressions[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _expression_list.expressions[ssyy_i].visit(this); } } } } public void visit(dereference _dereference) { bw.Write((Int16)26); write_dereference(_dereference); } public void write_dereference(dereference _dereference) { write_addressed_value_funcname(_dereference); if (_dereference.dereferencing_value == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _dereference.dereferencing_value.visit(this); } } public void visit(indexer _indexer) { bw.Write((Int16)27); write_indexer(_indexer); } public void write_indexer(indexer _indexer) { write_dereference(_indexer); if (_indexer.indexes == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _indexer.indexes.visit(this); } } public void visit(for_node _for_node) { bw.Write((Int16)28); write_for_node(_for_node); } public void write_for_node(for_node _for_node) { write_statement(_for_node); if (_for_node.loop_variable == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _for_node.loop_variable.visit(this); } if (_for_node.initial_value == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _for_node.initial_value.visit(this); } if (_for_node.finish_value == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _for_node.finish_value.visit(this); } if (_for_node.statements == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _for_node.statements.visit(this); } bw.Write((byte)_for_node.cycle_type); if (_for_node.increment_value == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _for_node.increment_value.visit(this); } if (_for_node.type_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _for_node.type_name.visit(this); } bw.Write(_for_node.create_loop_variable); } public void visit(repeat_node _repeat_node) { bw.Write((Int16)29); write_repeat_node(_repeat_node); } public void write_repeat_node(repeat_node _repeat_node) { write_statement(_repeat_node); if (_repeat_node.statements == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _repeat_node.statements.visit(this); } if (_repeat_node.expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _repeat_node.expr.visit(this); } } public void visit(while_node _while_node) { bw.Write((Int16)30); write_while_node(_while_node); } public void write_while_node(while_node _while_node) { write_statement(_while_node); if (_while_node.expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _while_node.expr.visit(this); } if (_while_node.statements == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _while_node.statements.visit(this); } bw.Write((byte)_while_node.CycleType); } public void visit(if_node _if_node) { bw.Write((Int16)31); write_if_node(_if_node); } public void write_if_node(if_node _if_node) { write_statement(_if_node); if (_if_node.condition == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _if_node.condition.visit(this); } if (_if_node.then_body == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _if_node.then_body.visit(this); } if (_if_node.else_body == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _if_node.else_body.visit(this); } } public void visit(ref_type _ref_type) { bw.Write((Int16)32); write_ref_type(_ref_type); } public void write_ref_type(ref_type _ref_type) { write_type_definition(_ref_type); if (_ref_type.pointed_to == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _ref_type.pointed_to.visit(this); } } public void visit(diapason _diapason) { bw.Write((Int16)33); write_diapason(_diapason); } public void write_diapason(diapason _diapason) { write_type_definition(_diapason); if (_diapason.left == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _diapason.left.visit(this); } if (_diapason.right == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _diapason.right.visit(this); } } public void visit(indexers_types _indexers_types) { bw.Write((Int16)34); write_indexers_types(_indexers_types); } public void write_indexers_types(indexers_types _indexers_types) { write_type_definition(_indexers_types); if (_indexers_types.indexers == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_indexers_types.indexers.Count); for(Int32 ssyy_i = 0; ssyy_i < _indexers_types.indexers.Count; ssyy_i++) { if (_indexers_types.indexers[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _indexers_types.indexers[ssyy_i].visit(this); } } } } public void visit(array_type _array_type) { bw.Write((Int16)35); write_array_type(_array_type); } public void write_array_type(array_type _array_type) { write_type_definition(_array_type); if (_array_type.indexers == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _array_type.indexers.visit(this); } if (_array_type.elements_type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _array_type.elements_type.visit(this); } } public void visit(label_definitions _label_definitions) { bw.Write((Int16)36); write_label_definitions(_label_definitions); } public void write_label_definitions(label_definitions _label_definitions) { write_declaration(_label_definitions); if (_label_definitions.labels == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _label_definitions.labels.visit(this); } } public void visit(procedure_attribute _procedure_attribute) { bw.Write((Int16)37); write_procedure_attribute(_procedure_attribute); } public void write_procedure_attribute(procedure_attribute _procedure_attribute) { write_ident(_procedure_attribute); bw.Write((byte)_procedure_attribute.attribute_type); } public void visit(typed_parameters _typed_parameters) { bw.Write((Int16)38); write_typed_parameters(_typed_parameters); } public void write_typed_parameters(typed_parameters _typed_parameters) { write_declaration(_typed_parameters); if (_typed_parameters.idents == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _typed_parameters.idents.visit(this); } if (_typed_parameters.vars_type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _typed_parameters.vars_type.visit(this); } bw.Write((byte)_typed_parameters.param_kind); if (_typed_parameters.inital_value == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _typed_parameters.inital_value.visit(this); } } public void visit(formal_parameters _formal_parameters) { bw.Write((Int16)39); write_formal_parameters(_formal_parameters); } public void write_formal_parameters(formal_parameters _formal_parameters) { write_syntax_tree_node(_formal_parameters); if (_formal_parameters.params_list == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_formal_parameters.params_list.Count); for(Int32 ssyy_i = 0; ssyy_i < _formal_parameters.params_list.Count; ssyy_i++) { if (_formal_parameters.params_list[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _formal_parameters.params_list[ssyy_i].visit(this); } } } } public void visit(procedure_attributes_list _procedure_attributes_list) { bw.Write((Int16)40); write_procedure_attributes_list(_procedure_attributes_list); } public void write_procedure_attributes_list(procedure_attributes_list _procedure_attributes_list) { write_syntax_tree_node(_procedure_attributes_list); if (_procedure_attributes_list.proc_attributes == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_procedure_attributes_list.proc_attributes.Count); for(Int32 ssyy_i = 0; ssyy_i < _procedure_attributes_list.proc_attributes.Count; ssyy_i++) { if (_procedure_attributes_list.proc_attributes[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _procedure_attributes_list.proc_attributes[ssyy_i].visit(this); } } } } public void visit(procedure_header _procedure_header) { bw.Write((Int16)41); write_procedure_header(_procedure_header); } public void write_procedure_header(procedure_header _procedure_header) { write_type_definition(_procedure_header); if (_procedure_header.parameters == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _procedure_header.parameters.visit(this); } if (_procedure_header.proc_attributes == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _procedure_header.proc_attributes.visit(this); } if (_procedure_header.name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _procedure_header.name.visit(this); } bw.Write(_procedure_header.of_object); bw.Write(_procedure_header.class_keyword); if (_procedure_header.template_args == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _procedure_header.template_args.visit(this); } if (_procedure_header.where_defs == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _procedure_header.where_defs.visit(this); } } public void visit(function_header _function_header) { bw.Write((Int16)42); write_function_header(_function_header); } public void write_function_header(function_header _function_header) { write_procedure_header(_function_header); if (_function_header.return_type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _function_header.return_type.visit(this); } } public void visit(procedure_definition _procedure_definition) { bw.Write((Int16)43); write_procedure_definition(_procedure_definition); } public void write_procedure_definition(procedure_definition _procedure_definition) { write_declaration(_procedure_definition); if (_procedure_definition.proc_header == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _procedure_definition.proc_header.visit(this); } if (_procedure_definition.proc_body == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _procedure_definition.proc_body.visit(this); } bw.Write(_procedure_definition.is_short_definition); } public void visit(type_declaration _type_declaration) { bw.Write((Int16)44); write_type_declaration(_type_declaration); } public void write_type_declaration(type_declaration _type_declaration) { write_declaration(_type_declaration); if (_type_declaration.type_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _type_declaration.type_name.visit(this); } if (_type_declaration.type_def == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _type_declaration.type_def.visit(this); } } public void visit(type_declarations _type_declarations) { bw.Write((Int16)45); write_type_declarations(_type_declarations); } public void write_type_declarations(type_declarations _type_declarations) { write_declaration(_type_declarations); if (_type_declarations.types_decl == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_type_declarations.types_decl.Count); for(Int32 ssyy_i = 0; ssyy_i < _type_declarations.types_decl.Count; ssyy_i++) { if (_type_declarations.types_decl[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _type_declarations.types_decl[ssyy_i].visit(this); } } } } public void visit(simple_const_definition _simple_const_definition) { bw.Write((Int16)46); write_simple_const_definition(_simple_const_definition); } public void write_simple_const_definition(simple_const_definition _simple_const_definition) { write_const_definition(_simple_const_definition); } public void visit(typed_const_definition _typed_const_definition) { bw.Write((Int16)47); write_typed_const_definition(_typed_const_definition); } public void write_typed_const_definition(typed_const_definition _typed_const_definition) { write_const_definition(_typed_const_definition); if (_typed_const_definition.const_type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _typed_const_definition.const_type.visit(this); } } public void visit(const_definition _const_definition) { bw.Write((Int16)48); write_const_definition(_const_definition); } public void write_const_definition(const_definition _const_definition) { write_declaration(_const_definition); if (_const_definition.const_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _const_definition.const_name.visit(this); } if (_const_definition.const_value == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _const_definition.const_value.visit(this); } } public void visit(consts_definitions_list _consts_definitions_list) { bw.Write((Int16)49); write_consts_definitions_list(_consts_definitions_list); } public void write_consts_definitions_list(consts_definitions_list _consts_definitions_list) { write_declaration(_consts_definitions_list); if (_consts_definitions_list.const_defs == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_consts_definitions_list.const_defs.Count); for(Int32 ssyy_i = 0; ssyy_i < _consts_definitions_list.const_defs.Count; ssyy_i++) { if (_consts_definitions_list.const_defs[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _consts_definitions_list.const_defs[ssyy_i].visit(this); } } } } public void visit(unit_name _unit_name) { bw.Write((Int16)50); write_unit_name(_unit_name); } public void write_unit_name(unit_name _unit_name) { write_syntax_tree_node(_unit_name); if (_unit_name.idunit_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _unit_name.idunit_name.visit(this); } bw.Write((byte)_unit_name.HeaderKeyword); } public void visit(unit_or_namespace _unit_or_namespace) { bw.Write((Int16)51); write_unit_or_namespace(_unit_or_namespace); } public void write_unit_or_namespace(unit_or_namespace _unit_or_namespace) { write_syntax_tree_node(_unit_or_namespace); if (_unit_or_namespace.name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _unit_or_namespace.name.visit(this); } } public void visit(uses_unit_in _uses_unit_in) { bw.Write((Int16)52); write_uses_unit_in(_uses_unit_in); } public void write_uses_unit_in(uses_unit_in _uses_unit_in) { write_unit_or_namespace(_uses_unit_in); if (_uses_unit_in.in_file == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _uses_unit_in.in_file.visit(this); } } public void visit(uses_list _uses_list) { bw.Write((Int16)53); write_uses_list(_uses_list); } public void write_uses_list(uses_list _uses_list) { write_syntax_tree_node(_uses_list); if (_uses_list.units == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_uses_list.units.Count); for(Int32 ssyy_i = 0; ssyy_i < _uses_list.units.Count; ssyy_i++) { if (_uses_list.units[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _uses_list.units[ssyy_i].visit(this); } } } } public void visit(program_body _program_body) { bw.Write((Int16)54); write_program_body(_program_body); } public void write_program_body(program_body _program_body) { write_syntax_tree_node(_program_body); if (_program_body.used_units == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _program_body.used_units.visit(this); } if (_program_body.program_definitions == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _program_body.program_definitions.visit(this); } if (_program_body.program_code == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _program_body.program_code.visit(this); } if (_program_body.using_list == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _program_body.using_list.visit(this); } } public void visit(compilation_unit _compilation_unit) { bw.Write((Int16)55); write_compilation_unit(_compilation_unit); } public void write_compilation_unit(compilation_unit _compilation_unit) { write_syntax_tree_node(_compilation_unit); if (_compilation_unit.file_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_compilation_unit.file_name); } if (_compilation_unit.compiler_directives == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_compilation_unit.compiler_directives.Count); for(Int32 ssyy_i = 0; ssyy_i < _compilation_unit.compiler_directives.Count; ssyy_i++) { if (_compilation_unit.compiler_directives[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _compilation_unit.compiler_directives[ssyy_i].visit(this); } } } bw.Write((byte)_compilation_unit.Language); } public void visit(unit_module _unit_module) { bw.Write((Int16)56); write_unit_module(_unit_module); } public void write_unit_module(unit_module _unit_module) { write_compilation_unit(_unit_module); if (_unit_module.unit_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _unit_module.unit_name.visit(this); } if (_unit_module.interface_part == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _unit_module.interface_part.visit(this); } if (_unit_module.implementation_part == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _unit_module.implementation_part.visit(this); } if (_unit_module.initialization_part == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _unit_module.initialization_part.visit(this); } if (_unit_module.finalization_part == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _unit_module.finalization_part.visit(this); } if (_unit_module.attributes == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _unit_module.attributes.visit(this); } } public void visit(program_module _program_module) { bw.Write((Int16)57); write_program_module(_program_module); } public void write_program_module(program_module _program_module) { write_compilation_unit(_program_module); if (_program_module.program_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _program_module.program_name.visit(this); } if (_program_module.used_units == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _program_module.used_units.visit(this); } if (_program_module.program_block == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _program_module.program_block.visit(this); } if (_program_module.using_namespaces == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _program_module.using_namespaces.visit(this); } } public void visit(hex_constant _hex_constant) { bw.Write((Int16)58); write_hex_constant(_hex_constant); } public void write_hex_constant(hex_constant _hex_constant) { write_int64_const(_hex_constant); } public void visit(get_address _get_address) { bw.Write((Int16)59); write_get_address(_get_address); } public void write_get_address(get_address _get_address) { write_addressed_value_funcname(_get_address); if (_get_address.address_of == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _get_address.address_of.visit(this); } } public void visit(case_variant _case_variant) { bw.Write((Int16)60); write_case_variant(_case_variant); } public void write_case_variant(case_variant _case_variant) { write_statement(_case_variant); if (_case_variant.conditions == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _case_variant.conditions.visit(this); } if (_case_variant.exec_if_true == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _case_variant.exec_if_true.visit(this); } } public void visit(case_node _case_node) { bw.Write((Int16)61); write_case_node(_case_node); } public void write_case_node(case_node _case_node) { write_statement(_case_node); if (_case_node.param == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _case_node.param.visit(this); } if (_case_node.conditions == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _case_node.conditions.visit(this); } if (_case_node.else_statement == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _case_node.else_statement.visit(this); } } public void visit(method_name _method_name) { bw.Write((Int16)62); write_method_name(_method_name); } public void write_method_name(method_name _method_name) { write_syntax_tree_node(_method_name); if (_method_name.ln == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_method_name.ln.Count); for(Int32 ssyy_i = 0; ssyy_i < _method_name.ln.Count; ssyy_i++) { if (_method_name.ln[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _method_name.ln[ssyy_i].visit(this); } } } if (_method_name.class_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _method_name.class_name.visit(this); } if (_method_name.meth_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _method_name.meth_name.visit(this); } if (_method_name.explicit_interface_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _method_name.explicit_interface_name.visit(this); } } public void visit(dot_node _dot_node) { bw.Write((Int16)63); write_dot_node(_dot_node); } public void write_dot_node(dot_node _dot_node) { write_addressed_value_funcname(_dot_node); if (_dot_node.left == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _dot_node.left.visit(this); } if (_dot_node.right == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _dot_node.right.visit(this); } } public void visit(empty_statement _empty_statement) { bw.Write((Int16)64); write_empty_statement(_empty_statement); } public void write_empty_statement(empty_statement _empty_statement) { write_statement(_empty_statement); } public void visit(goto_statement _goto_statement) { bw.Write((Int16)65); write_goto_statement(_goto_statement); } public void write_goto_statement(goto_statement _goto_statement) { write_statement(_goto_statement); if (_goto_statement.label == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _goto_statement.label.visit(this); } } public void visit(labeled_statement _labeled_statement) { bw.Write((Int16)66); write_labeled_statement(_labeled_statement); } public void write_labeled_statement(labeled_statement _labeled_statement) { write_statement(_labeled_statement); if (_labeled_statement.label_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _labeled_statement.label_name.visit(this); } if (_labeled_statement.to_statement == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _labeled_statement.to_statement.visit(this); } } public void visit(with_statement _with_statement) { bw.Write((Int16)67); write_with_statement(_with_statement); } public void write_with_statement(with_statement _with_statement) { write_statement(_with_statement); if (_with_statement.what_do == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _with_statement.what_do.visit(this); } if (_with_statement.do_with == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _with_statement.do_with.visit(this); } } public void visit(method_call _method_call) { bw.Write((Int16)68); write_method_call(_method_call); } public void write_method_call(method_call _method_call) { write_dereference(_method_call); if (_method_call.parameters == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _method_call.parameters.visit(this); } } public void visit(pascal_set_constant _pascal_set_constant) { bw.Write((Int16)69); write_pascal_set_constant(_pascal_set_constant); } public void write_pascal_set_constant(pascal_set_constant _pascal_set_constant) { write_addressed_value(_pascal_set_constant); if (_pascal_set_constant.values == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _pascal_set_constant.values.visit(this); } } public void visit(array_const _array_const) { bw.Write((Int16)70); write_array_const(_array_const); } public void write_array_const(array_const _array_const) { write_expression(_array_const); if (_array_const.elements == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _array_const.elements.visit(this); } } public void visit(write_accessor_name _write_accessor_name) { bw.Write((Int16)71); write_write_accessor_name(_write_accessor_name); } public void write_write_accessor_name(write_accessor_name _write_accessor_name) { write_syntax_tree_node(_write_accessor_name); if (_write_accessor_name.accessor_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _write_accessor_name.accessor_name.visit(this); } if (_write_accessor_name.pr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _write_accessor_name.pr.visit(this); } if (_write_accessor_name.statment_for_formatting == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _write_accessor_name.statment_for_formatting.visit(this); } } public void visit(read_accessor_name _read_accessor_name) { bw.Write((Int16)72); write_read_accessor_name(_read_accessor_name); } public void write_read_accessor_name(read_accessor_name _read_accessor_name) { write_syntax_tree_node(_read_accessor_name); if (_read_accessor_name.accessor_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _read_accessor_name.accessor_name.visit(this); } if (_read_accessor_name.pr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _read_accessor_name.pr.visit(this); } if (_read_accessor_name.expression_for_formatting == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _read_accessor_name.expression_for_formatting.visit(this); } } public void visit(property_accessors _property_accessors) { bw.Write((Int16)73); write_property_accessors(_property_accessors); } public void write_property_accessors(property_accessors _property_accessors) { write_syntax_tree_node(_property_accessors); if (_property_accessors.read_accessor == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _property_accessors.read_accessor.visit(this); } if (_property_accessors.write_accessor == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _property_accessors.write_accessor.visit(this); } } public void visit(simple_property _simple_property) { bw.Write((Int16)74); write_simple_property(_simple_property); } public void write_simple_property(simple_property _simple_property) { write_declaration(_simple_property); if (_simple_property.property_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _simple_property.property_name.visit(this); } if (_simple_property.property_type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _simple_property.property_type.visit(this); } if (_simple_property.index_expression == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _simple_property.index_expression.visit(this); } if (_simple_property.accessors == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _simple_property.accessors.visit(this); } if (_simple_property.array_default == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _simple_property.array_default.visit(this); } if (_simple_property.parameter_list == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _simple_property.parameter_list.visit(this); } bw.Write((byte)_simple_property.attr); bw.Write((byte)_simple_property.virt_over_none_attr); bw.Write(_simple_property.is_auto); if (_simple_property.initial_value == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _simple_property.initial_value.visit(this); } } public void visit(index_property _index_property) { bw.Write((Int16)75); write_index_property(_index_property); } public void write_index_property(index_property _index_property) { write_simple_property(_index_property); if (_index_property.property_parametres == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _index_property.property_parametres.visit(this); } if (_index_property.is_default == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _index_property.is_default.visit(this); } } public void visit(class_members _class_members) { bw.Write((Int16)76); write_class_members(_class_members); } public void write_class_members(class_members _class_members) { write_syntax_tree_node(_class_members); if (_class_members.members == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_class_members.members.Count); for(Int32 ssyy_i = 0; ssyy_i < _class_members.members.Count; ssyy_i++) { if (_class_members.members[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _class_members.members[ssyy_i].visit(this); } } } if (_class_members.access_mod == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _class_members.access_mod.visit(this); } } public void visit(access_modifer_node _access_modifer_node) { bw.Write((Int16)77); write_access_modifer_node(_access_modifer_node); } public void write_access_modifer_node(access_modifer_node _access_modifer_node) { write_syntax_tree_node(_access_modifer_node); bw.Write((byte)_access_modifer_node.access_level); } public void visit(class_body_list _class_body_list) { bw.Write((Int16)78); write_class_body_list(_class_body_list); } public void write_class_body_list(class_body_list _class_body_list) { write_syntax_tree_node(_class_body_list); if (_class_body_list.class_def_blocks == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_class_body_list.class_def_blocks.Count); for(Int32 ssyy_i = 0; ssyy_i < _class_body_list.class_def_blocks.Count; ssyy_i++) { if (_class_body_list.class_def_blocks[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _class_body_list.class_def_blocks[ssyy_i].visit(this); } } } } public void visit(class_definition _class_definition) { bw.Write((Int16)79); write_class_definition(_class_definition); } public void write_class_definition(class_definition _class_definition) { write_type_definition(_class_definition); if (_class_definition.class_parents == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _class_definition.class_parents.visit(this); } if (_class_definition.body == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _class_definition.body.visit(this); } bw.Write((byte)_class_definition.keyword); if (_class_definition.template_args == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _class_definition.template_args.visit(this); } if (_class_definition.where_section == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _class_definition.where_section.visit(this); } bw.Write((byte)_class_definition.attribute); bw.Write(_class_definition.is_auto); } public void visit(default_indexer_property_node _default_indexer_property_node) { bw.Write((Int16)80); write_default_indexer_property_node(_default_indexer_property_node); } public void write_default_indexer_property_node(default_indexer_property_node _default_indexer_property_node) { write_syntax_tree_node(_default_indexer_property_node); } public void visit(known_type_definition _known_type_definition) { bw.Write((Int16)81); write_known_type_definition(_known_type_definition); } public void write_known_type_definition(known_type_definition _known_type_definition) { write_type_definition(_known_type_definition); bw.Write((byte)_known_type_definition.tp); if (_known_type_definition.unit_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _known_type_definition.unit_name.visit(this); } } public void visit(set_type_definition _set_type_definition) { bw.Write((Int16)82); write_set_type_definition(_set_type_definition); } public void write_set_type_definition(set_type_definition _set_type_definition) { write_type_definition(_set_type_definition); if (_set_type_definition.of_type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _set_type_definition.of_type.visit(this); } } public void visit(record_const_definition _record_const_definition) { bw.Write((Int16)83); write_record_const_definition(_record_const_definition); } public void write_record_const_definition(record_const_definition _record_const_definition) { write_statement(_record_const_definition); if (_record_const_definition.name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _record_const_definition.name.visit(this); } if (_record_const_definition.val == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _record_const_definition.val.visit(this); } } public void visit(record_const _record_const) { bw.Write((Int16)84); write_record_const(_record_const); } public void write_record_const(record_const _record_const) { write_expression(_record_const); if (_record_const.rec_consts == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_record_const.rec_consts.Count); for(Int32 ssyy_i = 0; ssyy_i < _record_const.rec_consts.Count; ssyy_i++) { if (_record_const.rec_consts[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _record_const.rec_consts[ssyy_i].visit(this); } } } } public void visit(record_type _record_type) { bw.Write((Int16)85); write_record_type(_record_type); } public void write_record_type(record_type _record_type) { write_type_definition(_record_type); if (_record_type.parts == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _record_type.parts.visit(this); } if (_record_type.base_type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _record_type.base_type.visit(this); } } public void visit(enum_type_definition _enum_type_definition) { bw.Write((Int16)86); write_enum_type_definition(_enum_type_definition); } public void write_enum_type_definition(enum_type_definition _enum_type_definition) { write_type_definition(_enum_type_definition); if (_enum_type_definition.enumerators == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _enum_type_definition.enumerators.visit(this); } } public void visit(char_const _char_const) { bw.Write((Int16)87); write_char_const(_char_const); } public void write_char_const(char_const _char_const) { write_literal(_char_const); bw.Write(_char_const.cconst); } public void visit(raise_statement _raise_statement) { bw.Write((Int16)88); write_raise_statement(_raise_statement); } public void write_raise_statement(raise_statement _raise_statement) { write_statement(_raise_statement); if (_raise_statement.excep == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _raise_statement.excep.visit(this); } } public void visit(sharp_char_const _sharp_char_const) { bw.Write((Int16)89); write_sharp_char_const(_sharp_char_const); } public void write_sharp_char_const(sharp_char_const _sharp_char_const) { write_literal(_sharp_char_const); bw.Write((byte)_sharp_char_const.char_num); } public void visit(literal_const_line _literal_const_line) { bw.Write((Int16)90); write_literal_const_line(_literal_const_line); } public void write_literal_const_line(literal_const_line _literal_const_line) { write_literal(_literal_const_line); if (_literal_const_line.literals == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_literal_const_line.literals.Count); for(Int32 ssyy_i = 0; ssyy_i < _literal_const_line.literals.Count; ssyy_i++) { if (_literal_const_line.literals[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _literal_const_line.literals[ssyy_i].visit(this); } } } } public void visit(string_num_definition _string_num_definition) { bw.Write((Int16)91); write_string_num_definition(_string_num_definition); } public void write_string_num_definition(string_num_definition _string_num_definition) { write_type_definition(_string_num_definition); if (_string_num_definition.num_of_symbols == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _string_num_definition.num_of_symbols.visit(this); } if (_string_num_definition.name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _string_num_definition.name.visit(this); } } public void visit(variant _variant) { bw.Write((Int16)92); write_variant(_variant); } public void write_variant(variant _variant) { write_syntax_tree_node(_variant); if (_variant.vars == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _variant.vars.visit(this); } if (_variant.vars_type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _variant.vars_type.visit(this); } } public void visit(variant_list _variant_list) { bw.Write((Int16)93); write_variant_list(_variant_list); } public void write_variant_list(variant_list _variant_list) { write_syntax_tree_node(_variant_list); if (_variant_list.vars == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_variant_list.vars.Count); for(Int32 ssyy_i = 0; ssyy_i < _variant_list.vars.Count; ssyy_i++) { if (_variant_list.vars[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _variant_list.vars[ssyy_i].visit(this); } } } } public void visit(variant_type _variant_type) { bw.Write((Int16)94); write_variant_type(_variant_type); } public void write_variant_type(variant_type _variant_type) { write_syntax_tree_node(_variant_type); if (_variant_type.case_exprs == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _variant_type.case_exprs.visit(this); } if (_variant_type.parts == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _variant_type.parts.visit(this); } } public void visit(variant_types _variant_types) { bw.Write((Int16)95); write_variant_types(_variant_types); } public void write_variant_types(variant_types _variant_types) { write_syntax_tree_node(_variant_types); if (_variant_types.vars == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_variant_types.vars.Count); for(Int32 ssyy_i = 0; ssyy_i < _variant_types.vars.Count; ssyy_i++) { if (_variant_types.vars[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _variant_types.vars[ssyy_i].visit(this); } } } } public void visit(variant_record_type _variant_record_type) { bw.Write((Int16)96); write_variant_record_type(_variant_record_type); } public void write_variant_record_type(variant_record_type _variant_record_type) { write_syntax_tree_node(_variant_record_type); if (_variant_record_type.var_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _variant_record_type.var_name.visit(this); } if (_variant_record_type.var_type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _variant_record_type.var_type.visit(this); } if (_variant_record_type.vars == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _variant_record_type.vars.visit(this); } } public void visit(procedure_call _procedure_call) { bw.Write((Int16)97); write_procedure_call(_procedure_call); } public void write_procedure_call(procedure_call _procedure_call) { write_statement(_procedure_call); if (_procedure_call.func_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _procedure_call.func_name.visit(this); } bw.Write(_procedure_call.is_ident); } public void visit(class_predefinition _class_predefinition) { bw.Write((Int16)98); write_class_predefinition(_class_predefinition); } public void write_class_predefinition(class_predefinition _class_predefinition) { write_type_declaration(_class_predefinition); if (_class_predefinition.class_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _class_predefinition.class_name.visit(this); } } public void visit(nil_const _nil_const) { bw.Write((Int16)99); write_nil_const(_nil_const); } public void write_nil_const(nil_const _nil_const) { write_const_node(_nil_const); } public void visit(file_type_definition _file_type_definition) { bw.Write((Int16)100); write_file_type_definition(_file_type_definition); } public void write_file_type_definition(file_type_definition _file_type_definition) { write_type_definition(_file_type_definition); if (_file_type_definition.elem_type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _file_type_definition.elem_type.visit(this); } } public void visit(constructor _constructor) { bw.Write((Int16)101); write_constructor(_constructor); } public void write_constructor(constructor _constructor) { write_procedure_header(_constructor); } public void visit(destructor _destructor) { bw.Write((Int16)102); write_destructor(_destructor); } public void write_destructor(destructor _destructor) { write_procedure_header(_destructor); } public void visit(inherited_method_call _inherited_method_call) { bw.Write((Int16)103); write_inherited_method_call(_inherited_method_call); } public void write_inherited_method_call(inherited_method_call _inherited_method_call) { write_statement(_inherited_method_call); if (_inherited_method_call.method_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _inherited_method_call.method_name.visit(this); } if (_inherited_method_call.exprs == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _inherited_method_call.exprs.visit(this); } } public void visit(typecast_node _typecast_node) { bw.Write((Int16)104); write_typecast_node(_typecast_node); } public void write_typecast_node(typecast_node _typecast_node) { write_addressed_value(_typecast_node); if (_typecast_node.expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _typecast_node.expr.visit(this); } if (_typecast_node.type_def == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _typecast_node.type_def.visit(this); } bw.Write((byte)_typecast_node.cast_op); } public void visit(interface_node _interface_node) { bw.Write((Int16)105); write_interface_node(_interface_node); } public void write_interface_node(interface_node _interface_node) { write_syntax_tree_node(_interface_node); if (_interface_node.interface_definitions == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _interface_node.interface_definitions.visit(this); } if (_interface_node.uses_modules == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _interface_node.uses_modules.visit(this); } if (_interface_node.using_namespaces == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _interface_node.using_namespaces.visit(this); } } public void visit(implementation_node _implementation_node) { bw.Write((Int16)106); write_implementation_node(_implementation_node); } public void write_implementation_node(implementation_node _implementation_node) { write_syntax_tree_node(_implementation_node); if (_implementation_node.uses_modules == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _implementation_node.uses_modules.visit(this); } if (_implementation_node.implementation_definitions == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _implementation_node.implementation_definitions.visit(this); } if (_implementation_node.using_namespaces == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _implementation_node.using_namespaces.visit(this); } } public void visit(diap_expr _diap_expr) { bw.Write((Int16)107); write_diap_expr(_diap_expr); } public void write_diap_expr(diap_expr _diap_expr) { write_expression(_diap_expr); if (_diap_expr.left == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _diap_expr.left.visit(this); } if (_diap_expr.right == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _diap_expr.right.visit(this); } } public void visit(block _block) { bw.Write((Int16)108); write_block(_block); } public void write_block(block _block) { write_proc_block(_block); if (_block.defs == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _block.defs.visit(this); } if (_block.program_code == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _block.program_code.visit(this); } } public void visit(proc_block _proc_block) { bw.Write((Int16)109); write_proc_block(_proc_block); } public void write_proc_block(proc_block _proc_block) { write_syntax_tree_node(_proc_block); } public void visit(array_of_named_type_definition _array_of_named_type_definition) { bw.Write((Int16)110); write_array_of_named_type_definition(_array_of_named_type_definition); } public void write_array_of_named_type_definition(array_of_named_type_definition _array_of_named_type_definition) { write_type_definition(_array_of_named_type_definition); if (_array_of_named_type_definition.type_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _array_of_named_type_definition.type_name.visit(this); } } public void visit(array_of_const_type_definition _array_of_const_type_definition) { bw.Write((Int16)111); write_array_of_const_type_definition(_array_of_const_type_definition); } public void write_array_of_const_type_definition(array_of_const_type_definition _array_of_const_type_definition) { write_type_definition(_array_of_const_type_definition); } public void visit(literal _literal) { bw.Write((Int16)112); write_literal(_literal); } public void write_literal(literal _literal) { write_const_node(_literal); } public void visit(case_variants _case_variants) { bw.Write((Int16)113); write_case_variants(_case_variants); } public void write_case_variants(case_variants _case_variants) { write_syntax_tree_node(_case_variants); if (_case_variants.variants == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_case_variants.variants.Count); for(Int32 ssyy_i = 0; ssyy_i < _case_variants.variants.Count; ssyy_i++) { if (_case_variants.variants[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _case_variants.variants[ssyy_i].visit(this); } } } } public void visit(diapason_expr _diapason_expr) { bw.Write((Int16)114); write_diapason_expr(_diapason_expr); } public void write_diapason_expr(diapason_expr _diapason_expr) { write_expression(_diapason_expr); if (_diapason_expr.left == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _diapason_expr.left.visit(this); } if (_diapason_expr.right == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _diapason_expr.right.visit(this); } } public void visit(var_def_list_for_record _var_def_list_for_record) { bw.Write((Int16)115); write_var_def_list_for_record(_var_def_list_for_record); } public void write_var_def_list_for_record(var_def_list_for_record _var_def_list_for_record) { write_syntax_tree_node(_var_def_list_for_record); if (_var_def_list_for_record.vars == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_var_def_list_for_record.vars.Count); for(Int32 ssyy_i = 0; ssyy_i < _var_def_list_for_record.vars.Count; ssyy_i++) { if (_var_def_list_for_record.vars[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _var_def_list_for_record.vars[ssyy_i].visit(this); } } } } public void visit(record_type_parts _record_type_parts) { bw.Write((Int16)116); write_record_type_parts(_record_type_parts); } public void write_record_type_parts(record_type_parts _record_type_parts) { write_syntax_tree_node(_record_type_parts); if (_record_type_parts.fixed_part == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _record_type_parts.fixed_part.visit(this); } if (_record_type_parts.variant_part == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _record_type_parts.variant_part.visit(this); } } public void visit(property_array_default _property_array_default) { bw.Write((Int16)117); write_property_array_default(_property_array_default); } public void write_property_array_default(property_array_default _property_array_default) { write_syntax_tree_node(_property_array_default); } public void visit(property_interface _property_interface) { bw.Write((Int16)118); write_property_interface(_property_interface); } public void write_property_interface(property_interface _property_interface) { write_syntax_tree_node(_property_interface); if (_property_interface.parameter_list == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _property_interface.parameter_list.visit(this); } if (_property_interface.property_type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _property_interface.property_type.visit(this); } if (_property_interface.index_expression == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _property_interface.index_expression.visit(this); } } public void visit(property_parameter _property_parameter) { bw.Write((Int16)119); write_property_parameter(_property_parameter); } public void write_property_parameter(property_parameter _property_parameter) { write_syntax_tree_node(_property_parameter); if (_property_parameter.names == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _property_parameter.names.visit(this); } if (_property_parameter.type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _property_parameter.type.visit(this); } } public void visit(property_parameter_list _property_parameter_list) { bw.Write((Int16)120); write_property_parameter_list(_property_parameter_list); } public void write_property_parameter_list(property_parameter_list _property_parameter_list) { write_syntax_tree_node(_property_parameter_list); if (_property_parameter_list.parameters == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_property_parameter_list.parameters.Count); for(Int32 ssyy_i = 0; ssyy_i < _property_parameter_list.parameters.Count; ssyy_i++) { if (_property_parameter_list.parameters[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _property_parameter_list.parameters[ssyy_i].visit(this); } } } } public void visit(inherited_ident _inherited_ident) { bw.Write((Int16)121); write_inherited_ident(_inherited_ident); } public void write_inherited_ident(inherited_ident _inherited_ident) { write_ident(_inherited_ident); } public void visit(format_expr _format_expr) { bw.Write((Int16)122); write_format_expr(_format_expr); } public void write_format_expr(format_expr _format_expr) { write_addressed_value(_format_expr); if (_format_expr.expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _format_expr.expr.visit(this); } if (_format_expr.format1 == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _format_expr.format1.visit(this); } if (_format_expr.format2 == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _format_expr.format2.visit(this); } } public void visit(initfinal_part _initfinal_part) { bw.Write((Int16)123); write_initfinal_part(_initfinal_part); } public void write_initfinal_part(initfinal_part _initfinal_part) { write_syntax_tree_node(_initfinal_part); if (_initfinal_part.initialization_sect == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _initfinal_part.initialization_sect.visit(this); } if (_initfinal_part.finalization_sect == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _initfinal_part.finalization_sect.visit(this); } } public void visit(token_info _token_info) { bw.Write((Int16)124); write_token_info(_token_info); } public void write_token_info(token_info _token_info) { write_syntax_tree_node(_token_info); if (_token_info.text == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_token_info.text); } } public void visit(raise_stmt _raise_stmt) { bw.Write((Int16)125); write_raise_stmt(_raise_stmt); } public void write_raise_stmt(raise_stmt _raise_stmt) { write_statement(_raise_stmt); if (_raise_stmt.expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _raise_stmt.expr.visit(this); } if (_raise_stmt.address == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _raise_stmt.address.visit(this); } } public void visit(op_type_node _op_type_node) { bw.Write((Int16)126); write_op_type_node(_op_type_node); } public void write_op_type_node(op_type_node _op_type_node) { write_token_info(_op_type_node); bw.Write((byte)_op_type_node.type); } public void visit(file_type _file_type) { bw.Write((Int16)127); write_file_type(_file_type); } public void write_file_type(file_type _file_type) { write_type_definition(_file_type); if (_file_type.file_of_type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _file_type.file_of_type.visit(this); } } public void visit(known_type_ident _known_type_ident) { bw.Write((Int16)128); write_known_type_ident(_known_type_ident); } public void write_known_type_ident(known_type_ident _known_type_ident) { write_ident(_known_type_ident); bw.Write((byte)_known_type_ident.type); } public void visit(exception_handler _exception_handler) { bw.Write((Int16)129); write_exception_handler(_exception_handler); } public void write_exception_handler(exception_handler _exception_handler) { write_syntax_tree_node(_exception_handler); if (_exception_handler.variable == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _exception_handler.variable.visit(this); } if (_exception_handler.type_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _exception_handler.type_name.visit(this); } if (_exception_handler.statements == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _exception_handler.statements.visit(this); } } public void visit(exception_ident _exception_ident) { bw.Write((Int16)130); write_exception_ident(_exception_ident); } public void write_exception_ident(exception_ident _exception_ident) { write_syntax_tree_node(_exception_ident); if (_exception_ident.variable == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _exception_ident.variable.visit(this); } if (_exception_ident.type_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _exception_ident.type_name.visit(this); } } public void visit(exception_handler_list _exception_handler_list) { bw.Write((Int16)131); write_exception_handler_list(_exception_handler_list); } public void write_exception_handler_list(exception_handler_list _exception_handler_list) { write_syntax_tree_node(_exception_handler_list); if (_exception_handler_list.handlers == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_exception_handler_list.handlers.Count); for(Int32 ssyy_i = 0; ssyy_i < _exception_handler_list.handlers.Count; ssyy_i++) { if (_exception_handler_list.handlers[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _exception_handler_list.handlers[ssyy_i].visit(this); } } } } public void visit(exception_block _exception_block) { bw.Write((Int16)132); write_exception_block(_exception_block); } public void write_exception_block(exception_block _exception_block) { write_syntax_tree_node(_exception_block); if (_exception_block.stmt_list == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _exception_block.stmt_list.visit(this); } if (_exception_block.handlers == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _exception_block.handlers.visit(this); } if (_exception_block.else_stmt_list == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _exception_block.else_stmt_list.visit(this); } } public void visit(try_handler _try_handler) { bw.Write((Int16)133); write_try_handler(_try_handler); } public void write_try_handler(try_handler _try_handler) { write_syntax_tree_node(_try_handler); } public void visit(try_handler_finally _try_handler_finally) { bw.Write((Int16)134); write_try_handler_finally(_try_handler_finally); } public void write_try_handler_finally(try_handler_finally _try_handler_finally) { write_try_handler(_try_handler_finally); if (_try_handler_finally.stmt_list == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _try_handler_finally.stmt_list.visit(this); } } public void visit(try_handler_except _try_handler_except) { bw.Write((Int16)135); write_try_handler_except(_try_handler_except); } public void write_try_handler_except(try_handler_except _try_handler_except) { write_try_handler(_try_handler_except); if (_try_handler_except.except_block == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _try_handler_except.except_block.visit(this); } } public void visit(try_stmt _try_stmt) { bw.Write((Int16)136); write_try_stmt(_try_stmt); } public void write_try_stmt(try_stmt _try_stmt) { write_statement(_try_stmt); if (_try_stmt.stmt_list == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _try_stmt.stmt_list.visit(this); } if (_try_stmt.handler == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _try_stmt.handler.visit(this); } } public void visit(inherited_message _inherited_message) { bw.Write((Int16)137); write_inherited_message(_inherited_message); } public void write_inherited_message(inherited_message _inherited_message) { write_statement(_inherited_message); } public void visit(external_directive _external_directive) { bw.Write((Int16)138); write_external_directive(_external_directive); } public void write_external_directive(external_directive _external_directive) { write_proc_block(_external_directive); if (_external_directive.modulename == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _external_directive.modulename.visit(this); } if (_external_directive.name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _external_directive.name.visit(this); } } public void visit(using_list _using_list) { bw.Write((Int16)139); write_using_list(_using_list); } public void write_using_list(using_list _using_list) { write_syntax_tree_node(_using_list); if (_using_list.namespaces == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_using_list.namespaces.Count); for(Int32 ssyy_i = 0; ssyy_i < _using_list.namespaces.Count; ssyy_i++) { if (_using_list.namespaces[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _using_list.namespaces[ssyy_i].visit(this); } } } } public void visit(jump_stmt _jump_stmt) { bw.Write((Int16)140); write_jump_stmt(_jump_stmt); } public void write_jump_stmt(jump_stmt _jump_stmt) { write_statement(_jump_stmt); if (_jump_stmt.expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _jump_stmt.expr.visit(this); } bw.Write((byte)_jump_stmt.JumpType); } public void visit(loop_stmt _loop_stmt) { bw.Write((Int16)141); write_loop_stmt(_loop_stmt); } public void write_loop_stmt(loop_stmt _loop_stmt) { write_statement(_loop_stmt); if (_loop_stmt.count == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _loop_stmt.count.visit(this); } if (_loop_stmt.stmt == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _loop_stmt.stmt.visit(this); } } public void visit(foreach_stmt _foreach_stmt) { bw.Write((Int16)142); write_foreach_stmt(_foreach_stmt); } public void write_foreach_stmt(foreach_stmt _foreach_stmt) { write_statement(_foreach_stmt); if (_foreach_stmt.identifier == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _foreach_stmt.identifier.visit(this); } if (_foreach_stmt.type_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _foreach_stmt.type_name.visit(this); } if (_foreach_stmt.in_what == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _foreach_stmt.in_what.visit(this); } if (_foreach_stmt.stmt == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _foreach_stmt.stmt.visit(this); } if (_foreach_stmt.index == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _foreach_stmt.index.visit(this); } } public void visit(addressed_value_funcname _addressed_value_funcname) { bw.Write((Int16)143); write_addressed_value_funcname(_addressed_value_funcname); } public void write_addressed_value_funcname(addressed_value_funcname _addressed_value_funcname) { write_addressed_value(_addressed_value_funcname); } public void visit(named_type_reference_list _named_type_reference_list) { bw.Write((Int16)144); write_named_type_reference_list(_named_type_reference_list); } public void write_named_type_reference_list(named_type_reference_list _named_type_reference_list) { write_syntax_tree_node(_named_type_reference_list); if (_named_type_reference_list.types == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_named_type_reference_list.types.Count); for(Int32 ssyy_i = 0; ssyy_i < _named_type_reference_list.types.Count; ssyy_i++) { if (_named_type_reference_list.types[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _named_type_reference_list.types[ssyy_i].visit(this); } } } } public void visit(template_param_list _template_param_list) { bw.Write((Int16)145); write_template_param_list(_template_param_list); } public void write_template_param_list(template_param_list _template_param_list) { write_dereference(_template_param_list); if (_template_param_list.params_list == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_template_param_list.params_list.Count); for(Int32 ssyy_i = 0; ssyy_i < _template_param_list.params_list.Count; ssyy_i++) { if (_template_param_list.params_list[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _template_param_list.params_list[ssyy_i].visit(this); } } } } public void visit(template_type_reference _template_type_reference) { bw.Write((Int16)146); write_template_type_reference(_template_type_reference); } public void write_template_type_reference(template_type_reference _template_type_reference) { write_named_type_reference(_template_type_reference); if (_template_type_reference.name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _template_type_reference.name.visit(this); } if (_template_type_reference.params_list == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _template_type_reference.params_list.visit(this); } } public void visit(int64_const _int64_const) { bw.Write((Int16)147); write_int64_const(_int64_const); } public void write_int64_const(int64_const _int64_const) { write_const_node(_int64_const); bw.Write(_int64_const.val); } public void visit(uint64_const _uint64_const) { bw.Write((Int16)148); write_uint64_const(_uint64_const); } public void write_uint64_const(uint64_const _uint64_const) { write_const_node(_uint64_const); bw.Write(_uint64_const.val); } public void visit(new_expr _new_expr) { bw.Write((Int16)149); write_new_expr(_new_expr); } public void write_new_expr(new_expr _new_expr) { write_addressed_value(_new_expr); if (_new_expr.type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _new_expr.type.visit(this); } if (_new_expr.params_list == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _new_expr.params_list.visit(this); } bw.Write(_new_expr.new_array); if (_new_expr.array_init_expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _new_expr.array_init_expr.visit(this); } } public void visit(where_type_specificator_list _where_type_specificator_list) { bw.Write((Int16)150); write_where_type_specificator_list(_where_type_specificator_list); } public void write_where_type_specificator_list(where_type_specificator_list _where_type_specificator_list) { write_syntax_tree_node(_where_type_specificator_list); if (_where_type_specificator_list.defs == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_where_type_specificator_list.defs.Count); for(Int32 ssyy_i = 0; ssyy_i < _where_type_specificator_list.defs.Count; ssyy_i++) { if (_where_type_specificator_list.defs[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _where_type_specificator_list.defs[ssyy_i].visit(this); } } } } public void visit(where_definition _where_definition) { bw.Write((Int16)151); write_where_definition(_where_definition); } public void write_where_definition(where_definition _where_definition) { write_syntax_tree_node(_where_definition); if (_where_definition.names == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _where_definition.names.visit(this); } if (_where_definition.types == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _where_definition.types.visit(this); } } public void visit(where_definition_list _where_definition_list) { bw.Write((Int16)152); write_where_definition_list(_where_definition_list); } public void write_where_definition_list(where_definition_list _where_definition_list) { write_syntax_tree_node(_where_definition_list); if (_where_definition_list.defs == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_where_definition_list.defs.Count); for(Int32 ssyy_i = 0; ssyy_i < _where_definition_list.defs.Count; ssyy_i++) { if (_where_definition_list.defs[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _where_definition_list.defs[ssyy_i].visit(this); } } } } public void visit(sizeof_operator _sizeof_operator) { bw.Write((Int16)153); write_sizeof_operator(_sizeof_operator); } public void write_sizeof_operator(sizeof_operator _sizeof_operator) { write_addressed_value(_sizeof_operator); if (_sizeof_operator.type_def == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _sizeof_operator.type_def.visit(this); } if (_sizeof_operator.expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _sizeof_operator.expr.visit(this); } } public void visit(typeof_operator _typeof_operator) { bw.Write((Int16)154); write_typeof_operator(_typeof_operator); } public void write_typeof_operator(typeof_operator _typeof_operator) { write_addressed_value(_typeof_operator); if (_typeof_operator.type_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _typeof_operator.type_name.visit(this); } } public void visit(compiler_directive _compiler_directive) { bw.Write((Int16)155); write_compiler_directive(_compiler_directive); } public void write_compiler_directive(compiler_directive _compiler_directive) { write_syntax_tree_node(_compiler_directive); if (_compiler_directive.Name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _compiler_directive.Name.visit(this); } if (_compiler_directive.Directive == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _compiler_directive.Directive.visit(this); } } public void visit(operator_name_ident _operator_name_ident) { bw.Write((Int16)156); write_operator_name_ident(_operator_name_ident); } public void write_operator_name_ident(operator_name_ident _operator_name_ident) { write_ident(_operator_name_ident); bw.Write((byte)_operator_name_ident.operator_type); } public void visit(var_statement _var_statement) { bw.Write((Int16)157); write_var_statement(_var_statement); } public void write_var_statement(var_statement _var_statement) { write_statement(_var_statement); if (_var_statement.var_def == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _var_statement.var_def.visit(this); } } public void visit(question_colon_expression _question_colon_expression) { bw.Write((Int16)158); write_question_colon_expression(_question_colon_expression); } public void write_question_colon_expression(question_colon_expression _question_colon_expression) { write_addressed_value(_question_colon_expression); if (_question_colon_expression.condition == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _question_colon_expression.condition.visit(this); } if (_question_colon_expression.ret_if_true == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _question_colon_expression.ret_if_true.visit(this); } if (_question_colon_expression.ret_if_false == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _question_colon_expression.ret_if_false.visit(this); } } public void visit(expression_as_statement _expression_as_statement) { bw.Write((Int16)159); write_expression_as_statement(_expression_as_statement); } public void write_expression_as_statement(expression_as_statement _expression_as_statement) { write_statement(_expression_as_statement); if (_expression_as_statement.expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _expression_as_statement.expr.visit(this); } } public void visit(c_scalar_type _c_scalar_type) { bw.Write((Int16)160); write_c_scalar_type(_c_scalar_type); } public void write_c_scalar_type(c_scalar_type _c_scalar_type) { write_type_definition(_c_scalar_type); bw.Write((byte)_c_scalar_type.scalar_name); bw.Write((byte)_c_scalar_type.sign); } public void visit(c_module _c_module) { bw.Write((Int16)161); write_c_module(_c_module); } public void write_c_module(c_module _c_module) { write_compilation_unit(_c_module); if (_c_module.defs == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _c_module.defs.visit(this); } if (_c_module.used_units == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _c_module.used_units.visit(this); } } public void visit(declarations_as_statement _declarations_as_statement) { bw.Write((Int16)162); write_declarations_as_statement(_declarations_as_statement); } public void write_declarations_as_statement(declarations_as_statement _declarations_as_statement) { write_statement(_declarations_as_statement); if (_declarations_as_statement.defs == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _declarations_as_statement.defs.visit(this); } } public void visit(array_size _array_size) { bw.Write((Int16)163); write_array_size(_array_size); } public void write_array_size(array_size _array_size) { write_type_definition(_array_size); if (_array_size.max_value == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _array_size.max_value.visit(this); } } public void visit(enumerator _enumerator) { bw.Write((Int16)164); write_enumerator(_enumerator); } public void write_enumerator(enumerator _enumerator) { write_syntax_tree_node(_enumerator); if (_enumerator.name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _enumerator.name.visit(this); } if (_enumerator.value == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _enumerator.value.visit(this); } } public void visit(enumerator_list _enumerator_list) { bw.Write((Int16)165); write_enumerator_list(_enumerator_list); } public void write_enumerator_list(enumerator_list _enumerator_list) { write_syntax_tree_node(_enumerator_list); if (_enumerator_list.enumerators == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_enumerator_list.enumerators.Count); for(Int32 ssyy_i = 0; ssyy_i < _enumerator_list.enumerators.Count; ssyy_i++) { if (_enumerator_list.enumerators[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _enumerator_list.enumerators[ssyy_i].visit(this); } } } } public void visit(c_for_cycle _c_for_cycle) { bw.Write((Int16)166); write_c_for_cycle(_c_for_cycle); } public void write_c_for_cycle(c_for_cycle _c_for_cycle) { write_statement(_c_for_cycle); if (_c_for_cycle.expr1 == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _c_for_cycle.expr1.visit(this); } if (_c_for_cycle.expr2 == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _c_for_cycle.expr2.visit(this); } if (_c_for_cycle.expr3 == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _c_for_cycle.expr3.visit(this); } if (_c_for_cycle.stmt == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _c_for_cycle.stmt.visit(this); } } public void visit(switch_stmt _switch_stmt) { bw.Write((Int16)167); write_switch_stmt(_switch_stmt); } public void write_switch_stmt(switch_stmt _switch_stmt) { write_statement(_switch_stmt); if (_switch_stmt.condition == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _switch_stmt.condition.visit(this); } if (_switch_stmt.stmt == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _switch_stmt.stmt.visit(this); } bw.Write((byte)_switch_stmt.Part); } public void visit(type_definition_attr_list _type_definition_attr_list) { bw.Write((Int16)168); write_type_definition_attr_list(_type_definition_attr_list); } public void write_type_definition_attr_list(type_definition_attr_list _type_definition_attr_list) { write_syntax_tree_node(_type_definition_attr_list); if (_type_definition_attr_list.attributes == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_type_definition_attr_list.attributes.Count); for(Int32 ssyy_i = 0; ssyy_i < _type_definition_attr_list.attributes.Count; ssyy_i++) { if (_type_definition_attr_list.attributes[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _type_definition_attr_list.attributes[ssyy_i].visit(this); } } } } public void visit(type_definition_attr _type_definition_attr) { bw.Write((Int16)169); write_type_definition_attr(_type_definition_attr); } public void write_type_definition_attr(type_definition_attr _type_definition_attr) { write_type_definition(_type_definition_attr); bw.Write((byte)_type_definition_attr.attr); } public void visit(lock_stmt _lock_stmt) { bw.Write((Int16)170); write_lock_stmt(_lock_stmt); } public void write_lock_stmt(lock_stmt _lock_stmt) { write_statement(_lock_stmt); if (_lock_stmt.lock_object == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _lock_stmt.lock_object.visit(this); } if (_lock_stmt.stmt == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _lock_stmt.stmt.visit(this); } } public void visit(compiler_directive_list _compiler_directive_list) { bw.Write((Int16)171); write_compiler_directive_list(_compiler_directive_list); } public void write_compiler_directive_list(compiler_directive_list _compiler_directive_list) { write_compiler_directive(_compiler_directive_list); if (_compiler_directive_list.directives == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_compiler_directive_list.directives.Count); for(Int32 ssyy_i = 0; ssyy_i < _compiler_directive_list.directives.Count; ssyy_i++) { if (_compiler_directive_list.directives[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _compiler_directive_list.directives[ssyy_i].visit(this); } } } } public void visit(compiler_directive_if _compiler_directive_if) { bw.Write((Int16)172); write_compiler_directive_if(_compiler_directive_if); } public void write_compiler_directive_if(compiler_directive_if _compiler_directive_if) { write_compiler_directive(_compiler_directive_if); if (_compiler_directive_if.if_part == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _compiler_directive_if.if_part.visit(this); } if (_compiler_directive_if.elseif_part == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _compiler_directive_if.elseif_part.visit(this); } } public void visit(documentation_comment_list _documentation_comment_list) { bw.Write((Int16)173); write_documentation_comment_list(_documentation_comment_list); } public void write_documentation_comment_list(documentation_comment_list _documentation_comment_list) { write_syntax_tree_node(_documentation_comment_list); if (_documentation_comment_list.sections == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_documentation_comment_list.sections.Count); for(Int32 ssyy_i = 0; ssyy_i < _documentation_comment_list.sections.Count; ssyy_i++) { if (_documentation_comment_list.sections[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _documentation_comment_list.sections[ssyy_i].visit(this); } } } } public void visit(documentation_comment_tag _documentation_comment_tag) { bw.Write((Int16)174); write_documentation_comment_tag(_documentation_comment_tag); } public void write_documentation_comment_tag(documentation_comment_tag _documentation_comment_tag) { write_syntax_tree_node(_documentation_comment_tag); if (_documentation_comment_tag.name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_documentation_comment_tag.name); } if (_documentation_comment_tag.parameters == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_documentation_comment_tag.parameters.Count); for(Int32 ssyy_i = 0; ssyy_i < _documentation_comment_tag.parameters.Count; ssyy_i++) { if (_documentation_comment_tag.parameters[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _documentation_comment_tag.parameters[ssyy_i].visit(this); } } } if (_documentation_comment_tag.text == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_documentation_comment_tag.text); } } public void visit(documentation_comment_tag_param _documentation_comment_tag_param) { bw.Write((Int16)175); write_documentation_comment_tag_param(_documentation_comment_tag_param); } public void write_documentation_comment_tag_param(documentation_comment_tag_param _documentation_comment_tag_param) { write_syntax_tree_node(_documentation_comment_tag_param); if (_documentation_comment_tag_param.name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_documentation_comment_tag_param.name); } if (_documentation_comment_tag_param.value == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_documentation_comment_tag_param.value); } } public void visit(documentation_comment_section _documentation_comment_section) { bw.Write((Int16)176); write_documentation_comment_section(_documentation_comment_section); } public void write_documentation_comment_section(documentation_comment_section _documentation_comment_section) { write_syntax_tree_node(_documentation_comment_section); if (_documentation_comment_section.tags == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_documentation_comment_section.tags.Count); for(Int32 ssyy_i = 0; ssyy_i < _documentation_comment_section.tags.Count; ssyy_i++) { if (_documentation_comment_section.tags[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _documentation_comment_section.tags[ssyy_i].visit(this); } } } if (_documentation_comment_section.text == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_documentation_comment_section.text); } } public void visit(token_taginfo _token_taginfo) { bw.Write((Int16)177); write_token_taginfo(_token_taginfo); } public void write_token_taginfo(token_taginfo _token_taginfo) { write_token_info(_token_taginfo); bw.Write((byte)_token_taginfo.tag); } public void visit(declaration_specificator _declaration_specificator) { bw.Write((Int16)178); write_declaration_specificator(_declaration_specificator); } public void write_declaration_specificator(declaration_specificator _declaration_specificator) { write_type_definition(_declaration_specificator); bw.Write((byte)_declaration_specificator.specificator); if (_declaration_specificator.name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_declaration_specificator.name); } } public void visit(ident_with_templateparams _ident_with_templateparams) { bw.Write((Int16)179); write_ident_with_templateparams(_ident_with_templateparams); } public void write_ident_with_templateparams(ident_with_templateparams _ident_with_templateparams) { write_addressed_value_funcname(_ident_with_templateparams); if (_ident_with_templateparams.name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _ident_with_templateparams.name.visit(this); } if (_ident_with_templateparams.template_params == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _ident_with_templateparams.template_params.visit(this); } } public void visit(template_type_name _template_type_name) { bw.Write((Int16)180); write_template_type_name(_template_type_name); } public void write_template_type_name(template_type_name _template_type_name) { write_ident(_template_type_name); if (_template_type_name.template_args == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _template_type_name.template_args.visit(this); } } public void visit(default_operator _default_operator) { bw.Write((Int16)181); write_default_operator(_default_operator); } public void write_default_operator(default_operator _default_operator) { write_addressed_value(_default_operator); if (_default_operator.type_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _default_operator.type_name.visit(this); } } public void visit(bracket_expr _bracket_expr) { bw.Write((Int16)182); write_bracket_expr(_bracket_expr); } public void write_bracket_expr(bracket_expr _bracket_expr) { write_addressed_value(_bracket_expr); if (_bracket_expr.expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _bracket_expr.expr.visit(this); } } public void visit(attribute _attribute) { bw.Write((Int16)183); write_attribute(_attribute); } public void write_attribute(attribute _attribute) { write_syntax_tree_node(_attribute); if (_attribute.qualifier == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _attribute.qualifier.visit(this); } if (_attribute.type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _attribute.type.visit(this); } if (_attribute.arguments == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _attribute.arguments.visit(this); } } public void visit(simple_attribute_list _simple_attribute_list) { bw.Write((Int16)184); write_simple_attribute_list(_simple_attribute_list); } public void write_simple_attribute_list(simple_attribute_list _simple_attribute_list) { write_syntax_tree_node(_simple_attribute_list); if (_simple_attribute_list.attributes == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_simple_attribute_list.attributes.Count); for(Int32 ssyy_i = 0; ssyy_i < _simple_attribute_list.attributes.Count; ssyy_i++) { if (_simple_attribute_list.attributes[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _simple_attribute_list.attributes[ssyy_i].visit(this); } } } } public void visit(attribute_list _attribute_list) { bw.Write((Int16)185); write_attribute_list(_attribute_list); } public void write_attribute_list(attribute_list _attribute_list) { write_syntax_tree_node(_attribute_list); if (_attribute_list.attributes == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_attribute_list.attributes.Count); for(Int32 ssyy_i = 0; ssyy_i < _attribute_list.attributes.Count; ssyy_i++) { if (_attribute_list.attributes[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _attribute_list.attributes[ssyy_i].visit(this); } } } } public void visit(function_lambda_definition _function_lambda_definition) { bw.Write((Int16)186); write_function_lambda_definition(_function_lambda_definition); } public void write_function_lambda_definition(function_lambda_definition _function_lambda_definition) { write_expression(_function_lambda_definition); if (_function_lambda_definition.ident_list == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _function_lambda_definition.ident_list.visit(this); } if (_function_lambda_definition.return_type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _function_lambda_definition.return_type.visit(this); } if (_function_lambda_definition.formal_parameters == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _function_lambda_definition.formal_parameters.visit(this); } if (_function_lambda_definition.proc_body == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _function_lambda_definition.proc_body.visit(this); } bw.Write((byte)_function_lambda_definition.proc_definition); if (_function_lambda_definition.parameters == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _function_lambda_definition.parameters.visit(this); } if (_function_lambda_definition.lambda_name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_function_lambda_definition.lambda_name); } if (_function_lambda_definition.defs == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_function_lambda_definition.defs.Count); for(Int32 ssyy_i = 0; ssyy_i < _function_lambda_definition.defs.Count; ssyy_i++) { if (_function_lambda_definition.defs[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _function_lambda_definition.defs[ssyy_i].visit(this); } } } bw.Write((byte)_function_lambda_definition.lambda_visit_mode); if (_function_lambda_definition.substituting_node == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _function_lambda_definition.substituting_node.visit(this); } bw.Write((byte)_function_lambda_definition.usedkeyword); } public void visit(function_lambda_call _function_lambda_call) { bw.Write((Int16)187); write_function_lambda_call(_function_lambda_call); } public void write_function_lambda_call(function_lambda_call _function_lambda_call) { write_expression(_function_lambda_call); if (_function_lambda_call.f_lambda_def == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _function_lambda_call.f_lambda_def.visit(this); } if (_function_lambda_call.parameters == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _function_lambda_call.parameters.visit(this); } } public void visit(semantic_check _semantic_check) { bw.Write((Int16)188); write_semantic_check(_semantic_check); } public void write_semantic_check(semantic_check _semantic_check) { write_statement(_semantic_check); if (_semantic_check.CheckName == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_semantic_check.CheckName); } if (_semantic_check.param == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_semantic_check.param.Count); for(Int32 ssyy_i = 0; ssyy_i < _semantic_check.param.Count; ssyy_i++) { if (_semantic_check.param[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _semantic_check.param[ssyy_i].visit(this); } } } bw.Write((byte)_semantic_check.fictive); } public void visit(lambda_inferred_type _lambda_inferred_type) { bw.Write((Int16)189); write_lambda_inferred_type(_lambda_inferred_type); } public void write_lambda_inferred_type(lambda_inferred_type _lambda_inferred_type) { write_type_definition(_lambda_inferred_type); bw.Write((byte)_lambda_inferred_type.real_type); } public void visit(same_type_node _same_type_node) { bw.Write((Int16)190); write_same_type_node(_same_type_node); } public void write_same_type_node(same_type_node _same_type_node) { write_type_definition(_same_type_node); if (_same_type_node.ex == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _same_type_node.ex.visit(this); } } public void visit(name_assign_expr _name_assign_expr) { bw.Write((Int16)191); write_name_assign_expr(_name_assign_expr); } public void write_name_assign_expr(name_assign_expr _name_assign_expr) { write_syntax_tree_node(_name_assign_expr); if (_name_assign_expr.name == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _name_assign_expr.name.visit(this); } if (_name_assign_expr.expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _name_assign_expr.expr.visit(this); } } public void visit(name_assign_expr_list _name_assign_expr_list) { bw.Write((Int16)192); write_name_assign_expr_list(_name_assign_expr_list); } public void write_name_assign_expr_list(name_assign_expr_list _name_assign_expr_list) { write_syntax_tree_node(_name_assign_expr_list); if (_name_assign_expr_list.name_expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_name_assign_expr_list.name_expr.Count); for(Int32 ssyy_i = 0; ssyy_i < _name_assign_expr_list.name_expr.Count; ssyy_i++) { if (_name_assign_expr_list.name_expr[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _name_assign_expr_list.name_expr[ssyy_i].visit(this); } } } } public void visit(unnamed_type_object _unnamed_type_object) { bw.Write((Int16)193); write_unnamed_type_object(_unnamed_type_object); } public void write_unnamed_type_object(unnamed_type_object _unnamed_type_object) { write_addressed_value(_unnamed_type_object); if (_unnamed_type_object.ne_list == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _unnamed_type_object.ne_list.visit(this); } bw.Write(_unnamed_type_object.is_class); if (_unnamed_type_object.new_ex == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _unnamed_type_object.new_ex.visit(this); } } public void visit(semantic_type_node _semantic_type_node) { bw.Write((Int16)194); write_semantic_type_node(_semantic_type_node); } public void write_semantic_type_node(semantic_type_node _semantic_type_node) { write_type_definition(_semantic_type_node); bw.Write((byte)_semantic_type_node.type); } public void visit(short_func_definition _short_func_definition) { bw.Write((Int16)195); write_short_func_definition(_short_func_definition); } public void write_short_func_definition(short_func_definition _short_func_definition) { write_procedure_definition(_short_func_definition); if (_short_func_definition.procdef == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _short_func_definition.procdef.visit(this); } } public void visit(no_type_foreach _no_type_foreach) { bw.Write((Int16)196); write_no_type_foreach(_no_type_foreach); } public void write_no_type_foreach(no_type_foreach _no_type_foreach) { write_type_definition(_no_type_foreach); } public void visit(matching_expression _matching_expression) { bw.Write((Int16)197); write_matching_expression(_matching_expression); } public void write_matching_expression(matching_expression _matching_expression) { write_addressed_value(_matching_expression); if (_matching_expression.left == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _matching_expression.left.visit(this); } if (_matching_expression.right == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _matching_expression.right.visit(this); } } public void visit(closure_substituting_node _closure_substituting_node) { bw.Write((Int16)198); write_closure_substituting_node(_closure_substituting_node); } public void write_closure_substituting_node(closure_substituting_node _closure_substituting_node) { write_ident(_closure_substituting_node); if (_closure_substituting_node.substitution == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _closure_substituting_node.substitution.visit(this); } } public void visit(sequence_type _sequence_type) { bw.Write((Int16)199); write_sequence_type(_sequence_type); } public void write_sequence_type(sequence_type _sequence_type) { write_type_definition(_sequence_type); if (_sequence_type.elements_type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _sequence_type.elements_type.visit(this); } } public void visit(modern_proc_type _modern_proc_type) { bw.Write((Int16)200); write_modern_proc_type(_modern_proc_type); } public void write_modern_proc_type(modern_proc_type _modern_proc_type) { write_type_definition(_modern_proc_type); if (_modern_proc_type.aloneparam == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _modern_proc_type.aloneparam.visit(this); } if (_modern_proc_type.el == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _modern_proc_type.el.visit(this); } if (_modern_proc_type.res == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _modern_proc_type.res.visit(this); } } public void visit(yield_node _yield_node) { bw.Write((Int16)201); write_yield_node(_yield_node); } public void write_yield_node(yield_node _yield_node) { write_statement(_yield_node); if (_yield_node.ex == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _yield_node.ex.visit(this); } } public void visit(template_operator_name _template_operator_name) { bw.Write((Int16)202); write_template_operator_name(_template_operator_name); } public void write_template_operator_name(template_operator_name _template_operator_name) { write_template_type_name(_template_operator_name); if (_template_operator_name.opname == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _template_operator_name.opname.visit(this); } } public void visit(semantic_addr_value _semantic_addr_value) { bw.Write((Int16)203); write_semantic_addr_value(_semantic_addr_value); } public void write_semantic_addr_value(semantic_addr_value _semantic_addr_value) { write_addressed_value(_semantic_addr_value); bw.Write((byte)_semantic_addr_value.expr); } public void visit(pair_type_stlist _pair_type_stlist) { bw.Write((Int16)204); write_pair_type_stlist(_pair_type_stlist); } public void write_pair_type_stlist(pair_type_stlist _pair_type_stlist) { write_syntax_tree_node(_pair_type_stlist); if (_pair_type_stlist.tn == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _pair_type_stlist.tn.visit(this); } if (_pair_type_stlist.exprs == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _pair_type_stlist.exprs.visit(this); } } public void visit(assign_tuple _assign_tuple) { bw.Write((Int16)205); write_assign_tuple(_assign_tuple); } public void write_assign_tuple(assign_tuple _assign_tuple) { write_statement(_assign_tuple); if (_assign_tuple.vars == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _assign_tuple.vars.visit(this); } if (_assign_tuple.expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _assign_tuple.expr.visit(this); } } public void visit(addressed_value_list _addressed_value_list) { bw.Write((Int16)206); write_addressed_value_list(_addressed_value_list); } public void write_addressed_value_list(addressed_value_list _addressed_value_list) { write_syntax_tree_node(_addressed_value_list); if (_addressed_value_list.variables == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_addressed_value_list.variables.Count); for(Int32 ssyy_i = 0; ssyy_i < _addressed_value_list.variables.Count; ssyy_i++) { if (_addressed_value_list.variables[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _addressed_value_list.variables[ssyy_i].visit(this); } } } } public void visit(tuple_node _tuple_node) { bw.Write((Int16)207); write_tuple_node(_tuple_node); } public void write_tuple_node(tuple_node _tuple_node) { write_addressed_value(_tuple_node); if (_tuple_node.el == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _tuple_node.el.visit(this); } } public void visit(uses_closure _uses_closure) { bw.Write((Int16)208); write_uses_closure(_uses_closure); } public void write_uses_closure(uses_closure _uses_closure) { write_uses_list(_uses_closure); if (_uses_closure.listunitsections == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_uses_closure.listunitsections.Count); for(Int32 ssyy_i = 0; ssyy_i < _uses_closure.listunitsections.Count; ssyy_i++) { if (_uses_closure.listunitsections[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _uses_closure.listunitsections[ssyy_i].visit(this); } } } } public void visit(dot_question_node _dot_question_node) { bw.Write((Int16)209); write_dot_question_node(_dot_question_node); } public void write_dot_question_node(dot_question_node _dot_question_node) { write_addressed_value_funcname(_dot_question_node); if (_dot_question_node.left == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _dot_question_node.left.visit(this); } if (_dot_question_node.right == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _dot_question_node.right.visit(this); } } public void visit(slice_expr _slice_expr) { bw.Write((Int16)210); write_slice_expr(_slice_expr); } public void write_slice_expr(slice_expr _slice_expr) { write_dereference(_slice_expr); if (_slice_expr.v == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _slice_expr.v.visit(this); } if (_slice_expr.from == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _slice_expr.from.visit(this); } if (_slice_expr.to == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _slice_expr.to.visit(this); } if (_slice_expr.step == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _slice_expr.step.visit(this); } } public void visit(no_type _no_type) { bw.Write((Int16)211); write_no_type(_no_type); } public void write_no_type(no_type _no_type) { write_type_definition(_no_type); } public void visit(yield_unknown_ident _yield_unknown_ident) { bw.Write((Int16)212); write_yield_unknown_ident(_yield_unknown_ident); } public void write_yield_unknown_ident(yield_unknown_ident _yield_unknown_ident) { write_ident(_yield_unknown_ident); } public void visit(yield_unknown_expression_type _yield_unknown_expression_type) { bw.Write((Int16)213); write_yield_unknown_expression_type(_yield_unknown_expression_type); } public void write_yield_unknown_expression_type(yield_unknown_expression_type _yield_unknown_expression_type) { write_type_definition(_yield_unknown_expression_type); } public void visit(yield_unknown_foreach_type _yield_unknown_foreach_type) { bw.Write((Int16)214); write_yield_unknown_foreach_type(_yield_unknown_foreach_type); } public void write_yield_unknown_foreach_type(yield_unknown_foreach_type _yield_unknown_foreach_type) { write_type_definition(_yield_unknown_foreach_type); } public void visit(yield_sequence_node _yield_sequence_node) { bw.Write((Int16)215); write_yield_sequence_node(_yield_sequence_node); } public void write_yield_sequence_node(yield_sequence_node _yield_sequence_node) { write_statement(_yield_sequence_node); if (_yield_sequence_node.ex == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _yield_sequence_node.ex.visit(this); } } public void visit(assign_var_tuple _assign_var_tuple) { bw.Write((Int16)216); write_assign_var_tuple(_assign_var_tuple); } public void write_assign_var_tuple(assign_var_tuple _assign_var_tuple) { write_statement(_assign_var_tuple); if (_assign_var_tuple.idents == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _assign_var_tuple.idents.visit(this); } if (_assign_var_tuple.expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _assign_var_tuple.expr.visit(this); } } public void visit(slice_expr_question _slice_expr_question) { bw.Write((Int16)217); write_slice_expr_question(_slice_expr_question); } public void write_slice_expr_question(slice_expr_question _slice_expr_question) { write_slice_expr(_slice_expr_question); } public void visit(semantic_check_sugared_statement_node _semantic_check_sugared_statement_node) { bw.Write((Int16)218); write_semantic_check_sugared_statement_node(_semantic_check_sugared_statement_node); } public void write_semantic_check_sugared_statement_node(semantic_check_sugared_statement_node _semantic_check_sugared_statement_node) { write_statement(_semantic_check_sugared_statement_node); bw.Write((byte)_semantic_check_sugared_statement_node.typ); if (_semantic_check_sugared_statement_node.lst == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_semantic_check_sugared_statement_node.lst.Count); for(Int32 ssyy_i = 0; ssyy_i < _semantic_check_sugared_statement_node.lst.Count; ssyy_i++) { if (_semantic_check_sugared_statement_node.lst[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _semantic_check_sugared_statement_node.lst[ssyy_i].visit(this); } } } } public void visit(sugared_expression _sugared_expression) { bw.Write((Int16)219); write_sugared_expression(_sugared_expression); } public void write_sugared_expression(sugared_expression _sugared_expression) { write_expression(_sugared_expression); bw.Write((byte)_sugared_expression.sugared_expr); if (_sugared_expression.new_expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _sugared_expression.new_expr.visit(this); } } public void visit(sugared_addressed_value _sugared_addressed_value) { bw.Write((Int16)220); write_sugared_addressed_value(_sugared_addressed_value); } public void write_sugared_addressed_value(sugared_addressed_value _sugared_addressed_value) { write_addressed_value(_sugared_addressed_value); bw.Write((byte)_sugared_addressed_value.sugared_expr); if (_sugared_addressed_value.new_addr_value == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _sugared_addressed_value.new_addr_value.visit(this); } } public void visit(double_question_node _double_question_node) { bw.Write((Int16)221); write_double_question_node(_double_question_node); } public void write_double_question_node(double_question_node _double_question_node) { write_addressed_value_funcname(_double_question_node); if (_double_question_node.left == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _double_question_node.left.visit(this); } if (_double_question_node.right == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _double_question_node.right.visit(this); } } public void visit(pattern_node _pattern_node) { bw.Write((Int16)222); write_pattern_node(_pattern_node); } public void write_pattern_node(pattern_node _pattern_node) { write_syntax_tree_node(_pattern_node); if (_pattern_node.parameters == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_pattern_node.parameters.Count); for(Int32 ssyy_i = 0; ssyy_i < _pattern_node.parameters.Count; ssyy_i++) { if (_pattern_node.parameters[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _pattern_node.parameters[ssyy_i].visit(this); } } } } public void visit(type_pattern _type_pattern) { bw.Write((Int16)223); write_type_pattern(_type_pattern); } public void write_type_pattern(type_pattern _type_pattern) { write_pattern_node(_type_pattern); if (_type_pattern.identifier == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _type_pattern.identifier.visit(this); } if (_type_pattern.type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _type_pattern.type.visit(this); } } public void visit(is_pattern_expr _is_pattern_expr) { bw.Write((Int16)224); write_is_pattern_expr(_is_pattern_expr); } public void write_is_pattern_expr(is_pattern_expr _is_pattern_expr) { write_addressed_value(_is_pattern_expr); if (_is_pattern_expr.left == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _is_pattern_expr.left.visit(this); } if (_is_pattern_expr.right == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _is_pattern_expr.right.visit(this); } } public void visit(match_with _match_with) { bw.Write((Int16)225); write_match_with(_match_with); } public void write_match_with(match_with _match_with) { write_statement(_match_with); if (_match_with.expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _match_with.expr.visit(this); } if (_match_with.case_list == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _match_with.case_list.visit(this); } if (_match_with.defaultAction == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _match_with.defaultAction.visit(this); } } public void visit(pattern_case _pattern_case) { bw.Write((Int16)226); write_pattern_case(_pattern_case); } public void write_pattern_case(pattern_case _pattern_case) { write_statement(_pattern_case); if (_pattern_case.pattern == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _pattern_case.pattern.visit(this); } if (_pattern_case.case_action == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _pattern_case.case_action.visit(this); } if (_pattern_case.condition == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _pattern_case.condition.visit(this); } } public void visit(pattern_cases _pattern_cases) { bw.Write((Int16)227); write_pattern_cases(_pattern_cases); } public void write_pattern_cases(pattern_cases _pattern_cases) { write_statement(_pattern_cases); if (_pattern_cases.elements == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_pattern_cases.elements.Count); for(Int32 ssyy_i = 0; ssyy_i < _pattern_cases.elements.Count; ssyy_i++) { if (_pattern_cases.elements[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _pattern_cases.elements[ssyy_i].visit(this); } } } } public void visit(deconstructor_pattern _deconstructor_pattern) { bw.Write((Int16)228); write_deconstructor_pattern(_deconstructor_pattern); } public void write_deconstructor_pattern(deconstructor_pattern _deconstructor_pattern) { write_pattern_node(_deconstructor_pattern); if (_deconstructor_pattern.type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _deconstructor_pattern.type.visit(this); } if (_deconstructor_pattern.const_params_check == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _deconstructor_pattern.const_params_check.visit(this); } } public void visit(pattern_parameter _pattern_parameter) { bw.Write((Int16)229); write_pattern_parameter(_pattern_parameter); } public void write_pattern_parameter(pattern_parameter _pattern_parameter) { write_syntax_tree_node(_pattern_parameter); } public void visit(desugared_deconstruction _desugared_deconstruction) { bw.Write((Int16)230); write_desugared_deconstruction(_desugared_deconstruction); } public void write_desugared_deconstruction(desugared_deconstruction _desugared_deconstruction) { write_statement(_desugared_deconstruction); if (_desugared_deconstruction.variables == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _desugared_deconstruction.variables.visit(this); } if (_desugared_deconstruction.deconstruction_target == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _desugared_deconstruction.deconstruction_target.visit(this); } } public void visit(var_deconstructor_parameter _var_deconstructor_parameter) { bw.Write((Int16)231); write_var_deconstructor_parameter(_var_deconstructor_parameter); } public void write_var_deconstructor_parameter(var_deconstructor_parameter _var_deconstructor_parameter) { write_pattern_parameter(_var_deconstructor_parameter); if (_var_deconstructor_parameter.identifier == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _var_deconstructor_parameter.identifier.visit(this); } if (_var_deconstructor_parameter.type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _var_deconstructor_parameter.type.visit(this); } bw.Write(_var_deconstructor_parameter.var_keyword_used); } public void visit(recursive_deconstructor_parameter _recursive_deconstructor_parameter) { bw.Write((Int16)232); write_recursive_deconstructor_parameter(_recursive_deconstructor_parameter); } public void write_recursive_deconstructor_parameter(recursive_deconstructor_parameter _recursive_deconstructor_parameter) { write_recursive_pattern_parameter(_recursive_deconstructor_parameter); } public void visit(deconstruction_variables_definition _deconstruction_variables_definition) { bw.Write((Int16)233); write_deconstruction_variables_definition(_deconstruction_variables_definition); } public void write_deconstruction_variables_definition(deconstruction_variables_definition _deconstruction_variables_definition) { write_declaration(_deconstruction_variables_definition); if (_deconstruction_variables_definition.definitions == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_deconstruction_variables_definition.definitions.Count); for(Int32 ssyy_i = 0; ssyy_i < _deconstruction_variables_definition.definitions.Count; ssyy_i++) { if (_deconstruction_variables_definition.definitions[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _deconstruction_variables_definition.definitions[ssyy_i].visit(this); } } } } public void visit(var_tuple_def_statement _var_tuple_def_statement) { bw.Write((Int16)234); write_var_tuple_def_statement(_var_tuple_def_statement); } public void write_var_tuple_def_statement(var_tuple_def_statement _var_tuple_def_statement) { write_var_def_statement(_var_tuple_def_statement); } public void visit(semantic_check_sugared_var_def_statement_node _semantic_check_sugared_var_def_statement_node) { bw.Write((Int16)235); write_semantic_check_sugared_var_def_statement_node(_semantic_check_sugared_var_def_statement_node); } public void write_semantic_check_sugared_var_def_statement_node(semantic_check_sugared_var_def_statement_node _semantic_check_sugared_var_def_statement_node) { write_var_def_statement(_semantic_check_sugared_var_def_statement_node); bw.Write((byte)_semantic_check_sugared_var_def_statement_node.typ); if (_semantic_check_sugared_var_def_statement_node.lst == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_semantic_check_sugared_var_def_statement_node.lst.Count); for(Int32 ssyy_i = 0; ssyy_i < _semantic_check_sugared_var_def_statement_node.lst.Count; ssyy_i++) { if (_semantic_check_sugared_var_def_statement_node.lst[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _semantic_check_sugared_var_def_statement_node.lst[ssyy_i].visit(this); } } } } public void visit(const_pattern _const_pattern) { bw.Write((Int16)236); write_const_pattern(_const_pattern); } public void write_const_pattern(const_pattern _const_pattern) { write_pattern_node(_const_pattern); if (_const_pattern.pattern_expressions == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _const_pattern.pattern_expressions.visit(this); } } public void visit(tuple_pattern_wild_card _tuple_pattern_wild_card) { bw.Write((Int16)237); write_tuple_pattern_wild_card(_tuple_pattern_wild_card); } public void write_tuple_pattern_wild_card(tuple_pattern_wild_card _tuple_pattern_wild_card) { write_pattern_parameter(_tuple_pattern_wild_card); } public void visit(const_pattern_parameter _const_pattern_parameter) { bw.Write((Int16)238); write_const_pattern_parameter(_const_pattern_parameter); } public void write_const_pattern_parameter(const_pattern_parameter _const_pattern_parameter) { write_pattern_parameter(_const_pattern_parameter); if (_const_pattern_parameter.const_param == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _const_pattern_parameter.const_param.visit(this); } } public void visit(wild_card_deconstructor_parameter _wild_card_deconstructor_parameter) { bw.Write((Int16)239); write_wild_card_deconstructor_parameter(_wild_card_deconstructor_parameter); } public void write_wild_card_deconstructor_parameter(wild_card_deconstructor_parameter _wild_card_deconstructor_parameter) { write_pattern_parameter(_wild_card_deconstructor_parameter); } public void visit(collection_pattern _collection_pattern) { bw.Write((Int16)240); write_collection_pattern(_collection_pattern); } public void write_collection_pattern(collection_pattern _collection_pattern) { write_pattern_node(_collection_pattern); } public void visit(collection_pattern_gap_parameter _collection_pattern_gap_parameter) { bw.Write((Int16)241); write_collection_pattern_gap_parameter(_collection_pattern_gap_parameter); } public void write_collection_pattern_gap_parameter(collection_pattern_gap_parameter _collection_pattern_gap_parameter) { write_pattern_parameter(_collection_pattern_gap_parameter); } public void visit(collection_pattern_wild_card _collection_pattern_wild_card) { bw.Write((Int16)242); write_collection_pattern_wild_card(_collection_pattern_wild_card); } public void write_collection_pattern_wild_card(collection_pattern_wild_card _collection_pattern_wild_card) { write_pattern_parameter(_collection_pattern_wild_card); } public void visit(collection_pattern_var_parameter _collection_pattern_var_parameter) { bw.Write((Int16)243); write_collection_pattern_var_parameter(_collection_pattern_var_parameter); } public void write_collection_pattern_var_parameter(collection_pattern_var_parameter _collection_pattern_var_parameter) { write_pattern_parameter(_collection_pattern_var_parameter); if (_collection_pattern_var_parameter.identifier == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _collection_pattern_var_parameter.identifier.visit(this); } if (_collection_pattern_var_parameter.type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _collection_pattern_var_parameter.type.visit(this); } } public void visit(recursive_collection_parameter _recursive_collection_parameter) { bw.Write((Int16)244); write_recursive_collection_parameter(_recursive_collection_parameter); } public void write_recursive_collection_parameter(recursive_collection_parameter _recursive_collection_parameter) { write_recursive_pattern_parameter(_recursive_collection_parameter); } public void visit(recursive_pattern_parameter _recursive_pattern_parameter) { bw.Write((Int16)245); write_recursive_pattern_parameter(_recursive_pattern_parameter); } public void write_recursive_pattern_parameter(recursive_pattern_parameter _recursive_pattern_parameter) { write_pattern_parameter(_recursive_pattern_parameter); if (_recursive_pattern_parameter.pattern == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _recursive_pattern_parameter.pattern.visit(this); } } public void visit(tuple_pattern _tuple_pattern) { bw.Write((Int16)246); write_tuple_pattern(_tuple_pattern); } public void write_tuple_pattern(tuple_pattern _tuple_pattern) { write_pattern_node(_tuple_pattern); } public void visit(tuple_pattern_var_parameter _tuple_pattern_var_parameter) { bw.Write((Int16)247); write_tuple_pattern_var_parameter(_tuple_pattern_var_parameter); } public void write_tuple_pattern_var_parameter(tuple_pattern_var_parameter _tuple_pattern_var_parameter) { write_pattern_parameter(_tuple_pattern_var_parameter); if (_tuple_pattern_var_parameter.identifier == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _tuple_pattern_var_parameter.identifier.visit(this); } if (_tuple_pattern_var_parameter.type == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _tuple_pattern_var_parameter.type.visit(this); } } public void visit(recursive_tuple_parameter _recursive_tuple_parameter) { bw.Write((Int16)248); write_recursive_tuple_parameter(_recursive_tuple_parameter); } public void write_recursive_tuple_parameter(recursive_tuple_parameter _recursive_tuple_parameter) { write_recursive_pattern_parameter(_recursive_tuple_parameter); } public void visit(diapason_expr_new _diapason_expr_new) { bw.Write((Int16)249); write_diapason_expr_new(_diapason_expr_new); } public void write_diapason_expr_new(diapason_expr_new _diapason_expr_new) { write_addressed_value(_diapason_expr_new); if (_diapason_expr_new.left == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _diapason_expr_new.left.visit(this); } if (_diapason_expr_new.right == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _diapason_expr_new.right.visit(this); } } public void visit(if_expr_new _if_expr_new) { bw.Write((Int16)250); write_if_expr_new(_if_expr_new); } public void write_if_expr_new(if_expr_new _if_expr_new) { write_expression(_if_expr_new); if (_if_expr_new.condition == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _if_expr_new.condition.visit(this); } if (_if_expr_new.if_true == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _if_expr_new.if_true.visit(this); } if (_if_expr_new.if_false == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _if_expr_new.if_false.visit(this); } } public void visit(simple_expr_with_deref _simple_expr_with_deref) { bw.Write((Int16)251); write_simple_expr_with_deref(_simple_expr_with_deref); } public void write_simple_expr_with_deref(simple_expr_with_deref _simple_expr_with_deref) { write_expression(_simple_expr_with_deref); if (_simple_expr_with_deref.simple_expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _simple_expr_with_deref.simple_expr.visit(this); } bw.Write(_simple_expr_with_deref.has_deref); } public void visit(index _index) { bw.Write((Int16)252); write_index(_index); } public void write_index(index _index) { write_expression(_index); if (_index.index_expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _index.index_expr.visit(this); } bw.Write(_index.inverted); } public void visit(array_const_new _array_const_new) { bw.Write((Int16)253); write_array_const_new(_array_const_new); } public void write_array_const_new(array_const_new _array_const_new) { write_addressed_value(_array_const_new); if (_array_const_new.elements == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _array_const_new.elements.visit(this); } } public void visit(semantic_ith_element_of _semantic_ith_element_of) { bw.Write((Int16)254); write_semantic_ith_element_of(_semantic_ith_element_of); } public void write_semantic_ith_element_of(semantic_ith_element_of _semantic_ith_element_of) { write_expression(_semantic_ith_element_of); if (_semantic_ith_element_of.id == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _semantic_ith_element_of.id.visit(this); } if (_semantic_ith_element_of.index == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _semantic_ith_element_of.index.visit(this); } } public void visit(bigint_const _bigint_const) { bw.Write((Int16)255); write_bigint_const(_bigint_const); } public void write_bigint_const(bigint_const _bigint_const) { write_const_node(_bigint_const); bw.Write(_bigint_const.val); } public void visit(foreach_stmt_formatting _foreach_stmt_formatting) { bw.Write((Int16)256); write_foreach_stmt_formatting(_foreach_stmt_formatting); } public void write_foreach_stmt_formatting(foreach_stmt_formatting _foreach_stmt_formatting) { write_statement(_foreach_stmt_formatting); if (_foreach_stmt_formatting.il == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _foreach_stmt_formatting.il.visit(this); } if (_foreach_stmt_formatting.in_what == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _foreach_stmt_formatting.in_what.visit(this); } if (_foreach_stmt_formatting.stmt == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _foreach_stmt_formatting.stmt.visit(this); } if (_foreach_stmt_formatting.index == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _foreach_stmt_formatting.index.visit(this); } } public void visit(property_ident _property_ident) { bw.Write((Int16)257); write_property_ident(_property_ident); } public void write_property_ident(property_ident _property_ident) { write_ident(_property_ident); if (_property_ident.ln == null) { bw.Write((byte)0); } else { bw.Write((byte)1); bw.Write(_property_ident.ln.Count); for(Int32 ssyy_i = 0; ssyy_i < _property_ident.ln.Count; ssyy_i++) { if (_property_ident.ln[ssyy_i] == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _property_ident.ln[ssyy_i].visit(this); } } } } public void visit(expression_with_let _expression_with_let) { bw.Write((Int16)258); write_expression_with_let(_expression_with_let); } public void write_expression_with_let(expression_with_let _expression_with_let) { write_addressed_value(_expression_with_let); if (_expression_with_let.stat == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _expression_with_let.stat.visit(this); } if (_expression_with_let.expr == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _expression_with_let.expr.visit(this); } } } }