Add ternary operator
parent
56ef120056
commit
7643be39f0
|
@ -7,8 +7,8 @@
|
||||||
*
|
*
|
||||||
* Homepage: http://yourcmc.ru/wiki/VMX::Template
|
* Homepage: http://yourcmc.ru/wiki/VMX::Template
|
||||||
* License: GNU GPLv3 or later
|
* License: GNU GPLv3 or later
|
||||||
* Author: Vitaliy Filippov, 2006-2018
|
* Author: Vitaliy Filippov, 2006-2019
|
||||||
* Version: V3 (LALR), 2018-08-03
|
* Version: V3 (LALR), 2019-12-28
|
||||||
*
|
*
|
||||||
* The template engine is split into two parts:
|
* The template engine is split into two parts:
|
||||||
* (1) This file - always used when running templates
|
* (1) This file - always used when running templates
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -50,6 +50,8 @@
|
||||||
%token ">" "greater than operator '>'"
|
%token ">" "greater than operator '>'"
|
||||||
%token "<=" "less or equal operator '<='"
|
%token "<=" "less or equal operator '<='"
|
||||||
%token ">=" "greater or equal operator '>='"
|
%token ">=" "greater or equal operator '>='"
|
||||||
|
%token "?" "ternary operator '? :'"
|
||||||
|
%token ":" "ternary operator '? :'"
|
||||||
%token "+" "plus operator '+'"
|
%token "+" "plus operator '+'"
|
||||||
%token "-" "minus operator '-'"
|
%token "-" "minus operator '-'"
|
||||||
%token "*" "multiply operator '*'"
|
%token "*" "multiply operator '*'"
|
||||||
|
@ -73,7 +75,7 @@
|
||||||
%left ".."
|
%left ".."
|
||||||
%left "||" "OR" "XOR"
|
%left "||" "OR" "XOR"
|
||||||
%left "&&" "AND"
|
%left "&&" "AND"
|
||||||
%nonassoc "==" "!=" "<" ">" "<=" ">="
|
%nonassoc "==" "!=" "<" ">" "<=" ">=" "?"
|
||||||
%left "+" "-"
|
%left "+" "-"
|
||||||
%left "&"
|
%left "&"
|
||||||
%left "*" "/" "%"
|
%left "*" "/" "%"
|
||||||
|
@ -196,6 +198,9 @@ exp: exp/a ".." exp/b {
|
||||||
| exp/a "AND" exp/b {
|
| exp/a "AND" exp/b {
|
||||||
$$ = [ '(' . $a[0] . ' && ' . $b[0] . ')', true ];
|
$$ = [ '(' . $a[0] . ' && ' . $b[0] . ')', true ];
|
||||||
}
|
}
|
||||||
|
| exp/a "?" exp/b ":" exp/c {
|
||||||
|
$$ = [ '(' . $a[0] . ' ? ' . $b[0] . ' : ' . $c[0] . ')', $b[1] && $c[1] ];
|
||||||
|
}
|
||||||
| exp/a "==" exp/b {
|
| exp/a "==" exp/b {
|
||||||
$$ = [ '(' . $a[0] . ' == ' . $b[0] . ')', true ];
|
$$ = [ '(' . $a[0] . ' == ' . $b[0] . ')', true ];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue