Beta version 0.2.4

Purpose of this Language Revision
Superx++ beta 0.2.4 constitutes the introduction of shortx. shortx is the textual syntax for Superx++ that is patterned loosely after the C family of languages. The reason for the creation of shortx is to get around the problem of reading and writing Superx++ programs.

It is now possible to write Superx++ code without wading over the XML syntax of the language. This will assist those who wish to use Superx++ without being inundated by the syntactical issues related to XML: the angle brackets and the verbosity, for starters!

Demo shortx Program Files
Superx++ sample programs in both shortx and XML syntax versions can be found by clicking here.

Improvements to shortx in this Version
1) The shortx translation now works more reliably in the Superx++ interpreters. Subtle translation errors were dealt with in this version.
2) The _object() statement is introduced to shortx to allow runtime determination of objects being referenced.
3) The _member() statement is introduced to shortx to allow runtime determination of object members being referenced.
4) The _method() statement is introduced to shortx to allow runtime determination of object methods being referenced.
5) The _executeclass() statement is introduced to shortx to allow runtime determination of execution classes being referenced for use in method calls.
6) The _attribute() statement is introduced to shortx to allow runtime determination of object attributes being referenced.

Current Status of shortx
shortx currently implements all of the major Superx++ statements that have been released under the XML syntax. There are some exceptions, such as the database-related statements. These will be implemented as time goes on. However, it is possible to write Superx++ programs in mixed syntax. This means that you can have a shortx program include XML syntax Superx++ statements.

File Extensions for shortx versus XML syntax
shortx files have the extension .shx whereas XML syntax Superx++ files have the extension xpp. Templx (the Superx++ IDE) can translate .shx files into .xpp files. The .xpp files are then run using any of the Superx++ interpreters. I do not use the term "compilation" for this process since the XML syntax files tend to be 200% larger (or more) than their shortx counterparts.

The demo .shx files show how small Superx++ programs now are using the shortx syntax. These demo files are with all the rest of the demo Superx++ program files. You can download them with the source code download or the executables download.

Future Work for shortx
shortx will be ammended to implement the remaining Superx++ statements that have not yet been implemented in shortx but exist in the Superx++ XML syntax.

shortx Statements
$ or $$ References an XML node, nodeset or a Superx++ object in a path
_object Specifies an object path to be resolved at runtime
_member Specifies an object member to be resolved at runtime
_method Specifies a method to be resolved at runtime
_executeclass Specifies an execution class to be resolved at runtime
_attribute Specifies an object's XML attribute to be resolved at runtime
attr Define an XML attribute on a Superx++ object
break Exit from a loop
class Define a class
deleteclass Deletes a defined class from run-time class memory
do ... until Loop until a condition is true
do ... while Loop while a condition is true
exec Executes the contents of a Superx++ file
file Reads the contents of a file
for A for loop
getclasses Returns the run-time class memory
getmem Returns the run-time memory for Superx++ objects
getexception Returns the most recent exception
getxin Returns the input stream
getxout Returns the contents of the output stream
getxpp Returns the Superx++ program object
if An if conditional
include Include a shortx source file
lib_close Closes the connection to an external library executable
lib_func Calls a public function in an external library executable
lib_open Opens a connection to an external library executable
node Define a Superx++ object
post HTTP Post an XML node or Superx++ object to an URL
save Save an XML node or Superx++ object to a file
saveprogstate Saves the state of a Superx++ program to a state file
switch A switch conditional
throw Throw/raise an exception
try ... catch Trap any raised exceptions within a section of Superx++ code
while Loop while a condition is true
xcall Calls a remote Superx++ program
xout Writes data to the output stream as a string
xpp Defines a Superx++ program
xservice A call to a Superx++ service or sending a Superx++ object as a courier messenger
Define array or variable Defines a variable or an array

How To Write shortx Programs
1) Write your shortx program source code and save them in .shx files
2) Open the main entry source file in Templx
3) Using the Translate menu, select shortx to Superx++. This will:
    a) translate the shortx code into XML syntax Superx++.
    b) create .xpp files for each of the .shx files.
4) Run the .xpp files using Templx or any of the other Superx++ interpreters.

Changes to Templx
1) Templx now translates shortx programs to XML syntax Superx++ programs.
2) Running a shortx program produces .xpp files for each .shx file. Then the .xpp files are run by Templx.

Affected Software To Be Removed and Installed
Do the reinstall of the software to get the beta 0.2.4 source code and executables.