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