libmspdatafile - structured datafile library
-Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions
-Version 0.1 readme
+Version 1.0 readme
+1. Description
+
Libmspdatafile is a library for reading and writing structured data files. It
supports both a human-readable text format and a more compact binary format.
The text-based format is designed to be compact yet clean, avoiding much of the
redundancy of XML.
-Libmspdatafile is distributed under the terms of the GNU Lesser Public License.
-Full text of the license can be found in the file License.txt.
-
-*** Structure
+2. Technical overview
The basic building block of a datafile is a statement. A statement has a
-keyword and zero or more arguments. It may also have zero or more substate-
+keyword and zero or more arguments. It may also have any number of substate-
ments.
The interface is heavily object-oriented and typically one statement in a file
The library supports five basic data types: integers, floats, strings, booleans
and enums. Data types are strictly enforced - the only allowed conversion is
-from float to integer.
+from integer to float.
The correct argument types for a statement is determined from the function or
variable used to load it. This means that semantical validation can only be
perform syntactic validation.
-*** Basic usage
+3. Basic usage
Loading data from files is achieved through Loader classes. Such a class must
be derived from the DataFile::Loader class. In the constructor, a series of
raw Statement. However, this is rarely useful.
-*** Syntax
+4. Datafile syntax
The syntax of the text format vaguely resembles C. Statements are terminated
with a semicolon and substatements are enclosed between burly braces. The sub-
statement block comes after all arguments and the semicolon comes after it. An
-empty substatement block is allowed and equal to an absent block.
+empty substatement block is allowed and equal to an absent one.
Integers can be written in decimal, octal or hexadecimal notation. A minus
sign can be used in any base for negative numbers, as well as an optional plus
underscore.
-*** Binary format
+5. Binary format
The binary format is not intended to be manipulated by anything else than
libmspdatafile. A detailed description is not available at this time.
formats.
-*** $Id$
+6. License
+
+Copyright © 2006-2008 Mikko Rasa, Mikkosoft Productions
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library 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
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Full license text can be found in License.txt.
+
+
+($Id$)