ossp-pkg/cfg/00TODO 1.6 -> 1.7
--- 00TODO 2002/07/09 08:29:31 1.6
+++ 00TODO 2002/07/10 12:00:23 1.7
@@ -84,3 +84,123 @@
option "bar" --occur=1
};
+---------------------------------------------------------------------------
+
+foo on;
+bar /bla {
+ foo off;
+ baz --fuck {
+ b1; b2 --nase=baer; b3; b4; b5;
+ } --fuck2;
+};
+quux a1 a2 a3 a4;
+quux;
+
+---------------------------------------------------------------------------
+
+sequence ROOT {
+ directive foo;
+ directive bar;
+ directive quux --count=1:oo;
+};
+sequence bar-seq {
+ directive foo --count=0:1;
+ directive baz --count=1:oo;
+};
+directive foo {
+ token - on|off|yes|no;
+};
+directive bar {
+ token path /.*;
+ sequence bar-seq;
+};
+directive baz {
+ option fuck;
+ option fuck2;
+ sequence {
+ directive foo {
+ option nase (baer|hugo);
+ option foo [0-9];
+ token ip-address;
+ };
+ };
+};
+directive quux {
+ token --count=0:oo a.*;
+};
+token ip-address b1|b2|b3|b4|b5;
+
+-------------------------------------------------------------------------------
+
+<config> ::= "sequence" <count>? <name>;
+ | "sequence" <count>? <name>? "{" <directive>* "}";
+<directive> ::= "directive" <token-count>? <name>;
+ | "directive" <token-count>? <name>? "{" <option>* <token>+ };
+<option> ::= "option" <name> <regex>?;
+<token> ::= "token" <name>? <regex>;
+<count> ::= /^(\+|\*|\?|[0-9]+,[0-9]*|[0-9]*,[0-9]+|[0-9]+)$/
+<name> ::= /^[a-zA-Z][a-zA-Z0-9_.-]*$/
+<regex> ::= ...
+
+-------------------------------------------------------------------------------
+
+sequence ROOT {
+ directive * "directive" {
+
+ directive * token-1 {
+ token token "token";
+ token name /^[a-zA-Z][a-zA-Z0-9_.-]*$/;
+ token regex /^.+$/;
+ }
+};
+
+-------------------------------------------------------------------------------
+
+directive token {
+ opt1 { /.../ opt2=/.../ } {
+ directive { /^token$/ };
+ name { m/.../; m/^[a-zA-Z][a-zA-Z0-9_.-]*$/ } ?;
+ name { m/(...|[a-zA-Z][a-zA-Z0-9_.-]*$)/ } ?;
+ regex { m/^.+$/ };
+};
+directive acl { directive=/^acl$/ addr=/^...|...$/+ };
+
+-------------------------------------------------------------------------------
+
+a?b((c|d)+e)?f
+
+A m/a/ ?
+B m/b/
+{
+ {
+ C m/c/ ;
+ D m/d/
+ } +
+ E m/e/
+} ?
+F f
+
+<directive-match> ::= <token-match>+
+<token-match> ::= <name>? <regex> <quant>?
+
+-------------------------------------------------------------------------------
+
+<config> ::= "sequence" <count>? <name>;
+ | "sequence" <count>? <name>? "{" <directive>* "}";
+<directive> ::= "directive" <name>;
+ | "directive" <name>? "{" <options> "}" "{" <tokens> "}";
+
+<options> ::= <tok-match>+
+<tokens> ::= <dir-match>+
+
+<dir-match> ::= <tok-match>+
+<tok-match> ::= <name>? <node-match> <quant>?
+<node-match> ::= "{" <dir-match> "}" | <regex>
+
+<option> ::= "option" <name> <regex>?;
+<token> ::= "token" <name>? <regex>;
+
+<count> ::= /^(\+|\*|\?|[0-9]+,[0-9]*|[0-9]*,[0-9]+|[0-9]+)$/
+<name> ::= /^[a-zA-Z][a-zA-Z0-9_.-]*$/
+<regex> ::= ...
+
|
|