aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/viml/parser/expressions.h
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2017-10-01 22:35:41 +0300
committerZyX <kp-pav@yandex.ru>2017-10-15 19:13:49 +0300
commit6144e26eb920a90b0db22bd7afcac0b9e0734ed6 (patch)
tree6029aeb34bcd862340c4842688b99c9faf850082 /src/nvim/viml/parser/expressions.h
parent9e721031d597bfa435da03597939191970f7a918 (diff)
downloadrneovim-6144e26eb920a90b0db22bd7afcac0b9e0734ed6.tar.gz
rneovim-6144e26eb920a90b0db22bd7afcac0b9e0734ed6.tar.bz2
rneovim-6144e26eb920a90b0db22bd7afcac0b9e0734ed6.zip
viml/parser/expressions: Add support for ternary operator
Diffstat (limited to 'src/nvim/viml/parser/expressions.h')
-rw-r--r--src/nvim/viml/parser/expressions.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/nvim/viml/parser/expressions.h b/src/nvim/viml/parser/expressions.h
index 01a51e4eda..cf0907850a 100644
--- a/src/nvim/viml/parser/expressions.h
+++ b/src/nvim/viml/parser/expressions.h
@@ -145,6 +145,7 @@ typedef enum {
kExprNodeMissing = 'X',
kExprNodeOpMissing = '_',
kExprNodeTernary = '?', ///< Ternary operator.
+ kExprNodeTernaryValue = 'C', ///< Ternary operator, colon.
kExprNodeRegister = '@', ///< Register.
kExprNodeSubscript = 's', ///< Subscript.
kExprNodeListLiteral = 'l', ///< List literal.
@@ -209,7 +210,10 @@ struct expr_ast_node {
/// Points to inside parser reader state.
const char *ident;
size_t ident_len; ///< Actual identifier length.
- } var;
+ } var; ///< For kExprNodePlainIdentifier.
+ struct {
+ bool got_colon; ///< True if colon was seen.
+ } ter; ///< For kExprNodeTernaryValue.
} data;
};