Index: ossp-pkg/l2/l2.pod RCS File: /v/ossp/cvs/ossp-pkg/l2/l2.pod,v rcsdiff -q -kk '-r1.8' '-r1.9' -u '/v/ossp/cvs/ossp-pkg/l2/l2.pod,v' 2>/dev/null --- l2.pod 2001/11/09 12:45:37 1.8 +++ l2.pod 2001/11/15 09:47:32 1.9 @@ -64,6 +64,67 @@ (null, fd, file, pipe, socket, syslog, smtp) channels which already cover mostly all use cases of logging. +A language is provided to allow for channel specification and configuration. +Thus, the channel tree can be constructed either by the API and its ANSI C +bindings or through the use of this L2 channel definition language. Applying +the API allows fine grained control of the channel tree. Additionally, the +API allows for a more interactive channel definition. However, using the +channel definition language to define the channel tree is more convenient, +and takes less coding effort. The channel definition language is almost +always sufficient for an application using L2. + +=head1 L2 CHANNEL DEFINITION EBNF GRAMMAR + +/* channel tree */ +tree : stream + ; + +/* stream of channels */ +stream : channel + | channel T_OP_ARROW stream + | channel T_OP_ARROW '{' streams '}' + ; + +/* list of sibling streams */ +streams : stream + | stream ';' streams + ; + +/* channel */ +channel : channel_level '/' channel_level ':' channel_cons + | channel_level ':' channel_cons + | channel_cons + ; + +/* channel level */ +channel_level : T_ID + | '(' channel_level_mask ')' + ; + +/* channel level mask */ +channel_level_mask : T_ID + | T_ID '|' channel_level_mask + ; + +/* channel constructor */ +channel_cons : T_ID channel_params + ; + +/* channel parameters */ +channel_params : /* empty */ + | '(' channel_param_list ')' + ; + +/* channel parameter list */ +channel_param_list : /* empty */ + | channel_param + | channel_param ',' channel_param_list + ; + +/* channel parameter */ +channel_param : T_ID '=' T_PARAM + ; + =head1 FUNCTIONS The following functions are provided by the B API: