ossp-pkg/cfg/00TODO
1.4
- Problem: \x00 oder \x{00} wird zu NUL-terminator -> use ptr+len instead
- caStr/cpStr durch yyless/yymore??
- autoconf environment
- syntax verification
- command line query tool
- error checking in scanner?
- newline in error message
$ ./cfg_test sample2.cfg
ERROR: <line 7, column 1: `1b;
<}> quu'>
- cfg_t
rewrite-uri <regex> <subst> { <rewrite-cond> }
rewrite-uri ^/(.*) /path/$1 --redirect=permanent q{
%{SOURCE} != "x"
};
Directory [--foo=A]
Argument:
- type:
- keyword ("foo") via name
- option ("--foo=BAR") via name & regex
- argument ("foo") via regex
- amount:
- 1
- 0/1 ?
- 0..n *
- 1..n +
- location:
- by position
- by name
- lookup via:
- name
- position
- regex match
foo * bar
foo = bar|quux|...
foo (bar baz quux)
foo ::= bar* ; kleene closure
foo ::= bar|baz|quux ; union
foo ::= bar baz quux ; concatenation
foo ::= {foo;...} ; sequence of ...
foo ::= (...) ; grouping
foo ::= "bar" ; fixed terminal
foo ::= /bar/ ; regex terminal
foo ::= <A> ; arbitrary argument
foo ::= <O> ; arbitrary option
SEQ ::= "{" DIR DIR* "}"
DIR ::= TOK (" " TOK)* ";"
TOK ::= ...
SEQ ::= DIR* SEQ(dir,dir,...)
DIR ::= TOK+ DIR(tok,tok,...)
TOK ::= string "..."
config ::= SEQ(directory|user|rewrite|access)
directory ::= DIR("directory",<O>*,<A>)
dir_options ::=
user ::= DIR("user",/^[a-z]$/)
rewrite ::=
access ::= "access" ("allow"|"deny"):action SEQ(access_list):acl
access_list ::= m/^!?%{ID}$/
acl ::= "acl" TOK:name acl_list
acl_list ::= SEQ(acl_entry)
acl_entry ::= acl_action "from" net-addr:src "to" net-addr:dst
acl_action ::= "allow"|"deny"
net_addr ::= net_hostname | net_ipv4addr | net_ipv6addr
sequence all {
directive --class 1;
};
directive --class 1 "foo" {
option "bar" --occur=1
};