コード例 #1
0
 def visitOperand(self, ctx: MPParser.OperandContext):
     if ctx.INTLIT(): return IntLiteral(int(ctx.INTLIT().getText()))
     elif ctx.REALIT(): return FloatLiteral(float(ctx.REALIT().getText()))
     elif ctx.STRLIT(): return StringLiteral(ctx.STRLIT().getText())
     elif ctx.BOOLIT():
         return BooleanLiteral(True if (
             ctx.BOOLIT().getText().lower()) == 'true' else False)
     else:
         return Id(ctx.ID().getText())
コード例 #2
0
 def visitOperand(self, ctx: MPParser.OperandContext):
     if ctx.ID():
         return Id(ctx.ID().getText())
     elif ctx.INTLIT():
         return IntLiteral(int(ctx.INTLIT().getText()))
     elif ctx.FLOATLIT():
         return FloatLiteral(float(ctx.FLOATLIT().getText()))
     elif ctx.STRINGLIT():
         return StringLiteral(ctx.STRINGLIT().getText())
     else:
         #return BooleanLiteral(ctx.BOOLLIT().getText())
         return BooleanLiteral(False if ctx.BOOLLIT().getText()[0] in
                               ["F", "f"] else True)
コード例 #3
0
 def visitOperand(self, ctx:MPParser.OperandContext):
     #print("operand")
     if  ctx.getChild(0) == ctx.literals():
         return self.visit(ctx.literals())
     elif ctx.getChild(0) == ctx.ID():
         return Id(ctx.ID().getText())
     else: 
         return self.visit(ctx.funcall())
コード例 #4
0
 def visitOperand(self, ctx: MPParser.OperandContext):
     if ctx.ID():
         return Id(ctx.ID().getText())
     elif ctx.INTLIT():
         return IntLiteral(int(ctx.INTLIT().getText()))
     elif ctx.BOOLIT():
         return BooleanLiteral(self.toBool(ctx.BOOLIT().getText()))
     else:
         return self.visit(ctx.exp())
コード例 #5
0
 def visitOperand(self, ctx: MPParser.OperandContext):
     if ctx.operand2():
         return self.visit(ctx.operand2())
     else:
         return self.visit(ctx.exp_id())
コード例 #6
0
 def visitOperand(self, ctx: MPParser.OperandContext):
     '''operand: literal | IDENTIFIER | funcall;'''
     return Id(
         ctx.IDENTIFIER().getText()) if ctx.IDENTIFIER() else self.visit(
             ctx.getChild(0))