A Bollywood-themed esoteric programming language where every keyword is an Amitabh Bachchan film title, character, or dialogue.
- Program Structure
- Variables & Constants
- Data Types
- Input/Output
- Operators
- Control Flow
- Loops
- Functions
- Error Handling
- Dictionaries
- Built-in Namespaces
- KBC Interactive Commands
- Error Messages (Amitabh Dialogues)
- Security & Limits
- Version
Every AmitabhC program must be wrapped in the LIGHTS / CAMERA / ACTION structure. Think of it as a Bollywood film set: lights come on, camera rolls, and the action begins.
Marks the beginning of the program. Must be the very first non-comment line.
Syntax: LIGHTS
Marks the start of the executable code section. Must appear after LIGHTS and before ACTION.
Syntax: CAMERA
Marks the end of the program. Must be the very last line.
Syntax: ACTION
LIGHTS
CAMERA
BOLO "Namaste Duniya!"
ACTION
Single-line comments begin with //. They are stripped before execution.
Syntax: // comment text
// This is a comment
VIJAY age = 25 // inline comment
Named after the iconic character Vijay that Amitabh played in numerous films. Declares a mutable variable.
Syntax: VIJAY <name> = <expression>
Parameters:
name-- Identifier (must start with a letter or underscore, followed by letters, digits, or underscores)expression-- Any valid expression
Example:
VIJAY name = "Amitabh"
VIJAY age = 80
VIJAY isLegend = SHAKTI
Variables can be reassigned without the VIJAY prefix once declared:
VIJAY count = 0
count = 10
Named after the film Don (1978). Declares an immutable constant that cannot be reassigned.
Syntax: DON <name> = <expression>
Parameters:
name-- Identifierexpression-- Value (cannot be changed after declaration)
Example:
DON PI = 3.14159
DON MAX_SIZE = 100
Attempting to reassign a constant throws:
"Main aaj bhi phenke hue paise nahin uthata!" - Cannot reassign constant
Integers and floating-point numbers. Must be finite and within Number.MAX_SAFE_INTEGER.
VIJAY age = 25
VIJAY pi = 3.14159
VIJAY negative = -10
Text enclosed in double quotes (") or single quotes (').
VIJAY name = "Amitabh Bachchan"
VIJAY greeting = 'Namaste'
| Sequence | Result |
|---|---|
\n |
Newline |
\t |
Tab |
\\ |
Backslash |
\" |
Double quote |
\' |
Single quote |
\r |
Carriage return |
BOLO "Line 1\nLine 2"
BOLO "He said \"Namaste\""
Embed expressions inside strings with ${expression}.
Syntax: "text ${expression} text"
VIJAY name = "Vijay"
BOLO "Hello ${name}!"
BOLO "2 + 2 = ${2 + 2}"
Returns: The string with interpolated values substituted inline.
| Keyword | Value | Film Reference |
|---|---|---|
SHAKTI |
true | Shakti (1982) |
KAALIA |
false | Kaalia (1981) |
VIJAY isActive = SHAKTI
VIJAY isDone = KAALIA
Ordered collections of values. Zero-indexed.
Syntax: VIJAY <name>[] = {<elements>}
VIJAY numbers[] = {10, 20, 30, 40, 50}
VIJAY names[] = {"Raj", "Simran", "Rahul"}
VIJAY empty[] = {}
VIJAY mixed[] = {"Hello", 42, SHAKTI}
Access: arrayName[index]
BOLO numbers[0] // 10
BOLO names[2] // Rahul
Assignment: arrayName[index] = value
numbers[0] = 99
Key-value maps created with DEEWAR_BANAO.
Syntax: VIJAY <name> = DEEWAR_BANAO{"key": value, ...}
VIJAY person = DEEWAR_BANAO{"name": "Vijay", "age": 30}
See Section 10: Dictionaries for full details.
Named after the film Laawaris (1981). Represents a null/empty value.
Syntax: LAAWARIS
VIJAY nothing = LAAWARIS
Hindi for "speak." Prints a value to the output.
Syntax: BOLO <expression>
Parameters:
expression-- Any expression (string, number, variable, complex expression)
Return: None (outputs to console/callback).
BOLO "Hello World"
BOLO 42
BOLO "Sum: " + (10 + 20)
BOLO "Name: ${name}"
Booleans print as SHAKTI/KAALIA. Null prints as LAAWARIS. Arrays print as [1, 2, 3]. Dictionaries print as {"key": "value"}.
Hindi for "listen." Reads input from the user.
Syntax: SUNO <variable>
Parameters:
variable-- Variable name to store the input into
Behavior:
- Prompts the user with
"Enter value for <variable>:" - Automatically converts numeric input to numbers
- Non-numeric input is stored as a string
- Rate-limited to one input per second
- Input is truncated to
maxStringLength(10,000 characters)
BOLO "What is your name?"
SUNO userName
BOLO "Hello " + userName
| Precedence | Operator(s) | Description | Example |
|---|---|---|---|
| 1 (lowest) | || |
Logical OR | SHAKTI || KAALIA --> SHAKTI |
| 2 | && |
Logical AND | SHAKTI && KAALIA --> KAALIA |
| 3 | == != |
Equality | 5 == 5 --> SHAKTI |
| 4 | < > <= >= |
Comparison | 3 < 5 --> SHAKTI |
| 5 | + - |
Addition/Subtraction | 10 - 4 --> 6 |
| 6 (highest) | * / % |
Multiply/Divide/Mod | 10 % 3 --> 1 |
| Operator | Description | Example |
|---|---|---|
- |
Negate | -5 --> -5 |
! |
Logical NOT | !SHAKTI --> KAALIA |
| Operator | Description | Example |
|---|---|---|
+= |
Add and assign | x += 5 |
-= |
Subtract and assign | x -= 3 |
*= |
Multiply and assign | x *= 2 |
/= |
Divide and assign | x /= 4 |
%= |
Modulo and assign | x %= 3 |
+= also works for string concatenation when either operand is a string.
The + operator concatenates when either operand is a string:
BOLO "Hello " + "World" // Hello World
BOLO "Age: " + 25 // Age: 25
Syntax:
AGAR <condition>
<statements>
NAHI TOH AGAR <condition2>
<statements>
NAHI TOH
<statements>
BAS
Parameters:
condition-- Any expression that evaluates to a truthy or falsy value
Block terminator: BAS (Hindi for "enough")
AGAR score >= 90
BOLO "Excellent"
NAHI TOH AGAR score >= 50
BOLO "Pass"
NAHI TOH
BOLO "Fail"
BAS
Named after Kaun Banega Crorepati, the quiz show hosted by Amitabh Bachchan.
KBC_SAWAAL-- switch (the question)OPTION-- case (an answer option)SAHI_JAWAB-- default (the correct answer / fallback)AGLE_SAWAAL-- end switch (next question)
Syntax:
KBC_SAWAAL <expression>
OPTION <value1>
<statements>
OPTION <value2>
<statements>
SAHI_JAWAB
<statements>
AGLE_SAWAAL
Behavior: No fallthrough. Once a matching OPTION executes, the switch exits.
VIJAY grade = "A"
KBC_SAWAAL grade
OPTION "A"
BOLO "Outstanding!"
OPTION "B"
BOLO "Good"
SAHI_JAWAB
BOLO "Keep trying"
AGLE_SAWAAL
Hindi for "again and again." Executes a block a fixed number of times.
Syntax:
BAAR BAAR <count>
<statements>
KHATAM
BAAR BAAR <count> MEIN <counterVariable>
<statements>
KHATAM
Parameters:
count-- Integer literal for number of iterations (max 10,000)counterVariable-- (Optional) Named variable set to current iteration index (0-based)
Auto variable: _GINTI is automatically set to the current iteration index (0-based).
BAAR BAAR 5
BOLO "Iteration: " + _GINTI
KHATAM
BAAR BAAR 3 MEIN i
BOLO "i = " + i
KHATAM
"Jab tak" means "as long as." Executes while the condition is true.
Syntax:
JAB TAK <condition>
<statements>
RAHEGA
Parameters:
condition-- Boolean expression re-evaluated each iteration
Block terminator: RAHEGA (Hindi for "will remain")
VIJAY i = 1
JAB TAK i <= 10
BOLO i
i += 1
RAHEGA
Named after the film Zanjeer (1973). Executes the body at least once, then checks the condition.
Syntax:
ZANJEER_LOOP
<statements>
TAB TAK <condition>
Parameters:
condition-- Boolean expression checked after each iteration
VIJAY x = 1
ZANJEER_LOOP
BOLO x
x += 1
TAB TAK x <= 5
"Har ek" means "each one." Iterates over every element in an array.
Syntax:
HAR EK <variable> MEIN <arrayExpression>
<statements>
KHATAM
Parameters:
variable-- Variable name assigned the current element each iterationarrayExpression-- Expression that evaluates to an array
Auto variable: _GINTI is set to the current index (0-based).
VIJAY fruits[] = {"Apple", "Banana", "Mango"}
HAR EK fruit MEIN fruits
BOLO "${_GINTI}: ${fruit}"
KHATAM
Named after the film Deewar (1975). A wall that stops the loop.
Syntax: DEEWAR
BAAR BAAR 100
AGAR _GINTI == 5
DEEWAR
BAS
BOLO _GINTI
KHATAM
Named after the film Silsila (1981). Skips to the next iteration.
Syntax: SILSILA
BAAR BAAR 10
AGAR _GINTI % 2 == 0
SILSILA
BAS
BOLO _GINTI
KHATAM
Automatically available inside BAAR BAAR, HAR EK, and related loops. Holds the 0-based iteration index.
BAAR BAAR 3
BOLO "Index: " + _GINTI
KHATAM
// Output: Index: 0, Index: 1, Index: 2
Syntax:
BADHAO <variable>-- Increments the variable by 1GHATAO <variable>-- Decrements the variable by 1
VIJAY count = 10
BADHAO count // count is now 11
GHATAO count // count is now 10
"Naam" means "name." Defines a named function. "Pura" means "complete."
Syntax:
NAAM <functionName>(<param1>, <param2>, ...)
<statements>
PURA
Parameters:
functionName-- Identifier for the functionparam1, param2, ...-- Comma-separated parameter names (can be empty)
NAAM greet(name)
BOLO "Hello " + name
PURA
NAAM add(a, b)
WAPAS a + b
PURA
"Wapas" means "back/return." Returns a value from a function.
Syntax: WAPAS <expression>
Parameters:
expression-- Value to return (optional; returns empty string if omitted)
Constraint: Can only be used inside a function body (inside NAAM/PURA).
NAAM square(n)
WAPAS n * n
PURA
Syntax: functionName(arg1, arg2, ...)
greet("Vijay")
VIJAY result = add(10, 20)
BOLO result // 30
Recursion is fully supported up to maxCallDepth (100). Each function call creates a fresh variable scope; constants and functions are inherited.
NAAM factorial(n)
AGAR n <= 1
WAPAS 1
BAS
WAPAS n * factorial(n - 1)
PURA
BOLO factorial(5) // 120
Named after the films Agneepath (1990), and the concepts of Mrityu (death) and Pratigya (vow/promise).
Syntax:
AGNEEPATH
<try statements>
MRITYU <errorVariable>
<catch statements>
PRATIGYA
<finally statements>
KHATAM
Parameters:
errorVariable-- (Optional) Variable name to store the error message string
Behavior:
AGNEEPATHbegins the try blockMRITYU errorVarbegins the catch block; the error message is stored inerrorVarPRATIGYAbegins the finally block (always executes)KHATAMends the entire blockMRITYUandPRATIGYAare both optional, but at least one should be present- If there is no
MRITYUblock, errors re-throw afterPRATIGYAexecutes
AGNEEPATH
VIJAY result = 10 / 0
MRITYU err
BOLO "Error caught: " + err
PRATIGYA
BOLO "Cleanup done"
KHATAM
"Deewar banao" means "build a wall." Creates a dictionary (key-value map).
Syntax: DEEWAR_BANAO{key1: value1, key2: value2, ...}
Parameters:
- Keys must be strings or numbers
- Values can be any type
VIJAY person = DEEWAR_BANAO{"name": "Vijay", "age": 30, "active": SHAKTI}
VIJAY empty = DEEWAR_BANAO{}
BOLO person["name"] // Vijay
Returns LAAWARIS (null) for missing keys.
person["city"] = "Mumbai"
"Deewar jodo" means "join/add to the wall."
Syntax: DEEWAR_JODO <dictName> <keyExpr> <valueExpr>
Parameters:
dictName-- Variable name of an existing dictionarykeyExpr-- Expression evaluating to the keyvalueExpr-- Expression evaluating to the value
VIJAY d = DEEWAR_BANAO{}
DEEWAR_JODO d "color" "red"
BOLO d["color"] // red
All namespaces are named after Amitabh Bachchan films. Functions are called as NAMESPACE.function(args).
String manipulation functions. The first argument is always the string to operate on.
| Function | Syntax | Description | Returns |
|---|---|---|---|
length |
SHAHENSHAH.length(str) |
Length of string | Number |
uppercase |
SHAHENSHAH.uppercase(str) |
Convert to uppercase | String |
lowercase |
SHAHENSHAH.lowercase(str) |
Convert to lowercase | String |
contains |
SHAHENSHAH.contains(str, search) |
Check if str contains search | Boolean |
replace |
SHAHENSHAH.replace(str, search, replacement) |
Replace all occurrences | String |
trim |
SHAHENSHAH.trim(str) |
Remove leading/trailing whitespace | String |
trimStart |
SHAHENSHAH.trimStart(str) |
Remove leading whitespace | String |
trimEnd |
SHAHENSHAH.trimEnd(str) |
Remove trailing whitespace | String |
substring |
SHAHENSHAH.substring(str, start) or SHAHENSHAH.substring(str, start, end) |
Extract substring | String |
charAt |
SHAHENSHAH.charAt(str, index) |
Character at index | String |
indexOf |
SHAHENSHAH.indexOf(str, search) |
First index of search (-1 if not found) | Number |
lastIndexOf |
SHAHENSHAH.lastIndexOf(str, search) |
Last index of search (-1 if not found) | Number |
split |
SHAHENSHAH.split(str, delimiter) |
Split string into array | Array |
startsWith |
SHAHENSHAH.startsWith(str, prefix) |
Check if str starts with prefix | Boolean |
endsWith |
SHAHENSHAH.endsWith(str, suffix) |
Check if str ends with suffix | Boolean |
repeat |
SHAHENSHAH.repeat(str, count) |
Repeat string count times (max 1000) | String |
reverse |
SHAHENSHAH.reverse(str) |
Reverse the string | String |
padStart |
SHAHENSHAH.padStart(str, length) or SHAHENSHAH.padStart(str, length, padChar) |
Pad start to target length | String |
padEnd |
SHAHENSHAH.padEnd(str, length) or SHAHENSHAH.padEnd(str, length, padChar) |
Pad end to target length | String |
Examples:
VIJAY s = "Amitabh Bachchan"
BOLO SHAHENSHAH.length(s) // 16
BOLO SHAHENSHAH.uppercase(s) // AMITABH BACHCHAN
BOLO SHAHENSHAH.contains(s, "Bach") // SHAKTI
BOLO SHAHENSHAH.replace(s, "Bachchan", "B.") // Amitabh B.
BOLO SHAHENSHAH.substring(s, 0, 7) // Amitabh
BOLO SHAHENSHAH.split(s, " ") // [Amitabh, Bachchan]
BOLO SHAHENSHAH.reverse("abcd") // dcba
BOLO SHAHENSHAH.padStart("42", 5, "0") // 00042
Mathematical functions and constants.
| Function | Syntax | Description | Returns |
|---|---|---|---|
abs |
COOLIE.abs(x) |
Absolute value | Number |
floor |
COOLIE.floor(x) |
Round down | Number |
ceil |
COOLIE.ceil(x) |
Round up | Number |
round |
COOLIE.round(x) |
Round to nearest integer | Number |
sqrt |
COOLIE.sqrt(x) |
Square root (x >= 0) | Number |
pow |
COOLIE.pow(base, exp) |
Exponentiation | Number |
min |
COOLIE.min(a, b, ...) |
Minimum of arguments | Number |
max |
COOLIE.max(a, b, ...) |
Maximum of arguments | Number |
random |
COOLIE.random() |
Random number in [0, 1) | Number |
sin |
COOLIE.sin(x) |
Sine (radians) | Number |
cos |
COOLIE.cos(x) |
Cosine (radians) | Number |
tan |
COOLIE.tan(x) |
Tangent (radians) | Number |
log |
COOLIE.log(x) |
Natural logarithm (x > 0) | Number |
PI |
COOLIE.PI() |
Pi constant (3.14159...) | Number |
E |
COOLIE.E() |
Euler's number (2.71828...) | Number |
Examples:
BOLO COOLIE.abs(-42) // 42
BOLO COOLIE.sqrt(144) // 12
BOLO COOLIE.pow(2, 10) // 1024
BOLO COOLIE.min(5, 3, 8) // 3
BOLO COOLIE.PI() // 3.141592653589793
BOLO COOLIE.round(3.7) // 4
VIJAY r = COOLIE.random() // e.g., 0.7291...
Array manipulation functions. The first argument is always the array.
| Function | Syntax | Description | Returns |
|---|---|---|---|
length |
KHAZANA.length(arr) |
Number of elements | Number |
push |
KHAZANA.push(arr, value) |
Append element to end | Array (mutated) |
pop |
KHAZANA.pop(arr) |
Remove and return last element | The removed value |
shift |
KHAZANA.shift(arr) |
Remove and return first element | The removed value |
unshift |
KHAZANA.unshift(arr, value) |
Prepend element to start | Array (mutated) |
slice |
KHAZANA.slice(arr, start) or KHAZANA.slice(arr, start, end) |
Extract sub-array | New Array |
join |
KHAZANA.join(arr) or KHAZANA.join(arr, separator) |
Join elements into string | String |
reverse |
KHAZANA.reverse(arr) |
Reverse the array | New Array (copy) |
includes |
KHAZANA.includes(arr, value) |
Check if array contains value | Boolean |
indexOf |
KHAZANA.indexOf(arr, value) |
First index of value (-1 if not found) | Number |
concat |
KHAZANA.concat(arr1, arr2) |
Concatenate two arrays | New Array |
sort |
KHAZANA.sort(arr) |
Sort array (numeric or lexicographic) | New Array (copy) |
Examples:
VIJAY arr[] = {3, 1, 4, 1, 5}
BOLO KHAZANA.length(arr) // 5
KHAZANA.push(arr, 9) // arr is now {3, 1, 4, 1, 5, 9}
VIJAY last = KHAZANA.pop(arr) // last = 9
BOLO KHAZANA.includes(arr, 4) // SHAKTI
BOLO KHAZANA.join(arr, "-") // 3-1-4-1-5
VIJAY sorted = KHAZANA.sort(arr) // {1, 1, 3, 4, 5}
VIJAY sub = KHAZANA.slice(arr, 1, 3) // {1, 4}
Date and time functions. Most take no arguments and return current date/time values.
| Function | Syntax | Description | Returns |
|---|---|---|---|
abhi |
NASEEB.abhi() |
Current time in milliseconds (epoch) | Number |
saal |
NASEEB.saal() |
Current year | Number |
mahina |
NASEEB.mahina() |
Current month (1-12) | Number |
din |
NASEEB.din() |
Current day of month (1-31) | Number |
ghanta |
NASEEB.ghanta() |
Current hour (0-23) | Number |
minute |
NASEEB.minute() |
Current minute (0-59) | Number |
second |
NASEEB.second() |
Current second (0-59) | Number |
tarikh |
NASEEB.tarikh() |
Current date as DD-MM-YYYY string |
String |
waqt |
NASEEB.waqt() |
Current time as HH:MM:SS string |
String |
timestamp |
NASEEB.timestamp() |
Unix timestamp (seconds since epoch) | Number |
Examples:
BOLO NASEEB.tarikh() // e.g., 10-03-2026
BOLO NASEEB.waqt() // e.g., 14:30:45
BOLO NASEEB.saal() // e.g., 2026
VIJAY ts = NASEEB.timestamp()
Type checking and conversion functions.
| Function | Syntax | Description | Returns |
|---|---|---|---|
type |
ZANJEER.type(value) |
Get type name | String: "ank", "shabd", "shakti_kaalia", "khazana", "deewar", "laawaris", or "anjaan" |
isAnk |
ZANJEER.isAnk(value) |
Is it a number? | Boolean |
isShabd |
ZANJEER.isShabd(value) |
Is it a string? | Boolean |
isKhazana |
ZANJEER.isKhazana(value) |
Is it an array? | Boolean |
isShaktiKaalia |
ZANJEER.isShaktiKaalia(value) |
Is it a boolean? | Boolean |
isLaawaris |
ZANJEER.isLaawaris(value) |
Is it null? | Boolean |
isDeewar |
ZANJEER.isDeewar(value) |
Is it a dictionary? | Boolean |
toAnk |
ZANJEER.toAnk(value) |
Convert to number | Number |
toShabd |
ZANJEER.toShabd(value) |
Convert to string | String |
toShaktiKaalia |
ZANJEER.toShaktiKaalia(value) |
Convert to boolean | Boolean |
Type name mapping:
| AmitabhC Type Name | Meaning |
|---|---|
ank |
Number |
shabd |
String |
shakti_kaalia |
Boolean |
khazana |
Array |
deewar |
Dictionary |
laawaris |
Null |
anjaan |
Unknown |
Examples:
BOLO ZANJEER.type(42) // ank
BOLO ZANJEER.type("hello") // shabd
BOLO ZANJEER.isAnk(3.14) // SHAKTI
BOLO ZANJEER.isShabd(42) // KAALIA
VIJAY num = ZANJEER.toAnk("123") // 123
BOLO ZANJEER.toShabd(42) // 42
Dictionary manipulation functions.
| Function | Syntax | Description | Returns |
|---|---|---|---|
keys |
DEEWAR.keys(dict) |
Get all keys | Array of strings |
values |
DEEWAR.values(dict) |
Get all values | Array |
hasKey |
DEEWAR.hasKey(dict, key) |
Check if key exists | Boolean |
remove |
DEEWAR.remove(dict, key) |
Remove key and return its value | Removed value or LAAWARIS |
size |
DEEWAR.size(dict) |
Number of key-value pairs | Number |
merge |
DEEWAR.merge(dict1, dict2) |
Merge two dictionaries | New Dictionary |
Examples:
VIJAY d = DEEWAR_BANAO{"x": 1, "y": 2, "z": 3}
BOLO DEEWAR.keys(d) // [x, y, z]
BOLO DEEWAR.values(d) // [1, 2, 3]
BOLO DEEWAR.hasKey(d, "x") // SHAKTI
BOLO DEEWAR.size(d) // 3
VIJAY removed = DEEWAR.remove(d, "z") // removed = 3, d now has x and y
VIJAY d2 = DEEWAR_BANAO{"a": 10}
VIJAY merged = DEEWAR.merge(d, d2) // {"x": 1, "y": 2, "a": 10}
Named after "Kaun Banega Crorepati," the quiz show hosted by Amitabh Bachchan. These commands produce themed output messages.
| Command | Output |
|---|---|
DEVIYON_AUR_SAJJANO |
"Deviyon aur Sajjano, namaskar! Welcome to AmitabhC!" |
COMPUTER_JI_LOCK_KIYA_JAYE |
"Computer ji, lock kiya jaaye! Answer locked!" |
CONFIDENT_TO_LOCK_KIYA_JAYE |
"Confidence check: Answer locked with confidence!" |
LIFELINE_FIFTY_FIFTY |
"50-50 Lifeline activated! Two options eliminated!" |
AUDIENCE_POLL |
"Audience Poll: N% majority opinion received!" (N = random 60-89) |
PHONE_A_FRIEND "name" |
"Calling name... Getting expert advice!" |
EXPERT_ADVICE |
"Expert Advice: Based on analysis, this approach looks correct!" |
QUIT_GAME |
"Game quit successfully! Taking winnings home!" (terminates program) |
INTEZAAR <ms> |
Waits for the specified milliseconds (max 5000ms), then prints "Waited for Nms" |
Examples:
DEVIYON_AUR_SAJJANO
PHONE_A_FRIEND "Jaya"
AUDIENCE_POLL
INTEZAAR 2000
Named after the concept of waiting. Pauses execution.
Syntax: INTEZAAR <milliseconds>
Parameters:
milliseconds-- Integer, capped at 5000ms. Defaults to 1000 if not specified.
All runtime errors are delivered as iconic Amitabh Bachchan dialogues.
| Error Scenario | Dialogue |
|---|---|
| Undefined variable | "Don ko pakadna mushkil hi nahi, naamumkin hai!" - Undefined variable: X |
| Max call depth exceeded | "Deewar bahut oonchi ho gayi!" - Maximum call depth exceeded |
| Execution timeout | "Interval khatam!" - Execution timeout |
| Division by zero | "Zero se divide kaise kar sakte hain?" |
| Array index out of bounds | "Hum jahan khade hote hain, line wahi se shuru hoti hai!" - Array index N out of bounds |
| Type mismatch | "Aaj mere paas type hai, tumhare paas kya hai?" - 'X' is not an array or dictionary |
| Constant reassignment | "Main aaj bhi phenke hue paise nahin uthata!" - Cannot reassign constant |
| While loop exceeded max iterations | "Picture abhi baaki hai, lekin time khatam!" - While loop exceeded maximum iterations |
| For loop count too high | "Baar baar mat bol!" - Loop count exceeds maximum |
| Invalid dictionary entry | "Dialogue galat bol rahe ho!" - Dictionary entry must be key: value |
| Invalid argument | "Tumhara argument galat hai, sahab!" - Dictionary key must be a string or number |
| Function not found | "Yeh function toh aaya hi nahi!" - Function 'X' not found |
| String too long | "Mere paas bahut zyada memory hai... lekin limit toh limit hai!" - String too long |
| AGNEEPATH block unclosed | "Dialogue galat bol rahe ho!" - AGNEEPATH block must end with KHATAM |
| KBC_SAWAAL unclosed | "Dialogue galat bol rahe ho!" - KBC_SAWAAL must end with AGLE_SAWAAL |
| ZANJEER_LOOP unclosed | "Dialogue galat bol rahe ho!" - ZANJEER_LOOP must end with TAB TAK condition |
The interpreter enforces the following safety limits to prevent abuse:
| Limit | Value | Description |
|---|---|---|
maxCallDepth |
100 | Maximum function call / recursion depth |
maxLoopIterations |
10,000 | Maximum iterations for any single loop |
maxExecutionTime |
30,000 ms (30s) | Total execution time before timeout |
maxStringLength |
10,000 | Maximum characters in a single string |
maxArraySize |
1,000 | Maximum elements in an array or keys in a dictionary |
maxVariables |
1,000 | Maximum variables per scope |
maxFunctions |
100 | Maximum function definitions |
| Max code size | 100,000 bytes (100 KB) | Maximum source code length |
| Input rate limit | 1 per second | Minimum interval between SUNO calls |
Reserved words (cannot be used as variable or function names):
__proto__, constructor, prototype, eval, function, window, document, global, this, self, top, parent, frames, location, history
Identifier rules:
- Must start with a letter or underscore
- Can contain letters, digits, and underscores
- Case-sensitive
- Cannot be a reserved word or AmitabhC keyword
Version: 4.0.0 Compatibility: Modern web browsers (Chrome, Firefox, Safari, Edge) and Node.js API Stability: Stable
AmitabhC v4.0.0 -- "Aaj khush toh bahut hoge tum!" -- A purely Amitabh Bachchan themed programming language.