************************************************************************************************
** Project:     FSMGenerator
** Module:	
** File:	TODO
** Date:        2002.08.01
** Author:      Pavel Bekkerman (chpavel@tx.technion.ac.il)
** Copyright:   Copyright (C) 2002, 2003 Pavel Bekkerman
** License:
**              This program is free software; you can redistribute it and/or
**              modify it under the terms of the GNU General Public License as
**              published by the Free Software Foundation; either version 2 of
**              the License, or (at your option) any later version.
**
**              This program is distributed in the hope that it will be useful,
**              but WITHOUT ANY WARRANTY; without even the implied warranty of
**              MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
**              GNU General Public License for more details.
**
**              You should have received a copy of the GNU General Public License
**              along with this program; if not, write to the Free Software
**              Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
**
** Contact:     Pavel Bekkerman (chpavel@tx.technion.ac.il)
************************************************************************************************

This file contains the list of major features we're working on. They will be introduced to the 
FSMGenerator in the near future. Anyone, wishing to contribute to development of the enlisted items 
or suggest new ones is warmly invited to contact the project team.

- Generators for additional languages.
PHP, C#, VB are our next majors. The rest are according to the demand.

- API static and dynamic libraries.
We currently provide API for supported languages - C, C++, Java.
We wish to distribute, along with the code of the API, the static/dynamic libraries. 
For all platforms, for all languages.

- Run-Time generated FSM.
We currently generate FSM source code, which should be compiled with the user's software (together 
with the API) in order that FSM would be accessible and executable from the user's software.
We wish to generate also a "FSM database", a snapshot of the internal DB. User's software, now, 
souldn't have to compile with the generated FSM code, but with API only (or linked with API libraries) 
and the FSM definitions are taken from the generated "FSM DB" in the run-time.
Here also there're 2 possibilities: either to recreate (deserialize) internal DB from file OR to open the 
file and look-up in it every time needed.

- Alternative FSM configuration format.
We currently have our own .fsm format.
We wish to support other formats - existing or developed by us. XML is the right direction.

- GUI for FSMGenerator.
Right now fsmgenerator is the command-line software tool.
Someday we'll provide some neat GUI for the FSMGenerator.

- Graphical FSM manipulation.
Someday we'll either provide ours OR inteface vendor's software for FSM graphical manipulation.
This should have the ability to add and manipulate states, events, transitions. At the same time it 
should support our CALLBACKS and HOOKS! It should alos be able to store and retrieve FSM definition in 
onei or all of the FSMGenerator supported formats. 

- Formal FSM manipulation.
Someday we'll introduce tools for formally manipulating FSMs defined in our formats.
The examples for that are: merging machines, chaining machines, parallelizing machines, etc...


