001    package org.meta_environment.eclipse.tokens;
002    
003    import org.eclipse.core.runtime.IPath;
004    import org.eclipse.imp.language.ILanguageService;
005    import org.eclipse.imp.parser.ISourcePositionLocator;
006    
007    import errorapi.types.Area;
008    
009    public class TokenLocator implements ISourcePositionLocator, ILanguageService {
010    
011            public Object findNode(Object ast, int offset) {
012                    return null;
013            }
014    
015            public Object findNode(Object ast, int startOffset, int endOffset) {
016                    return null;
017            }
018    
019            public int getEndOffset(Object node) {
020                    if (node instanceof Token) {
021                            Area a = ((Token) node).getArea();
022                            return a.getOffset() + a.getLength() - 1;
023                    }
024                    
025                    return 0;
026            }
027    
028            public int getLength(Object node) {
029                    if (node instanceof Token) {
030                            Area a = ((Token) node).getArea();
031                            return a.getLength();
032                    }
033                    
034                    return 0;
035            }
036    
037            public IPath getPath(Object node) {
038                    return null;
039            }
040    
041            public int getStartOffset(Object node) {
042                    if (node instanceof Token) {
043                            Area a = ((Token) node).getArea();
044                            return a.getOffset();
045                    }
046                    
047                    return 0;
048            }
049    }