OSSP CVS Repository

ossp - Check-in [1346]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 1346
Date: 2001-Nov-15 10:47:32 (local)
2001-Nov-15 09:47:32 (UTC)
User:ms
Branch:
Comment: Added L2CDL grammar text (L2 Channel Definition Language.) Looks crappy.
Tickets:
Inspections:
Files:
ossp-pkg/l2/l2.pod      1.8 -> 1.9     61 inserted, 0 deleted

ossp-pkg/l2/l2.pod 1.8 -> 1.9

--- 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<L2> API:

CVSTrac 2.0.1