예제 #1
0
 /// <summary>
 /// 使用指定的范围初始化 <see cref="SourceRange"/> 类的新实例。
 /// </summary>
 /// <param name="range">要设置的范围。</param>
 /// <exception cref="ArgumentException"><paramref name="range"/> 表的不是有效的范围。</exception>
 public SourceRange(ISourceLocatable range)
 {
     CommonExceptions.CheckSourceLocatable(range, "range");
     Contract.EndContractBlock();
     if (range != null)
     {
         this.start = range.Start;
         this.end   = range.End;
     }
 }
예제 #2
0
 /// <summary>
 /// 使用指定的范围初始化 <see cref="SourceRange"/> 类的新实例。
 /// </summary>
 /// <param name="range">要设置的范围。</param>
 /// <exception cref="ArgumentException"><paramref name="range"/> 表的不是有效的范围。</exception>
 public SourceRange(ISourceLocatable range)
 {
     CommonExceptions.CheckSourceLocatable(range, nameof(range));
     Contract.EndContractBlock();
     if (range != null)
     {
         start = range.Start;
         end   = range.End;
     }
 }
예제 #3
0
 /// <summary>
 /// 使用指定的源文件名称和范围初始化 <see cref="SourceFileRange"/> 类的新实例。
 /// </summary>
 /// <param name="fileName">源文件的名称。</param>
 /// <param name="range">要设置的范围。</param>
 /// <exception cref="ArgumentException"><paramref name="range"/> 表的不是有效的范围。</exception>
 public SourceFileRange(string fileName, ISourceLocatable range)
 {
     CommonExceptions.CheckSourceLocatable(range, "range");
     Contract.EndContractBlock();
     this.fileName = fileName;
     if (range != null)
     {
         this.start = range.Start;
         this.end   = range.End;
     }
 }
예제 #4
0
 /// <summary>
 /// 使用词法单元的相关信息初始化 <see cref="Token{T}"/> 类的新实例。
 /// </summary>
 /// <param name="id">标识符。</param>
 /// <param name="text">文本。</param>
 /// <param name="range">位置范围。</param>
 public Token(T id, string text, ISourceLocatable range)
 {
     CommonExceptions.CheckSourceLocatable(range, nameof(range));
     Contract.EndContractBlock();
     if (range != null)
     {
         start = range.Start;
         end   = range.End;
     }
     this.id   = id;
     this.text = text;
 }
예제 #5
0
 /// <summary>
 /// 使用词法单元的相关信息初始化 <see cref="Token{T}"/> 类的新实例。
 /// </summary>
 /// <param name="id">标识符。</param>
 /// <param name="text">文本。</param>
 /// <param name="range">位置范围。</param>
 /// <param name="value">词法单元的值。</param>
 public Token(T id, string text, ISourceLocatable range, object value)
 {
     CommonExceptions.CheckSourceLocatable(range, "range");
     Contract.EndContractBlock();
     if (range != null)
     {
         this.start = range.Start;
         this.end   = range.End;
     }
     this.id    = id;
     this.text  = text;
     this.value = value;
 }