Skip to content
Jim Lieb edited this page Jun 27, 2014 · 4 revisions

Configuration Parsing Rework

The configuration file is processed by a combination of a Bison/Flex parser and specialized C code. This has the following deficiencies:

  • The parser is pretty simple. The lexer does minimal tokenizing, the parser is very simple and the parse tree is a generic linked list of token names and string values. This requires extra string scanning and tokenizing code throughout the code base.
  • There are some minimal parse tree walking functions but they are very generic and limited.
  • The real work of processing the parse tree is scattered across the code base. Much of this code is replicated with minor pattern changes.
  • Since most of the processing is dispersed, it is not consistant, especially in error reporting and handling and in places cumbersome.
This task unifies all the processing into common functions that are driven by simple static tables. This consolidates the code and standardizes error handling and reporting.

Status

The first commits of this work appeared in https://github.com/nfs-ganesha/nfs-ganesha/tree/V2.1-dev_3|V2.1-dev_3.

Clone this wiki locally