The goal of this library is to provide a platform for running static analysis across different programming languages for exercism.io
Static analysis is a cheap way of finding obvious structural issues with code. By combining strategies of linting and workflow analysis, this library provides suggestive feedback for improving code.
Exercism-analysis provides a bridge to the following libraries:
An analyzer is a ruby object that responds to call
, and returns an array of Exercism::Analyzer::Result
objects.
It has one argument adapter
that can parse code and execute commands in the programming language's environment.
An adapter is a programming language specific ruby object that is initialized with source code. It responds to the following messages:
ast
: parses the code and returns a exercism-analysis compliant ASTcode
: returns source codeexecute
: executes code within programming language environment