Phino
Phino builds on top of wxXrcWriter to create a High Level Graphical User Interface Language using Python at its core. Its slightly different from Python in that it tries and checks the program can be executed error free first. Though it can't guarantee it. It runs by reading a script file. Script files are normally denoted using the pno extension. Each script can contain 4 blocks. Each denoted by [ name of block] and end [/name of block]. The 4 Blocks are:

Imports

Defines a list of imports. Aliases can also be defined the imports using < name of aliases alias, ... >

GUI

Defines the GUI. Each GUI Element is defined by the Element name followed by a id and then its parameters parameters are denotoed by the @ symbol and its value is followed by '. For more complex parameter values python dictionaries are used.

Script

This defines the functionality of the script. Functions are defined using function keyword followed by the name. List of parameters in () brackets and ended with ':'. Control blocks are ended with the ~ character. GUI elements can be referenced by the $ character. Either by using the number it appears in the file. Eg to use the first GUI element in the file use $1 or by its id name. Eg $my_window. Sometimes while parsing the file Phino isn't sure what a variable is. To get round this Phino introduces the ? operator. The ? operator tells Phino that at the point it occurs it is expecting the variable mentioned to be a certain type. Therefore for all subsequent operations on the variable will be on that type until notified otherwise. It does not guarantee that when run it can be something different however. To use the operator you specify the variable name followed by ? and then an object its expected to be. Eg if we had a variable called x which was expected to be an int. You would write x ? int.

Bindings

This defines event bindings for the script.