diff --git a/tests/test_nearley/test_nearley.py b/tests/test_nearley/test_nearley.py index 7795a83..497165b 100644 --- a/tests/test_nearley/test_nearley.py +++ b/tests/test_nearley/test_nearley.py @@ -14,43 +14,11 @@ BUILTIN_PATH = os.path.join(NEARLEY_PATH, 'builtin') class TestNearley(unittest.TestCase): def test_css(self): - css_example_grammar = """ - # http://www.w3.org/TR/css3-color/#colorunits - - @builtin "whitespace.ne" - @builtin "number.ne" - @builtin "postprocessors.ne" - - csscolor -> "#" hexdigit hexdigit hexdigit hexdigit hexdigit hexdigit {% - function(d) { - return { - "r": parseInt(d[1]+d[2], 16), - "g": parseInt(d[3]+d[4], 16), - "b": parseInt(d[5]+d[6], 16), - } - } - %} - | "#" hexdigit hexdigit hexdigit {% - function(d) { - return { - "r": parseInt(d[1]+d[1], 16), - "g": parseInt(d[2]+d[2], 16), - "b": parseInt(d[3]+d[3], 16), - } - } - %} - | "rgb" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ ")" {% $({"r": 4, "g": 8, "b": 12}) %} - | "hsl" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ ")" {% $({"h": 4, "s": 8, "l": 12}) %} - | "rgba" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ "," _ decimal _ ")" {% $({"r": 4, "g": 8, "b": 12, "a": 16}) %} - | "hsla" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ "," _ decimal _ ")" {% $({"h": 4, "s": 8, "l": 12, "a": 16}) %} - - hexdigit -> [a-fA-F0-9] - colnum -> unsigned_int {% id %} | percentage {% - function(d) {return Math.floor(d[0]*255); } - %} - """ + fn = os.path.join(NEARLEY_PATH, 'examples/csscolor.ne') + with open(fn) as f: + grammar = f.read() - code = create_code_for_nearley_grammar(css_example_grammar, 'csscolor', BUILTIN_PATH, './') + code = create_code_for_nearley_grammar(grammar, 'csscolor', BUILTIN_PATH, os.path.dirname(fn)) d = {} exec (code, d) parse = d['parse']