private Interval GetSourceInterval(IEnumerable <ITree> trees) { Contract.Requires(trees != null); IEnumerable <Interval> intervals = trees.Select(GetSourceInterval); int start = intervals.Min(i => i.Start); int endInclusive = intervals.Max(i => i.EndInclusive); return(Interval.FromBounds(start, endInclusive)); }
private static Interval GetSourceInterval(ITree tree, ITokenStream tokenStream) { Contract.Requires(tree != null); Contract.Requires(tokenStream != null); IToken firstToken = tokenStream.Get(tree.TokenStartIndex); IToken lastToken = tokenStream.Get(tree.TokenStopIndex); return(Interval.FromBounds(firstToken.StartIndex, lastToken.StopIndex)); }
public MatchRangeTransition(State targetState, Interval range) : base(targetState) { _range = range; }
private static Interval GetSourceInterval(IToken token) { Contract.Requires(token != null); return(Interval.FromBounds(token.StartIndex, token.StopIndex)); }