Skip to content

SanketKumarKar/Sanskrit-As-Coding-Language

Folders and files

NameName
Last commit message
Last commit date

Latest commit

┬а

History

5 Commits
┬а
┬а
┬а
┬а
┬а
┬а
┬а
┬а
┬а
┬а
┬а
┬а
┬а
┬а
┬а
┬а

Repository files navigation

ЁЯХЙя╕П Sanskrit Programming Language ЁЯХЙя╕П

A complete, production-ready transpiler that converts Sanskrit programming language to Python code. This project enables developers to write fully functional programs using Sanskrit keywords and syntax.

ЁЯМЯ Features

  • Complete Transpiler: Converts Sanskrit code to Python seamlessly
  • 80+ Sanskrit Keywords: Comprehensive keyword mapping for all programming constructs
  • Full Python Support: Classes, functions, loops, conditionals, imports, and more
  • Advanced Features: Context managers, decorators, lambda functions, exception handling
  • Production Ready: Reliable execution model with proper error handling
  • Easy to Use: Simple command-line interface with multiple demo examples

ЁЯЪА Quick Start

Installation

No external dependencies required! Uses only Python standard library.

# Clone or download the project
git clone https://github.com/SanketKumarKar/Sanskrit-As-Coding-Language.git
cd Sanskrit-As-Coding-Language

# Run the transpiler directly
python transpiler.py

# Or run one of the demos
python demo.py
python complete_demo.py
python advanced_demo.py

Your First Sanskrit Program

Create a file with Sanskrit code:

рдЯрд┐рдкреНрдкрдгреА: My first Sanskrit program
рдкреНрд░рджрд░реНрд╢рдп('рдирдорд╕реНрддреЗ рд╡рд┐рд╢реНрд╡!')
рдЕрдВрдХ = 42
рдпрджрд┐ рдЕрдВрдХ > 10:
    рдкреНрд░рджрд░реНрд╢рдп('Number is greater than 10')

ЁЯУЪ Sanskrit Programming Guide

Basic Keywords

Sanskrit Python Description
рдкреНрд░рджрд░реНрд╢рдп print Display output
рдпрджрд┐ if If condition
рдЕрдиреНрдпрдерд╛ else Else condition
рдЕрдиреНрдп elif Else if condition
рдХреЗ рд▓рд┐рдпреЗ for For loop
рдХреЗрд╡рд▓ while While loop
рдкрд░рд┐рднрд╛рд╖рд┐рдд def Define function
рд▓реМрдЯрд╛рдПрдБ return Return value
рдЯрд┐рдкреНрдкрдгреА: # Comment

Data Types & Variables

рдЯрд┐рдкреНрдкрдгреА: Variables and data types
рдЕрдВрдХ = 10                    # number = 10
рд╕рдВрдЦреНрдпрд╛рдПрдВ = [1, 2, 3, 4]      # numbers = [1, 2, 3, 4]
рдирд╛рдо = "рд╕рдВрд╕реНрдХреГрдд"              # name = "Sanskrit"
рд╕рддреНрдп_рдорд╛рди = рд╕рддреНрдп             # truth_value = True

Control Flow

рдЯрд┐рдкреНрдкрдгреА: If-else statements
рдпрджрд┐ рдЕрдВрдХ > 5:
    рдкреНрд░рджрд░реНрд╢рдп('Greater than 5')
рдЕрдиреНрдп рдЕрдВрдХ == 5:
    рдкреНрд░рджрд░реНрд╢рдп('Equal to 5')
рдЕрдиреНрдпрдерд╛:
    рдкреНрд░рджрд░реНрд╢рдп('Less than 5')

Loops

рдЯрд┐рдкреНрдкрдгреА: For loop
рдХреЗ рд▓рд┐рдпреЗ i рдореЗрдВ рд╢реНрд░реЗрдгреА(5):
    рдкреНрд░рджрд░реНрд╢рдп('Number:', i)

рдЯрд┐рдкреНрдкрдгреА: While loop  
рдЧрд┐рдирддреА = 0
рдХреЗрд╡рд▓ рдЧрд┐рдирддреА < 3:
    рдкреНрд░рджрд░реНрд╢рдп('Count:', рдЧрд┐рдирддреА)
    рдЧрд┐рдирддреА = рдЧрд┐рдирддреА + 1

Functions

рдЯрд┐рдкреНрдкрдгреА: Function definition
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧреБрдгрд╛(a, b):
    рдкрд░рд┐рдгрд╛рдо = a * b
    рд▓реМрдЯрд╛рдПрдБ рдкрд░рд┐рдгрд╛рдо

result = рдЧреБрдгрд╛(5, 3)
рдкреНрд░рджрд░реНрд╢рдп('Result:', result)

Classes (Object-Oriented Programming)

