Chic documentation
Houlder Technologies


Parameters
Home
Features
Tutorial
Examples
FAQ
Reference
Download
Mailing list
Contact

Contents

Overview

Chic stores the parameters used to control parsing and generation of each individual file in a hierarchical structure. The leafs of the hierarchy are individual files. Above these are directories, and above these, the project. The parameters used for a project are again inherited from a site specific file if that is present. If there is no site specific file, the internal defaults are used.

When you assign a value to a parameter for a project, the files of the selected directories and the individually selected files of the project inherit that value. When the project value changes, so do the values used by the leaf files.

You may override the project value for a directory so that all the files in that directory use the new value. Similarly, you may override the directory value for individual files. Such fine tuned control is primarily needed to set up the parsing and handling of the C++ standard library. In general it suffices to simply set the desired values for the whole project.

The presence or absence of a parameter for a site/project/directory/file indicates whether the value should be overridden or inherited. For example, when you assign a value to a file, Chic will always use this value for the file, regardless of how parent values later change.

Parameter files are stored in the $CHIC_ROOT/parameters directory. One file is stored for each directory where parameters have been edited. Normally you indirectly edit the files via the user interface. However, Chic checks whether the files have changed and eventually rereads them before each action. You may thus edit them by hand if you prefer that. The syntax is quite C++-like so it should be easy to understand.

The individual parameters

Parameter file format

Here's a sample of a parameter file for a directory.

group "Top" = "."
{
  group "CPP"
  {
    list<string> "Path" = {"/usr/include"}
  }
}

group "Top" = "MyFile.hic"
{
  group "CPP"
  {
    list<string> "Path" = {"/usr/local/include",
                           "/usr/include"}
  }

  group "Generation"
  {
    string "Generate hidden data" = true;
  }
}
The current directory overrides the "Path" parameter saying that all files in this directory should use the given path. All other values are inherited from the project. MyFile overrides the "Path" parameter again. It also overrides another parameter "Generate hidden data".





Home