css: Rewrite the parser

Instead of relying on GScanner and its idea of syntax, code up a parser
that obeys the CSS spec.
This also has the great side effect of reporting correct line numbers
and positions.

Also included is a reorganization of the returned error values. Instead
of error values describing what type of syntax error was returned, the
code just returns SYNTAX_ERROR. Other messages exist for when actual
values don't work or when errors shouldn't be fatal due to backwards
compatibility.
This commit is contained in:
Benjamin Otte
2011-04-14 04:47:18 +02:00
parent 058bbb2aec
commit 7ccb9db79e
11 changed files with 1981 additions and 1097 deletions

View File

@ -1,8 +1,8 @@
boolean.css:26: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
boolean.css:29: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
boolean.css:32: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
boolean.css:35: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
boolean.css:38: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
boolean.css:41: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
boolean.css:44: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
boolean.css:47: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
boolean.css:26: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
boolean.css:29: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
boolean.css:32: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
boolean.css:35: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
boolean.css:38: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
boolean.css:41: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
boolean.css:44: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
boolean.css:47: error: GTK_CSS_PROVIDER_ERROR_SYNTAX

View File

@ -1,8 +1,8 @@
border.css:26: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
border.css:30: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
border.css:34: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
border.css:38: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
border.css:42: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
border.css:46: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
border.css:50: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
border.css:54: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_NAME
border.css:26: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
border.css:30: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
border.css:34: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
border.css:38: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
border.css:42: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
border.css:46: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
border.css:50: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
border.css:54: error: GTK_CSS_PROVIDER_ERROR_SYNTAX

View File

@ -1 +1 @@
does-not-exist.css:2: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_NAME
does-not-exist.css:2: error: GTK_CSS_PROVIDER_ERROR_NAME

View File

@ -1,8 +1,8 @@
integer.css:17: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
integer.css:20: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
integer.css:23: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
integer.css:29: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
integer.css:32: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
integer.css:17: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
integer.css:20: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
integer.css:23: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
integer.css:29: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
integer.css:32: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
integer.css:35: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
integer.css:38: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
integer.css:41: error: GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
integer.css:38: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
integer.css:41: error: GTK_CSS_PROVIDER_ERROR_SYNTAX