I see, so this is on your own custom language plugin.
If you do not need the Abstract Syntax Tree (and so there is no requirement to use SSLR), then you can iterate on all "InputFiles" in your plugin sensor.
If you do need to access the AST, then you can process each file one by one using visitFile() etc.
Your unused function rule should keep track of all functions which have been declared and all functions that have been invoked.
Then, you need at the very end to compute the diff between these two sets to create your unused function issues.
To do so, you can add a method in your check class that you invoke from your plugin only after all files will have been scanned.
Does this make sense?