mirror of https://github.com/Icinga/icinga2.git
Config: Implement arrays.
This commit is contained in:
parent
34cc7347ca
commit
767a2909b6
|
@ -156,6 +156,9 @@ type Service {
|
||||||
%attribute dictionary "macros" {
|
%attribute dictionary "macros" {
|
||||||
%attribute string "*"
|
%attribute string "*"
|
||||||
},
|
},
|
||||||
|
%attribute dictionary "check_command" {
|
||||||
|
%attribute string "_*"
|
||||||
|
},
|
||||||
%attribute string "check_command",
|
%attribute string "check_command",
|
||||||
%attribute number "max_check_attempts",
|
%attribute number "max_check_attempts",
|
||||||
%attribute number "check_interval",
|
%attribute number "check_interval",
|
||||||
|
@ -229,5 +232,8 @@ type Notification {
|
||||||
%attribute string "*"
|
%attribute string "*"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
%attribute dictionary "notification_command" {
|
||||||
|
%attribute string "_*"
|
||||||
|
},
|
||||||
%attribute string "notification_command"
|
%attribute string "notification_command"
|
||||||
}
|
}
|
||||||
|
|
|
@ -228,7 +228,7 @@ typedef struct YYLTYPE
|
||||||
/* Copy the second part of user declarations. */
|
/* Copy the second part of user declarations. */
|
||||||
|
|
||||||
/* Line 343 of yacc.c */
|
/* Line 343 of yacc.c */
|
||||||
#line 82 "config_parser.yy"
|
#line 83 "config_parser.yy"
|
||||||
|
|
||||||
|
|
||||||
int yylex(YYSTYPE *lvalp, YYLTYPE *llocp, void *scanner);
|
int yylex(YYSTYPE *lvalp, YYLTYPE *llocp, void *scanner);
|
||||||
|
@ -243,6 +243,7 @@ void yyerror(YYLTYPE *locp, ConfigCompiler *, const char *err)
|
||||||
int yyparse(ConfigCompiler *context);
|
int yyparse(ConfigCompiler *context);
|
||||||
|
|
||||||
static stack<ExpressionList::Ptr> m_ExpressionLists;
|
static stack<ExpressionList::Ptr> m_ExpressionLists;
|
||||||
|
static Dictionary::Ptr m_Array;
|
||||||
static ConfigItemBuilder::Ptr m_Item;
|
static ConfigItemBuilder::Ptr m_Item;
|
||||||
static bool m_Abstract;
|
static bool m_Abstract;
|
||||||
static bool m_Local;
|
static bool m_Local;
|
||||||
|
@ -266,7 +267,7 @@ void ConfigCompiler::Compile(void)
|
||||||
|
|
||||||
|
|
||||||
/* Line 343 of yacc.c */
|
/* Line 343 of yacc.c */
|
||||||
#line 270 "config_parser.cc"
|
#line 271 "config_parser.cc"
|
||||||
|
|
||||||
#ifdef short
|
#ifdef short
|
||||||
# undef short
|
# undef short
|
||||||
|
@ -487,16 +488,16 @@ union yyalloc
|
||||||
/* YYFINAL -- State number of the termination state. */
|
/* YYFINAL -- State number of the termination state. */
|
||||||
#define YYFINAL 2
|
#define YYFINAL 2
|
||||||
/* YYLAST -- Last index in YYTABLE. */
|
/* YYLAST -- Last index in YYTABLE. */
|
||||||
#define YYLAST 76
|
#define YYLAST 80
|
||||||
|
|
||||||
/* YYNTOKENS -- Number of terminals. */
|
/* YYNTOKENS -- Number of terminals. */
|
||||||
#define YYNTOKENS 38
|
#define YYNTOKENS 38
|
||||||
/* YYNNTS -- Number of nonterminals. */
|
/* YYNNTS -- Number of nonterminals. */
|
||||||
#define YYNNTS 31
|
#define YYNNTS 35
|
||||||
/* YYNRULES -- Number of rules. */
|
/* YYNRULES -- Number of rules. */
|
||||||
#define YYNRULES 66
|
#define YYNRULES 74
|
||||||
/* YYNRULES -- Number of states. */
|
/* YYNRULES -- Number of states. */
|
||||||
#define YYNSTATES 89
|
#define YYNSTATES 98
|
||||||
|
|
||||||
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
|
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
|
||||||
#define YYUNDEFTOK 2
|
#define YYUNDEFTOK 2
|
||||||
|
@ -550,7 +551,8 @@ static const yytype_uint8 yyprhs[] =
|
||||||
76, 78, 80, 82, 84, 86, 87, 88, 97, 98,
|
76, 78, 80, 82, 84, 86, 87, 88, 97, 98,
|
||||||
101, 103, 105, 107, 111, 113, 114, 117, 118, 123,
|
101, 103, 105, 107, 111, 113, 114, 117, 118, 123,
|
||||||
125, 128, 129, 131, 135, 139, 146, 148, 150, 152,
|
125, 128, 129, 131, 135, 139, 146, 148, 150, 152,
|
||||||
154, 156, 158, 160, 162, 164, 166
|
154, 156, 158, 159, 164, 166, 169, 170, 172, 176,
|
||||||
|
178, 180, 182, 184, 186
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
|
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
|
||||||
|
@ -569,22 +571,25 @@ static const yytype_int8 yyrhs[] =
|
||||||
-1, 22, -1, 23, -1, 59, -1, 58, 35, 59,
|
-1, 22, -1, 23, -1, 59, -1, 58, 35, 59,
|
||||||
-1, 3, -1, -1, 27, 58, -1, -1, 33, 62,
|
-1, 3, -1, -1, 27, 58, -1, -1, 33, 62,
|
||||||
63, 34, -1, 64, -1, 64, 35, -1, -1, 65,
|
63, 34, -1, 64, -1, 64, 35, -1, -1, 65,
|
||||||
-1, 64, 35, 65, -1, 43, 66, 68, -1, 43,
|
-1, 64, 35, 65, -1, 43, 66, 72, -1, 43,
|
||||||
36, 3, 37, 66, 68, -1, 3, -1, 8, -1,
|
36, 3, 37, 66, 72, -1, 3, -1, 8, -1,
|
||||||
9, -1, 10, -1, 11, -1, 12, -1, 3, -1,
|
9, -1, 10, -1, 11, -1, 12, -1, -1, 36,
|
||||||
5, -1, 6, -1, 67, -1, 61, -1
|
68, 69, 37, -1, 70, -1, 70, 35, -1, -1,
|
||||||
|
3, -1, 70, 35, 3, -1, 3, -1, 5, -1,
|
||||||
|
6, -1, 71, -1, 61, -1, 67, -1
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
||||||
static const yytype_uint16 yyrline[] =
|
static const yytype_uint16 yyrline[] =
|
||||||
{
|
{
|
||||||
0, 119, 119, 120, 123, 123, 123, 123, 126, 131,
|
0, 121, 121, 122, 125, 125, 125, 125, 128, 133,
|
||||||
137, 143, 144, 152, 151, 181, 184, 191, 190, 202,
|
139, 145, 146, 154, 153, 183, 186, 193, 192, 204,
|
||||||
203, 205, 206, 207, 210, 215, 220, 227, 236, 237,
|
205, 207, 208, 209, 212, 217, 222, 229, 238, 239,
|
||||||
244, 245, 246, 247, 248, 255, 260, 255, 285, 286,
|
246, 247, 248, 249, 250, 257, 262, 257, 287, 288,
|
||||||
289, 293, 299, 300, 303, 310, 311, 315, 314, 326,
|
291, 295, 301, 302, 305, 312, 313, 317, 316, 328,
|
||||||
327, 329, 330, 331, 334, 342, 356, 365, 366, 367,
|
329, 331, 332, 333, 336, 344, 358, 367, 368, 369,
|
||||||
368, 369, 375, 380, 384, 390, 391
|
370, 371, 378, 377, 389, 390, 392, 393, 398, 405,
|
||||||
|
410, 414, 420, 421, 422
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -606,7 +611,8 @@ static const char *const yytname[] =
|
||||||
"object", "$@3", "$@4", "attributes", "attribute",
|
"object", "$@3", "$@4", "attributes", "attribute",
|
||||||
"object_inherits_list", "object_inherits_item",
|
"object_inherits_list", "object_inherits_item",
|
||||||
"object_inherits_specifier", "expressionlist", "$@5", "expressions",
|
"object_inherits_specifier", "expressionlist", "$@5", "expressions",
|
||||||
"expressions_inner", "expression", "operator", "simplevalue", "value", 0
|
"expressions_inner", "expression", "operator", "array", "$@6",
|
||||||
|
"arrayitems", "arrayitems_inner", "simplevalue", "value", 0
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -631,7 +637,8 @@ static const yytype_uint8 yyr1[] =
|
||||||
44, 44, 44, 44, 44, 54, 55, 53, 56, 56,
|
44, 44, 44, 44, 44, 54, 55, 53, 56, 56,
|
||||||
57, 57, 58, 58, 59, 60, 60, 62, 61, 63,
|
57, 57, 58, 58, 59, 60, 60, 62, 61, 63,
|
||||||
63, 64, 64, 64, 65, 65, 65, 66, 66, 66,
|
63, 64, 64, 64, 65, 65, 65, 66, 66, 66,
|
||||||
66, 66, 67, 67, 67, 68, 68
|
66, 66, 68, 67, 69, 69, 70, 70, 70, 71,
|
||||||
|
71, 71, 72, 72, 72
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
|
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
|
||||||
|
@ -643,7 +650,8 @@ static const yytype_uint8 yyr2[] =
|
||||||
1, 1, 1, 1, 1, 0, 0, 8, 0, 2,
|
1, 1, 1, 1, 1, 0, 0, 8, 0, 2,
|
||||||
1, 1, 1, 3, 1, 0, 2, 0, 4, 1,
|
1, 1, 1, 3, 1, 0, 2, 0, 4, 1,
|
||||||
2, 0, 1, 3, 3, 6, 1, 1, 1, 1,
|
2, 0, 1, 3, 3, 6, 1, 1, 1, 1,
|
||||||
1, 1, 1, 1, 1, 1, 1
|
1, 1, 0, 4, 1, 2, 0, 1, 3, 1,
|
||||||
|
1, 1, 1, 1, 1
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
|
/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
|
||||||
|
@ -658,8 +666,9 @@ static const yytype_uint8 yydefact[] =
|
||||||
0, 0, 0, 0, 15, 0, 19, 22, 44, 46,
|
0, 0, 0, 0, 15, 0, 19, 22, 44, 46,
|
||||||
42, 47, 37, 25, 24, 0, 18, 20, 0, 51,
|
42, 47, 37, 25, 24, 0, 18, 20, 0, 51,
|
||||||
26, 23, 43, 12, 0, 0, 49, 52, 27, 57,
|
26, 23, 43, 12, 0, 0, 49, 52, 27, 57,
|
||||||
58, 59, 60, 61, 0, 0, 48, 50, 0, 62,
|
58, 59, 60, 61, 0, 0, 48, 50, 0, 69,
|
||||||
63, 64, 66, 65, 54, 53, 0, 0, 55
|
70, 71, 62, 73, 74, 72, 54, 53, 0, 66,
|
||||||
|
0, 67, 0, 64, 55, 63, 65, 68
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYDEFGOTO[NTERM-NUM]. */
|
/* YYDEFGOTO[NTERM-NUM]. */
|
||||||
|
@ -667,33 +676,34 @@ static const yytype_int8 yydefgoto[] =
|
||||||
{
|
{
|
||||||
-1, 1, 11, 12, 13, 64, 14, 30, 15, 37,
|
-1, 1, 11, 12, 13, 64, 14, 30, 15, 37,
|
||||||
39, 45, 46, 47, 33, 16, 17, 38, 22, 29,
|
39, 45, 46, 47, 33, 16, 17, 38, 22, 29,
|
||||||
49, 50, 41, 82, 59, 65, 66, 67, 75, 83,
|
49, 50, 41, 83, 59, 65, 66, 67, 75, 84,
|
||||||
84
|
89, 92, 93, 85, 86
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
|
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
|
||||||
STATE-NUM. */
|
STATE-NUM. */
|
||||||
#define YYPACT_NINF -17
|
#define YYPACT_NINF -15
|
||||||
static const yytype_int8 yypact[] =
|
static const yytype_int8 yypact[] =
|
||||||
{
|
{
|
||||||
-17, 1, -17, -17, -17, -17, -17, -17, 7, 18,
|
-15, 1, -15, -15, -15, -15, -15, -15, 7, 18,
|
||||||
-17, -17, -17, -17, -17, 2, -17, -17, -17, -17,
|
-15, -15, -15, -15, -15, 2, -15, -15, -15, -15,
|
||||||
-17, 6, 21, -17, -17, -17, -17, -17, 6, -17,
|
-15, 6, 22, -15, -15, -15, -15, -15, 6, -15,
|
||||||
-2, 25, 28, 19, -17, -17, -17, -17, 26, 31,
|
-2, 25, 28, 20, -15, -15, -15, -15, 27, 32,
|
||||||
51, 22, 53, 54, 20, 24, 27, -17, -17, 29,
|
52, 23, 54, 55, 21, 26, 24, -15, -15, 29,
|
||||||
-17, -17, -17, -17, -17, 56, -17, 31, 51, 17,
|
-15, -15, -15, -15, -15, 58, -15, 32, 52, 17,
|
||||||
19, -17, -17, 12, -4, 32, 33, -17, -17, -17,
|
20, -15, -15, 13, -4, 33, 30, -15, -15, -15,
|
||||||
-17, -17, -17, -17, 57, -3, -17, 17, 34, -17,
|
-15, -15, -15, -15, 59, -3, -15, 17, 34, -15,
|
||||||
-17, -17, -17, -17, -17, -17, 30, -3, -17
|
-15, -15, -15, -15, -15, -15, -15, -15, 31, 60,
|
||||||
|
-3, -15, 35, 38, -15, -15, 63, -15
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYPGOTO[NTERM-NUM]. */
|
/* YYPGOTO[NTERM-NUM]. */
|
||||||
static const yytype_int8 yypgoto[] =
|
static const yytype_int8 yypgoto[] =
|
||||||
{
|
{
|
||||||
-17, -17, -17, -17, -17, -9, 23, -17, -17, 3,
|
-15, -15, -15, -15, -15, -9, 36, -15, -15, 8,
|
||||||
-17, -17, -17, 4, -17, -17, -17, -17, -17, -17,
|
-15, -15, -15, 12, -15, -15, -15, -15, -15, -15,
|
||||||
-17, 11, -17, 35, -17, -17, -17, -12, -16, -17,
|
-15, 16, -15, 37, -15, -15, -15, -7, -13, -15,
|
||||||
-15
|
-15, -15, -15, -15, -14
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
|
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
|
||||||
|
@ -705,15 +715,16 @@ static const yytype_int8 yytable[] =
|
||||||
79, 2, 80, 81, 69, 70, 71, 72, 73, 23,
|
79, 2, 80, 81, 69, 70, 71, 72, 73, 23,
|
||||||
18, 19, 25, 24, 3, 4, 5, 6, 7, 31,
|
18, 19, 25, 24, 3, 4, 5, 6, 7, 31,
|
||||||
63, 20, -15, 21, 24, 32, 8, 9, 34, 10,
|
63, 20, -15, 21, 24, 32, 8, 9, 34, 10,
|
||||||
51, 35, 74, 3, 4, 5, 6, 7, 69, 70,
|
51, 35, 74, 82, 3, 4, 5, 6, 7, 69,
|
||||||
71, 72, 73, 26, 27, 28, -56, -56, 10, 42,
|
70, 71, 72, 73, 26, 27, 28, -56, -56, 10,
|
||||||
43, 44, 36, 40, 48, 51, 53, 54, 56, 60,
|
42, 43, 44, 36, 40, 48, 51, 53, 54, 57,
|
||||||
78, 61, 57, 68, 58, 85, 76, 55, 77, 62,
|
56, 60, 78, 91, 58, 77, 97, 76, 68, 61,
|
||||||
87, 86, 88, 0, 0, 0, 52
|
87, 88, 95, 96, 62, 90, 94, 0, 52, 0,
|
||||||
|
55
|
||||||
};
|
};
|
||||||
|
|
||||||
#define yypact_value_is_default(yystate) \
|
#define yypact_value_is_default(yystate) \
|
||||||
((yystate) == (-17))
|
((yystate) == (-15))
|
||||||
|
|
||||||
#define yytable_value_is_error(yytable_value) \
|
#define yytable_value_is_error(yytable_value) \
|
||||||
YYID (0)
|
YYID (0)
|
||||||
|
@ -723,11 +734,12 @@ static const yytype_int8 yycheck[] =
|
||||||
3, 0, 5, 6, 8, 9, 10, 11, 12, 3,
|
3, 0, 5, 6, 8, 9, 10, 11, 12, 3,
|
||||||
3, 4, 21, 7, 13, 14, 15, 16, 17, 28,
|
3, 4, 21, 7, 13, 14, 15, 16, 17, 28,
|
||||||
3, 3, 21, 21, 7, 27, 25, 26, 3, 28,
|
3, 3, 21, 21, 7, 27, 25, 26, 3, 28,
|
||||||
33, 3, 36, 13, 14, 15, 16, 17, 8, 9,
|
33, 3, 36, 36, 13, 14, 15, 16, 17, 8,
|
||||||
10, 11, 12, 22, 23, 24, 34, 35, 28, 18,
|
9, 10, 11, 12, 22, 23, 24, 34, 35, 28,
|
||||||
19, 20, 33, 27, 3, 33, 3, 3, 34, 3,
|
18, 19, 20, 33, 27, 3, 33, 3, 3, 35,
|
||||||
3, 57, 35, 60, 35, 77, 34, 44, 35, 58,
|
34, 3, 3, 3, 35, 35, 3, 34, 60, 57,
|
||||||
86, 37, 87, -1, -1, -1, 41
|
77, 37, 37, 35, 58, 88, 90, -1, 41, -1,
|
||||||
|
44
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
||||||
|
@ -742,7 +754,8 @@ static const yytype_uint8 yystos[] =
|
||||||
59, 33, 61, 3, 3, 44, 34, 35, 35, 62,
|
59, 33, 61, 3, 3, 44, 34, 35, 35, 62,
|
||||||
3, 51, 59, 3, 43, 63, 64, 65, 47, 8,
|
3, 51, 59, 3, 43, 63, 64, 65, 47, 8,
|
||||||
9, 10, 11, 12, 36, 66, 34, 35, 3, 3,
|
9, 10, 11, 12, 36, 66, 34, 35, 3, 3,
|
||||||
5, 6, 61, 67, 68, 65, 37, 66, 68
|
5, 6, 36, 61, 67, 71, 72, 65, 37, 68,
|
||||||
|
66, 3, 69, 70, 72, 37, 35, 3
|
||||||
};
|
};
|
||||||
|
|
||||||
#define yyerrok (yyerrstatus = 0)
|
#define yyerrok (yyerrstatus = 0)
|
||||||
|
@ -1628,7 +1641,7 @@ yyreduce:
|
||||||
case 8:
|
case 8:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 127 "config_parser.yy"
|
#line 129 "config_parser.yy"
|
||||||
{
|
{
|
||||||
context->HandleInclude((yyvsp[(2) - (2)].text), false, yylloc);
|
context->HandleInclude((yyvsp[(2) - (2)].text), false, yylloc);
|
||||||
free((yyvsp[(2) - (2)].text));
|
free((yyvsp[(2) - (2)].text));
|
||||||
|
@ -1638,7 +1651,7 @@ yyreduce:
|
||||||
case 9:
|
case 9:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 132 "config_parser.yy"
|
#line 134 "config_parser.yy"
|
||||||
{
|
{
|
||||||
context->HandleInclude((yyvsp[(2) - (2)].text), true, yylloc);
|
context->HandleInclude((yyvsp[(2) - (2)].text), true, yylloc);
|
||||||
free((yyvsp[(2) - (2)].text));
|
free((yyvsp[(2) - (2)].text));
|
||||||
|
@ -1648,7 +1661,7 @@ yyreduce:
|
||||||
case 10:
|
case 10:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 138 "config_parser.yy"
|
#line 140 "config_parser.yy"
|
||||||
{
|
{
|
||||||
context->HandleLibrary((yyvsp[(2) - (2)].text));
|
context->HandleLibrary((yyvsp[(2) - (2)].text));
|
||||||
free((yyvsp[(2) - (2)].text));
|
free((yyvsp[(2) - (2)].text));
|
||||||
|
@ -1658,7 +1671,7 @@ yyreduce:
|
||||||
case 12:
|
case 12:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 145 "config_parser.yy"
|
#line 147 "config_parser.yy"
|
||||||
{
|
{
|
||||||
(yyval.text) = (yyvsp[(1) - (1)].text);
|
(yyval.text) = (yyvsp[(1) - (1)].text);
|
||||||
free((yyvsp[(1) - (1)].text));
|
free((yyvsp[(1) - (1)].text));
|
||||||
|
@ -1668,7 +1681,7 @@ yyreduce:
|
||||||
case 13:
|
case 13:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 152 "config_parser.yy"
|
#line 154 "config_parser.yy"
|
||||||
{
|
{
|
||||||
String name = String((yyvsp[(3) - (3)].text));
|
String name = String((yyvsp[(3) - (3)].text));
|
||||||
free((yyvsp[(3) - (3)].text));
|
free((yyvsp[(3) - (3)].text));
|
||||||
|
@ -1688,7 +1701,7 @@ yyreduce:
|
||||||
case 14:
|
case 14:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 167 "config_parser.yy"
|
#line 169 "config_parser.yy"
|
||||||
{
|
{
|
||||||
TypeRuleList::Ptr ruleList = *(yyvsp[(6) - (6)].variant);
|
TypeRuleList::Ptr ruleList = *(yyvsp[(6) - (6)].variant);
|
||||||
m_Type->GetRuleList()->AddRules(ruleList);
|
m_Type->GetRuleList()->AddRules(ruleList);
|
||||||
|
@ -1705,7 +1718,7 @@ yyreduce:
|
||||||
case 15:
|
case 15:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 181 "config_parser.yy"
|
#line 183 "config_parser.yy"
|
||||||
{
|
{
|
||||||
(yyval.num) = 0;
|
(yyval.num) = 0;
|
||||||
}
|
}
|
||||||
|
@ -1714,7 +1727,7 @@ yyreduce:
|
||||||
case 16:
|
case 16:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 185 "config_parser.yy"
|
#line 187 "config_parser.yy"
|
||||||
{
|
{
|
||||||
(yyval.num) = 1;
|
(yyval.num) = 1;
|
||||||
}
|
}
|
||||||
|
@ -1723,7 +1736,7 @@ yyreduce:
|
||||||
case 17:
|
case 17:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 191 "config_parser.yy"
|
#line 193 "config_parser.yy"
|
||||||
{
|
{
|
||||||
m_RuleLists.push(boost::make_shared<TypeRuleList>());
|
m_RuleLists.push(boost::make_shared<TypeRuleList>());
|
||||||
}
|
}
|
||||||
|
@ -1732,7 +1745,7 @@ yyreduce:
|
||||||
case 18:
|
case 18:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 196 "config_parser.yy"
|
#line 198 "config_parser.yy"
|
||||||
{
|
{
|
||||||
(yyval.variant) = new Value(m_RuleLists.top());
|
(yyval.variant) = new Value(m_RuleLists.top());
|
||||||
m_RuleLists.pop();
|
m_RuleLists.pop();
|
||||||
|
@ -1742,7 +1755,7 @@ yyreduce:
|
||||||
case 24:
|
case 24:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 211 "config_parser.yy"
|
#line 213 "config_parser.yy"
|
||||||
{
|
{
|
||||||
m_RuleLists.top()->AddRequire((yyvsp[(2) - (2)].text));
|
m_RuleLists.top()->AddRequire((yyvsp[(2) - (2)].text));
|
||||||
free((yyvsp[(2) - (2)].text));
|
free((yyvsp[(2) - (2)].text));
|
||||||
|
@ -1752,7 +1765,7 @@ yyreduce:
|
||||||
case 25:
|
case 25:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 216 "config_parser.yy"
|
#line 218 "config_parser.yy"
|
||||||
{
|
{
|
||||||
m_RuleLists.top()->SetValidator((yyvsp[(2) - (2)].text));
|
m_RuleLists.top()->SetValidator((yyvsp[(2) - (2)].text));
|
||||||
free((yyvsp[(2) - (2)].text));
|
free((yyvsp[(2) - (2)].text));
|
||||||
|
@ -1762,7 +1775,7 @@ yyreduce:
|
||||||
case 26:
|
case 26:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 221 "config_parser.yy"
|
#line 223 "config_parser.yy"
|
||||||
{
|
{
|
||||||
TypeRule rule((yyvsp[(2) - (3)].type), (yyvsp[(3) - (3)].text), TypeRuleList::Ptr(), yylloc);
|
TypeRule rule((yyvsp[(2) - (3)].type), (yyvsp[(3) - (3)].text), TypeRuleList::Ptr(), yylloc);
|
||||||
free((yyvsp[(3) - (3)].text));
|
free((yyvsp[(3) - (3)].text));
|
||||||
|
@ -1774,7 +1787,7 @@ yyreduce:
|
||||||
case 27:
|
case 27:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 228 "config_parser.yy"
|
#line 230 "config_parser.yy"
|
||||||
{
|
{
|
||||||
TypeRule rule((yyvsp[(2) - (4)].type), (yyvsp[(3) - (4)].text), *(yyvsp[(4) - (4)].variant), yylloc);
|
TypeRule rule((yyvsp[(2) - (4)].type), (yyvsp[(3) - (4)].text), *(yyvsp[(4) - (4)].variant), yylloc);
|
||||||
free((yyvsp[(3) - (4)].text));
|
free((yyvsp[(3) - (4)].text));
|
||||||
|
@ -1786,7 +1799,7 @@ yyreduce:
|
||||||
case 29:
|
case 29:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 238 "config_parser.yy"
|
#line 240 "config_parser.yy"
|
||||||
{
|
{
|
||||||
m_Type->SetParent((yyvsp[(2) - (2)].text));
|
m_Type->SetParent((yyvsp[(2) - (2)].text));
|
||||||
free((yyvsp[(2) - (2)].text));
|
free((yyvsp[(2) - (2)].text));
|
||||||
|
@ -1796,7 +1809,7 @@ yyreduce:
|
||||||
case 34:
|
case 34:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 249 "config_parser.yy"
|
#line 251 "config_parser.yy"
|
||||||
{
|
{
|
||||||
(yyval.type) = (yyvsp[(1) - (1)].type);
|
(yyval.type) = (yyvsp[(1) - (1)].type);
|
||||||
}
|
}
|
||||||
|
@ -1805,7 +1818,7 @@ yyreduce:
|
||||||
case 35:
|
case 35:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 255 "config_parser.yy"
|
#line 257 "config_parser.yy"
|
||||||
{
|
{
|
||||||
m_Abstract = false;
|
m_Abstract = false;
|
||||||
m_Local = false;
|
m_Local = false;
|
||||||
|
@ -1815,7 +1828,7 @@ yyreduce:
|
||||||
case 36:
|
case 36:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 260 "config_parser.yy"
|
#line 262 "config_parser.yy"
|
||||||
{
|
{
|
||||||
m_Item = boost::make_shared<ConfigItemBuilder>(yylloc);
|
m_Item = boost::make_shared<ConfigItemBuilder>(yylloc);
|
||||||
|
|
||||||
|
@ -1832,7 +1845,7 @@ yyreduce:
|
||||||
case 37:
|
case 37:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 272 "config_parser.yy"
|
#line 274 "config_parser.yy"
|
||||||
{
|
{
|
||||||
ExpressionList::Ptr exprl = *(yyvsp[(8) - (8)].variant);
|
ExpressionList::Ptr exprl = *(yyvsp[(8) - (8)].variant);
|
||||||
delete (yyvsp[(8) - (8)].variant);
|
delete (yyvsp[(8) - (8)].variant);
|
||||||
|
@ -1849,7 +1862,7 @@ yyreduce:
|
||||||
case 40:
|
case 40:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 290 "config_parser.yy"
|
#line 292 "config_parser.yy"
|
||||||
{
|
{
|
||||||
m_Abstract = true;
|
m_Abstract = true;
|
||||||
}
|
}
|
||||||
|
@ -1858,7 +1871,7 @@ yyreduce:
|
||||||
case 41:
|
case 41:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 294 "config_parser.yy"
|
#line 296 "config_parser.yy"
|
||||||
{
|
{
|
||||||
m_Local = true;
|
m_Local = true;
|
||||||
}
|
}
|
||||||
|
@ -1867,7 +1880,7 @@ yyreduce:
|
||||||
case 44:
|
case 44:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 304 "config_parser.yy"
|
#line 306 "config_parser.yy"
|
||||||
{
|
{
|
||||||
m_Item->AddParent((yyvsp[(1) - (1)].text));
|
m_Item->AddParent((yyvsp[(1) - (1)].text));
|
||||||
free((yyvsp[(1) - (1)].text));
|
free((yyvsp[(1) - (1)].text));
|
||||||
|
@ -1877,7 +1890,7 @@ yyreduce:
|
||||||
case 47:
|
case 47:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 315 "config_parser.yy"
|
#line 317 "config_parser.yy"
|
||||||
{
|
{
|
||||||
m_ExpressionLists.push(boost::make_shared<ExpressionList>());
|
m_ExpressionLists.push(boost::make_shared<ExpressionList>());
|
||||||
}
|
}
|
||||||
|
@ -1886,7 +1899,7 @@ yyreduce:
|
||||||
case 48:
|
case 48:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 320 "config_parser.yy"
|
#line 322 "config_parser.yy"
|
||||||
{
|
{
|
||||||
(yyval.variant) = new Value(m_ExpressionLists.top());
|
(yyval.variant) = new Value(m_ExpressionLists.top());
|
||||||
m_ExpressionLists.pop();
|
m_ExpressionLists.pop();
|
||||||
|
@ -1896,7 +1909,7 @@ yyreduce:
|
||||||
case 54:
|
case 54:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 335 "config_parser.yy"
|
#line 337 "config_parser.yy"
|
||||||
{
|
{
|
||||||
Expression expr((yyvsp[(1) - (3)].text), (yyvsp[(2) - (3)].op), *(yyvsp[(3) - (3)].variant), yylloc);
|
Expression expr((yyvsp[(1) - (3)].text), (yyvsp[(2) - (3)].op), *(yyvsp[(3) - (3)].variant), yylloc);
|
||||||
free((yyvsp[(1) - (3)].text));
|
free((yyvsp[(1) - (3)].text));
|
||||||
|
@ -1909,7 +1922,7 @@ yyreduce:
|
||||||
case 55:
|
case 55:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 343 "config_parser.yy"
|
#line 345 "config_parser.yy"
|
||||||
{
|
{
|
||||||
Expression subexpr((yyvsp[(3) - (6)].text), (yyvsp[(5) - (6)].op), *(yyvsp[(6) - (6)].variant), yylloc);
|
Expression subexpr((yyvsp[(3) - (6)].text), (yyvsp[(5) - (6)].op), *(yyvsp[(6) - (6)].variant), yylloc);
|
||||||
free((yyvsp[(3) - (6)].text));
|
free((yyvsp[(3) - (6)].text));
|
||||||
|
@ -1928,7 +1941,7 @@ yyreduce:
|
||||||
case 56:
|
case 56:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 357 "config_parser.yy"
|
#line 359 "config_parser.yy"
|
||||||
{
|
{
|
||||||
Expression expr((yyvsp[(1) - (1)].text), OperatorSet, (yyvsp[(1) - (1)].text), yylloc);
|
Expression expr((yyvsp[(1) - (1)].text), OperatorSet, (yyvsp[(1) - (1)].text), yylloc);
|
||||||
free((yyvsp[(1) - (1)].text));
|
free((yyvsp[(1) - (1)].text));
|
||||||
|
@ -1940,7 +1953,7 @@ yyreduce:
|
||||||
case 61:
|
case 61:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 370 "config_parser.yy"
|
#line 372 "config_parser.yy"
|
||||||
{
|
{
|
||||||
(yyval.op) = (yyvsp[(1) - (1)].op);
|
(yyval.op) = (yyvsp[(1) - (1)].op);
|
||||||
}
|
}
|
||||||
|
@ -1949,35 +1962,74 @@ yyreduce:
|
||||||
case 62:
|
case 62:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 376 "config_parser.yy"
|
#line 378 "config_parser.yy"
|
||||||
{
|
{
|
||||||
(yyval.variant) = new Value((yyvsp[(1) - (1)].text));
|
m_Array = boost::make_shared<Dictionary>();
|
||||||
free((yyvsp[(1) - (1)].text));
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 63:
|
case 63:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 381 "config_parser.yy"
|
#line 383 "config_parser.yy"
|
||||||
|
{
|
||||||
|
(yyval.variant) = new Value(m_Array);
|
||||||
|
m_Array.reset();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 67:
|
||||||
|
|
||||||
|
/* Line 1806 of yacc.c */
|
||||||
|
#line 394 "config_parser.yy"
|
||||||
|
{
|
||||||
|
m_Array->Add((yyvsp[(1) - (1)].text));
|
||||||
|
free((yyvsp[(1) - (1)].text));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 68:
|
||||||
|
|
||||||
|
/* Line 1806 of yacc.c */
|
||||||
|
#line 399 "config_parser.yy"
|
||||||
|
{
|
||||||
|
m_Array->Add((yyvsp[(3) - (3)].text));
|
||||||
|
free((yyvsp[(3) - (3)].text));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 69:
|
||||||
|
|
||||||
|
/* Line 1806 of yacc.c */
|
||||||
|
#line 406 "config_parser.yy"
|
||||||
|
{
|
||||||
|
(yyval.variant) = new Value((yyvsp[(1) - (1)].text));
|
||||||
|
free((yyvsp[(1) - (1)].text));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 70:
|
||||||
|
|
||||||
|
/* Line 1806 of yacc.c */
|
||||||
|
#line 411 "config_parser.yy"
|
||||||
{
|
{
|
||||||
(yyval.variant) = new Value((yyvsp[(1) - (1)].num));
|
(yyval.variant) = new Value((yyvsp[(1) - (1)].num));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 64:
|
case 71:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 385 "config_parser.yy"
|
#line 415 "config_parser.yy"
|
||||||
{
|
{
|
||||||
(yyval.variant) = new Value();
|
(yyval.variant) = new Value();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 66:
|
case 74:
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 392 "config_parser.yy"
|
#line 423 "config_parser.yy"
|
||||||
{
|
{
|
||||||
(yyval.variant) = (yyvsp[(1) - (1)].variant);
|
(yyval.variant) = (yyvsp[(1) - (1)].variant);
|
||||||
}
|
}
|
||||||
|
@ -1986,7 +2038,7 @@ yyreduce:
|
||||||
|
|
||||||
|
|
||||||
/* Line 1806 of yacc.c */
|
/* Line 1806 of yacc.c */
|
||||||
#line 1990 "config_parser.cc"
|
#line 2042 "config_parser.cc"
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
/* User semantic actions sometimes alter yychar, and that requires
|
/* User semantic actions sometimes alter yychar, and that requires
|
||||||
|
@ -2224,6 +2276,6 @@ yyreturn:
|
||||||
|
|
||||||
|
|
||||||
/* Line 2067 of yacc.c */
|
/* Line 2067 of yacc.c */
|
||||||
#line 396 "config_parser.yy"
|
#line 427 "config_parser.yy"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -73,6 +73,7 @@ using namespace icinga;
|
||||||
%type <variant> simplevalue
|
%type <variant> simplevalue
|
||||||
%type <variant> value
|
%type <variant> value
|
||||||
%type <variant> expressionlist
|
%type <variant> expressionlist
|
||||||
|
%type <variant> array
|
||||||
%type <variant> typerulelist
|
%type <variant> typerulelist
|
||||||
%type <op> operator
|
%type <op> operator
|
||||||
%type <type> type
|
%type <type> type
|
||||||
|
@ -93,6 +94,7 @@ void yyerror(YYLTYPE *locp, ConfigCompiler *, const char *err)
|
||||||
int yyparse(ConfigCompiler *context);
|
int yyparse(ConfigCompiler *context);
|
||||||
|
|
||||||
static stack<ExpressionList::Ptr> m_ExpressionLists;
|
static stack<ExpressionList::Ptr> m_ExpressionLists;
|
||||||
|
static Dictionary::Ptr m_Array;
|
||||||
static ConfigItemBuilder::Ptr m_Item;
|
static ConfigItemBuilder::Ptr m_Item;
|
||||||
static bool m_Abstract;
|
static bool m_Abstract;
|
||||||
static bool m_Local;
|
static bool m_Local;
|
||||||
|
@ -372,6 +374,34 @@ operator: T_EQUAL
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
array: '['
|
||||||
|
{
|
||||||
|
m_Array = boost::make_shared<Dictionary>();
|
||||||
|
}
|
||||||
|
arrayitems
|
||||||
|
']'
|
||||||
|
{
|
||||||
|
$$ = new Value(m_Array);
|
||||||
|
m_Array.reset();
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
arrayitems: arrayitems_inner
|
||||||
|
| arrayitems_inner ','
|
||||||
|
|
||||||
|
arrayitems_inner: /* empty */
|
||||||
|
| T_STRING
|
||||||
|
{
|
||||||
|
m_Array->Add($1);
|
||||||
|
free($1);
|
||||||
|
}
|
||||||
|
| arrayitems_inner ',' T_STRING
|
||||||
|
{
|
||||||
|
m_Array->Add($3);
|
||||||
|
free($3);
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
simplevalue: T_STRING
|
simplevalue: T_STRING
|
||||||
{
|
{
|
||||||
$$ = new Value($1);
|
$$ = new Value($1);
|
||||||
|
@ -389,6 +419,7 @@ simplevalue: T_STRING
|
||||||
|
|
||||||
value: simplevalue
|
value: simplevalue
|
||||||
| expressionlist
|
| expressionlist
|
||||||
|
| array
|
||||||
{
|
{
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue