using a LineNumberReader for extracting source definitions rather than parsing the source files by hand