# -------------------- _builtinloc = Loc('<builtin>', 0) def makeBuiltinUsing(tname): quals = tname.split('::') base = quals.pop() quals = quals[0:] return UsingStmt( _builtinloc, TypeSpec(_builtinloc, QualifiedId(_builtinloc, base, quals))) builtinUsing = [makeBuiltinUsing(t) for t in builtin.Types] builtinHeaderIncludes = [ CxxInclude(_builtinloc, f) for f in builtin.HeaderIncludes ] def errormsg(loc, fmt, *args): while not isinstance(loc, Loc): if loc is None: loc = Loc.NONE else: loc = loc.loc return '%s: error: %s' % (str(loc), fmt % args) # --------------------
##-------------------- _builtinloc = Loc('<builtin>', 0) def makeBuiltinUsing(tname): quals = tname.split('::') base = quals.pop() quals = quals[0:] return UsingStmt( _builtinloc, TypeSpec(_builtinloc, QualifiedId(_builtinloc, base, quals))) builtinUsing = [makeBuiltinUsing(t) for t in builtin.Types] builtinIncludes = [CxxInclude(_builtinloc, f) for f in builtin.Includes] def errormsg(loc, fmt, *args): while not isinstance(loc, Loc): if loc is None: loc = Loc.NONE else: loc = loc.loc return '%s: error: %s' % (str(loc), fmt % args) ##-------------------- class SymbolTable: def __init__(self, errors): self.errors = errors self.scopes = [{}] # stack({}) self.globalScope = self.scopes[0]