Commit Graph

448 Commits

Author SHA1 Message Date
greg
741e5f7f9b Parsing basic numbers! 2017-09-19 22:11:03 -07:00
greg
cfefceabf9 More infra
Don't want EOF after all
2017-09-19 22:11:02 -07:00
greg
ea08f8cab8 More parse infra 2017-09-19 22:11:02 -07:00
greg
7d1c07c481 Parsing infrastructure 2017-09-19 22:11:02 -07:00
greg
7831cb8d8a Start parsing 2017-09-19 22:11:02 -07:00
greg
16d9e3eb60 Colored text for artifacts 2017-09-19 22:11:02 -07:00
greg
737dad6438 Added some tests
And commented out old tests for Maaru that don't compile
2017-09-19 22:11:02 -07:00
greg
74f8c16599 Fix bug with _ 2017-09-19 22:11:02 -07:00
greg
a82f24a158 Kill import 2017-09-19 22:11:02 -07:00
greg
6459ad28e8 A few more keywords 2017-09-19 22:11:02 -07:00
greg
57d4222746 Operators, keywords largely working 2017-09-19 22:11:02 -07:00
greg
88d1896281 Identifiers and keywords 2017-09-19 22:11:02 -07:00
greg
7fe0a6589e Unclosed string 2017-09-19 22:11:02 -07:00
greg
ac5bdd7bcb Change some func signatures around tokenizing and errors 2017-09-19 22:11:02 -07:00
greg
8bf5f40a2a Some string tokenizing - not done 2017-09-19 22:11:02 -07:00
greg
7e505dd88e Stuff 2017-09-19 22:11:02 -07:00
greg
f15427e5d9 A bunch of token stuff 2017-09-19 22:11:02 -07:00
greg
a53135a897 More elaborate tokens 2017-09-19 22:11:02 -07:00
greg
f3c8474c93 Add help entry
Would like to make this generalizeable
2017-09-19 22:11:02 -07:00
greg
8dc8d15437 Cleaned up Repl struct 2017-09-19 22:11:02 -07:00
greg
b5a6c5903e Switch to contentful output types 2017-09-19 22:11:02 -07:00
greg
c97e58c2aa Cleared out all remaining linter warnings 2017-09-19 22:11:02 -07:00
greg
cb9b56f000 Added back compilation 2017-09-19 22:11:02 -07:00
greg
55e1600b97 Kill old trait 2017-09-19 22:11:02 -07:00
greg
fb009497a4 Still more cleanup 2017-09-19 22:11:02 -07:00
greg
4b13fef734 More cleanup 2017-09-19 22:11:02 -07:00
greg
14ccf9f1be Converted Robo to new style trait 2017-09-19 22:11:02 -07:00
greg
7a6dfbbd0e Deleting old code 2017-09-19 22:11:02 -07:00
greg
bb3f85dd16 Getting rid of old code for maaru 2017-09-19 22:11:02 -07:00
greg
3e66568ddd Converted over Maaru to new schema
-partially...
2017-09-19 22:11:02 -07:00
greg
3abe299361 More work on new trait structure 2017-09-19 22:11:02 -07:00
greg
626b17cbd2 Idea for trait redesign 2017-09-19 22:11:02 -07:00
greg
192a7e611f Parsing BNF 2017-09-19 22:11:01 -07:00
greg
d3febb201b More parsing 2017-09-19 22:11:01 -07:00
greg
f9fe81993f Beginning parsing code 2017-09-19 22:11:01 -07:00
greg
ff01d4b798 Initial Schala (for real) commit 2017-09-19 22:11:01 -07:00
greg
dd22ca0291 Grand renaming of things 2017-09-19 22:11:01 -07:00
greg
801896bcc6 Starting to add code for vm 2017-09-19 22:11:01 -07:00
greg
5d15d60ab6 Structs implemented
albeit very inefficiently
2017-09-19 22:11:01 -07:00
greg
9dd8f90e3c Only print last evaluated result 2017-09-19 22:11:01 -07:00
greg
e0f5f01e69 Kill error messges for not using Result 2017-09-19 22:11:01 -07:00
greg
424998c128 Lists work! 2017-09-19 22:11:01 -07:00
greg
b93625819c Update ReducedValue to handle lists 2017-09-19 22:11:01 -07:00
greg
f90bfb88ca Fix display of list 2017-09-19 22:11:01 -07:00
greg
850b77541b Display of lists sorta works 2017-09-19 22:11:01 -07:00
greg
dbf5886aad List evaluation technically working 2017-09-19 22:11:01 -07:00
greg
dd93adf5b7 try!() -> ? 2017-09-19 22:11:01 -07:00
greg
d8df98ba01 Beginnings of list literals 2017-09-19 22:11:01 -07:00
greg
4da771036a Part of evaluation path for indexing done 2017-09-19 22:11:01 -07:00
greg
3911c45dde Introduced index notation 2017-09-19 22:11:01 -07:00
greg
f3c3d4595e Immediate lambda call 2017-09-19 22:11:01 -07:00
greg
e4a42e7691 Add back eval printing 2017-09-19 22:11:01 -07:00
greg
cc537f292d Starting Maaru AST 2017-09-19 22:11:01 -07:00
greg
840e093bc4 Maaru - token work 2017-09-19 22:11:01 -07:00
greg
815f2b8242 Starting work on Maaru tokens 2017-09-19 22:11:01 -07:00
greg
34dba9cc4d Schala - fix bug with comments 2017-09-19 22:11:01 -07:00
greg
6e28ae68a0 Add options 2017-09-19 22:11:01 -07:00
greg
48b0b8d053 Add logic for picking language with command line flags 2017-09-19 22:11:01 -07:00
greg
e0c49abe56 Change show-llvm opt to -v 2017-09-19 22:11:01 -07:00
greg
65dc362a1d Killed some warnings, cleaned up some code 2017-09-19 22:11:01 -07:00
greg
8ff1c632c2 Make REPL friendlier 2017-09-19 22:11:01 -07:00
greg
039022bfc5 Get rid of println 2017-09-19 22:11:01 -07:00
greg
387ec25cda Fix bugs in interpreter argument parsing 2017-09-19 22:11:01 -07:00
greg
ecf60198fa Can now switch between languages in the interpreter 2017-09-19 22:11:01 -07:00
greg
f83cece2b4 Import Maaru into main 2017-09-19 22:11:00 -07:00
greg
8fd5fb5a0b Added language name functionality 2017-09-19 22:11:00 -07:00
greg
455fe2abe2 Get rid of stand alone evaluator 2017-09-19 22:11:00 -07:00
greg
902c85ccd7 Fully implemented state
If I make the LanguageInterface trait over a pair of language and
evaluator, then it works :)
2017-09-19 22:11:00 -07:00
greg
4ea600d55c Abstracted most work into LanguageInterface trait
Still need to handle state
2017-09-19 22:11:00 -07:00
greg
6dec35d460 Think I've nearly gotten it traitified correctly... 2017-09-19 22:11:00 -07:00
greg
cc855affbf Make Maaru structs public 2017-09-19 22:11:00 -07:00
greg
a303aa2a5b Add first new language - Maaru
Maaru is intended to be a haskell-ish functional language.
Here's enough of a skeleton to print a thing
2017-09-19 22:11:00 -07:00
greg
421a9a7e9b Abstract evaluation into EvaluationMachine trait 2017-09-19 22:11:00 -07:00
greg
f37ab80163 Fix tests 2017-09-19 22:11:00 -07:00
greg
178434171e Cleaning up some types 2017-09-19 22:11:00 -07:00
greg
fd4610e175 Make newtype for LLVM code strings 2017-09-19 22:11:00 -07:00
greg
5103f03fa5 Forgot to add mod.rs file 2017-09-19 22:11:00 -07:00
greg
1a4bf24ab1 Move schala-specific stuff into its own module 2017-09-19 22:11:00 -07:00
greg
9d6bdf22da More conversions to trait version 2017-09-19 22:11:00 -07:00
greg
8326a12c9c (Largely) trait-ify Schala
The idea is to provide a trait `ProgrammingLanguage` that actually does
all the work, and then main.rs will just be the infra for storing its
own state
2017-09-19 22:11:00 -07:00
greg
5e474231da ProgrammingLanguage types need Debug 2017-09-19 22:11:00 -07:00
greg
1ac440c8df Implement trait parse 2017-09-19 22:11:00 -07:00
greg
f5022a771c Starting work to trait-ify language 2017-09-19 22:11:00 -07:00
greg
eaf86ea908 Add support for +, - in num literals 2017-09-19 22:11:00 -07:00
greg
eb6354e55a Only print errors if the programs failed 2017-09-19 22:11:00 -07:00
greg
751c6f65bd Deleted some code in compilation 2017-09-19 22:11:00 -07:00
greg
3e231b4715 Use native rust to write source file 2017-09-19 22:11:00 -07:00
greg
e103ba221c Conditionals work! 2017-09-19 22:11:00 -07:00
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
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