Skip to content

jimmydin7/custom-programming-language

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Clones GitHub Visitors

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 ... { ... })

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!")
}

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
  • Expressions / math
  • Error handling (improved)
  • Functions
  • Arguments on functions

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