def visitLiteral(self, ctx: BKITParser.LiteralContext):
        # One value
        if ctx.lit_type():
            return ctx.lit_type().accept(self)

        if ctx.array_literal():
            return ctx.array_literal().accept(self)
Exemplo n.º 2
0
    def visitLiteral(self, ctx: BKITParser.LiteralContext):

        if ctx.INT():
            a = ctx.INT().getText()
            inlit = 0
            if len(a) > 1:
                if a[1] == 'x' or a[1] == 'X':
                    inlit = int(a, 16)

                elif a[1] == 'o' or a[1] == 'O':
                    inlit = int(a, 8)
                else:
                    inlit = int(a)
            else:
                inlit = int(a)
            return IntLiteral(inlit)
        elif ctx.FLOAT():
            return FloatLiteral(float(ctx.FLOAT().getText()))
        elif ctx.BOOLEAN():

            if ctx.BOOLEAN().getText() == 'True':
                return BooleanLiteral(True)
            else:
                return BooleanLiteral(False)
        elif ctx.STRING():
            return StringLiteral(ctx.STRING().getText())
        else:
            return self.visit(ctx.arr())
Exemplo n.º 3
0
 def visitLiteral(self, ctx: BKITParser.LiteralContext):
     if ctx.INT_LIT():
         return IntLiteral(int(ctx.INT_LIT().getText(), 0))
     if ctx.FLOAT_LIT():
         return FloatLiteral(float(ctx.FLOAT_LIT().getText()))
     if ctx.STRING_LIT():
         return StringLiteral(str(ctx.STRING_LIT().getText()))
     if ctx.bool_lit():
         return self.visit(ctx.bool_lit())
     if ctx.array_lit():
         return self.visit(ctx.array_lit())
