def testParseCallExpr(self): self.assertEqual(ParseExprFromStr('整老王')[0], CallExpr('老王', [])) self.assertEqual( ParseExprFromStr('整老王(5)')[0], CallExpr('老王', [IntegerLiteralExpr(5)])) self.assertEqual( ParseExprFromStr('整老王(6)')[0], CallExpr('老王', [IntegerLiteralExpr(6)])) self.assertEqual( ParseExprFromStr('整老王(老刘,6)')[0], CallExpr( '老王', [VariableExpr('老刘'), IntegerLiteralExpr(6)])) self.assertEqual( ParseExprFromStr('整老王(“你”,老刘,6)')[0], CallExpr('老王', [ StringLiteralExpr('你'), VariableExpr('老刘'), IntegerLiteralExpr(6) ])) self.assertEqual( ParseExprFromStr('整老王(“你”,老刘,6)')[0], CallExpr('老王', [ StringLiteralExpr('你'), VariableExpr('老刘'), IntegerLiteralExpr(6) ]))
def testParseConcatExpr(self): self.assertEqual( ParseExprFromStr('老王加油、2、“哈”')[0], ConcatExpr([ ArithmeticExpr(VariableExpr('老王'), Keyword('加'), VariableExpr('油')), IntegerLiteralExpr(2), StringLiteralExpr('哈') ]))
def testParseStringLiteral(self): self.assertEqual( ParseExprFromStr('“ 哈 哈 ”')[0], StringLiteralExpr(' 哈 哈 '))