рдЯрд┐рдкреНрдкрдгреА: Class definition
рд╡рд░реНрдЧ рд╡реНрдпрдХреНрддрд┐:
    рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЖрд░рдВрдн(рд╕реНрд╡рдпрдВ, рдирд╛рдо, рдЖрдпреБ):
        рд╕реНрд╡рдпрдВ.рдирд╛рдо = рдирд╛рдо
        рд╕реНрд╡рдпрдВ.рдЖрдпреБ = рдЖрдпреБ
    
    рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкрд░рд┐рдЪрдп(рд╕реНрд╡рдпрдВ):
        рдкреНрд░рджрд░реНрд╢рдп(f'рдореЗрд░рд╛ рдирд╛рдо {рд╕реНрд╡рдпрдВ.рдирд╛рдо} рд╣реИ рдФрд░ рдЖрдпреБ {рд╕реНрд╡рдпрдВ.рдЖрдпреБ} рд╣реИ')

рд╡реНрдпрдХреНрддрд┐1 = рд╡реНрдпрдХреНрддрд┐('рд░рд╛рдо', 25)
рд╡реНрдпрдХреНрддрд┐1.рдкрд░рд┐рдЪрдп()

Imports

рдЯрд┐рдкреНрдкрдгреА: Import statements
рдЖрдпрд╛рдд math
рдЖрдпрд╛рдд sqrt рд╕реЗ math
рд╕реЗ datetime рдЖрдпрд╛рдд datetime

square_root = sqrt(16)
рдкреНрд░рджрд░реНрд╢рдп('Square root:', square_root)

File Operations

рдЯрд┐рдкреНрдкрдгреА: File handling with context manager
рдЖрд╕рдкрд╛рд╕ рдЦреЛрд▓реЗрдВ('data.txt', 'w') рдЬреИрд╕рд╛ рдлрд╝рд╛рдЗрд▓:
    рдлрд╝рд╛рдЗрд▓.write('рд╕рдВрд╕реНрдХреГрдд рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛!')

Exception Handling

рдЯрд┐рдкреНрдкрдгреА: Try-except blocks
рдХреЛрд╢рд┐рд╢:
    рдкрд░рд┐рдгрд╛рдо = 10 / 0
рдкрдХрдбрд╝реЗрдВ ZeroDivisionError:
    рдкреНрд░рджрд░реНрд╢рдп('Cannot divide by zero!')
рдЕрдВрддрддрдГ:
    рдкреНрд░рджрд░реНрд╢рдп('Cleanup completed')

ЁЯОп Advanced Features

Lambda Functions

square = рдЧреБрдордирд╛рдо x: x * x
рдкреНрд░рджрд░реНрд╢рдп(square(5))  # Output: 25

List Comprehensions

squares = [x * x рдХреЗ рд▓рд┐рдпреЗ x рдореЗрдВ рд╢реНрд░реЗрдгреА(5)]
рдкреНрд░рджрд░реНрд╢рдп(squares)  # Output: [0, 1, 4, 9, 16]

Decorators

@staticmethod
рдкрд░рд┐рднрд╛рд╖рд┐рдд helper_function():
    рд▓реМрдЯрд╛рдПрдБ "Helper"

Assertions

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ 5 > 3  # Assert statement

ЁЯУБ Project Structure

sanskrit_lang/
тФЬтФАтФА transpiler.py           # Main Sanskrit-to-Python transpiler
тФЬтФАтФА demo.py                # Basic usage examples
тФЬтФАтФА complete_demo.py       # Comprehensive feature demo
тФЬтФАтФА advanced_demo.py       # Advanced features demo
тФЬтФАтФА requirements.txt       # Dependencies (none required)
тФЬтФАтФА README.md             # This file
тФФтФАтФА FINAL_SUCCESS_REPORT.md # Detailed project documentation

ЁЯЫая╕П How It Works

  1. Input: Write code using Sanskrit keywords
  2. Transpilation: The transpiler converts Sanskrit keywords to Python
  3. Execution: The resulting Python code is executed
  4. Output: See the results of your Sanskrit program
# Example transpilation:
# Sanskrit: рдкреНрд░рджрд░реНрд╢рдп('рдирдорд╕реНрддреЗ')
# Python:  print('рдирдорд╕реНрддреЗ')

ЁЯОи Demo Programs

Run Basic Demo

python demo.py

Run Complete Demo

python complete_demo.py

Run Advanced Features Demo

python advanced_demo.py

ЁЯУЦ Complete Keyword Reference

