Beispiel #1
0
    def visitProcdecl(self, ctx: MPParser.ProcdeclContext):
        id = Id(ctx.ID().getText())
        param = self.visit(ctx.paramdecl()) if ctx.paramdecl() else []
        var = self.visit(ctx.vardecl()) if ctx.vardecl() else []
        body = flatten([self.visit(ctx.compoundstm())])

        return [FuncDecl(id, param, var, body)]
Beispiel #2
0
 def visitProcdecl(self, ctx: MPParser.ProcdeclContext):
     para = self.visit(ctx.paramlist())
     #varType= self.visit(ctx.vartype())
     cpstate = self.visit(ctx.cpstate())
     # print(cpstate)
     if ctx.varDeclare() is not None:
         return FuncDecl(Id(ctx.ID().getText()), para,
                         self.visit(ctx.varDeclare()), cpstate)
     return FuncDecl(Id(ctx.ID().getText()), para, [], cpstate)
Beispiel #3
0
    def visitProcdecl(self, ctx: MPParser.ProcdeclContext):
        local, cpstmt = self.visit(ctx.body())

        return FuncDecl(Id(ctx.ID().getText()), [], local, cpstmt)
Beispiel #4
0
 def visitProcdecl(self, ctx: MPParser.ProcdeclContext):
     return 6 + self.visit(ctx.body())
Beispiel #5
0
 def visitProcdecl(self, ctx: MPParser.ProcdeclContext):
     cpstmt = self.visit(ctx.body())
     return FuncDecl(Id(ctx.ID().getText()),
                     self.visit(ctx.plist()) if ctx.plist() else [],
                     self.visit(ctx.vardecl()) if ctx.vardecl() else [],
                     cpstmt)
Beispiel #6
0
 def visitProcdecl(self, ctx: MPParser.ProcdeclContext):
     local, cpstmt = self.visit(
         ctx.vardecl()) if ctx.vardecl() else [], self.visit(
             ctx.compoundstatement())
     return FuncDecl(Id(ctx.ID().getText()), self.visit(ctx.pardec()),
                     local, cpstmt)