A toy programming language written on the JVM
This project differs from other programming languages I've tried my hand at because it doesn't rely on a parser generator; instead I employed the technique of Pratt Parsing. I think this allows greater control over the language (as well as error messages), but more importantly provides better insight into how the language works (which is the whole reason I undertake projects like this anyway).
import Person, greet from 'examples/person'
val person = Person(name: 'Ken', phoneNumber: 5558675309)
val greeting = greet(person)
export type Person = {
name: String,
phoneNumber: Int
}
export func greet(p: Person, greeting: String = 'Hello') = greeting + ' ' + p.name
I typically like to keep track of todo items using a TODOs.md
file in my projects. However, recently I've been using Trello for this; this project's Trello board is here.