[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[certi-cvs] certi/scripts GenMsgCXX.py GenerateMessages.py ...
From: |
certi-cvs |
Subject: |
[certi-cvs] certi/scripts GenMsgCXX.py GenerateMessages.py ... |
Date: |
Thu, 10 Jun 2010 07:30:47 +0000 |
CVSROOT: /sources/certi
Module name: certi
Changes by: Eric NOULARD <erk> 10/06/10 07:30:47
Modified files:
scripts : GenMsgCXX.py GenerateMessages.py GenMsgAST.py
Log message:
Merge from Lucas ALBA work
- make receiver optional
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/GenMsgCXX.py?cvsroot=certi&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/GenerateMessages.py?cvsroot=certi&r1=1.38&r2=1.39
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/GenMsgAST.py?cvsroot=certi&r1=1.9&r2=1.10
Patches:
Index: GenMsgCXX.py
===================================================================
RCS file: /sources/certi/certi/scripts/GenMsgCXX.py,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- GenMsgCXX.py 9 Jun 2010 15:25:07 -0000 1.15
+++ GenMsgCXX.py 10 Jun 2010 07:30:47 -0000 1.16
@@ -17,7 +17,7 @@
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
## USA
##
-## $Id: GenMsgCXX.py,v 1.15 2010/06/09 15:25:07 erk Exp $
+## $Id: GenMsgCXX.py,v 1.16 2010/06/10 07:30:47 erk Exp $
## ----------------------------------------------------------------------------
"""
@@ -446,6 +446,7 @@
stream.write(" ,%s" %(exception))
stream.write("); \n")
+ if self.AST.factory.hasFactoryReceiver():
stream.write(self.getIndent()+"static %s* %s(%s stream) throw ("%
self.AST.factory.receiver)
stream.write("%s" %(self.exception[0]))
for exception in self.exception[1:]:
@@ -703,6 +704,8 @@
stream.write(self.getIndent()+"this->messageName =
\""+msg.name+"\";\n")
if (None!=self.replacePrefix):
stream.write(self.getIndent()+"this->type =
"+msg.name.upper().replace(self.replacePrefix[0],self.replacePrefix[1],1)+";\n")
+ else:
+ stream.write(self.getIndent()+"this->type =
"+msg.name.upper()+";\n")
# Write init value if any was provided
if len(msg.fields)>0:
@@ -767,6 +770,7 @@
# begin creator
self.writeFactoryCreator(stream)
# begin receiver
+ if self.AST.factory.hasFactoryReceiver():
self.writeFactoryReceiver(stream)
self.closeNamespaces(stream)
Index: GenerateMessages.py
===================================================================
RCS file: /sources/certi/certi/scripts/GenerateMessages.py,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -b -r1.38 -r1.39
--- GenerateMessages.py 9 Jun 2010 15:25:07 -0000 1.38
+++ GenerateMessages.py 10 Jun 2010 07:30:47 -0000 1.39
@@ -19,7 +19,7 @@
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
## USA
##
-## $Id: GenerateMessages.py,v 1.38 2010/06/09 15:25:07 erk Exp $
+## $Id: GenerateMessages.py,v 1.39 2010/06/10 07:30:47 erk Exp $
## ----------------------------------------------------------------------------
"""
@@ -311,10 +311,20 @@
p[0]=GenMsgAST.Version((p[2],p[4]))
def p_factory(p):
- '''factory : FACTORY ID LBRACE factory_creator factory_receiver RBRACE'''
+ '''factory : FACTORY ID LBRACE factory_creator factory_receiver RBRACE
+ | FACTORY ID LBRACE factory_creator RBRACE'''
+
+
+ if len(p)==7:
p[0] = GenMsgAST.Factory(p[2],p[4],p[5])
p[0].linespan = (p.linespan(1)[0],p.linespan(6)[1])
+ elif len(p)==6:
+ p[0] = GenMsgAST.Factory(p[2],p[4])
+ p[0].linespan = (p.linespan(1)[0],p.linespan(5)[1])
+
+
+
def p_factory_creator(p):
'''factory_creator : FACTORY_CREATOR ID ID LPAREN ID RPAREN'''
p[0]=(p[2],p[3],p[5])
Index: GenMsgAST.py
===================================================================
RCS file: /sources/certi/certi/scripts/GenMsgAST.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- GenMsgAST.py 9 Jun 2010 15:27:34 -0000 1.9
+++ GenMsgAST.py 10 Jun 2010 07:30:47 -0000 1.10
@@ -17,7 +17,7 @@
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
## USA
##
-## $Id: GenMsgAST.py,v 1.9 2010/06/09 15:27:34 erk Exp $
+## $Id: GenMsgAST.py,v 1.10 2010/06/10 07:30:47 erk Exp $
## ----------------------------------------------------------------------------
"""
@@ -340,11 +340,17 @@
A C{Factory} is anC{ASTElement} whose
name is a C{string}.
"""
- def __init__(self,name,creator,receiver):
+ def __init__(self,name,creator,receiver=None):
super(Factory,self).__init__(name)
self.creator = creator
self.receiver = receiver
+ def hasFactoryCreator(self):
+ return self.creator != None
+
+ def hasFactoryReceiver(self):
+ return self.receiver != None
+
def __repr__(self):
res="factory %s" % self.name
res=res+ ", creator = %s %s(%s)" % creator
@@ -597,7 +603,7 @@
msg.merge = AST.getType(msg.merge)
# check the factory methods
- if AST.hasFactory():
+ if AST.factory.hasFactoryCreator():
if not AST.isDefined(AST.factory.creator[0]):
self.logger.fatal("The return type <%s> of the creator factory
method is unknown (not a builtin, nor native, nor message)" %
AST.factory.creator[0])
self.logger.fatal(" --> Check lines (%d,%d)" %
(AST.factory.linespan) + " of <%s>" % AST.name )
@@ -605,7 +611,10 @@
if not AST.isDefined(AST.factory.creator[2]):
self.logger.fatal("The parameter type <%s> of the creator
factory method is unknown (not a builtin, nor native, nor message)" %
AST.factory.creator[2])
self.logger.fatal(" --> Check lines (%d,%d)" %
(AST.factory.linespan) + " of <%s>" % AST.name )
+
return
+
+ if AST.factory.hasFactoryReceiver():
if not AST.isDefined(AST.factory.receiver[0]):
self.logger.fatal("The return type <%s> of the receiver
factory method is unknown (not a builtin, nor native, nor message)" %
AST.factory.receiver[0])
self.logger.fatal(" --> Check lines (%d,%d)" %
(AST.factory.linespan) + " of <%s>" % AST.name )