Commit Graph

323 Commits

Author SHA1 Message Date
greg d5f01a7b1f Continuing work on phi nodes 2017-09-19 22:11:00 -07:00
greg 1702163478 Add flag for llvm 2017-09-19 22:11:00 -07:00
greg bdd6f75cf6 Show/hide LLVM IR in REPL 2017-09-19 22:11:00 -07:00
greg 2681dbc4f2 Add test for "a+4" being conterintuitive
Also fix Op -> BinOp in tests
2017-09-19 22:11:00 -07:00
greg 9454fc6194 Add return statements to generated functions 2017-09-19 22:11:00 -07:00
greg c8feaa9b57 Add logging of supplimental commands 2017-09-19 22:11:00 -07:00
greg 518414ffd5 I was doing a wrong thing with creating vecs
The old vector was getting dropped and thus free-ing the old
underlying slice. I want to use set_len() on Vec to do
this
2017-09-19 22:11:00 -07:00
greg 06a5de6e32 Trying to debug this segfault 2017-09-19 22:11:00 -07:00
greg dd4816624c Change name of project to Schala 2017-09-19 22:11:00 -07:00
greg 748a85db02 Compiling functions half-works 2017-09-19 22:11:00 -07:00
greg 8f2d9b900b Function codegen sorta works 2017-09-19 22:11:00 -07:00
greg b9d1140264 Refactored op compilation code
+ moved to separate function
2017-09-19 22:11:00 -07:00
greg 7188a7d33e Clarified that we hardcode a "main" function
in compiler data structure
2017-09-19 22:10:59 -07:00
greg 0c7099771f Comparison operator working 2017-09-19 22:10:59 -07:00
greg afec7e829c There's some segfault happening in LLVMBuildUIToFP 2017-09-19 22:10:59 -07:00
greg a6773d59bd Refactoring in compiling binops 2017-09-19 22:10:59 -07:00
greg d804efdc5e Use BinOp type instead of strings 2017-09-19 22:10:59 -07:00
greg 0ace370fc2 Tightened up REPL loop 2017-09-19 22:10:59 -07:00
greg 1f50fcc620 Improvments to interpreter directives parsing 2017-09-19 22:10:59 -07:00
greg d7181afa91 Few more linefeed-related changes 2017-09-19 22:10:59 -07:00
greg 4eb7683f47 Move linefeed reader to struct 2017-09-19 22:10:59 -07:00
greg b04a8f0092 Add back interpreter directives 2017-09-19 22:10:59 -07:00
greg c50be58cd2 Moved from simplerepl to lineread crate 2017-09-19 22:10:59 -07:00
greg 5911a07f4f Inline parsing of lambdas like half-works 2017-09-19 22:10:59 -07:00
greg 26bc6e90f3 Lamba calls partially work 2017-09-19 22:10:59 -07:00
greg b0655d7cab need to flush stdout for printing 2017-09-19 22:10:59 -07:00
greg a46ede9395 Made evaluation-printing more sophisticated 2017-09-19 22:10:59 -07:00
greg d9ab5a58cf Add some methods to llvm_wrap 2017-09-19 22:10:59 -07:00
greg 77297c7e06 Add lambdas 2017-09-19 22:10:59 -07:00
greg d93b5c0a2e Still cranking away at conditional compilation 2017-09-19 22:10:59 -07:00
greg 0b9dc113d1 CLoser to working now 2017-09-19 22:10:59 -07:00
greg d6fc13f08d Fix a couple of problems 2017-09-19 22:10:59 -07:00
greg 825c271b17 More work on codegen for conditionals
Still doesn't compile
2017-09-19 22:10:59 -07:00
greg 8c4f7e141a Compiling if statements like half done 2017-09-19 22:10:59 -07:00
greg 12fbc51da1 Compile multi-expression source programs 2017-09-19 22:10:59 -07:00
greg db108ee434 Unicode should work 2017-09-19 22:10:59 -07:00
greg 7ddb421ced Exit cleanly on opt parse fail 2017-09-19 22:10:59 -07:00
greg 1631bb0a04 Fix tests for conditionals 2017-09-19 22:10:59 -07:00
greg 5923cc2317 Kill then, else keywords 2017-09-19 22:10:59 -07:00
greg 1fa56800c5 Convert parsing while, if, fn exprs to use { } 2017-09-19 22:10:59 -07:00
greg 2b4d3e8516 Add support for curly braces and brackets
Gonna make this a curly-brace language, I like those better. Shoulda
done that to begin with.
2017-09-19 22:10:59 -07:00
greg 9b74527618 Control printing eval steps with flags 2017-09-19 22:10:59 -07:00
greg d23e5bff35 Add an Op type for binop operators
Soon this will get swapped in as the way that BinOps are evaluated
2017-09-19 22:10:59 -07:00
greg 3a4f5ae840 Change name Op -> OpTok
So that I can make an Op type for the ASTNode
2017-09-19 22:10:59 -07:00
greg 298194c42d Finish support for assignment operators 2017-09-19 22:10:59 -07:00
greg 23d2209d8b Implementing a few more operators
WIP - not done
2017-09-19 22:10:59 -07:00
greg 4cf165b408 Use buffered reader for stdout
Not sure ifthis is actually helping
2017-09-19 22:10:59 -07:00
greg 154839979b Add nicer handle_builtin method 2017-09-19 22:10:59 -07:00
greg 6741787852 Update references in README 2017-09-19 22:10:59 -07:00
greg 538f0b18f4 Evaluate while loop 2017-09-19 22:10:59 -07:00