From 151547a99ed142168ec4a11e526102994f6736a9 Mon Sep 17 00:00:00 2001 From: Dave Davenport Date: Fri, 24 Apr 2020 19:54:08 +0200 Subject: [Themes] add calc() support to distance in theme format. (#1105) * Initial test to allow math in distances. Support + and - Needs spaces around + and -. * [THEME] Fix printing theme with math in distance. * [Theme] use calc() syntax. * [Theme] Add * and / to calc(). * [Theme] Fix the precedense ordering in parsing. Also avoid making copies. * [Theme] Don't print unneeded (). * [Theme] Add modulo to calc. --- lexer/theme-lexer.l | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'lexer/theme-lexer.l') diff --git a/lexer/theme-lexer.l b/lexer/theme-lexer.l index 50a2c4e7..ec1ccc0b 100644 --- a/lexer/theme-lexer.l +++ b/lexer/theme-lexer.l @@ -183,6 +183,11 @@ ASTERIX \* ENV $\{[[:alnum:]]*\} +MODIFIER_ADD \+ +MODIFIER_SUBTRACT - +MODIFIER_DIVIDE \/ +MODIFIER_MULTIPLY \* + /* Position */ CENTER (?i:center) NORTH (?i:north) @@ -224,6 +229,7 @@ COLOR_TRANSPARENT (?i:transparent) S_T_PARENT_LEFT \( S_T_PARENT_RIGHT \) +CALC (?i:calc) COMMA , FORWARD_SLASH \/ @@ -450,6 +456,11 @@ if ( queue == NULL ){ {LS_DASH} { return T_DASH; } {INHERIT} { return T_INHERIT; } +{MODIFIER_ADD} { return T_MODIFIER_ADD; } +{MODIFIER_SUBTRACT} { return T_MODIFIER_SUBTRACT; } +{MODIFIER_MULTIPLY} { return T_MODIFIER_MULTIPLY; } +{MODIFIER_DIVIDE} { return T_MODIFIER_DIVIDE; } +{CALC} { return T_CALC; } {ENV} { yytext[yyleng-1] = '\0'; -- cgit v1.2.3