greg
|
a613fa73e5
|
Basic parsing framework
|
2017-09-19 22:10:54 -07:00 |
|
greg
|
8662a3ba0e
|
Make tokenize error-able
|
2017-09-19 22:10:54 -07:00 |
|
greg
|
5ca98c7d77
|
Print tokeniziation
|
2017-09-19 22:10:54 -07:00 |
|
greg
|
09d524c74a
|
Changing how parsing works again
Someone wrote a port of the LLVM kaleidoscope tutorial to rust, namely
https://github.com/jauhien/iron-kaleidoscope
I'm just gonna follow this along
|
2017-09-19 22:10:54 -07:00 |
|
greg
|
1c23329656
|
Add boilerplate for evaluation
Just wires everything up, doesn't actually evaluate yet
|
2017-09-19 22:10:54 -07:00 |
|
greg
|
509ab80b9c
|
I can now parse one thing
|
2017-09-19 22:10:54 -07:00 |
|
greg
|
247638c4db
|
Get parsing REPL working
|
2017-09-19 22:10:54 -07:00 |
|
greg
|
16dfbb27d5
|
Use state features from simplerepl
|
2017-09-19 22:10:53 -07:00 |
|
greg
|
3af7e6a409
|
Refactoring Schala
Gonna work on Schala in earnest now! Using the simplerepl crate instead
of a build-in REPL, temporarily dropping parsing and evaluation code.
|
2017-09-19 22:10:53 -07:00 |
|
greg
|
123f388711
|
Rename language to "Schala"
|
2017-09-19 22:10:53 -07:00 |
|
greg
|
caa331ecdc
|
Read from file as well as repl
|
2017-09-19 22:10:53 -07:00 |
|
greg
|
eb5ce2ef9e
|
Don't print newline for empty REPL result
|
2017-09-19 22:10:53 -07:00 |
|
greg
|
72b26755a7
|
Make ParseResult just a normal Result type
No reason for it to be different
|
2017-09-19 22:10:53 -07:00 |
|
greg
|
c27c900e7f
|
Add operators % and **
semantics for these are hard with floats handle later
|
2017-09-19 22:10:53 -07:00 |
|
greg
|
582a7fd6dc
|
Make parse and tokens optional
|
2017-09-19 22:10:53 -07:00 |
|
greg
|
79619025ea
|
Add directive to print precedence chart
|
2017-09-19 22:10:53 -07:00 |
|
greg
|
56b338a6a8
|
Move to global precedence table
|
2017-09-19 22:10:53 -07:00 |
|
greg
|
8e3a571d67
|
.env dirctive to display environment
|
2017-09-19 22:10:53 -07:00 |
|
greg
|
f88f115567
|
Environment persistent across repl loop
|
2017-09-19 22:10:53 -07:00 |
|
greg
|
34fdf2be00
|
Add machinery for evaluation environments
|
2017-09-19 22:10:53 -07:00 |
|
greg
|
d2108f0f97
|
First pass at evaluation
Very incomplete
|
2017-09-19 22:10:52 -07:00 |
|
greg
|
1342a76786
|
Added support for interpreter directives
|
2017-09-19 22:10:52 -07:00 |
|
greg
|
1059a88ee6
|
Separate parsing into module
|
2017-09-19 22:10:52 -07:00 |
|
greg
|
429ace73bd
|
Move tokenizing into separate module
|
2017-09-19 22:10:52 -07:00 |
|
greg
|
044e7a6a26
|
Rename ASTNode -> AST
saves typing
|
2017-09-19 22:10:52 -07:00 |
|
greg
|
dbdae42c1b
|
Add string to AST
|
2017-09-19 22:10:52 -07:00 |
|
greg
|
fc3dcf792d
|
Start writing recursive descent parser
I think I get the idea now
|
2017-09-19 22:10:52 -07:00 |
|
greg
|
02b34ca105
|
Wrote expect()
Hopefully correctly?
|
2017-09-19 22:10:52 -07:00 |
|
greg
|
9f4330889a
|
Starting parsing work
|
2017-09-19 22:10:52 -07:00 |
|
greg
|
3058af4f05
|
Break on ctrl-D
|
2017-09-19 22:10:52 -07:00 |
|
greg
|
4f17d5a0dc
|
Add number tokenizing
|
2017-09-19 22:10:52 -07:00 |
|
greg
|
8e3774ffca
|
Comma as separate token
|
2017-09-19 22:10:52 -07:00 |
|
greg
|
c6059ada7d
|
Separators and parens
Separator = ; or \n, they are equivalent
|
2017-09-19 22:10:52 -07:00 |
|
greg
|
2aaa600d53
|
More tokenizer stuff
|
2017-09-19 22:10:51 -07:00 |
|
greg
|
c6a92728ee
|
Scaffolding for evaluation function
|
2017-09-19 22:10:51 -07:00 |
|
greg
|
b2e23bed86
|
Print tokens and parse
|
2017-09-19 22:10:51 -07:00 |
|
greg
|
3fdacf018e
|
Basic repl
|
2017-09-19 22:10:51 -07:00 |
|
greg
|
6098bf84d6
|
Initial commit
|
2017-09-19 22:10:51 -07:00 |
|