This document describes the grammar of the configuration file for the 'features' program. Conventions used herein: to be further defined [ ] is optional | | one of: , , ( ) grouping ... can be repeated as many times as needed (on the same line) ...... can be repeated as many times as needed Not described below: - comments can be used, starting with a hash (#) symbol ================================================================ ### < ### configuration file ### > # in FIXED order: DEFINES < defines > FEATURES < features > TEMPLATES < templates > INDELS < indels > TOKENS < tokens > ================================================================ ### < ### defines ### > # in random order: [ VERSION ( 0 | 1 | 2 ) ] [ TOP ] [ SUBSTMAX ] [ INDEL ] [ METHOD ( SUM | SQUARE | EUCLID | MINKOWSKI ) ] [ TOKENSTRING ( RAW | ESC ) ] [ START ] [ RANGE ] ...... #defaults: # VERSION 0 # TOP 65535 # SUBSTMAX 1.0 # INDEL {SUBSTMAX / 2} # METHOD SUM # TOKENSTRING RAW # START 0 #METHOD SUM == METHOD MINKOWSKI 1 #METHOD EUCLID == METHOD MINKOWSKI 2 ================================================================ ### < ### features ### > # VERSION 0 only : ( B | N | D ) [ ] ...... # VERSION 1 and VERSION 2 only : ( B | N | D ) [ ] ...... ================================================================ ### < ### templates ### > [ T [ [ ] ] ...... ] ...... ================================================================ ### < ### indels ### > [ | ] ...... ================================================================ ### < ### tokens ### > ( [ ] ( P | H | M | PI | HI | MI ) [ [ ] ( | ) ] ...... ) ...... ( [ ] EOT ) ...... # note: can start with a hash (#) ================================================================ ### # action on feature of type B : ( F ( = | - | + | ! ) | F U ) # action on feature of type N : ( F ( = | - | + | * ) | F U ) # action on feature of type D : ( F = | F U ) ================================================================ ### T ... ================================================================ ### ( : | ^: | = | ^= ) ================================================================ ### # if TOKENSTRING RAW : # if TOKENSTRING ESC : (||[[SP]]|[[NBSP]])... # note: no white space within ================================================================ ### an integer value in decimal notation ================================================================ ### a floating point value in decimal notation (not in scientific notation) ================================================================ ### any sequence of tokens without white space, and not starting with a hash (#), with possibly special tokens embedded: [[SP]] for space [[NBSP]] for no-break space ================================================================ ### a token other than white space or backslash (\) ================================================================ ### ( \\ | \ | \d | \x ) ================================================================ ### ( 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 ) ================================================================ ### ( 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ) ================================================================ ### ( 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | A | B | C | D | E | F )