コード例 #1
0
ファイル: test_parsers.py プロジェクト: colossalbit/cssypy
 def test_naryop(self):
     src = u'$a $b $c, $d $e $f, $g $h $i'
     parser = Parser(src)
     self.assertTrue(parser.match(tokens.START))
     expr = parser.comma_expr()
     expected = NaryOpExpr(
                     op=CommaOp(),
                     operands=[
                         NaryOpExpr(
                             op=WhitespaceOp(),
                             operands=[
                                 VarName(name=u'a'),
                                 VarName(name=u'b'),
                                 VarName(name=u'c'),
                             ]
                         ),
                         NaryOpExpr(
                             op=WhitespaceOp(),
                             operands=[
                                 VarName(name=u'd'),
                                 VarName(name=u'e'),
                                 VarName(name=u'f'),
                             ]
                         ),
                         NaryOpExpr(
                             op=WhitespaceOp(),
                             operands=[
                                 VarName(name=u'g'),
                                 VarName(name=u'h'),
                                 VarName(name=u'i'),
                             ]
                         ),
                     ]
                )
     self.assertEqual(dump(expected), dump(expr))
コード例 #2
0
ファイル: test_parsers.py プロジェクト: colossalbit/cssypy
 def test_fwdslash_op4(self):
     src = u'3/$a'
     parser = Parser(src)
     self.assertTrue(parser.match(tokens.START))
     expr = parser.comma_expr()
     expected = BinaryOpExpr(
                     op=DivisionOp(),
                     lhs=NumberNode(number=u'3'),
                     rhs=VarName(name=u'a'),
                )
     self.assertEqual(dump(expected), dump(expr))
コード例 #3
0
ファイル: test_parsers.py プロジェクト: colossalbit/cssypy
 def test_fwdslash_op1(self):
     src = u'3/2'
     parser = Parser(src)
     self.assertTrue(parser.match(tokens.START))
     expr = parser.comma_expr()
     expected = BinaryOpExpr(
                     op=FwdSlashOp(),
                     lhs=NumberNode(number=u'3'),
                     rhs=NumberNode(number=u'2'),
                )
     self.assertEqual(dump(expected), dump(expr))
コード例 #4
0
ファイル: test_parsers.py プロジェクト: colossalbit/cssypy
 def test_whitespaceop(self):
     src = '$a $b $c'
     parser = Parser(src)
     self.assertTrue(parser.match(tokens.START))
     expr = parser.comma_expr()
     expected = NaryOpExpr(
                     op=WhitespaceOp(),
                     operands=[
                         VarName(name='a'),
                         VarName(name='b'),
                         VarName(name='c'),
                     ]
                )
     self.assertEqual(dump(expected), dump(expr))
コード例 #5
0
ファイル: test_parsers.py プロジェクト: colossalbit/cssypy
 def test_division_op1(self):
     src = u'3/2/1'
     parser = Parser(src)
     self.assertTrue(parser.match(tokens.START))
     expr = parser.comma_expr()
     expected = BinaryOpExpr(
                     op=DivisionOp(),
                     lhs=BinaryOpExpr(
                         op=DivisionOp(),
                         lhs=NumberNode(number=u'3'),
                         rhs=NumberNode(number=u'2'),
                     ),
                     rhs=NumberNode(number=u'1'),
                )
     self.assertEqual(dump(expected), dump(expr))
コード例 #6
0
ファイル: test_parsers.py プロジェクト: colossalbit/cssypy
 def test_precedence4(self):
     src = '$a+$b+$c'
     parser = Parser(src)
     self.assertTrue(parser.match(tokens.START))
     expr = parser.comma_expr()
     expected = BinaryOpExpr(
                     op=AddOp(),
                     lhs=BinaryOpExpr(
                         op=AddOp(),
                         lhs=VarName(name='a'),
                         rhs=VarName(name='b')
                     ),
                     rhs=VarName(name='c')
                )
     self.assertEqual(dump(expected), dump(expr))
