예제 #1
0
 def visitFunc_type(self, ctx: MCParser.Func_typeContext):
     if ctx.VOIDTYPE():
         return VoidType()
     elif ctx.LS():
         return ArrayPointerType(self.visit(ctx.primitive_type()))
     else:
         return self.visit(ctx.primitive_type())
예제 #2
0
 def visitFunc_type(self, ctx:MCParser.Func_typeContext):
     # func_type : primitive_type | VOIDTYPE | output_array_pointer_type ;
     if ctx.primitive_type():
         return self.visit(ctx.primitive_type())
     elif ctx.VOIDTYPE():
         return VoidType()
     else:
         return self.visit(ctx.output_array_pointer_type())
 def visitFunc_type(self,ctx:MCParser.Func_typeContext):
     return [VoidType()]+[Id(ctx.ID().getText())] if ctx.VOIDTYPE() else [ArrayPointerType(self.visit(ctx.primitive_type()))] + self.visit(ctx.array_id_func()) if ctx.array_id_func() else [self.visit(ctx.primitive_type())]+[Id(ctx.ID().getText())]
예제 #4
0
 def visitFunc_type(self, ctx:MCParser.Func_typeContext):
     if ctx.VOIDTYPE(): return VoidType()
     elif ctx.getChildCount() == 3: return ArrayPointerType(self.visitPrimitive_type(ctx.primitive_type()))
     else: return self.visitPrimitive_type(ctx.primitive_type())