コード例 #1
0
ファイル: ASTGeneration.py プロジェクト: ThaoTrinh/PPL
    def visitExp5(self, ctx: MPParser.Exp5Context):
        if ctx.getChildCount() == 1:
            return self.visit(ctx.exp6())
        exp5 = self.visit(ctx.exp5())
        exp = self.visit(ctx.exp())

        return ArrayCell(exp5, exp)
コード例 #2
0
 def visitExp5(self,ctx:MPParser.Exp5Context):
     if ctx.IDENTIFIER() != None:
         return Id(ctx.IDENTIFIER().getText())
     elif ctx.literal() != None:
         return self.visit(ctx.literal())
     elif ctx.func_call() != None:
         return self.visit(ctx.func_call())
     elif ctx.exp() != None:
         return self.visit(ctx.exp())
     else: 
         return self.visit(ctx.index_express())
コード例 #3
0
 def visitExp5(self, ctx: MPParser.Exp5Context):
     if ctx.literals():
         return self.visit(ctx.literals())
     elif ctx.arrayvar():
         return self.visit(ctx.arrayvar())
     elif ctx.callnosemi():
         return self.visit(ctx.callnosemi())
     elif ctx.ID():
         return Id(ctx.ID().getText())
コード例 #4
0
ファイル: ASTGeneration.py プロジェクト: sarv19/ass3_2
 def visitExp5(self, ctx: MPParser.Exp5Context):
     if (ctx.NOT()):
         return UnaryOp(ctx.NOT().getText(), self.visit(ctx.exp5()))
     elif (ctx.SUBNE()):
         return UnaryOp("-", self.visit(ctx.exp5()))
     else:
         return self.visit(ctx.exp6())
コード例 #5
0
ファイル: ASTGeneration.py プロジェクト: hungdao1311/PPL-A03
 def visitExp5(self, ctx: MPParser.Exp5Context):
     if ctx.getChildCount() == 1:
         return self.visitChildren(ctx)
     return self.visit(ctx.exp())
コード例 #6
0
 def visitExp5(self, ctx: MPParser.Exp5Context):
     if ctx.getChildCount() == 1:
         return self.visit(ctx.exp6())
     else:
         return ArrayCell(self.visit(ctx.exp6()), self.visit(ctx.exp(0)))
コード例 #7
0
 def visitExp5(self, ctx: MPParser.Exp5Context):
     if ctx.getChildCount() == 1:
         return self.visit(ctx.exp6())
     else:
         return UnaryOp(ctx.getChild(0).getText(), self.visit(ctx.exp5()))
コード例 #8
0
 def visitExp5(self, ctx:MPParser.Exp5Context):
     if ctx.getChildCount() == 3:
         return self.visit(ctx.expr())
     elif ctx.ID():
         return Id(ctx.ID().getText())
     elif ctx.invoke():
         return self.visit(ctx.invoke())
     elif ctx.indexExpr():
         return self.visit(ctx.indexExpr())
     elif ctx.INTLIT():
         return IntLiteral(int(ctx.INTLIT().getText()))
     elif ctx.REALLIT():
         return FloatLiteral(float(ctx.REALLIT().getText()))
     elif ctx.BOOLLIT():
         return BooleanLiteral(tobool(ctx.BOOLLIT().getText()))
     elif ctx.STRINGLIT():
         return StringLiteral(ctx.STRINGLIT().getText())
コード例 #9
0
ファイル: ASTGeneration.py プロジェクト: hieupham9809/ASS3PPL
 def visitExp5(self, ctx:MPParser.Exp5Context):
     if ctx.LSB():
         return ArrayCell(self.visit(ctx.exp5()), self.visit(ctx.expression()))
     else: return self.visit(ctx.exp6())
コード例 #10
0
 def visitExp5(self, ctx: MPParser.Exp5Context):
     if ctx.literal():
         return self.visit(ctx.literal())
     elif ctx.ID():
         return Id(ctx.ID().getText())
     elif ctx.funcallExp():
         return self.visit(ctx.funcallExp())
     elif ctx.indexExpression():
         return self.visit(
             ctx.indexExpression())  # self.visit(ctx.indexExpression())
     elif ctx.LB() and ctx.RB():
         return self.visit(ctx.exp())
コード例 #11
0
 def visitExp6(self, ctx: MPParser.Exp5Context):
     if ctx.op():
         return self.visit(ctx.op())
     else:
         return self.visit(ctx.expr())
コード例 #12
0
 def visitExp5(self, ctx: MPParser.Exp5Context):
     '''exp5: exp5 LSB exp RSB | exp6;'''
     return ArrayCell(self.visit(ctx.exp5()), self.visit(
         ctx.exp())) if ctx.getChildCount() == 4 else self.visit(ctx.exp6())