Exemplo n.º 1
0
 def testParseBinaryOperatorParenthesesPrecedence1(self):
     string = "(3 + 4) * 5"
     parser = self.makeStringParser(string)
     result = parser.parse_expression()
     self.assertIsNode('BinaryOperation', result)
     self.assertIsNode('BinaryOperation', result.left)
     self.assertIsNode('NumberLiteral', result.right)
Exemplo n.º 2
0
 def testParseCommaExpression(self):
     testCases = [
         'a, b, c',
     ]
     for string in testCases:
         parser = self.makeStringParser(string)
         result = parser.parse_expression()
         self.assertIsNode('BinaryOperation', result)
Exemplo n.º 3
0
 def testParseBinaryOperatorComparison(self):
     string = "3 + 4 && 5 + 6"
     parser = self.makeStringParser(string)
     result = parser.parse_expression()
     self.assertIsNode('BinaryOperation', result)
     self.assertEquals('&&', result.op)
     self.assertIsNode('BinaryOperation', result.left)
     self.assertIsNode('BinaryOperation', result.right)
Exemplo n.º 4
0
 def testParseBinaryOperatorEqualPrecedence(self):
     string = "a + b - c"
     parser = self.makeStringParser(string)
     result = parser.parse_expression()
     self.assertIsNode('BinaryOperation', result)
     self.assertEqual(u'-', result.op)
     self.assertIsNode('BinaryOperation', result.left)
     self.assertEqual(u'+', result.left.op)
Exemplo n.º 5
0
 def testParseBinaryOperatorParenthesesPrecedence2(self):
     string = "a + (b - c)"
     parser = self.makeStringParser(string)
     result = parser.parse_expression()
     self.assertIsNode('BinaryOperation', result)
     self.assertEqual(u'+', result.op)
     self.assertIsNode('BinaryOperation', result.right)
     self.assertEqual(u'-', result.right.op)
Exemplo n.º 6
0
 def testParseExpression(self):
     testCases = {
         'call-functionexpression': ('(function() { return {};})();', 'CallExpression'),
     }
     for test_name, (string, expected) in testCases.iteritems():
         parser = self.makeStringParser(string)
         result = parser.parse_expression()
         fmt_args = (test_name, expected, result.__class__.__name__)
         msg = '%s did not parse an %s; got %s' % fmt_args
         self.assertIsNode(expected, result, msg=msg)
Exemplo n.º 7
0
 def testParseBinaryOperatorMultiplePrecedence(self):
     string = "3 + 4 * 5 + 6"
     parser = self.makeStringParser(string)
     result = parser.parse_expression()
     self.assertIsNode('BinaryOperation', result)
     self.assertIsNode('BinaryOperation', result.left)
     self.assertIsNode('NumberLiteral', result.right)
     self.assertEquals('+', result.left.op)
     self.assertIsNode('BinaryOperation', result.left.right)
     self.assertEquals('*', result.left.right.op)