OSSP CVS Repository

ossp - ossp-pkg/cfg/00TODO 1.6
Not logged in
[Honeypot]  [Browse]  [Directory]  [Home]  [Login
[Reports]  [Search]  [Ticket]  [Timeline
  [Raw

ossp-pkg/cfg/00TODO 1.6

- Problem: \x00 oder \x{00} wird zu NUL-terminator -> use ptr+len instead
- caStr/cpStr durch yyless/yymore??
- syntax verification
- command line query tool
- error checking in scanner?
- OSSP ex support
- wieso geht sample.cfg nicht als Arg bei "make check"?

- 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
};


CVSTrac 2.0.1