示例#1
0
 public class_constant_definition(string name, location loc, common_type_node comprehensive_type, SemanticTree.field_access_level field_access_level)
     :
     base(name, loc)
 {
     _comprehensive_type = comprehensive_type;
     _fal = field_access_level;
 }
示例#2
0
 public common_property_node(string name, common_type_node comprehensive_type, location loc,
                             SemanticTree.field_access_level field_access_level, SemanticTree.polymorphic_state polymorphic_state)
 {
     _name = name;
     _comprehensive_type = comprehensive_type;
     _loc = loc;
     _field_access_level = field_access_level;
     _polymorphic_state  = polymorphic_state;
 }
示例#3
0
 public class_field(string name, type_node type, common_type_node cont_class,
                    SemanticTree.polymorphic_state polymorphic_state, SemanticTree.field_access_level field_access_level,
                    location loc) :
     base(name, type)
 {
     _cont_class         = cont_class;
     _polymorphic_state  = polymorphic_state;
     _field_access_level = field_access_level;
     _loc = loc;
 }
示例#4
0
 	public common_event(string name, type_node del_type, common_type_node cont_type, common_method_node add_method, common_method_node remove_method, common_method_node raise_method, 
 	                    SemanticTree.field_access_level fal, SemanticTree.polymorphic_state ps, location loc)
 	{
 		this._name = name;
 		this.del_type = del_type;
 		this._add_method = add_method;
 		this._remove_method = remove_method;
 		this._raise_method = raise_method;
 		this._field_access_level = fal;
 		this._polymorphic_state = ps;
 		this._cont_type = cont_type;
 		this._loc = loc;
 	}
示例#5
0
 public common_event(string name, type_node del_type, common_type_node cont_type, common_method_node add_method, common_method_node remove_method, common_method_node raise_method,
                     SemanticTree.field_access_level fal, SemanticTree.polymorphic_state ps, location loc)
 {
     this._name               = name;
     this.del_type            = del_type;
     this._add_method         = add_method;
     this._remove_method      = remove_method;
     this._raise_method       = raise_method;
     this._field_access_level = fal;
     this._polymorphic_state  = ps;
     this._cont_type          = cont_type;
     this._loc = loc;
 }
示例#6
0
 public void reset()
 {
     _cmn = null;
     _ctn = null;
     _func_stack.clear();
     var_defs.Clear();
     _main_procedure = null;
     _last_created_function = null;
     _cycles_stack.clear();
     _num_of_for_cycles = 0;
     _fal = SemanticTree.field_access_level.fal_private;
     rec_num = 1;
     var_defs_stack.Clear();
     type_stack.Clear();
     clear_special_local_vars();
     _scope_stack.Clear();
 }
示例#7
0
 public void set_access_level(SemanticTree.field_access_level fal)
 {
     _field_access_level = fal;
 }
示例#8
0
        /// <summary>
        /// Конструктор узла.
        /// </summary>
        /// <param name="name">Имя функции.</param>
        /// <param name="ret_type"></param>
        /// <param name="loc">Расположение имени метода в программе.</param>
        /// <param name="cont_type">Тип, который содержит этот метод.</param>
        /// <param name="polymorphic_state">Обычный, виртуальный или статический метод.</param>
        /// <param name="field_access_level">Уровень доступа к методу.</param>
        /// <param name="scope">Пространство имен функции.</param>
		public common_method_node(string name,type_node ret_type, location loc, common_type_node cont_type,
            SemanticTree.polymorphic_state polymorphic_state, SemanticTree.field_access_level field_access_level, SymbolTable.Scope scope) :
			base(name,ret_type,loc,scope)
		{
			_cont_type=cont_type;
            _field_access_level = field_access_level;
            _polymorphic_state = polymorphic_state;
		}
 /// <summary>
 /// Конструктор класса.
 /// </summary>
 /// <param name="name">Имя константы.</param>
 /// <param name="cn">Значение константы.</param>
 /// <param name="loc">Расположение константы.</param>
 /// <param name="comprehensive_type">Тип, содержащий константу.</param>
 public class_constant_definition(string name, constant_node cn, location loc, common_type_node comprehensive_type, SemanticTree.field_access_level field_access_level) :
     base(name,cn,loc)
 {
     _comprehensive_type = comprehensive_type;
     _fal = field_access_level;
 }
