An interpreter, written in Haskell, for a new programming language created by me and my group.
The purpose of this language is to query information from CSV files.
It is based on relational algebra.
# Example programs and results
The directory 'solutions' contains ten different sample programs written in the language.
The directory 'testCases' contains, for every program, a subdirectory containing some sample input CSV files and the expected results for those CSV files for that particular program.
For example, for the script 'solutions/pr1.cql, when the interpreter is invoked on said file with the working directory being 'testCases/pr1/inputs/input1', the results will be the same as 'testCases/pr1/expected/exp1.txt'.
# Compiling
* Dependencies: Alex, Happy
* Simply run command `make`
# Running
`./csvql script_name.cql`
The input CSV files should be in the working directory that the command is issued.