コード例 #1
0
 def visitLiteral(self, ctx: MPParser.LiteralContext):
     '''literal: INTLIT | REALIT | BOOLIT | STRLIT;'''
     if ctx.INTLIT(): return IntLiteral(int(ctx.INTLIT().getText()))
     if ctx.REALIT(): return FloatLiteral(float(ctx.REALIT().getText()))
     if ctx.BOOLIT():
         return BooleanLiteral(False) if ctx.BOOLIT().getText().lower(
         ) == "false" else BooleanLiteral(True)
     if ctx.STRLIT(): return StringLiteral(str(ctx.STRLIT().getText()))
コード例 #2
0
 def visitLiteral(self, ctx: MPParser.LiteralContext):
     if ctx.INTLIT():
         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()))
コード例 #3
0
 def visitLiteral(self, ctx: MPParser.LiteralContext):
     log('visitLiteral')
     if ctx.INTEGER_LITERAL():
         log1('INTEGER_LITERAL')
         log1(int(ctx.INTEGER_LITERAL().getText()))
         return IntLiteral(int(ctx.INTEGER_LITERAL().getText()))
     if ctx.REAL_LITERAL():
         log1('REAL_LITERAL')
         log1(float(ctx.REAL_LITERAL().getText()))
         return FloatLiteral(float(ctx.REAL_LITERAL().getText()))
     if ctx.STRING_LITERAL():
         log1('STRING_LITERAL')
         return StringLiteral(ctx.STRING_LITERAL().getText())
     return self.visit(ctx.boolean_literal())
コード例 #4
0
 def visitLiteral(self,ctx:MPParser.LiteralContext):
     if ctx.INTEGER_TYPE() != None:
         return IntLiteral(int(ctx.INTEGER_TYPE().getText()))
     elif ctx.REAL_TYPE() != None:
         return FloatLiteral(float(ctx.REAL_TYPE().getText()))
     elif ctx.STRINGLIT() != None:
         return StringLiteral(ctx.STRINGLIT().getText())
     else:
         return self.visit(ctx.boolean_type())
コード例 #5
0
ファイル: ASTGeneration.py プロジェクト: negordyh/PPL_BKIT
 def visitLiteral(self, ctx:MPParser.LiteralContext):
     if ctx.INTEGERLITERAL():
         return IntLiteral(int(ctx.INTEGERLITERAL().getText()))
     elif ctx.REALLITERAL():
         return FloatLiteral(float(ctx.REALLITERAL().getText()))
     elif ctx.BOOLEANLITERAL():
         return BooleanLiteral(True if ctx.BOOLEANLITERAL().getText()[0] in ["T","t"] else False)
     else:
         return StringLiteral(ctx.STRINGLITERAL().getText())
コード例 #6
0
 def visitLiteral(self, ctx: MPParser.LiteralContext):
     #literal:INT_LIT | BOOL_LIT | REAL_LIT | STRING_LIT
     if ctx.INT_LIT():
         return IntLiteral(int(ctx.INT_LIT().getText()))
     elif ctx.BOOL_LIT():
         return BooleanLiteral(bool(ctx.BOOL_LIT().getText()))
     elif ctx.REAL_LIT():
         return FloatLiteral(float(ctx.REAL_LIT().getText()))
     else:
         return StringLiteral(ctx.STRING_LIT().getText())