xBase and Clipper language compatible compiler


Table of Contents
1. Introduction
2. Clipper compatible compiler
3. Clip license
3.1. Clip license description
3.2. Gnu Public License
3.2.1. Preamble
3.2.2. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
3.2.3. NO WARRANTY
3.2.4. How to Apply These Terms to Your New Programs
3.3. The original text of the GPL license
4. Environment variables
4.1. This variables are standart, but here is their description:
4.2. Following environment variables are defines libraries names:
4.3. Environment variables are using for defines, where CLIP-files are placed:
4.4. Environment variables are useful for localization and working with the different codepages:
4.5. Other environment variables:
4.6. Setting of environment variables.
5. Clip installation
5.1. Before install
5.2. Local installation.
5.3. System-wide installation
5.4. Selective installation
5.5. Patching your distribution
5.6. Cygwin installation
5.7. Clip Cygwin binaries
5.8. Building Clip for Cygwin from the sources
6. Compiler
6.1. Usage
6.2. Options
6.3. Examples
7. Possible problems and uncompatibilities
8. Terminals, keyboard, mouse, localization
8.1. Terminals
8.2. Keyboard
8.3. Mouse
8.4. Localization
9. CLIP localisation
9.1. CLIP runtime localisation
9.1.1. The LANG environment variable, directory $CLIPROOT/lang
9.1.2. Keymaps and keymap table generation.
9.1.3. Charsets, uni-files, utilites for generation
9.2. Message translation
9.2.1. Gettext and utils for po-files translation
9.2.2. CLIP po-files and dirs, clip_msg* utils
9.3. Writing and translation the CLIP documentation.
9.3.1. CLIP makefiles and .po manipulation utilities
9.3.2. Writing Documentation with DocBook
9.3.3. The SGML Environment
10. Language extensions
10.1. Introduction
10.2. SWITCH statement
10.3. Assign of the reference
10.4. Support FoxPro style for array access
10.5. Support call codeblock via function
10.6. Hexadecimal constants
10.7. Rational arithmetic
10.8. Associative arrays
10.9. FOR ... IN statement
10.10. Strings as arrays
10.11. OO model
10.11.1. Introduction in OO model
10.11.2. Control of change attributes
10.11.3. Recovering/reviving objects
10.11.4. Overloading operators for objects
10.11.5. Conclusion
11. Replaceable Database Drivers (RDD)
11.1. Overview
11.2. RDDs peculiarities
11.2.1. Table drivers
11.2.2. Index drivers
11.2.3. Memo drivers
I. CLIP Classes
Class CODBDEPOSITORY --  The essence this CODB class is storehouse of stored objects - objects whouse structure descript into dictionary.
Class CODBDICTIONARY --  The essence this CODB class is storehouse of metadata - objects what keeping specifier other objects of classes: DEPOSIT,EXTENT,ATTR,COUNTER,INDEX,CLASS,TCOLUMN,TVIEW,REPORT,PLUGINS,USER,GROUP
Class CODBFORMATTER --  Class CODBFORMATTER format output for result in codb-query library.
Class CODBIDLIST --  CODB class are destined to select objects by assertion and represenation its in table-navigationy mode.
Class CODBLIST --  CODB Class are destined to control of the list accessibile dictionary. In yours system (computer, local network, VPN, internet) may be many CODB data sourses (in configuration by default 32,000,000 ). CODB it is those class what provide DB supporting with methods description for access to certain CODB. The information keeping into $CLIPROOT/etc/codb.dbf
Class DATETIME --  Class are destined to control of date and time values.
Class FIND -- 
Class HISTORY --  Class are destined to control listing of history.
Class LISTITEM --  Class are destined to control of associated in list data values. For example, it can be list of files.
Class MEDIT --  Class are destined to control multi TEXTEDIT objects.
Class QUEUE --  Class are destined to control queues make from arbitrary data.
Class SORTEDARRAY --  Class are destined to control of sorted data.
Class STACK --  Class are destined to control stack arbitrary data.
Class TEXTEDIT --  Class are destined to manipulating text data - load/save from file/string, insert, delete, manipulation with marked data and clipboard, formated text and more. TEXTEDIT is a base class for function memoedit and class MEDIT.
Class UIBUTTON --  Class of button.
Class UIBUTTONBAR --  Class for panel with buttons. Inherit properties and methods of class UIHBox.
Class UICHECKBOX --  Checkbox class.
Class UICHILDWINDOW --  Class of child window.
Class UICHOICE --  Edit field with choice button. Inherits fields and method from class UIEdit.
Class UICOLOR --  Color class.
Class UICOMBOBOX --  Class of combo box.
Class UIDOCUMENT --  Class for document window. It inherits properties and methods of class UIChildWindow.
Class UIDRIVER -- 
Class UIEDIT --  Class of single line text entry.
Class UIEDITTEXT --  Class for multi-line text editor.
Class UIFONT --  Font class.
Class UIFORM --  Class for manipulate form in XFL format. This format is described is section XFL forms.
Class UIFRAME --  Class of frame.
Class UIGRID --  Class of grid for placement widgets.
Class UIHBOX --  Class of horizontal placement panel.
Class UIIMAGE --  Class of image.
Class UILABEL --  Class of text label.
Class UILAYOUT --  Class of area for placement widgets at fixed positions.
Class UIMAINWINDOW --  Class of main application window. It is inherited from class UIWindow. On main application window close application will be exited.
Class UIMENU --  Class of menu bar.
Class UIMENUCHECKEDITEM --  Class of checked menu item. Object of this class was created by method addChecked() of class UIMenu.
Class UIMENUITEM --  Class of menu item. Object of this class was created by method add() of class UIMenu.
Class UIPOPUPMENU --  Class of popup menu.
Class UIPROGRESSBAR --  Progress indicator class.
Class UIRADIOBUTTON --  Class of radio button.
Class UIRADIOGROUP --  Class of radio buttons group.
Class UISLIDER --  Slider class.
Class UISPLITTER --  Line with two panes arranged vertically or horizontally.
Class UISTATUSBAR --  Class of statusbar.
Class UITABLE --  Class of table (multicolumn list).
Class UITABLEITEM --  Class of table item. Object of this class was created by method addRow() of class UITable.
Class UITIMER --  Timer.
Class UITOOLBAR --  Class of toolbar.
Class UITOOLBUTTON --  Class of menu item. Object of this class was created by method addButton() of class UIToolBar.
Class UITREE --  Class of hierarchical multi-column lists (tree view).
Class UITREEITEM --  Class of tree node. Object of this class was created by method addNode() of class UITree.
Class UIVBOX --  Class of vertical widget placement panel.
Class UIWINDOW --  Class of separate window.
Class UIWORKSPACE --  Class of application instance.
Class XMLTAG --  Class of XML tag. This class is used in XML parsing.
Class XMLTREE --  Class of XML DOM tree. This class is used for manipulate XML DOM tree.
II. CLIP Functions in alhabetic order
A2EDIT()-CODBCONNECT()
CODBEXECUTE()-DBGOTO()
DBGOTOP()-EXP()
FACCESS()-FREADSTR()
FRENAME()-FTE2D()
FTEASTER()-FTMGETPAGE()
FTMGETPOS()-FTSAVESETS()
FTSAVRGN()-INKEY()
INT()-MONTH()
MPOSTOLC()-RTRIM()
RUNBLANK()-USEDRIVER()
VAL()-YEAR()
III. CLIP Functions by categories
SYSTEM -- 
C-API --  C-functions that allows using C-language along with CLIP.
ARRAY -- 
LOGICAL -- 
ENVIRONMENT -- 
CODB-QUERY --  Library for work with CODB databases by queries.
DISKUTILS -- 
PACK/UNPACK --  Functions pack/unpack and compress/uncompress data or file.
TCP -- 
INFO --  Functions for access to some information about values, functions, parameters, and so.
STRING -- 
NUMERIC -- 
OBJECT -- 
FILE/IO -- 
DOS/BIOS -- 
MENUS/PROMPTS -- 
CRYPTO --  Functions for cryptography based on OpenSSL technology.
NETWARE -- 
DATE/TIME -- 
KEYBOARD/MOUSE -- 
GAME -- 
CLIP-XML -- 
TERMINAL/IO -- 
SERIAL I/O --  Functions for using communication over COM-ports.
TASK -- 
CODEBLOCK -- 
VIDEO -- 
CGI/FCGI --  Functions for using CGI or FCGI technology of WEB-servers.
CONVERSION -- 
DATABASE -- 
MISCELLANEOUS -- 
CLIP-UI -- 
UNDERCONSTRUCTION -- 
12. CODB- CLIP Object Data Base.
12.1. Specification
12.2. Metadata classes
12.2.1. DEPOSIT the description of metadata "depository"
12.2.2. EXTENT the description of metadata "extent"
12.2.3. ATTR the attribute description of keeping object
12.2.4. COUNTERthe counter description
12.2.5. INDEX the index description
12.2.6. CLASS the structure description
12.2.7. TCOLUMNthe table column description
12.2.8. TVIEWthe table view description
12.2.9. REPORTthe report description
12.2.10. PLUGINSthe plugins modules description
12.2.11. USERthe user description
12.2.12. GROUPthe description of users group
12.3. Controling classes.
12.4. Examples
12.5. Utilities
13. Working with SQL servers
13.1. Features
13.2. Quick start
13.2.1. Building an application
13.2.2. Step by step
13.3. SQL API reference
13.3.1. SQLList()
13.3.2. ConnectNew()
13.3.3. TConnect class
13.3.4. TRowset class
13.4. RDBMS specific
13.4.1. MySQL
13.4.2. PostgreSQL
13.4.3. Oracle 8i
13.4.4. Interbase/Firebird
13.4.5. ODBC driver manager
13.4.6. DBTCP proxy server for ODBC connections
14. Working with sockets
14.1. Introduction
14.2. TCP functions
14.3. Example
15. Utilites
15.1. clip_makeslib
15.2. clip_makelib
List of Tables
10-1. Overloaded operations
11-1. Field types
11-2. Index features summary
13-1. Implemented MySQL data types
13-2. Implemented PostgreSQL data types
13-3. Implemented Oracle data types
13-4. Implemented Interbase data types
13-5. Implemented ODBC data types
List of Examples
9-1. Sample $CLIPROOT/lang/ru_RU.KOI8-R file
9-2. Sample $CLIPROOT/term/linux-console file