Skip to content

Simple interpreter for my thesis project

Notifications You must be signed in to change notification settings

FlattestGuitar/OdeLang

Repository files navigation

Ode is a simple programming language I built for my Engineer's Thesis.

It has three main components:

  • the lexer, which performs a simple tokenization of the source code
  • the parser, which tries to construct a valid abstract syntax tree, using the recursive-descent method
  • the interpreting context, which is a state holder for the execution of the syntax tree

The language is only a part of the entire thesis project, which was a team effort. The other members of the team created a video game where the player can use Ode to program robots to solve puzzles.

Here are some language features:

Implicit type casting

print("2" + 2) # Output: 22

Function definitions

fn add_two(num)
  return num + 2

print(add_two(5)) # Output: 7

Array manipulation

arr = [1, 2, 3]
arr.append(4)
print(arr)     # Output: [1,2,3,4]
print(arr[1])  # Output: 2

Dictionaries

dict = {
  "alice": 1,
  "bob": 2,
  "charlie": 3
}

for key in dict
  print(key + " has " + dict.get(key))

# Output:
# alice has 1
# bob has 2
# charlie has 3

About

Simple interpreter for my thesis project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages