コード例 #1
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())
コード例 #2
0
ファイル: ASTGeneration.py プロジェクト: pipirad/PPL_HCMUT
 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())
コード例 #3
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
コード例 #4
0
ファイル: ASTGeneration.py プロジェクト: tvhhh/bkit
 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)