diff options
-rwxr-xr-x | scss/src/scanner.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/scss/src/scanner.py b/scss/src/scanner.py index a04b22e..97c0b34 100755 --- a/scss/src/scanner.py +++ b/scss/src/scanner.py @@ -249,7 +249,7 @@ except ImportError: def process_scan(Scanner, level=0, dump=False): ret = '' if dump else None - s = Scanner('[(5px - 3) * (5px - 3)]') + s = Scanner('[(5px - 3) * (5px - 3)], function($arg1: a b c, $arg2: 4px + 5px, $arg3: red #fff #000000 #ffff0088), "Some string"') i = 0 while True: try: @@ -262,11 +262,12 @@ def process_scan(Scanner, level=0, dump=False): return ret -verify = "----------------------------------------------------------------------\n\n (@0) LPAR = '['\n----------------------------------------------------------------------\n\n (@0) LPAR = '['\n (@1) LPAR = '('\n----------------------------------------------------------------------\n\n (@0) LPAR = '['\n (@1) LPAR = '('\n (@2) NUM = '5'\n----------------------------------------------------------------------\n\n (@0) LPAR = '['\n (@1) LPAR = '('\n (@2) NUM = '5'\n (@3) UNITS = 'px'\n----------------------------------------------------------------------\n\n (@0) LPAR = '['\n (@1) LPAR = '('\n (@2) NUM = '5'\n (@3) UNITS = 'px'\n (@6) SUB = '- '\n----------------------------------------------------------------------\n\n (@0) LPAR = '['\n (@1) LPAR = '('\n (@2) NUM = '5'\n (@3) UNITS = 'px'\n (@6) SUB = '- '\n (@8) NUM = '3'\n----------------------------------------------------------------------\n\n (@0) LPAR = '['\n (@1) LPAR = '('\n (@2) NUM = '5'\n (@3) UNITS = 'px'\n (@6) SUB = '- '\n (@8) NUM = '3'\n (@9) RPAR = ')'\n----------------------------------------------------------------------\n\n (@0) LPAR = '['\n (@1) LPAR = '('\n (@2) NUM = '5'\n (@3) UNITS = 'px'\n (@6) SUB = '- '\n (@8) NUM = '3'\n (@9) RPAR = ')'\n (@11) MUL = '*'\n----------------------------------------------------------------------\n\n (@0) LPAR = '['\n (@1) LPAR = '('\n (@2) NUM = '5'\n (@3) UNITS = 'px'\n (@6) SUB = '- '\n (@8) NUM = '3'\n (@9) RPAR = ')'\n (@11) MUL = '*'\n (@13) LPAR = '('\n----------------------------------------------------------------------\n\n (@0) LPAR = '['\n (@1) LPAR = '('\n (@2) NUM = '5'\n (@3) UNITS = 'px'\n (@6) SUB = '- '\n (@8) NUM = '3'\n (@9) RPAR = ')'\n (@11) MUL = '*'\n (@13) LPAR = '('\n (@14) NUM = '5'\n----------------------------------------------------------------------\n\n (@1) LPAR = '('\n (@2) NUM = '5'\n (@3) UNITS = 'px'\n (@6) SUB = '- '\n (@8) NUM = '3'\n (@9) RPAR = ')'\n (@11) MUL = '*'\n (@13) LPAR = '('\n (@14) NUM = '5'\n (@15) UNITS = 'px'\n----------------------------------------------------------------------\n\n (@2) NUM = '5'\n (@3) UNITS = 'px'\n (@6) SUB = '- '\n (@8) NUM = '3'\n (@9) RPAR = ')'\n (@11) MUL = '*'\n (@13) LPAR = '('\n (@14) NUM = '5'\n (@15) UNITS = 'px'\n (@18) SUB = '- '\n----------------------------------------------------------------------\n\n (@3) UNITS = 'px'\n (@6) SUB = '- '\n (@8) NUM = '3'\n (@9) RPAR = ')'\n (@11) MUL = '*'\n (@13) LPAR = '('\n (@14) NUM = '5'\n (@15) UNITS = 'px'\n (@18) SUB = '- '\n (@20) NUM = '3'\n----------------------------------------------------------------------\n\n (@6) SUB = '- '\n (@8) NUM = '3'\n (@9) RPAR = ')'\n (@11) MUL = '*'\n (@13) LPAR = '('\n (@14) NUM = '5'\n (@15) UNITS = 'px'\n (@18) SUB = '- '\n (@20) NUM = '3'\n (@21) RPAR = ')'\n----------------------------------------------------------------------\n\n (@8) NUM = '3'\n (@9) RPAR = ')'\n (@11) MUL = '*'\n (@13) LPAR = '('\n (@14) NUM = '5'\n (@15) UNITS = 'px'\n (@18) SUB = '- '\n (@20) NUM = '3'\n (@21) RPAR = ')'\n (@22) RPAR = ']'\n----------------------------------------------------------------------\n\n (@9) RPAR = ')'\n (@11) MUL = '*'\n (@13) LPAR = '('\n (@14) NUM = '5'\n (@15) UNITS = 'px'\n (@18) SUB = '- '\n (@20) NUM = '3'\n (@21) RPAR = ')'\n (@22) RPAR = ']'\n (@23) END = ''\n" +# Expected resulting string: +EXPECTED = '----------------------------------------------------------------------\n\n (@0) LPAR = \'[\'\n----------------------------------------------------------------------\n\n (@0) LPAR = \'[\'\n (@1) LPAR = \'(\'\n----------------------------------------------------------------------\n\n (@0) LPAR = \'[\'\n (@1) LPAR = \'(\'\n (@2) NUM = \'5\'\n----------------------------------------------------------------------\n\n (@0) LPAR = \'[\'\n (@1) LPAR = \'(\'\n (@2) NUM = \'5\'\n (@3) UNITS = \'px\'\n----------------------------------------------------------------------\n\n (@0) LPAR = \'[\'\n (@1) LPAR = \'(\'\n (@2) NUM = \'5\'\n (@3) UNITS = \'px\'\n (@6) SUB = \'- \'\n----------------------------------------------------------------------\n\n (@0) LPAR = \'[\'\n (@1) LPAR = \'(\'\n (@2) NUM = \'5\'\n (@3) UNITS = \'px\'\n (@6) SUB = \'- \'\n (@8) NUM = \'3\'\n----------------------------------------------------------------------\n\n (@0) LPAR = \'[\'\n (@1) LPAR = \'(\'\n (@2) NUM = \'5\'\n (@3) UNITS = \'px\'\n (@6) SUB = \'- \'\n (@8) NUM = \'3\'\n (@9) RPAR = \')\'\n----------------------------------------------------------------------\n\n (@0) LPAR = \'[\'\n (@1) LPAR = \'(\'\n (@2) NUM = \'5\'\n (@3) UNITS = \'px\'\n (@6) SUB = \'- \'\n (@8) NUM = \'3\'\n (@9) RPAR = \')\'\n (@11) MUL = \'*\'\n----------------------------------------------------------------------\n\n (@0) LPAR = \'[\'\n (@1) LPAR = \'(\'\n (@2) NUM = \'5\'\n (@3) UNITS = \'px\'\n (@6) SUB = \'- \'\n (@8) NUM = \'3\'\n (@9) RPAR = \')\'\n (@11) MUL = \'*\'\n (@13) LPAR = \'(\'\n----------------------------------------------------------------------\n\n (@0) LPAR = \'[\'\n (@1) LPAR = \'(\'\n (@2) NUM = \'5\'\n (@3) UNITS = \'px\'\n (@6) SUB = \'- \'\n (@8) NUM = \'3\'\n (@9) RPAR = \')\'\n (@11) MUL = \'*\'\n (@13) LPAR = \'(\'\n (@14) NUM = \'5\'\n----------------------------------------------------------------------\n\n (@1) LPAR = \'(\'\n (@2) NUM = \'5\'\n (@3) UNITS = \'px\'\n (@6) SUB = \'- \'\n (@8) NUM = \'3\'\n (@9) RPAR = \')\'\n (@11) MUL = \'*\'\n (@13) LPAR = \'(\'\n (@14) NUM = \'5\'\n (@15) UNITS = \'px\'\n----------------------------------------------------------------------\n\n (@2) NUM = \'5\'\n (@3) UNITS = \'px\'\n (@6) SUB = \'- \'\n (@8) NUM = \'3\'\n (@9) RPAR = \')\'\n (@11) MUL = \'*\'\n (@13) LPAR = \'(\'\n (@14) NUM = \'5\'\n (@15) UNITS = \'px\'\n (@18) SUB = \'- \'\n----------------------------------------------------------------------\n\n (@3) UNITS = \'px\'\n (@6) SUB = \'- \'\n (@8) NUM = \'3\'\n (@9) RPAR = \')\'\n (@11) MUL = \'*\'\n (@13) LPAR = \'(\'\n (@14) NUM = \'5\'\n (@15) UNITS = \'px\'\n (@18) SUB = \'- \'\n (@20) NUM = \'3\'\n----------------------------------------------------------------------\n\n (@6) SUB = \'- \'\n (@8) NUM = \'3\'\n (@9) RPAR = \')\'\n (@11) MUL = \'*\'\n (@13) LPAR = \'(\'\n (@14) NUM = \'5\'\n (@15) UNITS = \'px\'\n (@18) SUB = \'- \'\n (@20) NUM = \'3\'\n (@21) RPAR = \')\'\n----------------------------------------------------------------------\n\n (@8) NUM = \'3\'\n (@9) RPAR = \')\'\n (@11) MUL = \'*\'\n (@13) LPAR = \'(\'\n (@14) NUM = \'5\'\n (@15) UNITS = \'px\'\n (@18) SUB = \'- \'\n (@20) NUM = \'3\'\n (@21) RPAR = \')\'\n (@22) RPAR = \']\'\n----------------------------------------------------------------------\n\n (@9) RPAR = \')\'\n (@11) MUL = \'*\'\n (@13) LPAR = \'(\'\n (@14) NUM = \'5\'\n (@15) UNITS = \'px\'\n (@18) SUB = \'- \'\n (@20) NUM = \'3\'\n (@21) RPAR = \')\'\n (@22) RPAR = \']\'\n (@23) COMMA = \',\'\n----------------------------------------------------------------------\n\n (@11) MUL = \'*\'\n (@13) LPAR = \'(\'\n (@14) NUM = \'5\'\n (@15) UNITS = \'px\'\n (@18) SUB = \'- \'\n (@20) NUM = \'3\'\n (@21) RPAR = \')\'\n (@22) RPAR = \']\'\n (@23) COMMA = \',\'\n (@25) NAME = \'function\'\n----------------------------------------------------------------------\n\n (@13) LPAR = \'(\'\n (@14) NUM = \'5\'\n (@15) UNITS = \'px\'\n (@18) SUB = \'- \'\n (@20) NUM = \'3\'\n (@21) RPAR = \')\'\n (@22) RPAR = \']\'\n (@23) COMMA = \',\'\n (@25) NAME = \'function\'\n (@33) LPAR = \'(\'\n----------------------------------------------------------------------\n\n (@14) NUM = \'5\'\n (@15) UNITS = \'px\'\n (@18) SUB = \'- \'\n (@20) NUM = \'3\'\n (@21) RPAR = \')\'\n (@22) RPAR = \']\'\n (@23) COMMA = \',\'\n (@25) NAME = \'function\'\n (@33) LPAR = \'(\'\n (@34) VAR = \'$arg1\'\n----------------------------------------------------------------------\n\n (@15) UNITS = \'px\'\n (@18) SUB = \'- \'\n (@20) NUM = \'3\'\n (@21) RPAR = \')\'\n (@22) RPAR = \']\'\n (@23) COMMA = \',\'\n (@25) NAME = \'function\'\n (@33) LPAR = \'(\'\n (@34) VAR = \'$arg1\'\n (@39) ":" = \':\'\n----------------------------------------------------------------------\n\n (@18) SUB = \'- \'\n (@20) NUM = \'3\'\n (@21) RPAR = \')\'\n (@22) RPAR = \']\'\n (@23) COMMA = \',\'\n (@25) NAME = \'function\'\n (@33) LPAR = \'(\'\n (@34) VAR = \'$arg1\'\n (@39) ":" = \':\'\n (@41) NAME = \'a\'\n----------------------------------------------------------------------\n\n (@20) NUM = \'3\'\n (@21) RPAR = \')\'\n (@22) RPAR = \']\'\n (@23) COMMA = \',\'\n (@25) NAME = \'function\'\n (@33) LPAR = \'(\'\n (@34) VAR = \'$arg1\'\n (@39) ":" = \':\'\n (@41) NAME = \'a\'\n (@43) NAME = \'b\'\n----------------------------------------------------------------------\n\n (@21) RPAR = \')\'\n (@22) RPAR = \']\'\n (@23) COMMA = \',\'\n (@25) NAME = \'function\'\n (@33) LPAR = \'(\'\n (@34) VAR = \'$arg1\'\n (@39) ":" = \':\'\n (@41) NAME = \'a\'\n (@43) NAME = \'b\'\n (@45) NAME = \'c\'\n----------------------------------------------------------------------\n\n (@22) RPAR = \']\'\n (@23) COMMA = \',\'\n (@25) NAME = \'function\'\n (@33) LPAR = \'(\'\n (@34) VAR = \'$arg1\'\n (@39) ":" = \':\'\n (@41) NAME = \'a\'\n (@43) NAME = \'b\'\n (@45) NAME = \'c\'\n (@46) COMMA = \',\'\n----------------------------------------------------------------------\n\n (@23) COMMA = \',\'\n (@25) NAME = \'function\'\n (@33) LPAR = \'(\'\n (@34) VAR = \'$arg1\'\n (@39) ":" = \':\'\n (@41) NAME = \'a\'\n (@43) NAME = \'b\'\n (@45) NAME = \'c\'\n (@46) COMMA = \',\'\n (@48) VAR = \'$arg2\'\n----------------------------------------------------------------------\n\n (@25) NAME = \'function\'\n (@33) LPAR = \'(\'\n (@34) VAR = \'$arg1\'\n (@39) ":" = \':\'\n (@41) NAME = \'a\'\n (@43) NAME = \'b\'\n (@45) NAME = \'c\'\n (@46) COMMA = \',\'\n (@48) VAR = \'$arg2\'\n (@53) ":" = \':\'\n----------------------------------------------------------------------\n\n (@33) LPAR = \'(\'\n (@34) VAR = \'$arg1\'\n (@39) ":" = \':\'\n (@41) NAME = \'a\'\n (@43) NAME = \'b\'\n (@45) NAME = \'c\'\n (@46) COMMA = \',\'\n (@48) VAR = \'$arg2\'\n (@53) ":" = \':\'\n (@55) NUM = \'4\'\n----------------------------------------------------------------------\n\n (@34) VAR = \'$arg1\'\n (@39) ":" = \':\'\n (@41) NAME = \'a\'\n (@43) NAME = \'b\'\n (@45) NAME = \'c\'\n (@46) COMMA = \',\'\n (@48) VAR = \'$arg2\'\n (@53) ":" = \':\'\n (@55) NUM = \'4\'\n (@56) UNITS = \'px\'\n----------------------------------------------------------------------\n\n (@39) ":" = \':\'\n (@41) NAME = \'a\'\n (@43) NAME = \'b\'\n (@45) NAME = \'c\'\n (@46) COMMA = \',\'\n (@48) VAR = \'$arg2\'\n (@53) ":" = \':\'\n (@55) NUM = \'4\'\n (@56) UNITS = \'px\'\n (@59) ADD = \'+\'\n----------------------------------------------------------------------\n\n (@41) NAME = \'a\'\n (@43) NAME = \'b\'\n (@45) NAME = \'c\'\n (@46) COMMA = \',\'\n (@48) VAR = \'$arg2\'\n (@53) ":" = \':\'\n (@55) NUM = \'4\'\n (@56) UNITS = \'px\'\n (@59) ADD = \'+\'\n (@61) NUM = \'5\'\n----------------------------------------------------------------------\n\n (@43) NAME = \'b\'\n (@45) NAME = \'c\'\n (@46) COMMA = \',\'\n (@48) VAR = \'$arg2\'\n (@53) ":" = \':\'\n (@55) NUM = \'4\'\n (@56) UNITS = \'px\'\n (@59) ADD = \'+\'\n (@61) NUM = \'5\'\n (@62) UNITS = \'px\'\n----------------------------------------------------------------------\n\n (@45) NAME = \'c\'\n (@46) COMMA = \',\'\n (@48) VAR = \'$arg2\'\n (@53) ":" = \':\'\n (@55) NUM = \'4\'\n (@56) UNITS = \'px\'\n (@59) ADD = \'+\'\n (@61) NUM = \'5\'\n (@62) UNITS = \'px\'\n (@64) COMMA = \',\'\n----------------------------------------------------------------------\n\n (@46) COMMA = \',\'\n (@48) VAR = \'$arg2\'\n (@53) ":" = \':\'\n (@55) NUM = \'4\'\n (@56) UNITS = \'px\'\n (@59) ADD = \'+\'\n (@61) NUM = \'5\'\n (@62) UNITS = \'px\'\n (@64) COMMA = \',\'\n (@66) VAR = \'$arg3\'\n----------------------------------------------------------------------\n\n (@48) VAR = \'$arg2\'\n (@53) ":" = \':\'\n (@55) NUM = \'4\'\n (@56) UNITS = \'px\'\n (@59) ADD = \'+\'\n (@61) NUM = \'5\'\n (@62) UNITS = \'px\'\n (@64) COMMA = \',\'\n (@66) VAR = \'$arg3\'\n (@71) ":" = \':\'\n----------------------------------------------------------------------\n\n (@53) ":" = \':\'\n (@55) NUM = \'4\'\n (@56) UNITS = \'px\'\n (@59) ADD = \'+\'\n (@61) NUM = \'5\'\n (@62) UNITS = \'px\'\n (@64) COMMA = \',\'\n (@66) VAR = \'$arg3\'\n (@71) ":" = \':\'\n (@73) NAME = \'red\'\n----------------------------------------------------------------------\n\n (@55) NUM = \'4\'\n (@56) UNITS = \'px\'\n (@59) ADD = \'+\'\n (@61) NUM = \'5\'\n (@62) UNITS = \'px\'\n (@64) COMMA = \',\'\n (@66) VAR = \'$arg3\'\n (@71) ":" = \':\'\n (@73) NAME = \'red\'\n (@77) COLOR = \'#fff\'\n----------------------------------------------------------------------\n\n (@56) UNITS = \'px\'\n (@59) ADD = \'+\'\n (@61) NUM = \'5\'\n (@62) UNITS = \'px\'\n (@64) COMMA = \',\'\n (@66) VAR = \'$arg3\'\n (@71) ":" = \':\'\n (@73) NAME = \'red\'\n (@77) COLOR = \'#fff\'\n (@82) COLOR = \'#000000\'\n' def process_scans(Scanner): - for q in xrange(20000): + for q in xrange(10000): process_scan(Scanner) profiled_process_scans = profile(process_scans) @@ -280,7 +281,7 @@ if __name__ == "__main__": # print "This is what %s returned:" % desc # print ret # print repr(ret) - assert ret == verify, '\nFrom %s, got:\n%s\nShould be:\n%s' % (desc, ret, verify) + assert ret == EXPECTED, '\nFrom %s, got:\n%s\nShould be:\n%s' % (desc, ret, EXPECTED) start = datetime.now() print >>sys.stderr, "Timing: %s..." % desc, |