See the templates folder in the download for examples
CLASS - base xml element
attributes: name
DESCRIPTION - contains text description for class
INCLUDE - contains info on an include
attributes: name(string)
VARIABLES - occurs once, contains all variables
VARIABLE - contains info on a variable
attributes: name(string), type(string), comm(string - comment), pointer(boolean), static(boolean), default(string), arrayCount(int)
COMMENT - contains info on a variable
attributes: text(string)
BR - line break
FUNCTIONS - occurs once, contains all functions
TEMPLATE_FUNCTION - tells XCTE to add a function base on this template
attributes: name(string)
EMPTY_FUNCTION - defines skeleton for an empty function
attributes: name(string)
PARAMETERS - defines skeleton for an empty function
attributes: name(string)
VARIABLE - contains info on a variable
attributes: name(string), type(string), comm(string - comment), pointer(boolean), arrayCount(int)
RETURN_VALUE - defines skeleton for an empty function
attributes: type(string), const(boolean), pointer(boolean), passby(string), arrayCount(int)
The core of XFCE is stored in the lib folder. The core loads the xml class file
into an object structure, and also has files for loading language profile information.
The file code_elem_class contails most of the code for loading information from
the xml file.
Language profile information includes type map information and file extension
information, so far. The core files also load user settings, which contains
license, company, and author information(loaded from default_settings.xml).
All language generating classes are store in the lib/plugins folder. Each
language has a subdirectory called lang_(language id). To develop a method(function) plugin
for a language it's best to find an existing plugin then copy and modify it to suit
your needs. Note that the last line in each plugin registers an object of that class with
the plugin manager.
If you want to make a new language plugin you must make a language profile in the
lang_profiles folder(In my day there were no fancy folders. We called em
directories and you had to manipulate them from the command line, and we liked it!).
Anyways, a new language will also need a module named after it, like XCTECpp for C++.
It also needs a utils class containing the language profile and some helper functions,
all static.