Commit graph

39 commits

Author SHA1 Message Date
Samuel Hammersberg
8d698cecf9 Fixed some merge errors that occured when merging with main
Started implementing EApp.

Simple function calls now work.

Removed the LLVM standard library as it was not needed.

Limited functionality.

Got EApp working!!

Fixed arguments being inserted in the wrong order.

Updated the showing of `Call` so that it inserts a space inbetween arguments.

Removed some unused code from the generated main functions.

Force removed language.

Expressions that are simply just calling a constant now work properly.

Fixed constants being called inside nested expressions.

Cleaned up the compiler a bit.

Added a test suite, testing that the output from programs is correct, "evaluating the whole process".

Fixed a typo in basic-4.sf

Fixed basic-8 to work without a renamer.

Fixed some nicer output in the main function.

Made the outputted LLVM Ir somewhat nicer.

Fixed a typo and updated how SetVariable works.

Formatted and added documentation.

Added instructions allowing for branching.
2023-02-16 00:16:44 +01:00
Samuel Hammersberg
7c1e1d57a0 Merge remote-tracking branch 'origin/main' into llvm_testing 2023-02-12 13:17:45 +01:00
Martin Fredin
3fe990ceaa Don't run interpreter by default 2023-02-12 13:01:12 +01:00
Samuel Hammersberg
818e57ff14 Updated main to use the updated Code Generator. 2023-02-11 14:14:21 +01:00
Samuel Hammersberg
5d5a610cca Made compiler state more generic, and compile no longer outputs IO and instead returns the result. 2023-02-11 14:12:27 +01:00
Martin Fredin
d67eddcf0f Fix interpreter 2023-02-11 11:04:39 +01:00
Martin Fredin
e212c79a44 Revert back to one lambda par, and fix issues with lambda lifter 2023-02-11 09:59:26 +01:00
Martin Fredin
f3600ffdf8 Fix documentation and small things 2023-02-10 16:45:33 +01:00
Martin Fredin
5956cdf121 Fix typo 2023-02-10 16:45:33 +01:00
Martin Fredin
8688b303ac Fix unnecessary supercombinator issue 2023-02-10 16:45:33 +01:00
Martin Fredin
ece621b0aa Fix auxiliary path 2023-02-10 16:45:33 +01:00
Martin Fredin
8663f2ea50 Some clean up and documenting 2023-02-10 16:45:33 +01:00
Martin Fredin
08917be1c6 Fix first unnecessary supercombinator 2023-02-10 16:45:33 +01:00
Martin Fredin
69254f8032 Finish Lambda Lifter 2023-02-10 16:45:33 +01:00
Martin Fredin
2a48b7477e Implement lambda lifting passes: freeVars, abstract, and rename 2023-02-10 16:45:33 +01:00
Martin Fredin
b64b49b1eb Remove files from git 2023-02-10 16:45:33 +01:00
Martin Fredin
61efcebc64 Fix conflict 2023-02-10 16:45:33 +01:00
Samuel Hammersberg
e7ef268c12 Splat LLVM Ir into its own file. 2023-02-10 16:08:45 +01:00
Samuel Hammersberg
7a0ff5d708 Formatted and documented code. 2023-02-09 09:45:05 +01:00
Samuel Hammersberg
dbbbc725ea Stuck at a conundrum 2023-02-06 16:49:29 +01:00
Samuel Hammersberg
721192c242 Started implemented multiple functions. 2023-02-06 15:44:54 +01:00
Samuel Hammersberg
d41db9bbb8 Added some more to the comment of binExprToValues 2023-02-04 15:25:28 +01:00
Samuel Hammersberg
cd47f7dde3 renamed evalToValues to binExprToValues 2023-02-04 15:21:04 +01:00
Samuel Hammersberg
d779605814 Added the src/Grammar folder to the gitingore. 2023-02-04 15:12:32 +01:00
Samuel Hammersberg
66fb77c84e Added some missing math operators 2023-02-04 15:11:56 +01:00
Samuel Hammersberg
026949ae7e Added support for subtraction 2023-02-04 13:20:46 +01:00
Samuel Hammersberg
f8d320bb6d Heavily shorted down the emitAdd function, and added a emitInt function. 2023-02-04 12:43:47 +01:00
Samuel Hammersberg
57f8b6ba5b Optimized add even further. 2023-02-04 11:35:57 +01:00
Samuel Hammersberg
f9c5a520e3 Implemented addition. 2023-02-04 11:29:59 +01:00
Samuel Hammersberg
819f4c9406 Made a simple code generator that outputs to LLVM IR 2023-02-03 16:59:36 +01:00
Samuel Hammersberg
defe409d78 Added a comment about the includeStr "macro" 2023-01-24 11:43:54 +01:00
Samuel Hammersberg
fd64a7e669 Added a function to load the Standard LLVM library at runtime. 2023-01-24 11:38:33 +01:00
Samuel Hammersberg
213e47097e Split the compiler into it's own module and added a file for the LLVM standard library. 2023-01-23 16:57:32 +01:00
Samuel Hammersberg
b389e397b6 Started working on a simple compiler. 2023-01-22 19:43:08 +01:00
Samuel Hammersberg
df3bf7c6ab Added the missing Lex and Par file. 2023-01-22 19:42:14 +01:00
Martin Fredin
787dbd85db Add Makefile, add remove Grammar dir 2023-01-21 19:44:22 +01:00
Martin Fredin
499ced914c Fix judgment 2023-01-20 14:16:18 +01:00
Martin Fredin
64ee4dc432 Implement basic interpreted language 2023-01-20 14:12:04 +01:00
Martin Fredin
7caadcbeb9 Use src instead of app 2023-01-17 15:34:32 +01:00