Node:Directory structure, Next:, Previous:Introduction, Up:Top



2 Directory structure

The X Language package comes with many files and directories. Here is the description of the structure used :

/
root directory
/doc/
X Language documentation
/src/
Sources
/test/
Test bench

Next sections contains details informations about each sub-directories.

2.1 / directory

The root directory contains many files usefull to developers.

README
Overview of X Language
TODO
What should be done
INSTALL
How to install X Language
ROADMAP
Development planification
AUTHORS
Contributors to X Language
NEWS
What's new in major releases
ChangeLog
Changes on day basis
xlang-test
A script to automate tests

2.2 /doc/ directory

The documentation directory contains developer's and user's informations. Texinfo is used to create those documents. Those guides are also generally available via HTML or PDF.

xlang-user.texi
X Language User guide
xlang-develop.texi
X Language Developer guide
xlang-api.texi
X Language API reference guide

2.3 /src/ directory

The source files directory contains all (.c & .h) C language files. Since X Language is a medium-size project, those files are divided into sub-directories :

/src/xlib/
Basic utilities (XString, XList, ...)
/src/xapi/
APIs source files
/src/xlang/
Core of the X Language

2.3.1 /src/xlib/ directory

This directory contains basic files for X Language C development :

xdefs.h
Contains all usefull definition (xbool, xu32, ...)
xmem.c/.h
Module to manage memory stuff
xdynamic.c/.h
Module to connect to dynamic libraries
xobject.c/.h
Basic class (the mother of all classes)
xstring.c/.h
Class to manage strings
xlist.c/.h
Class to manage lists

2.3.2 /src/xapi/ directory

This directory contains source files to APIs packages :

lang.c/.h
LANG package (e.g. itostr, ...)
sys.c/.h
SYS package (e.g. sys_exit, ...)
io.c/.h
IO package
net.c/.h
NET package
wnd/*.*
WND package (it's a direct binding of GTK+)

2.3.3 /src/xlang/ directory

This directory contains the core X Language source files :

xlmain.c/.h
This class contains a X Language environment
xlexpr.c/.h
This class describe an expression (fnct, type, variable, ...)
xldata.c/.h
This class describes the internal data at memory level
xltype.c/.h
This class describes a specific type (native or class)
xlfnct.c/.h
This class describe an X Langauge function
xlclass.c/.h
This class contains the description of X Language classes
xlfield.c/.h
This class describe a field of a class
xlvar.c/.h
This class contains the description of X Language variables
xlbuiltin.c/.h
This module contains all built-in functions (e.g. +, -, *, =, ...)
xlapi.c/.h
This module registers all APIs
xllang.c/.h
This class contains tools usefull to parsers and a parser chooser
xllangc.c/.h/.l/.y
C-like language (lexical analyzer & parser)
xllangbasic.c/.h/.l/.y
Basic-like language (lexical analyzer & parser)
xllanglisp.c/.h/.l./.y
LISP-like language (lexical analyzer & parser)

2.4 /test/ directory

This directory contains all tests that must be passed prior to any releases. Tests are composed of two files : test-XX.xc (the X Language source file) and test-XX.tst (the output that must be generated). By comparing the real output to the attended output, we know if the test passed.