Exemplo n.º 4
0
 def visitLiteral(self, ctx:BKITParser.LiteralContext):
     if ctx.INT():
         return IntLiteral(int(ctx.INT().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())
     else:
         return ctx.arr().accept(self)
Exemplo n.º 5
0
 def visitLiteral(self,ctx:BKITParser.LiteralContext):
     if ctx.INTLIT():
         return IntLiteral(int(ctx.INTLIT().getText(),0))
     elif ctx.FLOATLIT():
         return FloatLiteral(float(ctx.FLOATLIT().getText(),))
     elif ctx.BOOLIT():
         return BooleanLiteral(ctx.BOOLIT().getText())
     elif ctx.arrlit():
         return ArrayLiteral(ctx.arrlit().accept(self))
     else:
         return StringLiteral(ctx.STRLIT().getText())
Exemplo n.º 6
0
 def visitLiteral(self, ctx: BKITParser.LiteralContext):
     if ctx.bool_lit():
         return ctx.bool_lit().accept(self)
     if ctx.INT_LIT():  #use helper function visitINT_LIT
         return IntLiteral(self.visitINT_LIT(ctx.INT_LIT().getText()))
     if ctx.FLOAT_LIT():
         return FloatLiteral(float(ctx.FLOAT_LIT().getText()))
     if ctx.STRING_LIT():
         return StringLiteral(ctx.STRING_LIT().getText())
     else:  #case array lit:
         return ctx.array_lit().accept(self)
Exemplo n.º 7
0
 def visitLiteral(self, ctx: BKITParser.LiteralContext):
     if ctx.INT():
         return IntLiteral(int(ctx.INT().getText(), 0))
     elif ctx.FLOAT():
         return FloatLiteral(float(ctx.FLOAT().getText()))
     elif ctx.BOOLEAN():
         return BooleanLiteral(bool(ctx.BOOLEAN().getText() == 'True'))
     return None
    def visitLiteral(self, ctx: BKITParser.LiteralContext):
        """Return literal object"""
        if ctx.arrayLit():
            return ctx.arrayLit().accept(self)
        elif ctx.IntLit():
            # Util func
            def toInt(intStr: str):
                if intStr.startswith("0x") or intStr.startswith("0X"):
                    return int(intStr, 16)
                elif intStr.startswith("0o") or intStr.startswith("0O"):
                    return int(intStr, 8)
                else:
                    return int(intStr, 10)

            return IntLiteral(toInt(ctx.IntLit().getText()))
        elif ctx.FloatLit():
            return FloatLiteral(float(ctx.FloatLit().getText()))
        elif ctx.StrLit():
            return StringLiteral(ctx.StrLit().getText())
        else:
            value = True if ctx.BoolLit().getText() == "True" else False
            return BooleanLiteral(value)
 def visitLiteral(self, ctx: BKITParser.LiteralContext):
     if ctx.INT_LITERAL():
         i = ctx.INT_LITERAL().getText()
         x = i.find('x')
         X = i.find('X')
         o = i.find('o')
         O = i.find('O')
         if (x != -1 or X != -1):
             cvert = int(i, 16)
         elif (o != -1 or O != -1):
             cvert = int(i, 8)
         else:
             cvert = int(i)
         return IntLiteral(cvert)
     if ctx.FLOAT_LITERAL():
         return FloatLiteral(float(ctx.FLOAT_LITERAL().getText()))
     if ctx.BOOLEAN_LITERAL():
         return BooleanLiteral(ctx.BOOLEAN_LITERAL().getText())
     if ctx.STRING_LITERAL():
         return StringLiteral(ctx.STRING_LITERAL().getText())
Exemplo n.º 10
0
 def visitLiteral(self, ctx: BKITParser.LiteralContext):
     if ctx.FLOAT(): return FloatLiteral(float(ctx.FLOAT().getText()))
     elif ctx.bool_literal(): return self.visit(ctx.bool_literal())
     elif ctx.STRING(): return StringLiteral(ctx.STRING().getText())
     elif ctx.DEC(): return IntLiteral(int(ctx.DEC().getText()))
     elif ctx.HEXA(): return IntLiteral(int(ctx.HEXA().getText(), 16))
     elif ctx.OCTAL(): return IntLiteral(int(ctx.OCTAL().getText(), 8))
     else: return self.visit(ctx.array())
Exemplo n.º 11
0
 def visitLiteral(self, ctx: BKITParser.LiteralContext):
     if ctx.boolean_literal():
         return self.visit(ctx.boolean_literal())
     if ctx.STRING_LITERAL():
         return StringLiteral(ctx.STRING_LITERAL().getText())
     if ctx.array_literal():
         return self.visit(ctx.array_literal())
     if ctx.FLOAT_LITERAL():
         return FloatLiteral(float(ctx.FLOAT_LITERAL().getText()))
     if ctx.INTEGER_LITERAL():
         tmp = str(ctx.INTEGER_LITERAL().getText())
         for i in range(len(tmp)):
             if tmp[i] == "O":
                 return IntLiteral(int(ctx.INTEGER_LITERAL().getText(), 8))
             if tmp[i] == "o":
                 return IntLiteral(int(ctx.INTEGER_LITERAL().getText(), 8))
             if tmp[i] == "X":
                 return IntLiteral(int(ctx.INTEGER_LITERAL().getText(), 16))
             if tmp[i] == "x":
                 return IntLiteral(int(ctx.INTEGER_LITERAL().getText(), 16))
         return IntLiteral(int(ctx.INTEGER_LITERAL().getText()))
Exemplo n.º 12
0
 def visitLiteral(self, ctx: BKITParser.LiteralContext):
     if ctx.INTLIT():
         a = ctx.INTLIT().getText()
         if a[0] == '0' and len(a) == 1:
             return IntLiteral(0)
         elif a[0] == '0' and (a[1] == 'x' or a[1] == 'X'):
             result = int(a, 16)
             return IntLiteral(result)
         elif a[0] == '0' and (a[1] == 'o' or a[1] == 'O'):
             result = int(a, 8)
             return IntLiteral(result)
         else:
             return IntLiteral(int(ctx.INTLIT().getText()))
     elif ctx.boollit():
         return self.visit(ctx.boollit())
     elif ctx.STRINGLIT():
         return StringLiteral(ctx.STRINGLIT().getText())
     elif ctx.FLOATLIT():
         return FloatLiteral(float(ctx.FLOATLIT().getText()))
     elif ctx.array():
         return self.visit(ctx.array())