[template-glib] expr-parser.y: separate boolean operations
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [template-glib] expr-parser.y: separate boolean operations
- Date: Fri, 6 May 2022 18:42:48 +0000 (UTC)
commit 589f8df419f06c7a17cbda1c0e81aed36628f53b
Author: Christian Hergert <chergert redhat com>
Date: Fri May 6 11:42:40 2022 -0700
expr-parser.y: separate boolean operations
src/tmpl-expr-parser.y | 5 +++++
src/tmpl-expr-scanner.l | 6 ++++--
2 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/src/tmpl-expr-parser.y b/src/tmpl-expr-parser.y
index 06a72d7..62c28a6 100644
--- a/src/tmpl-expr-parser.y
+++ b/src/tmpl-expr-parser.y
@@ -26,6 +26,7 @@
TmplExprBuiltin fn; /* builtin call */
int b; /* boolean */
int cmp; /* comparison */
+ int boolcmp; /* boolean comparison */
}
%{
@@ -126,6 +127,7 @@ add_to_list (TmplExpr *stmt,
%token NOP
%left <cmp> CMP
+%left <boolcmp> BOOLCMP
%right '='
%left '+' '-'
%left '*' '/'
@@ -202,6 +204,9 @@ list: /* nothing */ { $$ = NULL; }
exp: exp CMP exp {
$$ = tmpl_expr_new_simple ($2, $1, $3);
}
+ | exp BOOLCMP exp {
+ $$ = tmpl_expr_new_simple ($2, $1, $3);
+ }
| exp '+' exp {
$$ = tmpl_expr_new_simple (TMPL_EXPR_ADD, $1, $3);
}
diff --git a/src/tmpl-expr-scanner.l b/src/tmpl-expr-scanner.l
index 3ed530a..c203b7a 100644
--- a/src/tmpl-expr-scanner.l
+++ b/src/tmpl-expr-scanner.l
@@ -64,8 +64,10 @@ TmplExprParser *parser = yyextra;
"==" { yylval->cmp = TMPL_EXPR_EQ; return CMP; }
">=" { yylval->cmp = TMPL_EXPR_GTE; return CMP; }
"<=" { yylval->cmp = TMPL_EXPR_LTE; return CMP; }
-"||" { yylval->cmp = TMPL_EXPR_OR; return CMP; }
-"&&" { yylval->cmp = TMPL_EXPR_AND; return CMP; }
+
+ /* boolean ops */
+"||" { yylval->boolcmp = TMPL_EXPR_OR; return BOOLCMP; }
+"&&" { yylval->boolcmp = TMPL_EXPR_AND; return BOOLCMP; }
/* keywords */
"if" { return IF; }
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]