示例#10
0
		public class_field(string name,type_node type,common_type_node cont_class,
			SemanticTree.polymorphic_state polymorphic_state, SemanticTree.field_access_level field_access_level,
            location loc):
			base(name,type)
		{
			_cont_class=cont_class;
			_polymorphic_state=polymorphic_state;
			_field_access_level=field_access_level;
            _loc = loc;
		}
示例#11
0
 public void SaveContext(syntax_tree_visitor syntax_tree_visitor)
 {
     converted_type = syntax_tree_visitor.context.converted_type;
     syntax_tree_visitor.context.converted_type = null;
     statement_list_stack = syntax_tree_visitor.convertion_data_and_alghoritms.statement_list_stack;
     syntax_tree_visitor.convertion_data_and_alghoritms.statement_list_stack = new statement_list_stack();
     curr_fal = syntax_tree_visitor.context.get_field_access_level();
     current_var_defs = syntax_tree_visitor.context.var_defs;
     syntax_tree_visitor.context.var_defs = new List<var_definition_node>();
     block_stack = syntax_tree_visitor.context.block_stack;
     syntax_tree_visitor.context.block_stack = new Stack<code_block>();
     cycle_stack = syntax_tree_visitor.context.CyclesStack;
     syntax_tree_visitor.context.CyclesStack = new statement_node_stack();
     current_member_decls = syntax_tree_visitor.context.member_decls;
     syntax_tree_visitor.context.member_decls = new Hashtable();
     function_node_stack = syntax_tree_visitor.context.func_stack;
     syntax_tree_visitor.context.func_stack = new common_function_node_stack();
     current_last_created_function = syntax_tree_visitor.context.last_created_function;
     SemanticRulesThrowErrorWithoutSave = SemanticRules.ThrowErrorWithoutSave;
     SemanticRules.ThrowErrorWithoutSave = true;
 }
 public void reset()
 {
     _cmn = null;
     _ctn = null;
     _func_stack.clear();
     var_defs.Clear();
     _main_procedure = null;
     _last_created_function = null;
     _cycles_stack.clear();
     _num_of_for_cycles = 0;
     _fal = SemanticTree.field_access_level.fal_private;
     rec_num = 1;
     var_defs_stack.Clear();
     type_stack.Clear();
     clear_special_local_vars();
     _scope_stack.Clear();
     TypedFiles.Clear();
     ShortStringTypes.Clear();
     TypedSets.Clear();
     _compiled_tn = null;
     _explicit_interface_type = null;
     _ctt = null;
     allow_inherited_ctor_call = false;
     _types_predefined.Clear();
     _block_stack.Clear();
     member_decls.Clear();
     possible_incorrect_instances.Clear();
     skip_check_where_sections = false;
     LambdaHelper.Reset(); //lroman//
     SavedContext = null;
     SavedContextStack.Clear();
     compiled_tc_cache.Clear();
     extension_method = false;
     _last_created_function = null;
     in_parameters_block = false;
     is_order_independed_method_description = false;
     
 }
示例#13
0
		public common_property_node(string name,common_type_node comprehensive_type,type_node property_type,
			function_node get_function,function_node set_function,location loc,
            SemanticTree.field_access_level field_access_level, SemanticTree.polymorphic_state polymorphic_state)
		{
			_name=name;
			_comprehensive_type=comprehensive_type;
			_property_type=property_type;
			_get_function=get_function;
			_set_function=set_function;
            _loc = loc;
            _field_access_level = field_access_level;
            _polymorphic_state = polymorphic_state;
		}