diff options
author | Dave Davenport <DaveDavenport@users.noreply.github.com> | 2020-04-24 19:54:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-24 19:54:08 +0200 |
commit | 151547a99ed142168ec4a11e526102994f6736a9 (patch) | |
tree | 523506cae7120bc80c1234c94c1f0a4e1cd66bc6 /lexer/theme-lexer.l | |
parent | f90ad971d9d334b26280fbf14dda700877f75d67 (diff) |
[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.
Diffstat (limited to 'lexer/theme-lexer.l')
-rw-r--r-- | lexer/theme-lexer.l | 11 |
1 files changed, 11 insertions, 0 deletions
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 ){ <PROPERTIES,PROPERTIES_ENV,PROPERTIES_VAR_DEFAULT>{LS_DASH} { return T_DASH; } <PROPERTIES,PROPERTIES_ENV,PROPERTIES_VAR_DEFAULT>{INHERIT} { return T_INHERIT; } +<PROPERTIES,PROPERTIES_ENV,PROPERTIES_VAR_DEFAULT>{MODIFIER_ADD} { return T_MODIFIER_ADD; } +<PROPERTIES,PROPERTIES_ENV,PROPERTIES_VAR_DEFAULT>{MODIFIER_SUBTRACT} { return T_MODIFIER_SUBTRACT; } +<PROPERTIES,PROPERTIES_ENV,PROPERTIES_VAR_DEFAULT>{MODIFIER_MULTIPLY} { return T_MODIFIER_MULTIPLY; } +<PROPERTIES,PROPERTIES_ENV,PROPERTIES_VAR_DEFAULT>{MODIFIER_DIVIDE} { return T_MODIFIER_DIVIDE; } +<PROPERTIES,PROPERTIES_ENV,PROPERTIES_VAR_DEFAULT>{CALC} { return T_CALC; } <PROPERTIES,PROPERTIES_ENV,PROPERTIES_VAR_DEFAULT>{ENV} { yytext[yyleng-1] = '\0'; |