예제 #1
0
 def visitLiteral(self, ctx: BKITParser.ProgramContext):
     if (ctx.INTEGER_LITERAL()):
         return IntLiteral(int(ctx.INTEGER_LITERAL().getText(), 0))
     if (ctx.FLOAT_LITERAL()):
         return FloatLiteral(float(ctx.FLOAT_LITERAL().getText()))
     if (ctx.STRING_LITERAL()):
         return StringLiteral(ctx.STRING_LITERAL().getText())
     if (ctx.array_literal()):
         return ctx.array_literal().accept(self)
     return ctx.bool_literal().accept(self)
예제 #2
0
    def visitArray_type(self, ctx: BKITParser.ProgramContext):
        variable = {
            "id": Id(ctx.ID().getText()),
            "dimension": [],
        }
        # calc dimension
        listOfDimension = list(
            map(lambda x: int(x.getText(), 0), ctx.INTEGER_LITERAL()))
        variable['dimension'] = listOfDimension

        return variable