Skip to content

jimmydin7/custom-programming-language

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Custom Programming Language

View demo & docs here

A simple programming language built from scratch in Python.
Includes full lexer (tokenizer), parser, and interpreter (no real-world senario, just educational) This version supports basic features like:

  • Variable declarations (with int and string types)
  • Printing output using say()
  • Comment support (# for single-line comments)
  • Debug Mode to see tokenizing and parsing happen in real time
  • Repeat blocks for simple loops (repeat x { ... })
  • Arithmetic operators in expressions (+, -, *, /)
  • If statements for conditional execution (if ... { ... })
  • Function definitions and calls (function name { ... } and call(name))

Example Code

# Print
say("Hello, world!")

# Define a string
myname = string("Alex")

# Define an integer
mynumber = int(42)

# Output the values
say(myname)
say(mynumber)

# Repeat block demo
repeat 3 {
    say("hi!")
}

# Arithmetic operators demo
minutes_in_a_day = int(60 * 24)
say(minutes_in_a_day)

sum = int(5 + 3)
say(sum)

complex = int((2 + 3) * 4 - 6 / 2)
say(complex)

# If statement demo
minutes = int(60 * 24)
if minutes > 100 {
    say("there are more than 100 minutes in a day!")
}

# If with equality
x = int(5)
if x == 5 {
    say("x is five!")
}

# Function demo
function hello {
    say("Hello from function!")
}

call(hello)

How to Run

  1. have Python 3.x installed
  2. clone the repository
  3. add your code to a .txt file
  4. run the python file and add your source code's path as an argument
    python run.py sourcecode.txt

Features

  • Integer & string variables
  • Print with say()
  • Comments (#)
  • Tokenizer and AST
  • Repeat blocks (repeat x { ... })
  • Arithmetic operators in expressions
  • If statements for conditional execution
  • Function definitions and calls
  • Error handling (improved)
  • `

About

A custom programming language built from scratch, includes full tokenizer, parser, interpeter in Python, variables, loops and more

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages