示例#1
0
 def visitOperand(self, ctx: MCParser.OperandContext):
     if ctx.funcall(): return self.visit(ctx.funcall())
     elif ctx.variable(): return self.visit(ctx.variable())
     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())
     elif ctx.TRUE():
         return BooleanLiteral(True)
     else:
         return BooleanLiteral(False)
 def visitOperand(self, ctx: MCParser.OperandContext):
     #operand: INTLIT | FLOATLIT | BOOLEANLIT | STRINGLIT | funcall | ID ;
     if ctx.INTLIT():
         return IntLiteral(int(ctx.INTLIT().getText()))
     if ctx.FLOATLIT():
         return FloatLiteral(float(ctx.FLOATLIT().getText()))
     if ctx.BOOLEANLIT():
         return BooleanLiteral(ctx.BOOLEANLIT().getText())
     if ctx.STRINGLIT():
         return StringLiteral(ctx.STRINGLIT().getText())
     if ctx.funcall():
         return self.visit(ctx.funcall())
     if ctx.ID():
         return Id(ctx.ID().getText())
示例#3
0
 def visitOperand(self, ctx: MCParser.OperandContext):
     if ctx.INTLIT():
         return IntLiteral(ctx.INTLIT())
     elif ctx.BOOLLIT():
         return BooleanLiteral(ctx.BOOLLIT())
     elif ctx.FLOATLIT():
         return FloatLiteral(ctx.FLOATLIT())
     elif ctx.STRLIT():
         return StringLiteral(ctx.STRLIT().getText())
     elif ctx.ID():
         return Id(ctx.ID().getText())
     elif ctx.index_exp():
         return self.visit(ctx.index_exp())
     elif ctx.funcall():
         return self.visit(ctx.funcall())
 def visitOperand(self,ctx:MCParser.OperandContext):
     if ctx.literals():
         return self.visit(ctx.literals())
     elif ctx.ID():
         return Id(ctx.ID().getText())
     else:
         return self.visit(ctx.funcall())
示例#5
0
 def visitOperand(self, ctx: MCParser.OperandContext):
     if ctx.INTLIT():
         return IntLiteral(int(ctx.INTLIT().getText()))
     elif ctx.Booleanlit():
         return BooleanLiteral(True if ctx.Booleanlit().getText()[0] ==
                               "t" else False)
     elif ctx.Realit():
         return FloatLiteral(float(ctx.Realit().getText()))
     elif ctx.ID():
         return Id(ctx.ID().getText())
     elif ctx.Stringlit():
         return StringLiteral(ctx.Stringlit().getText())
     return self.visit(ctx.funcall())
 def visitOperand(self, ctx: MCParser.OperandContext):
     if ctx.INTLIT():
         return IntLiteral(int(ctx.INTLIT().getText()))
     elif ctx.BOOLLIT():
         return BooleanLiteral(True if ctx.BOOLLIT().getText() ==
                               "true" else False)
     elif ctx.FLOATLIT():
         return FloatLiteral(float(ctx.FLOATLIT().getText()))
     elif ctx.ID():
         return Id(ctx.ID().getText())
     elif ctx.STRINGLIT():
         return StringLiteral(ctx.STRINGLIT().getText())
     return self.visit(ctx.funcall())
示例#7
0
 def visitOperand(self, ctx: MCParser.OperandContext):
     # operand: literal | ID | funcall;
     return self.visit(ctx.literal()) if ctx.literal() else Id(
         ctx.ID().getText()) if ctx.ID() else self.visit(ctx.funcall())