Bug 1318743 - Remove errout from IPDL parser. r=billm
MozReview-Commit-ID: 922dDCgd6s6
--- a/ipc/ipdl/ipdl/__init__.py
+++ b/ipc/ipdl/ipdl/__init__.py
@@ -23,33 +23,33 @@ def parse(specstring, filename='/stdin',
prefix, ext = os.path.splitext(filename)
name = os.path.basename(prefix)
if ext == '.ipdlh':
type = 'header'
else:
type = 'protocol'
try:
- return Parser(type, name).parse(specstring, os.path.abspath(filename), includedirs, errout)
+ return Parser(type, name).parse(specstring, os.path.abspath(filename), includedirs)
except ParseError as p:
print >>errout, p
return None
def typecheck(ast, errout=sys.stderr):
'''Return True iff |ast| is well typed. Print errors to |errout| if
it is not.'''
return TypeCheck().check(ast, errout)
def gencxx(ipdlfilename, ast, outheadersdir, outcppdir):
headers, cpps = LowerToCxx().lower(ast)
def resolveHeader(hdr):
return [
- hdr,
+ hdr,
os.path.join(
outheadersdir,
*([ns.name for ns in ast.namespaces] + [hdr.name]))
]
def resolveCpp(cpp):
return [ cpp, os.path.join(outcppdir, cpp.name) ]
for ast, filename in ([ resolveHeader(hdr) for hdr in headers ]
--- a/ipc/ipdl/ipdl/parser.py
+++ b/ipc/ipdl/ipdl/parser.py
@@ -47,34 +47,32 @@ class Parser:
self.debug = debug
self.filename = None
self.includedirs = None
self.loc = None # not always up to date
self.lexer = None
self.parser = None
self.tu = TranslationUnit(type, name)
self.direction = None
- self.errout = None
- def parse(self, input, filename, includedirs, errout):
+ def parse(self, input, filename, includedirs):
assert os.path.isabs(filename)
if filename in Parser.parsed:
return Parser.parsed[filename].tu
self.lexer = lex.lex(debug=self.debug,
optimize=not self.debug,
lextab="ipdl_lextab")
self.parser = yacc.yacc(debug=self.debug,
optimize=not self.debug,
tabmodule="ipdl_yacctab")
self.filename = filename
self.includedirs = includedirs
self.tu.filename = filename
- self.errout = errout
Parser.parsed[filename] = self
Parser.parseStack.append(Parser.current)
Parser.current = self
try:
ast = self.parser.parse(input=input, lexer=self.lexer,
debug=self.debug)
@@ -265,17 +263,17 @@ def p_IncludeStmt(p):
type = 'header'
inc = Include(loc, type, id)
path = Parser.current.resolveIncludePath(inc.file)
if path is None:
raise ParseError(loc, "can't locate include file `%s'"% (
inc.file))
- inc.tu = Parser(type, id).parse(open(path).read(), path, Parser.current.includedirs, Parser.current.errout)
+ inc.tu = Parser(type, id).parse(open(path).read(), path, Parser.current.includedirs)
p[0] = inc
def p_UsingStmt(p):
"""UsingStmt : USING CxxType FROM STRING
| USING CLASS CxxType FROM STRING
| USING STRUCT CxxType FROM STRING"""
if 6 == len(p):
header = p[5]