This is the final result of BYU's CS 236 class. It includes:
- A lexical analyzer
- A parser
- A relational database
- And an interpreter
The lexical analyzer takes an input stream and converts it into tokens. The tokens are then passed to the parser to determine if the input is a valid datalog program. From there the program is broken down into relations with their own unique name, schema, and set of tuples. These relations are stored in a relational database. Finally the rules and queries from the datalog program are evaluated, and the corresponding output is given.