Open
Description
Quite a few checks parse the students solution so we could end up reading from disk and parsing (slow)
It would be good to have a service which can be called to get the AST, the service can then cache the AST if anything else needs it to.
It would also reduce repeated error checking code, eg, did it parse correctly, and constructing failures.
It would probably look something like:
class AstService {
public function parse(Input $input): array
}