if ast is None: print >>sys.stderr, 'Specification could not be parsed.' sys.exit(1) log(2, 'checking types') if not ipdl.typecheck(ast): print >>sys.stderr, 'Specification is not well typed.' sys.exit(1) if not ipdl.checkSyncMessage(ast, syncMsgList): print >>sys.stderr, 'Error: New sync IPC messages must be reviewed by an IPC peer and recorded in %s' % options.syncMsgList sys.exit(1) if _verbosity > 2: log(3, ' pretty printed code:') ipdl.genipdl(ast, codedir) if not ipdl.checkFixedSyncMessages(parser): # Errors have alraedy been printed to stderr, just exit sys.exit(1) # Second pass: generate code for f in files: # Read from parser cache filename = normalizedFilename(f) ast = ipdl.parse(None, filename, includedirs=includedirs) ipdl.gencxx(filename, ast, headersdir, cppdir) if ast.protocol: allmessages[ast.protocol.name] = ipdl.genmsgenum(ast) allprotocols.append('%sMsgStart' % ast.protocol.name)
specstring = fd.read() fd.close() ast = ipdl.parse(specstring, filename, includedirs=includedirs) if ast is None: print >> sys.stderr, 'Specification could not be parsed.' sys.exit(1) log(2, 'checking types') if not ipdl.typecheck(ast): print >> sys.stderr, 'Specification is not well typed.' sys.exit(1) if _verbosity > 2: log(3, ' pretty printed code:') ipdl.genipdl(ast, codedir) # Second pass: generate code for f in files: # Read from parser cache filename = normalizedFilename(f) ast = ipdl.parse(None, filename, includedirs=includedirs) ipdl.gencxx(filename, ast, headersdir, cppdir) if ast.protocol: allprotocols.append('%sMsgStart' % ast.protocol.name) allprotocols.sort() ipcmsgstart = StringIO()