Go to file
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
src Change name Op -> OpTok 2017-09-19 22:10:59 -07:00
.gitignore Ignore Cargo.lock 2017-09-19 22:10:56 -07:00
Cargo.toml Use itertools peeking_take_while 2017-09-19 22:10:58 -07:00
Grammar Fixed arg list parsing 2017-09-19 22:10:53 -07:00
README Update references in README 2017-09-19 22:10:59 -07:00
closure.schala Function bodies can contain statements now 2017-09-19 22:10:58 -07:00
compile.schala Working on compilation again 2017-09-19 22:10:58 -07:00
conditional.schala Conditionals - handle delimiters correctly 2017-09-19 22:10:58 -07:00
main.schala Fixed evaluation of function calls 2017-09-19 22:10:57 -07:00
recurse.schala Prove recursion works 2017-09-19 22:10:58 -07:00
test.schala Move all LLVM functions into LLVMWrap 2017-09-19 22:10:57 -07:00
while.schala Use buffered reader for stdout 2017-09-19 22:10:59 -07:00

README

No-runtime-value-error-language

A language wth a largely-python-like where there are no value errors. Can call null like a function



Grammar:

#comments are hashes
# newlines are equivalent to semicolons for breaking up statements

let a = 1.3; let b = "string literal"
let c = 2

if a < 3 then any(); number(); of(); exprs(); else whatever(); end

while condition; do(); whatever(); let a = 3; a; end

#function definition
fn my_function(arg1, arg2); statements(); end


Keywords:
if, then, else, while, let, fn, end, null


Refernece works:

    Evaluation:
    Understanding Computation

    Parsing:

    http://journal.stuffwithstuff.com/2011/03/19/pratt-parsers-expression-parsing-made-easy/


    LLVM:
    http://blog.ulysse.io/2016/07/03/llvm-getting-started.html