samskritam-lang
v1.0.0
Published
A toy programming language with Sanskrit keywords - like Bhailang but in Sanskrit!
Maintainers
Readme
Samskritam (संस्कृतम्)
A toy programming language with Sanskrit keywords. Inspired by Bhailang — but in the language of the gods!
namaskaram
vadah "Namaste, Vishva!";
viramahInstallation
npm install -g samskritam-langUsage
# Run a program
samskritam run hello.sam
# Interactive REPL
samskritam repl
# Show help
samskritam helpSyntax Reference
| Samskritam | Equivalent | Sanskrit Meaning |
|---|---|---|
| namaskaram | Program Start | Greetings |
| viramah | Program End | Stop |
| mana | let/var | Think |
| vadah | print | Speak |
| yadi | if | If |
| athava yadi | else if | Or if |
| anyatha | else | Otherwise |
| yavat | while | As long as |
| viramah kuru | break | Do stop |
| agrima | continue | Next |
| kriya | function | Action |
| pratyarpaya | return | Give back |
| satyam | true | Truth |
| asatyam | false | Untruth |
| shunya | null | Void/Zero |
Data Types
- Numbers:
42,3.14,-7 - Strings:
"Namaste",'hello' - Booleans:
satyam(true),asatyam(false) - Null:
shunya
Examples
Variables
namaskaram
mana naam = "Arjuna";
mana vayah = 25;
vadah "Naam: " + naam;
vadah "Vayah: " + vayah;
viramahConditionals
namaskaram
mana marks = 85;
yadi (marks >= 90) {
vadah "Uttamam! (Excellent!)";
} athava yadi (marks >= 60) {
vadah "Shobhanam! (Good!)";
} anyatha {
vadah "Prayatnam kuru! (Try harder!)";
}
viramahLoops
namaskaram
mana i = 1;
yavat (i <= 5) {
vadah i;
i += 1;
}
viramahFunctions & Recursion
namaskaram
kriya factorial(n) {
yadi (n <= 1) {
pratyarpaya 1;
}
pratyarpaya n * factorial(n - 1);
}
vadah "5! = " + factorial(5);
// Output: 5! = 120
viramahFizzBuzz
namaskaram
mana i = 1;
yavat (i <= 30) {
yadi (i % 15 == 0) {
vadah "SamskritamBuzz!";
} athava yadi (i % 3 == 0) {
vadah "Samskritam";
} athava yadi (i % 5 == 0) {
vadah "Buzz";
} anyatha {
vadah i;
}
i += 1;
}
viramahDevelopment
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Bundle for browser
npm run build:browser
# Run example
npx ts-node cli/index.ts run examples/hello.samProject Structure
sanskrit-lang/
src/
lexer/ # Tokenizer
parser/ # Recursive descent parser + AST
interpreter/ # Tree-walking interpreter
errors/ # Sanskrit error messages
cli/ # CLI tool
website/ # Interactive playground
examples/ # Example .sam programs
tests/ # Test suiteLive Playground
Try it online: sanskrit-lang.vercel.app
Author
License
MIT
Built with love for Sanskrit & Programming. Inspired by Bhailang.
