diff options
author | Dave Davenport <qball@gmpclient.org> | 2017-01-11 23:19:29 +0100 |
---|---|---|
committer | Dave Davenport <qball@gmpclient.org> | 2017-01-11 23:19:29 +0100 |
commit | 63d8bfb0713eb2d3faee78eb96a866cf06223d6a (patch) | |
tree | e9bb40dbf51b6bd27394932d659abf274259254f /lexer | |
parent | d8ca3e01def8fa54b0e60f3391fd8568ec3ca7da (diff) |
Updates
Diffstat (limited to 'lexer')
-rw-r--r-- | lexer/theme-lexer.l | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/lexer/theme-lexer.l b/lexer/theme-lexer.l index f920b891..2f288367 100644 --- a/lexer/theme-lexer.l +++ b/lexer/theme-lexer.l @@ -55,7 +55,8 @@ WORD [[:alnum:]-]+ STRING [[:print:]]+ HEX [[:xdigit:]] NUMBER [[:digit:]] -REAL [[:digit:]]+(\.[[:digit:]]+)? +PNNUMBER [-+]?[[:digit:]]+ +REAL [-+]?[[:digit:]]+(\.[[:digit:]]+)? PX (px) EM (em) PERCENT (\%) @@ -164,8 +165,8 @@ if ( queue == NULL ){ <INITIAL,ENTRY>":" { g_queue_push_head ( queue, GINT_TO_POINTER (YY_START) ); BEGIN(PROPERTIES); return PSEP; } <PROPERTIES>";" { BEGIN(GPOINTER_TO_INT ( g_queue_pop_head ( queue ))); return PCLOSE;} <PROPERTIES>(true|false) { yylval->bval= g_strcmp0(yytext, "true") == 0; return T_BOOLEAN;} -<PROPERTIES>{NUMBER}+ { yylval->ival = (int)g_ascii_strtoll(yytext, NULL, 10); return T_INT;} -<PROPERTIES>{NUMBER}+\.{NUMBER}+ { yylval->fval = g_ascii_strtod(yytext, NULL); return T_DOUBLE;} +<PROPERTIES>{PNNUMBER}+ { yylval->ival = (int)g_ascii_strtoll(yytext, NULL, 10); return T_INT;} +<PROPERTIES>{PNNUMBER}+\.{NUMBER}+ { yylval->fval = g_ascii_strtod(yytext, NULL); return T_DOUBLE;} <PROPERTIES>\"{STRING}\" { yytext[yyleng-1] = '\0'; yylval->sval = g_strdup(&yytext[1]); return T_STRING;} <PROPERTIES>@{WORD} { yylval->sval = g_strdup(yytext); @@ -178,31 +179,31 @@ if ( queue == NULL ){ yylval->distance.style = SOLID; return T_PIXEL; } -<PROPERTIES>{NUMBER}+{PX} { +<PROPERTIES>{PNNUMBER}{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} { +<PROPERTIES>{PNNUMBER}+{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} { +<PROPERTIES>{PNNUMBER}+{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} { +<PROPERTIES>{PNNUMBER}+{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} { +<PROPERTIES>{PNNUMBER}+{EM}{WHITESPACE}{LS_SOLID} { yylval->distance.distance = (double)g_ascii_strtoll(yytext, NULL, 10); yylval->distance.type = PW_PX; yylval->distance.style = SOLID; |