Esempio n. 1
0
 def visitClassDecl(self, node):
     name = node.children[0].children[0].value
     scope_type = "type_decl"
     scope = Scope(node,
                   scope_type=scope_type,
                   scope_name=name,
                   parent=self.scope)
     self.scope.scopes.setdefault(name, scope)
     sym = Symbol(node, scope, name, scope_type)
     type_def = Type_Def(node, name, sym.qualified_name, "scalar_type")
     self.type_defs.setdefault(sym.qualified_name, type_def)
     sym.type_def = type_def
     self.scope.symbols.setdefault(name, sym)
Esempio n. 2
0
 def visitExternType(self, node):
     name = node.children[0].children[0].value
     scope_type = "extern_type"
     # TODO support external types with bodies.
     scope = Scope(node,
                   scope_type=scope_type,
                   scope_name=name,
                   parent=self.scope)
     self.scope.scopes.setdefault(name, scope)
     sym = Symbol(node, scope, name, scope_type)
     type_def = Type_Def(node, name, sym.qualified_name, "scalar_type")
     self.type_defs.setdefault(sym.qualified_name, type_def)
     sym.type_def = type_def
     self.scope.symbols.setdefault(name, sym)