Пример #1
0
 def visitOperand(self, ctx: BKITParser.OperandContext):
     if ctx.getChildCount() == 3:
         return self.visit(ctx.exp())
     else:
         if ctx.ID():
             return Id(ctx.ID().getText())
         else:
             return self.visit(ctx.getChild(0))
Пример #2
0
 def visitOperand(self, ctx: BKITParser.OperandContext):
     if ctx.literal():
         return self.visit(ctx.literal())
     elif ctx.ID():
         return Id(ctx.ID().getText())
     elif ctx.callexpr():
         return self.visit(ctx.callexpr())
     elif ctx.expr() and ctx.LB() and ctx.RB():
         return self.visit(ctx.expr())
Пример #3
0
 def visitOperand(self, ctx: BKITParser.OperandContext):
     # '(' exp ')'
     if (ctx.getChildCount() == 3):
         return ctx.exp().accept(self)
     # ID | INTLIT | BOOLIT
     if (ctx.ID() != None):
         return Id(ctx.ID().getText())
     if (ctx.INTLIT() != None):
         return IntLiteral(ctx.INTLIT().getText())
     if (ctx.BOOLIT() != None):
         return BooleanLiteral(ctx.BOOLIT().getText())
Пример #4
0
 def visitOperand(self, ctx: BKITParser.OperandContext):
     if ctx.ID():
         return Id(ctx.ID().getText())
         # elif ctx.typearray(): return self.visit(ctx.typearray())
     elif ctx.literal():
         return self.visit(ctx.literal())
     elif ctx.call_func():
         return self.visit(ctx.call_func())
     else:
         return self.visit(ctx.exp())
Пример #5
0
 def visitOperand(self, ctx:BKITParser.OperandContext):
     if ctx.ID():
         return Id(ctx.ID().getText())
     if ctx.primitive_data():
         return self.visitPrimitive_data(ctx.primitive_data())
     if ctx.array_lit():
         return self.visitArray_lit(ctx.array_lit())
Пример #6
0
 def visitOperand(self, ctx: BKITParser.OperandContext):
     if ctx.var_non_init():
         return self.visitVar_non_init(ctx.var_non_init())
     if ctx.primitive_data():
         return self.visitPrimitive_data(ctx.primitive_data())
     if ctx.array_lit():
         return self.visitArray_lit(ctx.array_lit())
Пример #7
0
    def visitOperand(self, ctx: BKITParser.OperandContext):
        if ctx.INTLIT():
            return IntLiteral(int(ctx.INTLIT().getText()))

        if ctx.BOOLIT():
            return BoolLiteral(bool(ctx.BOOLIT().getText()))

        if ctx.ID():
            return Id(ctx.ID().getText())

        return self.visitExp(ctx.exp())
Пример #8
0
 def visitOperand(self, ctx: BKITParser.OperandContext):
     if ctx.ID():
         return Id(ctx.ID().getText())
     elif ctx.type_list():
         return self.visit(ctx.type_list())
     elif ctx.sub_expression():
         return self.visit(ctx.sub_expression())
     elif ctx.array_id():
         return self.visit(ctx.array_id())
     elif ctx.function_call():
         return self.visit(ctx.function_call())
     elif ctx.index_operator():
         return self.visit(ctx.index_operator())
Пример #9
0
 def visitOperand(self, ctx: BKITParser.OperandContext):
     if ctx.callee():
         return self.visit(ctx.callee())
     elif ctx.INTERGER():
         return VarDecl(Id(ctx.ID().getText()), [],
                        IntLiteral(int(ctx.INTERGER().getText(), 0)))
     elif ctx.FLOAT():
         return VarDecl(Id(ctx.ID().getText()), [],
                        FloatLiteral(float(ctx.FLOAT().getText())))
     elif ctx.BOOLEAN():
         return VarDecl(Id(ctx.ID().getText()), [],
                        BooleanLiteral(ctx.BOOLEAN().getText() == 'True'))
     elif ctx.STRING():
         return VarDecl(Id(ctx.ID().getText()), [],
                        StringLiteral(ctx.STRING().getText()))
     elif ctx.ID():
         return VarDecl(Id(ctx.ID().getText()), [], None)
     return ArrayLiteral(ctx.ARRAY().getText())
 def visitOperand(self, ctx: BKITParser.OperandContext):
     if ctx.ID():
         return Id(ctx.ID().getText())
     elif ctx.INT_LIT():
         return IntLiteral(
             self.IntegerStandardization(ctx.INT_LIT().getText()))
     elif ctx.FLOAT_LIT():
         return FloatLiteral(float(ctx.FLOAT_LIT().getText()))
     elif ctx.BOOL_LIT():
         temp = ctx.BOOL_LIT().getText()
         if temp == 'False':
             return BooleanLiteral(False)
         else:
             return BooleanLiteral(True)
     elif ctx.STRING_LIT():
         return StringLiteral(ctx.STRING_LIT().getText())
     elif ctx.function_call():
         return self.visit(ctx.function_call())
     elif ctx.element_expression():
         return self.visit(ctx.element_expression())
     elif ctx.array_lit():
         return self.visit(ctx.array_lit())
     else:
         return self.visit(ctx.exp())
Пример #11
0
 def visitOperand(self, ctx: BKITParser.OperandContext):
     if ctx.callee():
         return self.visit(ctx.callee())
     elif ctx.INTERGER():
         return IntLiteral(int(ctx.INTERGER().getText(), 0))
     elif ctx.FLOAT():
         return FloatLiteral(float(ctx.FLOAT().getText()))
     elif ctx.BOOLEAN():
         return BooleanLiteral(ctx.BOOLEAN().getText() == 'True')
     elif ctx.STRING():
         return StringLiteral(ctx.STRING().getText())
     elif ctx.ID():
         return Id(ctx.ID().getText())
     return self.visit(ctx.array())
 def visitOperand(self, ctx: BKITParser.OperandContext):
     """Return operand object"""
     if ctx.ID():
         return Id(ctx.ID().getText())
     else:
         return ctx.literal().accept(self)