Click to see all 80+ supported keywords
Category Sanskrit Python Example
Output рдкреНрд░рджрд░реНрд╢рдп print рдкреНрд░рджрд░реНрд╢рдп('Hello')
Input рдЗрдирдкреБрдЯ input рдирд╛рдо = рдЗрдирдкреБрдЯ('Name:')
Conditionals рдпрджрд┐ if рдпрджрд┐ x > 5:
рдЕрдиреНрдпрдерд╛ else рдЕрдиреНрдпрдерд╛:
рдЕрдиреНрдп elif рдЕрдиреНрдп x < 0:
Loops рдХреЗ рд▓рд┐рдпреЗ for рдХреЗ рд▓рд┐рдпреЗ i рдореЗрдВ рд╢реНрд░реЗрдгреА(10):
рдХреЗрд╡рд▓ while рдХреЗрд╡рд▓ x > 0:
рдореЗрдВ in рдХреЗ рд▓рд┐рдпреЗ item рдореЗрдВ рд╕реВрдЪреА:
рд╢реНрд░реЗрдгреА range рд╢реНрд░реЗрдгреА(1, 10)
Control рд░реБрдХреЗрдВ break рд░реБрдХреЗрдВ
рдЬрд╛рд░реА рд░рдЦреЗрдВ continue рдЬрд╛рд░реА рд░рдЦреЗрдВ
рдкрд╛рд╕ pass рдкрд╛рд╕
Functions рдкрд░рд┐рднрд╛рд╖рд┐рдд def рдкрд░рд┐рднрд╛рд╖рд┐рдд рдореЗрд░рд╛_рдлрдВрдХреНрд╢рди():
рд▓реМрдЯрд╛рдПрдБ return рд▓реМрдЯрд╛рдПрдБ рдкрд░рд┐рдгрд╛рдо
рдЙрдкрдЬрд╛рдПрдБ yield рдЙрдкрдЬрд╛рдПрдБ рдорд╛рди
Classes рд╡рд░реНрдЧ class рд╡рд░реНрдЧ рдореЗрд░рд╛_рдХреНрд▓рд╛рд╕:
рд╕реНрд╡рдпрдВ self рд╕реНрд╡рдпрдВ.attribute
рдЖрд░рдВрдн init рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЖрд░рдВрдн(рд╕реНрд╡рдпрдВ):
Data Types рд╕реВрдЪреА list рд╕реВрдЪреА([1, 2, 3])
рд╢рдмреНрджрдХреЛрд╢ dict рд╢рдмреНрджрдХреЛрд╢({'key': 'value'})
рд╕реЗрдЯ set рд╕реЗрдЯ({1, 2, 3})
рдЯрдкрд▓ tuple рдЯрдкрд▓((1, 2, 3))
Imports рдЖрдпрд╛рдд import рдЖрдпрд╛рдд math
рд╕реЗ from рд╕реЗ math рдЖрдпрд╛рдд sqrt
рдЬреИрд╕рд╛ as рдЖрдпрд╛рдд numpy рдЬреИрд╕рд╛ np
Boolean рд╕рддреНрдп True рдорд╛рди = рд╕рддреНрдп
рдЕрд╕рддреНрдп False рдорд╛рди = рдЕрд╕рддреНрдп
рдФрд░ and x > 0 рдФрд░ x < 10
рдпрд╛ or x == 5 рдпрд╛ x == 10
рдирд╣реАрдВ not рдирд╣реАрдВ рд╢рд░реНрдд
Exception рдХреЛрд╢рд┐рд╢ try рдХреЛрд╢рд┐рд╢:
рдкрдХрдбрд╝реЗрдВ except рдкрдХрдбрд╝реЗрдВ Exception:
рдЕрдВрддрддрдГ finally рдЕрдВрддрддрдГ:
рдлреЗрдВрдХреЗрдВ raise рдлреЗрдВрдХреЗрдВ ValueError
Context рдЖрд╕рдкрд╛рд╕ with рдЖрд╕рдкрд╛рд╕ рдЦреЛрд▓реЗрдВ('file.txt'):
рдЦреЛрд▓реЗрдВ open рдЦреЛрд▓реЗрдВ('file.txt', 'r')
Memory рдбреЗрд▓ del рдбреЗрд▓ variable
рд╡реИрд╢реНрд╡рд┐рдХ global рд╡реИрд╢реНрд╡рд┐рдХ counter
рдЕрд╕реНрдерд╛рдиреАрдп nonlocal рдЕрд╕реНрдерд╛рдиреАрдп x
Special рдЧреБрдордирд╛рдо lambda рдЧреБрдордирд╛рдо x: x * 2
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ assert рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ x > 0
рдЯрд┐рдкреНрдкрдгреА: # рдЯрд┐рдкреНрдкрдгреА: This is a comment

ЁЯдЭ Contributing

  1. Add new Sanskrit keywords to the sanskrit_to_python dictionary
  2. Test your changes with the demo files
  3. Update this README with new examples
  4. Ensure all existing functionality still works

ЁЯУД License

This project is open source. Feel free to use, modify, and distribute.

ЁЯОп Project Goals Achieved

тЬЕ Complete transpiler functionality
тЬЕ 80+ Sanskrit keywords supported
тЬЕ All Python features available
тЬЕ Production-ready code
тЬЕ Comprehensive documentation
тЬЕ Multiple demo examples


ЁЯХЙя╕П рд╕реНрд╡рд╛рдЧрддрдореН (Welcome) to Sanskrit Programming! ЁЯХЙя╕П

Happy coding in Sanskrit! / рд╕рдВрд╕реНрдХреГрдд рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages