Releases: joncatanio/cannoli
Cannoli [Stable - Unoptimized]
This is a stable release of the Cannoli compiler. It is currently unoptimized and a bit slower than the CPython implementation.
Current Support (not comprehensive):
- Data structures
- Lists
- Tuples
- Primitive types
- For loops
- While loops
- Classes
- Functions
- Built-in functions
printstrlenminintfloatenumerateopen
- File I/O (writing through
print)
Dictionaries and sets are currently unsupported. Although, their implementation is very similar to lists which wouldn't be that difficult to implement. I don't think it will be done for the thesis since we've been more concerned with the performance of classes.
The corresponding Cannolib release that should be used with this release can be found here.
Cannoli Python3 Simple Subset Compiler
Cannoli now supports a very basic subset of Python3. Support for Objects, Lists, and Dictionaries are coming soon. Functions and various arithmetic/logic/etc. works.
Cannoli Lexer/Parser
The very first version of the parser is completed in this release. It lacks error messages that are very useful but enough to point out issues. The parser is equip with 40+ tests that have pretty good code coverage. An AST is returned from the parser that is almost identical to CPython's 3.6.4 AST. Both the Lexer and Parser are added in the root lib.rs to make them available if someone wants to implement their own Lexer/Parser to work with the other.
The next release will contain a refactor sweep of the parser and the alpha version of the compiler.