OSSP CVS Repository

ossp - Difference in ossp-pkg/l2/l2_spec_parse.y versions 1.3 and 1.4
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [History

ossp-pkg/l2/l2_spec_parse.y 1.3 -> 1.4

--- l2_spec_parse.y      2001/11/08 09:28:35     1.3
+++ l2_spec_parse.y      2001/11/08 21:58:00     1.4
@@ -51,6 +51,10 @@
     do { l2_env_errorinfo(CTX->env, L2_ERR_ARG, "%s", msg); \
          CTX->rv = L2_ERR_ARG; } while (0)
 #define YYERROR_VERBOSE
+
+/* scanner state transition */
+extern void l2_spec_scan_push(l2_spec_ctx_t *, const char *state);
+extern void l2_spec_scan_pop(l2_spec_ctx_t *);
 %}
 
 /* parser options */
@@ -75,6 +79,7 @@
 
 /* list of scanner tokens */
 %token <cpValue>  T_ID
+%token <cpValue>  T_PARAM
 %token <cpValue>  T_STRING
 %token            T_OP_ARROW
 
@@ -221,9 +226,9 @@
         
 /* channel parameter */
 channel_param  
-    : T_ID '=' T_STRING { 
-          if ((CTX->rv = l2_channel_configure(CTX->chTmp, "%s=\"%s\"", $1, $3)) != L2_OK) {
-              l2_env_errorinfo(CTX->env, CTX->rv, "failed to configure channel with '%s=\"%s\"'", $1, $3);
+    : T_ID '=' { l2_spec_scan_push(CTX, "SS_PARAM"); } T_PARAM { l2_spec_scan_pop(CTX); } { 
+          if ((CTX->rv = l2_channel_configure(CTX->chTmp, "%s=\"%s\"", $1, $4)) != L2_OK) {
+              l2_env_errorinfo(CTX->env, CTX->rv, "failed to configure channel with '%s=\"%s\"'", $1, $4);
               YYERROR;
           }
       }

CVSTrac 2.0.1