public static Token GetTokenFor(IEnumerable <ILocation> locations) { if (IteratorHelper.EnumerableIsEmpty(locations)) { return(Token.NoToken); } return(LazyToken.Create(new DeferredToken(locations).GetToken)); }
public static ISourceLocation LocationFromToken(Token tok) { SourceLocationWrapper wrap = tok as SourceLocationWrapper; if (wrap != null) { return(wrap.firstSourceLocation); } ForwardingToken fwd = tok as ForwardingToken; if (fwd != null) { return(LocationFromToken(fwd.WrappedToken)); } LazyToken lazyToken = tok as LazyToken; if (lazyToken != null) { return(LocationFromToken(lazyToken.DelayedToken)); } return(SourceDummy.SourceLocation); }