[Spambayes-checkins] spambayes/Outlook2000/dialogs/resources rcparser.py, 1.5, 1.6

Mark Hammond mhammond at users.sourceforge.net
Mon Aug 18 20:19:07 EDT 2003


Update of /cvsroot/spambayes/spambayes/Outlook2000/dialogs/resources
In directory sc8-pr-cvs1:/tmp/cvs-serv1962

Modified Files:
	rcparser.py 
Log Message:
Hacks made while trying to track down another problem.
* When we expect a comma token, check it is.
* When we fail to parse the file, dump the line number and next few toks.
* Print a warning when a negative literal is used as a control ID
  (which is what my problem turned out to be - damn MSVC)


Index: rcparser.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/Outlook2000/dialogs/resources/rcparser.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** rcparser.py	17 Aug 2003 21:09:00 -0000	1.5
--- rcparser.py	19 Aug 2003 02:19:05 -0000	1.6
***************
*** 115,118 ****
--- 115,122 ----
          return self.token
      
+     def getCommaToken(self):
+         tok = self.getToken()
+         assert tok == ",", "Token '%s' should be a comma!" % tok
+     
      def loadDialogs(self, rcFileName):
          """
***************
*** 210,220 ****
              self.getToken()
          dlg.x = int(self.token)
!         self.getToken() # should be ,
          self.getToken() # number
          dlg.y = int(self.token)
!         self.getToken() # should be ,
          self.getToken() # number
          dlg.w = int(self.token)
!         self.getToken() # should be ,
          self.getToken() # number
          dlg.h = int(self.token)
--- 214,224 ----
              self.getToken()
          dlg.x = int(self.token)
!         self.getCommaToken()
          self.getToken() # number
          dlg.y = int(self.token)
!         self.getCommaToken()
          self.getToken() # number
          dlg.w = int(self.token)
!         self.getCommaToken()
          self.getToken() # number
          dlg.h = int(self.token)
***************
*** 287,291 ****
              self.getToken()
          dlg.fontSize = int(self.token)
!         self.getToken() # ,
          self.getToken() # Font name
          dlg.font = self.token[1:-1] # it's quoted
--- 291,295 ----
              self.getToken()
          dlg.fontSize = int(self.token)
!         self.getCommaToken()
          self.getToken() # Font name
          dlg.font = self.token[1:-1] # it's quoted
***************
*** 302,319 ****
              if self.token[0:1]=='"':
                  control.label = self.token[1:-1]
!                 self.getToken() # ,
                  self.getToken()
              elif self.token.isdigit():
                  control.label = self.token
!                 self.getToken() # ,
                  self.getToken()
              control.id = self.token
              control.idNum = self.addId(control.id)
!             self.getToken() # ,
              if control.controlType == "CONTROL":
                  self.getToken()
                  control.subType = self.token[1:-1]
                  # Styles
!                 self.getToken() #,
                  self.getToken()
                  control.style, control.styles = self.styles([], defaultControlStyle)
--- 306,326 ----
              if self.token[0:1]=='"':
                  control.label = self.token[1:-1]
!                 self.getCommaToken()
                  self.getToken()
              elif self.token.isdigit():
                  control.label = self.token
!                 self.getCommaToken()
                  self.getToken()
+             if self.token=='-':
+                 raise RuntimeError, \
+                       "Negative literal in rc script - don't know what to do"
              control.id = self.token
              control.idNum = self.addId(control.id)
!             self.getCommaToken()
              if control.controlType == "CONTROL":
                  self.getToken()
                  control.subType = self.token[1:-1]
                  # Styles
!                 self.getCommaToken()
                  self.getToken()
                  control.style, control.styles = self.styles([], defaultControlStyle)
***************
*** 321,329 ****
              # Rect
              control.x = int(self.getToken())
!             self.getToken() # ,
              control.y = int(self.getToken())
!             self.getToken() # ,
              control.w = int(self.getToken())
!             self.getToken() # ,
              self.getToken()
              control.h = int(self.token)
--- 328,336 ----
              # Rect
              control.x = int(self.getToken())
!             self.getCommaToken()
              control.y = int(self.getToken())
!             self.getCommaToken()
              control.w = int(self.getToken())
!             self.getCommaToken()
              self.getToken()
              control.h = int(self.token)
***************
*** 336,339 ****
  def ParseDialogs(rc_file):
      rcp = RCParser()
!     rcp.loadDialogs(rc_file)
      return rcp
--- 343,355 ----
  def ParseDialogs(rc_file):
      rcp = RCParser()
!     try:
!         rcp.loadDialogs(rc_file)
!     except:
!         print "ERROR parsing dialogs at line", rcp.lex.lineno
!         print "Next 10 tokens are:"
!         for i in range(10):
!             print rcp.lex.get_token(),
!         print
!         raise
! 
      return rcp





More information about the Spambayes-checkins mailing list