FlinnStack

FlinnStack is a programming language created in 2022 by User:Dtuser1337, It is a simplified version of FlinnScrip centered around the Stacks data types.
It is designed to be able to be converted to the original language as it was based on by hand easily.
It is similar to the original FlinnScrip, minus the variable and extra commands.
==Commands==
===Function Commands===
For a single line programs, Semicolons is required after the end of the commands.
For the stack, It needs to be applied with true or false, with true being the top of the stacks, and false being the bottom of the stacks.
stack is optional, defaults to true if omitted.
Adding empty brackets to commands that DOES NOT requires bracket is safe, but will generate warning message warning you to remove the brackets from the commands.
Commands 	Description
push(x,stack); 	Pushs value x to the stack. stack argument is optional, but default to true if omitted
pop(x,stack); 	Pops value x times from the stack. x is optional. stack argument is also optional, but default to true if omitted
set(x,stack); 	Pops the Values from the stack and replaces it with x, Strings can be added.
add(x,stack); 	Add value from the stack by x. If negative number are applied to x, then it will subtract the value instead. Attempting to add a value containing strings will instead return a error and is skipped instead.
multiply(x,stack); 	Multiply value from the stack by x. Attempting to multiply a value containing strings will instead return a error and is skipped instead.
divide(x,stack); 	Divide value from the stack by x. Attempting to divide a value containing strings will instead return a error and is skipped instead.
mod(x,stack); 	Performs modulus on the value from the stack and value x. Attempting to perform a modulus on value containing strings will instead return a error and is skipped instead.
swap(stack,stack); 	Swaps 2 value from the stacks.
append(x,stack); 	Appends value x to value from the stack.
print(stack); 	Prints the value from the stack. Functions differently from the FlinnScrip print(x); commands, such as inability to use ("").
string(stack); 	Converts the value from the stack to ASCII strings.
integer(stack); 	Converts the ASCII strings from the stack to integer value.
pause; 	Pauses the whole program with message "Press any key to continue..." until user presses any key.
input(x); 	Inputs a value to variable x.
if(x[comparative]y[logical]){}; 	Conditional branch statement.
ifcontain([!]x,stack[logical]){}; 	If the value in the stack contains x. Adding ! before x indicates if it does not contains x.
while(x[comparative]y[logical]){};	Conditional loops.
define(x){}; 	Defines a Function.
call(x); 	Calls a Function. x denotes a function id.
reverse; 	Reverse the whole stacks.
clearstack; 	Clears the whole stacks.
clear; 	Clears all text in console.
break; 	Stops while(); loops
returnend; 	Breaks a functions.
halt; 	Force halt a program.
// 	Comment, will ignore anything after this command.
/* */ 	Multiline Comment, Same as above except it will ignore anything until it reaches */.
====File I/O Commands====
Commands 	Description
loadfile(x,y,stack); 	Pushes the file value to the stack, with x being a filename and y being amount of line skipped.
loadallfile(x,stack);	Pushes the whole file to the stack on a incremental basis line by line, with x being a filename.
writefile(x,y); 	Overwrite a file then writes a value y to file, with x being a filename.
appendfile(x,y,z); 	Appends a value z to file, with x being a filename and y being amount of line skipped.
replacefile(x,y,z); 	Replace a file line with value z, with x being a filename and y being amount of line skipped.
====Replace Commands====
These Commands should be Replaced to Function Command's x or y and cannot be used as a Function Commands. Invaild Replacement will return an error message and skips the function commands instead.
Commands 	Description
true 	Top of the stack. If true,true, It is equivalent to FlinnScrip stack.top,stack.top(1).
false 	Bottom of the stack. If false,false, It is equivalent to FlinnScrip stack.bottom,stack.bottom(1).
random(x,y)	Random Numbers with x being minimum number and y being maximum number.
nil 	Detect if there none in the stack. If applied to file(x), then it will detect if files doesn't exist.
int 	Integer.
str 	Strings.
file(x) 	Detect a Files, x being a filename.
====Implementation Dependent Commands====
Commands listed below are dependent on the Implementation and is safely ignored when ran on Implementation that does not support the following commands.
Commands 	Description
color(x,y); 	Change the console color, with x being the foreground color and y being the background color. Uses Windows Batch Color Code. (albeit with hexes replaced with integer)
fgcolor(x,y,z);	Change the console foreground color by RGB value, with x being red, y being green, and z being blue.
bgcolor(x,y,z);	Change the console background color by RGB value, with x being red, y being green, and z being blue.
debug; 	Debug Commands. Outputs all variables, stacks, functions, and parameter to the console.
===Comparative and Logical Statement===
Statement	Description 	
< 	Comparative Less than 	
> 	Comparative More than 	
<= 	Comparative Less than or Equal to	
>= 	Comparative More than or Equal to	
= 	Comparative Equal to 	
!= 	Comparative Not equal to 	
& 	Logical AND 	
 	 	Logical OR
==Examples==
===Program Examples===
====Hello World!====
push("Hello World!");
print;
==Computational Class==
See FlinnScrip#Computational_class
Category:Languages
Category:2022
Category:High-level
Category:Stack-based
Category:Unimplemented
Category:Turing complete