示例#1
0
        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));
        }
示例#2
0
        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));
        }
示例#3
0
 public MatchRangeTransition(State targetState, Interval range)
     : base(targetState)
 {
     _range = range;
 }
 public MatchRangeTransition(State targetState, Interval range)
     : base(targetState)
 {
     _range = range;
 }
示例#5
0
        private static Interval GetSourceInterval(IToken token)
        {
            Contract.Requires(token != null);

            return(Interval.FromBounds(token.StartIndex, token.StopIndex));
        }