summaryrefslogtreecommitdiffstats
path: root/lexer
diff options
context:
space:
mode:
authorDave Davenport <qball@gmpclient.org>2017-01-04 22:27:27 +0100
committerDave Davenport <qball@gmpclient.org>2017-01-04 22:27:27 +0100
commit9dd3cb312e46575637627fbfd78980b9aee39533 (patch)
tree36a270b5ce64f483140d6e8dc1a0e11de4020e0c /lexer
parenta77e080c60116f856687451d719bba08703a6c54 (diff)
Support linestyle on border
Diffstat (limited to 'lexer')
-rw-r--r--lexer/theme-lexer.l42
1 files changed, 42 insertions, 0 deletions
diff --git a/lexer/theme-lexer.l b/lexer/theme-lexer.l
index b66a11bd..6a6f8687 100644
--- a/lexer/theme-lexer.l
+++ b/lexer/theme-lexer.l
@@ -30,6 +30,9 @@ EM (em)
PERCENT (\%)
NEWLINES (\r|\n)+
+LS_DASH "dash"
+LS_SOLID "solid"
+
%x PROPERTIES
%x NAMESTR
%x ENTRY
@@ -110,16 +113,55 @@ if ( queue == NULL ){
<PROPERTIES>{REAL}{EM} {
yylval->distance.distance = (double)g_ascii_strtod(yytext, NULL);
yylval->distance.type = PW_EM;
+ yylval->distance.style = SOLID;
return T_PIXEL;
}
<PROPERTIES>{NUMBER}+{PX} {
yylval->distance.distance = (double)g_ascii_strtoll(yytext, NULL, 10);
yylval->distance.type = PW_PX;
+ yylval->distance.style = SOLID;
+ return T_PIXEL;
+}
+<PROPERTIES>{NUMBER}+{PX}{WHITESPACE}{LS_DASH} {
+ yylval->distance.distance = (double)g_ascii_strtoll(yytext, NULL, 10);
+ yylval->distance.type = PW_PX;
+ yylval->distance.style = DASH;
+ return T_PIXEL;
+}
+<PROPERTIES>{NUMBER}+{EM}{WHITESPACE}{LS_DASH} {
+ yylval->distance.distance = (double)g_ascii_strtoll(yytext, NULL, 10);
+ yylval->distance.type = PW_PX;
+ yylval->distance.style = DASH;
+ return T_PIXEL;
+}
+<PROPERTIES>{NUMBER}+{PX}{WHITESPACE}{LS_SOLID} {
+ yylval->distance.distance = (double)g_ascii_strtoll(yytext, NULL, 10);
+ yylval->distance.type = PW_PX;
+ yylval->distance.style = SOLID;
+ return T_PIXEL;
+}
+<PROPERTIES>{NUMBER}+{EM}{WHITESPACE}{LS_SOLID} {
+ yylval->distance.distance = (double)g_ascii_strtoll(yytext, NULL, 10);
+ yylval->distance.type = PW_PX;
+ yylval->distance.style = SOLID;
return T_PIXEL;
}
<PROPERTIES>{REAL}{PERCENT} {
yylval->distance.distance = (double)g_ascii_strtod(yytext, NULL);
yylval->distance.type = PW_PERCENT;
+ yylval->distance.style = SOLID;
+ return T_PIXEL;
+}
+<PROPERTIES>{REAL}{PERCENT}{WHITESPACE}{LS_SOLID} {
+ yylval->distance.distance = (double)g_ascii_strtod(yytext, NULL);
+ yylval->distance.type = PW_PERCENT;
+ yylval->distance.style = SOLID;
+ return T_PIXEL;
+}
+<PROPERTIES>{REAL}{PERCENT}{WHITESPACE}{LS_DASH} {
+ yylval->distance.distance = (double)g_ascii_strtod(yytext, NULL);
+ yylval->distance.type = PW_PERCENT;
+ yylval->distance.style = DASH;
return T_PIXEL;
}
<PROPERTIES>#{HEX}{8} {