- Notifications
You must be signed in to change notification settings - Fork0
A C# interpreter for the Lox programming language
NotificationsYou must be signed in to change notification settings
mhmd-azeez/LoxSharp
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Lox is a little programming language created byBob Nystrom in his bookCrafting Interpreters. This is my attempt at recreating it in C#. I've published a web based version of the interpreterhere.
The interprer is still a work in progress as I've not finished the book yet.
Name | Operators | Associates |
---|---|---|
Unary | ! - | Right |
Multiplication | / * % | Left |
Addition | - + | Left |
Comparison | > >= < <= | Left |
Equality | == != | Left |
Lox is a dynamically typed language, variables can have values of four types:nil
,number
(64-bit floating point numbers),boolean
andstring
.
var x=5.8;var y;y=10;var z= x* y;var i=true;print(i);print(z);
var x=250;if (x%2==0){print("Even");}else{print("Odd");}
var x=0;while(x<10){if (x>5)break;print(x); x= x+1;}
for (var i=0; i<10; i= i+1){print("i is:"+ i);}
Functions can return something:
funcoolify(thing){return"cool"+ thing;}print(coolify("app"));
Or return nothing:
fundoSomething() {print("Doing something...");}doSomething();
There are only two functions in the standard library:
pPrints the value to stdout:
print("Hello World!");print(42);print(true);
Returns the number of seconds since 0001-01-01:
print(clock());