Я хотел бы написать такой инструмент программирования, как cscope или ctags. Но я не знаю, как устроены эти инструменты и как они созданы. С чего мне начать? Любая информация будет полезна.