// Copyright (c) Ivan Bondarev, Stanislav Mihalkovich (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
namespace PascalABCCompiler.TreeRealization
{
///
/// Класс для представления позиций частей кода в дереве.
///
[Serializable]
public class location : SemanticTree.ILocation
{
///
/// Номер строки начала фрагмента кода (нумерация начинается с 1).
///
private int _begin_line_num;
///
/// Номер колонки начала фрагмента кода (нумерация начинается с 1).
///
private int _begin_column_num;
///
/// Номер строки конца фрагмента кода (нумерация начинается с 1).
///
private int _end_line_num;
///
/// Номер колонки конца фрагмента кода (нумерация начинается с 1).
///
private int _end_column_num;
///
/// Документ, в котором расположен этот фрагмент кода.
///
private document _doc;
///
/// Конструктор класса.
///
/// Номер строки начала фрагмента кода (нумерация начинается с 1).
/// Номер колонки начала фрагмента кода (нумерация начинается с 1).
/// Номер строки конца фрагмента кода (нумерация начинается с 1).
/// Номер колонки конца фрагмента кода (нумерация начинается с 1)
/// Документ, в котором расположен этот фрагмент кода.
public location(int begin_line_num, int begin_column_num,int end_line_num,int end_column_num,document doc)
{
_begin_line_num=begin_line_num;
_begin_column_num=begin_column_num;
_end_line_num=end_line_num;
_end_column_num=end_column_num;
_doc=doc;
}
///
/// Номер строки начала фрагмента кода (нумерация начинается с 1).
///
public int begin_line_num
{
get
{
return _begin_line_num;
}
set
{
_begin_line_num = value;
}
}
///
/// Номер колонки начала фрагмента кода (нумерация начинается с 1).
///
public int begin_column_num
{
get
{
return _begin_column_num;
}
set
{
_begin_column_num = value;
}
}
///
/// Номер строки конца фрагмента кода (нумерация начинается с 1).
///
public int end_line_num
{
get
{
return _end_line_num;
}
set
{
_end_line_num = value;
}
}
///
/// Номер колонки конца фрагмента кода (нумерация начинается с 1).
///
public int end_column_num
{
get
{
return _end_column_num;
}
set
{
_end_column_num = value;
}
}
///
/// Документ, в котором расположен этот фрагмент кода.
///
public document doc
{
get
{
return _doc;
}
set
{
_doc = value;
}
}
///
/// Документ, в котором расположен этот фрагмент кода.
///
public SemanticTree.IDocument document
{
get
{
return _doc;
}
}
public override string ToString()
{
string res="File: "+doc.ToString();
res+=" line: "+begin_line_num.ToString();
res+=" column: "+begin_column_num.ToString();
return res;
}
}
}