//TODO: Сделать static. И вообще этот метод нужно вынести в location т.к. он определен в нескольких местах. И не плохо было бы сделать два вида интерфейса ILocated - один для получения ILocation а второй для получения location.
 public SemanticTree.ILocation get_location(semantic_node sn)
 {
     SemanticTree.ILocated iloc = sn as SemanticTree.ILocated;
     if (iloc == null)
     {
         return null;
     }
     return iloc.Location;
 }
 private void return_semantic_value(semantic_node se)
 {
     ret.return_value(se);
 }
        //TODO: Избавиться от дублирования метода.
		public location get_location(semantic_node sn)
		{
			SemanticTree.ILocated iloc=sn as SemanticTree.ILocated;
			if (iloc==null)
			{
				return null;
			}
            document doc = _stv.CurrentDocument;
            location loc=null;
            //DarkStar changed
            //В PCU не сохраняются location некоторых конструкций, например
            //числовых констант итд. Поэтому необохдимо делать эту проверку.
            //Коля может всетаки нужно хранить?
            if (iloc.Location != null)
                loc = new location(iloc.Location.begin_line_num, iloc.Location.begin_column_num,
                    iloc.Location.end_line_num, iloc.Location.end_column_num, doc);
            return loc;
		}
Example #4
0
		public void return_value(semantic_node sn)
		{
            ret_semantic = sn;
		}
Example #5
0
 public void reset()
 {
     ret_semantic = null;
 }