From 773ff4ce454e946bab1689fc0024066632b410da Mon Sep 17 00:00:00 2001 From: Yorick Peterse Date: Sun, 5 Oct 2014 01:28:19 +0200 Subject: [PATCH] Support for parsing multiple CSS node tests. --- lib/oga/css/parser.y | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/oga/css/parser.y b/lib/oga/css/parser.y index a663097..29a40cf 100644 --- a/lib/oga/css/parser.y +++ b/lib/oga/css/parser.y @@ -7,19 +7,28 @@ options no_result_var rule css - : selectors { val[0] } + : expression { val[0] } | /* none */ { nil } ; - selectors - : selectors selector { val[0] << val[1] } - | selector { val[0] } + expression + : path + | node_test ; - selector + path_member : node_test ; + path_members + : path_member path_member { [val[0], val[1]] } + | path_member path_members { [val[0], *val[1]] } + ; + + path + : path_members { s(:path, *val[0]) } + ; + node_test : node_name { s(:test, *val[0]) } ;