コード例 #7
0
ファイル: test_parsers.py プロジェクト: colossalbit/cssypy
 def test_usub(self):
     src = '$a -$b'
     parser = Parser(src)
     self.assertTrue(parser.match(tokens.START))
     expr = parser.comma_expr()
     expected = NaryOpExpr(
                     op=WhitespaceOp(), 
                     operands=[
                         VarName(name='a'), 
                         UnaryOpExpr(op=UMinus(), 
                                     operand=VarName(name='b')
                         )
                     ]
                 )
     ##expected = "NaryOpExpr(op=WhitespaceOp(), operands=[VarName(name='a'), UnaryOpExpr(op=UMinus(), operand=VarName(name='b'))])"
     self.assertEqual(expected, expr)
コード例 #8
0
ファイル: test_parsers.py プロジェクト: colossalbit/cssypy
 def test_whitespaceop5(self):
     src = u'$a $b+$c $d'
     parser = Parser(src)
     self.assertTrue(parser.match(tokens.START))
     expr = parser.comma_expr()
     expected = NaryOpExpr(
                     op=WhitespaceOp(),
                     operands=[
                         VarName(name=u'a'),
                         BinaryOpExpr(
                             op=AddOp(),
                             lhs=VarName(name=u'b'),
                             rhs=VarName(name=u'c'),
                         ),
                         VarName(name=u'd'),
                     ]
                )
     self.assertEqual(dump(expected), dump(expr))
コード例 #9
0
ファイル: test_parsers.py プロジェクト: colossalbit/cssypy
 def test_precedence3(self):
     src = '$a+$b*$c+($d - $e)'
     parser = Parser(src)
     self.assertTrue(parser.match(tokens.START))
     expr = parser.comma_expr()
     expected = BinaryOpExpr(
                     op=AddOp(),
                     lhs=BinaryOpExpr(
                         op=AddOp(),
                         lhs=VarName(name='a'),
                         rhs=BinaryOpExpr(
                             op=MultOp(),
                             lhs=VarName(name='b'),
                             rhs=VarName(name='c')
                         )
                     ),
                     rhs=BinaryOpExpr(
                         op=SubtractOp(),
                         lhs=VarName(name='d'),
                         rhs=VarName(name='e')
                     )
                )
     self.assertEqual(dump(expected), dump(expr))
コード例 #10
0
ファイル: test_parsers.py プロジェクト: colossalbit/cssypy
 def test_plus1(self):
     src = u'$a + $b'
     parser = Parser(src)
     self.assertTrue(parser.match(tokens.START))
     expr = parser.comma_expr()
     self.assertEqual("VarName(name=u'a')", dump(expr))
コード例 #11
0
ファイル: test_parsers.py プロジェクト: colossalbit/cssypy
 def test_plus(self):
     src = u'$a+$b'
     parser = Parser(src)
     self.assertTrue(parser.match(tokens.START))
     expr = parser.comma_expr()
     self.assertEqual("BinaryOpExpr(op=AddOp(), lhs=VarName(name=u'a'), rhs=VarName(name=u'b'))", dump(expr))
コード例 #12
0
ファイル: test_parsers.py プロジェクト: colossalbit/cssypy
 def test_hash(self):
     src = u'#aabbcc '
     parser = Parser(src)
     self.assertTrue(parser.match(tokens.START))
     expr = parser.comma_expr()
     self.assertEqual("HexColorNode(hex=u'aabbcc')", dump(expr))
コード例 #13
0
ファイル: test_parsers.py プロジェクト: colossalbit/cssypy
 def test_ident(self):
     src = u'abc '
     parser = Parser(src)
     self.assertTrue(parser.match(tokens.START))
     expr = parser.comma_expr()
     self.assertEqual("IdentExpr(name=u'abc')", dump(expr))
コード例 #14
0
ファイル: test_parsers.py プロジェクト: colossalbit/cssypy
 def test_empty(self):
     src = u''
     parser = Parser(src)
     expr = parser.comma_expr()
     self.assertEqual(None, expr)