A downloadable programming language for Windows, macOS, and Linux

An esoteric programming language where every file is also an xml code! 

Two example codes are included in the file: Hello world, and Fibonacci sequence!


List of commands:

  1. TYPE <arg1>
    Prints the value of <arg1> without a new line character at the end
  2. PRINT <arg1>
    Prints the value of <arg1> with a new line character at the end
  3. RUN FUNCTION BY NAME <arg1>
    Runs a function with the name <arg1>. If there are multiple with the same name, it will choose a random one.
  4. RUN FUNCTION BY ID <arg1>
    Runs a function with the id <arg1>. If the are multiple functions with that id, it will run the last one. Please make sure all functions have different ids, or at the very least that functions with different names have different ids, otherwise when calling a function by name it might end up calling a function with a different name.
  5. SLEEP <arg1>
    sleeps <arg1> seconds.
  6. EXIT
    exits from the code
  7. SET STRING <arg1> <arg2>
    Sets the value of variable <arg1> to the string value <arg2>. If the value does not exit, it gets created. Variables are dynamically-typed.
  8. SET INT <arg1> <arg2>
    Sets the value of variable <arg1> to the int value <arg2>. If the value does not exit, it gets created. Variables are dynamically-typed.
  9. SET FLOAT <arg1> <arg2>
    Sets the value of variable <arg1> to the float value <arg2>. If the value does not exit, it gets created. Variables are dynamically-typed.
  10. TYPE VAR <arg1>
    Prints the value of variable <arg1> without a new line character at the end.
  11. PRINT VAR <arg1>
    Prints the value of variable <arg1> with a new line character at the end.
  12. ADD <arg1> <arg2> <arg3>
    All arguments must be variables. <arg2>+<arg3> => arg1. If you want arg2 or arg3 to be a number for example 5, define a variable called 5 with the value 5.  If both arg1 and arg2 are string variables, it will concatenate them.
  13. SUBTRACT <arg1> <arg2> <arg3>
    All arguments must be variables. <arg2>-<arg3> => arg1. If you want arg2 or arg3 to be a number for example 5, define a variable called 5 with the value 5.
  14. MULTIPLY <arg1> <arg2> <arg3>
    All arguments must be variables. <arg2>*<arg3> => arg1. If you want arg2 or arg3 to be a number for example 5, define a variable called 5 with the value 5.
  15. DIVIDE <arg1> <arg2> <arg3>
    All arguments must be variables. <arg2>/<arg3> => arg1. If you want arg2 or arg3 to be a number for example 5, define a variable called 5 with the value 5.
  16. POWER <arg1> <arg2> <arg3>
    All arguments must be variables. <arg2>^<arg3> => arg1. If you want <arg2> or <arg3> to be a number for example 5, define a variable called 5 with the value 5.
  17. TO INT <arg1> <arg2>
    Converts variable <arg2> to int and stores the result in <arg1>. Does not affect <arg2> unless <arg1> and <arg2> are the same variable.
  18. TO FLOAT <arg1> <arg2>
    Converts variable <arg2> to float and stores the result in <arg1>. Does not affect <arg2> unless <arg1> and <arg2> are the same variable. 
  19. TO STRING <arg1> <arg2>
    Converts variable <arg2> to int and stores the result in <arg1>. Does not affect <arg2> unless <arg1> and <arg2> are the same variable. 
  20. EQUALS <arg1> <arg2> <arg3> <arg4>
    Checks if variables <arg1> and <arg2> are equal to each other. If they are runs function <arg3>, else runs function <arg4>. If you only want function <arg3> or function <arg4> you can create a function called nothing (or any other name you want) that do anything and put it as an argument. <function name="nothing" id="3"></function>
  21. MORE <arg1> <arg2> <arg3> <arg4>
    Checks if variable <arg1> is more than variable <arg2>. If they are runs function <arg3>, else runs function <arg4>. If you only want function <arg3> or function <arg4> you can create a function called nothing (or any other name you want) that do anything and put it as an argument. <function name="nothing" id="3"></function>
  22. LESS <arg1> <arg2> <arg3> <arg4>
    Checks if variable <arg1> is less than variable <arg2>. If they are runs function <arg3>, else runs function <arg4>. If you only want function <arg3> or function <arg4> you can create a function called nothing (or any other name you want) that do anything and put it as an argument. <function name="nothing" id="3"></function>
  23. INPUT <arg1> <arg2>
    Types the message stored in <arg2> and waitts for the user to enter a value which is later stored in <arg1> as a string. If you want an integer or float value, you must explicity convert it in the next line.


Download

Download
tcdpl.zip 2.9 kB

Install instructions

1. Download the zip file

2. Unzip it

3. Type your code in an xml file and put it in the same directory with the python file. Alternatively use one of the two included codes.

4. Run the python code and when asked, type the name of the xml file.

Comments

Log in with itch.io to leave a comment.

This looks cool! How did you make it?