Special symbol definitions
Standard symbols as value or csv_value are symbols with limited character sets, which are difficult to express by means of BNF rules (even though it would be possible). Hence, a special parser class has been provided in order to support a number of special symbols, which can be references in any other parser definition. The documentation of those symbols below has more explanatory value and is not valid BNF notation.
spec_plist := spec_plistchar(*)
spec_block := spec_blockchar(*)
spec_line := [spec_nl_line(*)] spec_last_line
specc_nl_line := [spec_linechar(*)] '\'
spec_last_line := [spec_linechar(*)] nl
spec_value := spec_valuebeg [spec_valuechar(*)]
spec_csv_value := spec_csv_begin [spec_valuechar(*)]
spec_plistchar := 1-255 except: ( )
spec_blockchar := 1-255 except: { } 10 13
spec_linechar := 1-255 except: 10, 13, \
spec_bnfchar := 1-255 except: 10, 13, ' ', '|' '[' ']' \
spec_valuebeg := 1-255 except: '\n' '\r' '\t' ';' '|' '"' '[' '{' '('
spec_csv_begin := 1-255 except: '\n' '\r' '\t' ';' '|' '"'
spec_valuechar := 1-255 except: '\n' '\r' '\t' ';' '|'