def visitExp9(self, ctx: MCParser.Exp9Context):
     if ctx.INTLIT():
         return IntLiteral(int(ctx.INTLIT().getText()))
     elif ctx.FLOATLIT():
         return FloatLiteral(float(ctx.FLOATLIT().getText()))
     elif ctx.BOOLLIT():
         return BooleanLiteral(tobool(ctx.BOOLLIT().getText()))
     elif ctx.STRINGLIT():
         return StringLiteral(tobool(ctx.STRINGLIT().getText()))
     elif ctx.ID():
         return Id(ctx.ID().getText())
     else:
         return self.visit(ctx.getChild(0))
예제 #2
0
 def visitExp9(self, ctx: MCParser.Exp9Context):
     #exp9: LB exp RB | (INTLIT | FLOATLIT | BOOLEANLIT | STRINGLIT | ID | invokeExp) ;
     if ctx.getChildCount() == 3:
         return self.visit(ctx.exp())
     else:
         if ctx.INTLIT():
             return IntLiteral(int(ctx.INTLIT().getText()))
         elif ctx.FLOATLIT():
             return FloatLiteral(float(ctx.FLOATLIT().getText()))
         elif ctx.BOOLEANLIT():
             return BooleanLiteral(bool("1")) if ctx.BOOLEANLIT().getText(
             ) == "true" else BooleanLiteral(bool(""))
         elif ctx.STRINGLIT():
             return StringLiteral(ctx.STRINGLIT().getText())
         elif ctx.ID():
             return Id(ctx.ID().getText())
         else:
             return self.visit(ctx.invokeExp())