OSSP CVS Repository

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

Check-in Number: 1271
Date: 2001-Nov-07 17:35:18 (local)
2001-Nov-07 16:35:18 (UTC)
User:rse
Branch:
Comment: cleanup and documentation
Tickets:
Inspections:
Files:
ossp-pkg/l2/l2_spec.c      1.1 -> 1.2     40 inserted, 20 deleted

ossp-pkg/l2/l2_spec.c 1.1 -> 1.2

--- l2_spec.c    2001/11/07 16:17:09     1.1
+++ l2_spec.c    2001/11/07 16:35:18     1.2
@@ -1,35 +1,57 @@
-
-#include <stdio.h>
+/*
+**  L2 - OSSP Logging Library
+**  Copyright (c) 2001 The OSSP Project (http://www.ossp.org/)
+**  Copyright (c) 2001 Cable & Wireless Deutschland (http://www.cw.com/de/)
+**
+**  This file is part of OSSP L2, a flexible logging library which
+**  can be found at http://www.ossp.org/pkg/l2/.
+**
+**  Permission to use, copy, modify, and distribute this software for
+**  any purpose with or without fee is hereby granted, provided that
+**  the above copyright notice and this permission notice appear in all
+**  copies.
+**
+**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+**  SUCH DAMAGE.
+**
+**  l2_spec.c: channel tree specification support
+*/
 
 #include "l2.h"
 #include "l2_p.h"
 #include "l2_spec.h"
 #include "l2_spec_parse.h"
 
+/* prototypes for Flex-generated scanner */
 extern int  l2_spec_lex_init(void *);
 extern int  l2_spec_lex_destroy(void *);
 extern void l2_spec_set_extra(void *, void *);
-extern int  l2_spec_debug;
 
-void dump(int level, l2_channel_t *ch)
-{
-    l2_channel_t *chD;
-
-    fprintf(stderr, "%*s%s (0x%lx)\n", level*4, "", ch->handler.name, ch);
-    chD = NULL;
-    while ((l2_channel_downstream(ch, &chD)) == L2_OK)
-        dump(level+1, chD);
-    return;
-}
+/* prototypes for Bison-generated parser */
+extern int  l2_spec_parse(void *);
 
+/* build a channel tree according to a textual specification */
 l2_result_t l2_spec(l2_channel_t **ch, l2_env_t *env, const char *spec)
 {
     l2_spec_ctx_t ctx;
     void *yyscan;
 
+    /* initialize scanner */
     l2_spec_lex_init(&yyscan);
     l2_spec_set_extra(&ctx, yyscan);
 
+    /* establish our own context which is passed 
+       through the parser and scanner */
     ctx.yyscan   = yyscan;
     ctx.inputptr = spec;
     ctx.inputbuf = spec;
@@ -39,18 +61,16 @@
     ctx.chTmp    = NULL;
     ctx.rv       = L2_OK;
 
-#if 0
-    l2_spec_debug = 1;
-#endif
+    /* start the parser loop */
     if (l2_spec_parse(&ctx))
         ctx.rv = (ctx.rv == L2_OK ? L2_ERR_INT : ctx.rv);
 
-    *ch = ctx.ch;
-
-    dump(0, ctx.ch);
-
+    /* destroy scanner */
     l2_spec_lex_destroy(yyscan);
 
+    /* provide root/top-level channel as result */
+    *ch = ctx.ch;
+
     return ctx.rv;
 }
 

CVSTrac 2.0.1