certi-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

certi/libCERTI tokens.ll syntax.yy


From: certi-cvs
Subject: certi/libCERTI tokens.ll syntax.yy
Date: Sun, 09 Dec 2007 17:02:22 +0000

CVSROOT:        /sources/certi
Module name:    certi
Changes by:     Eric NOULARD <erk>      07/12/09 17:02:22

Modified files:
        libCERTI       : tokens.ll syntax.yy 

Log message:
        Fix bug #21610 : Timestamp should be allowed as attribute/parameter name
        The applied patch is from Chris Rule.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/tokens.ll?cvsroot=certi&r1=3.3&r2=3.4
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/syntax.yy?cvsroot=certi&r1=3.5&r2=3.6

Patches:
Index: tokens.ll
===================================================================
RCS file: /sources/certi/certi/libCERTI/tokens.ll,v
retrieving revision 3.3
retrieving revision 3.4
diff -u -b -r3.3 -r3.4
--- tokens.ll   9 Mar 2006 19:54:28 -0000       3.3
+++ tokens.ll   9 Dec 2007 17:02:22 -0000       3.4
@@ -20,7 +20,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: tokens.ll,v 3.3 2006/03/09 19:54:28 breholee Exp $
+// $Id: tokens.ll,v 3.4 2007/12/09 17:02:22 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include "syntax.h"
@@ -38,6 +38,7 @@
 OrderType order ;
 TransportType transport ;
 int line_number ;
+std::string timestamp_arg;
 
 }}
 
@@ -67,8 +68,9 @@
        return ORDER ;
 }
 [Tt][Ii][Mm][Ee][Ss][Tt][Aa][Mm][Pp] {
+        certi::fedparser::timestamp_arg = std::string(yytext) ;        
        certi::fedparser::order = certi::TIMESTAMP ;
-       return ORDER ;
+       return TIMESTAMP_TOKEN ;
 }
 "("[Pp][Aa][Rr][Aa][Mm][Ee][Tt][Ee][Rr]        return PARAMETER ;
 "("[Ss][Ee][Cc]_[Ll][Ee][Vv][Ee][Ll]   return SEC_LEVEL ;

Index: syntax.yy
===================================================================
RCS file: /sources/certi/certi/libCERTI/syntax.yy,v
retrieving revision 3.5
retrieving revision 3.6
diff -u -b -r3.5 -r3.6
--- syntax.yy   29 Aug 2007 13:07:58 -0000      3.5
+++ syntax.yy   9 Dec 2007 17:02:22 -0000       3.6
@@ -20,7 +20,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: syntax.yy,v 3.5 2007/08/29 13:07:58 erk Exp $
+// $Id: syntax.yy,v 3.6 2007/12/09 17:02:22 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include "fed.hh"
@@ -35,6 +35,7 @@
 extern std::string arg ;
 extern const char *fed_filename ;
 extern int line_number ;
+extern std::string timestamp_arg;
 }}
 
 int yylex();
@@ -62,6 +63,7 @@
 %token SPACE
 %token SPACES
 %token TRANSPORT
+%token TIMESTAMP_TOKEN
 
 %start fed
 
@@ -160,6 +162,15 @@
        | attribute_list attribute ;
 
 attribute:
+       ATTRIBUTE TIMESTAMP_TOKEN TRANSPORT ORDER { certi::fedparser::arg = 
certi::fedparser::timestamp_arg; 
+                                                   
certi::fedparser::addAttribute(); }
+       R_PAR ;
+
+attribute:
+       ATTRIBUTE STRING TRANSPORT TIMESTAMP_TOKEN { 
certi::fedparser::addAttribute(); }
+       R_PAR ;
+
+attribute:
        ATTRIBUTE STRING TRANSPORT ORDER { certi::fedparser::addAttribute(); }
        R_PAR ;
 
@@ -177,6 +188,11 @@
        | interaction_class_list interaction_class ;
 
 interaction_class:
+       CLASS STRING TRANSPORT TIMESTAMP_TOKEN { 
certi::fedparser::startInteraction(); }
+       interaction_class_items { certi::fedparser::endInteraction(); }
+       R_PAR ;
+
+interaction_class:
        CLASS STRING TRANSPORT ORDER { certi::fedparser::startInteraction(); }
        interaction_class_items { certi::fedparser::endInteraction(); }
        R_PAR ;
@@ -195,6 +211,10 @@
        | parameter_list parameter ;
 
 parameter:
+       PARAMETER TIMESTAMP_TOKEN { certi::fedparser::addParameter(); }
+       R_PAR ;
+
+parameter:
        PARAMETER STRING { certi::fedparser::addParameter(); }
        R_PAR ;
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]