mirror of https://github.com/Icinga/icinga2.git
Merge branch 'master' into mfriedrich/compatido
This commit is contained in:
commit
c726adb550
|
@ -207,7 +207,7 @@ void CompatComponent::StatusTimerHandler(void)
|
||||||
|
|
||||||
objectfp << std::fixed;
|
objectfp << std::fixed;
|
||||||
|
|
||||||
objectfp << "# Icinga object cache file" << "\n"
|
objectfp << "# Icinga objects cache file" << "\n"
|
||||||
<< "# This file is auto-generated. Do not modify this file." << "\n"
|
<< "# This file is auto-generated. Do not modify this file." << "\n"
|
||||||
<< "\n";
|
<< "\n";
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,20 @@ Example:
|
||||||
-27.3
|
-27.3
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Duration Literal
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Similar to floating-point numbers except for that fact that they support
|
||||||
|
suffixes to help with specifying time durations.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
2.5m
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Supported suffixes include s (seconds), m (minutes) and h (hours).
|
||||||
|
|
||||||
String Literals
|
String Literals
|
||||||
^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,59 @@
|
||||||
|
/**
|
||||||
|
* Icinga 2 configuration file
|
||||||
|
* - this is where you define settings for the Icinga application including
|
||||||
|
* which hosts/services to check.
|
||||||
|
*
|
||||||
|
* The docs/icinga2-config.txt file in the source tarball has a detailed
|
||||||
|
* description of what configuration options are available.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Global configuration settings
|
||||||
|
*/
|
||||||
local object IcingaApplication "icinga" {
|
local object IcingaApplication "icinga" {
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
local object Component "checker" {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
local object Component "delegation" {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
local object Component "compat" {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract object Service "nagios-service" {
|
|
||||||
methods = {
|
|
||||||
check = "native::PluginCheck"
|
|
||||||
},
|
|
||||||
|
|
||||||
macros = {
|
macros = {
|
||||||
plugindir = "/usr/lib/nagios/plugins"
|
plugindir = "/usr/lib/nagios/plugins"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The checker component takes care of executing service checks.
|
||||||
|
*/
|
||||||
|
local object Component "checker" {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The delegation component assigns services to checkers. You need to load
|
||||||
|
* this component even if your Icinga setup only consists of a single instance.
|
||||||
|
*/
|
||||||
|
local object Component "delegation" {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The compat component periodically updates the status.dat and objects.cache
|
||||||
|
* files. These are used by the Icinga 1.x CGIs to display the state of
|
||||||
|
* hosts and services.
|
||||||
|
*/
|
||||||
|
local object Component "compat" {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This template defines some basic parameters for services that use
|
||||||
|
* external plugins for their checks.
|
||||||
|
*/
|
||||||
|
abstract object Service "nagios-service" {
|
||||||
|
methods = {
|
||||||
|
check = "native::PluginCheck"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The service template for ping checks. In an Icinga 1.x environment
|
||||||
|
* this would be defined as a check command.
|
||||||
|
*/
|
||||||
abstract object Service "ping" inherits "nagios-service" {
|
abstract object Service "ping" inherits "nagios-service" {
|
||||||
check_command = "$plugindir$/check_ping -H $address$ -w $wrta$,$wpl$% -c $crta$,$cpl$%",
|
check_command = "$plugindir$/check_ping -H $address$ -w $wrta$,$wpl$% -c $crta$,$cpl$%",
|
||||||
|
|
||||||
|
@ -35,6 +65,9 @@ abstract object Service "ping" inherits "nagios-service" {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* And finally we define some host that should be checked.
|
||||||
|
*/
|
||||||
object Host "localhost" {
|
object Host "localhost" {
|
||||||
services = { "ping" },
|
services = { "ping" },
|
||||||
|
|
||||||
|
@ -42,6 +75,6 @@ object Host "localhost" {
|
||||||
address = "127.0.0.1"
|
address = "127.0.0.1"
|
||||||
},
|
},
|
||||||
|
|
||||||
check_interval = 10
|
check_interval = 1m
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -99,6 +99,8 @@ void Application::RunEventLoop(void)
|
||||||
double nextProfile = 0;
|
double nextProfile = 0;
|
||||||
#endif /* _DEBUG */
|
#endif /* _DEBUG */
|
||||||
|
|
||||||
|
double lastLoop = Utility::GetTime();
|
||||||
|
|
||||||
while (!m_ShuttingDown) {
|
while (!m_ShuttingDown) {
|
||||||
Object::ClearHeldObjects();
|
Object::ClearHeldObjects();
|
||||||
|
|
||||||
|
@ -123,6 +125,20 @@ void Application::RunEventLoop(void)
|
||||||
nextProfile = Utility::GetTime() + 15.0;
|
nextProfile = Utility::GetTime() + 15.0;
|
||||||
}
|
}
|
||||||
#endif /* _DEBUG */
|
#endif /* _DEBUG */
|
||||||
|
|
||||||
|
double now = Utility::GetTime();
|
||||||
|
|
||||||
|
if (now < lastLoop) {
|
||||||
|
/* We moved backwards in time - cool. */
|
||||||
|
double lostTime = lastLoop - now;
|
||||||
|
stringstream msgbuf;
|
||||||
|
msgbuf << "We moved backwards in time: " << lostTime
|
||||||
|
<< " seconds";
|
||||||
|
Logger::Write(LogInformation, "base", msgbuf.str());
|
||||||
|
Timer::AdjustTimers(-lostTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
lastLoop = now;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -155,3 +155,16 @@ void Timer::Reschedule(double next)
|
||||||
{
|
{
|
||||||
m_Next = next;
|
m_Next = next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adjusts all timers by adding the specified amount of time to their
|
||||||
|
* next scheduled timestamp.
|
||||||
|
*
|
||||||
|
* @param adjustment The adjustment.
|
||||||
|
*/
|
||||||
|
void Timer::AdjustTimers(double adjustment)
|
||||||
|
{
|
||||||
|
BOOST_FOREACH(Timer::Ptr timer, m_Timers) {
|
||||||
|
timer->m_Next += adjustment;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -43,6 +43,7 @@ public:
|
||||||
double GetInterval(void) const;
|
double GetInterval(void) const;
|
||||||
|
|
||||||
static double ProcessTimers(void);
|
static double ProcessTimers(void);
|
||||||
|
static void AdjustTimers(double adjustment);
|
||||||
|
|
||||||
void Start(void);
|
void Start(void);
|
||||||
void Stop(void);
|
void Stop(void);
|
||||||
|
|
|
@ -370,8 +370,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
|
||||||
*yy_cp = '\0'; \
|
*yy_cp = '\0'; \
|
||||||
yyg->yy_c_buf_p = yy_cp;
|
yyg->yy_c_buf_p = yy_cp;
|
||||||
|
|
||||||
#define YY_NUM_RULES 22
|
#define YY_NUM_RULES 25
|
||||||
#define YY_END_OF_BUFFER 23
|
#define YY_END_OF_BUFFER 26
|
||||||
/* This struct is not used in this scanner,
|
/* This struct is not used in this scanner,
|
||||||
but its presence is necessary. */
|
but its presence is necessary. */
|
||||||
struct yy_trans_info
|
struct yy_trans_info
|
||||||
|
@ -379,16 +379,16 @@ struct yy_trans_info
|
||||||
flex_int32_t yy_verify;
|
flex_int32_t yy_verify;
|
||||||
flex_int32_t yy_nxt;
|
flex_int32_t yy_nxt;
|
||||||
};
|
};
|
||||||
static yyconst flex_int16_t yy_accept[75] =
|
static yyconst flex_int16_t yy_accept[78] =
|
||||||
{ 0,
|
{ 0,
|
||||||
0, 0, 0, 0, 23, 21, 20, 20, 21, 21,
|
0, 0, 0, 0, 26, 24, 23, 23, 24, 24,
|
||||||
21, 21, 21, 21, 9, 10, 7, 7, 7, 7,
|
24, 24, 24, 24, 12, 13, 7, 7, 7, 7,
|
||||||
7, 7, 17, 18, 20, 0, 8, 0, 13, 11,
|
7, 7, 20, 21, 23, 0, 8, 0, 16, 14,
|
||||||
9, 12, 15, 0, 14, 0, 7, 7, 7, 7,
|
12, 15, 18, 0, 17, 0, 9, 10, 11, 7,
|
||||||
7, 7, 17, 16, 0, 19, 9, 7, 7, 7,
|
7, 7, 7, 7, 7, 20, 19, 0, 22, 12,
|
||||||
7, 7, 0, 7, 7, 7, 6, 7, 0, 7,
|
7, 7, 7, 7, 7, 0, 7, 7, 7, 6,
|
||||||
7, 2, 7, 0, 7, 7, 3, 0, 7, 7,
|
7, 0, 7, 7, 2, 7, 0, 7, 7, 3,
|
||||||
4, 1, 5, 0
|
0, 7, 7, 4, 1, 5, 0
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static yyconst flex_int32_t yy_ec[256] =
|
static yyconst flex_int32_t yy_ec[256] =
|
||||||
|
@ -404,8 +404,8 @@ static yyconst flex_int32_t yy_ec[256] =
|
||||||
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
|
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
|
||||||
1, 1, 1, 1, 13, 1, 14, 15, 16, 17,
|
1, 1, 1, 1, 13, 1, 14, 15, 16, 17,
|
||||||
|
|
||||||
18, 13, 13, 19, 20, 21, 13, 22, 13, 23,
|
18, 13, 13, 19, 20, 21, 13, 22, 23, 24,
|
||||||
24, 13, 13, 25, 26, 27, 28, 13, 13, 13,
|
25, 13, 13, 26, 27, 28, 29, 13, 13, 13,
|
||||||
13, 13, 1, 1, 1, 1, 1, 1, 1, 1,
|
13, 13, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
|
@ -423,78 +423,82 @@ static yyconst flex_int32_t yy_ec[256] =
|
||||||
1, 1, 1, 1, 1
|
1, 1, 1, 1, 1
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static yyconst flex_int32_t yy_meta[29] =
|
static yyconst flex_int32_t yy_meta[30] =
|
||||||
{ 0,
|
{ 0,
|
||||||
1, 1, 2, 1, 1, 3, 1, 4, 1, 1,
|
1, 1, 2, 1, 1, 3, 1, 4, 1, 1,
|
||||||
4, 1, 4, 4, 4, 4, 4, 4, 4, 4,
|
4, 1, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||||
4, 4, 4, 4, 4, 4, 4, 4
|
4, 4, 4, 4, 4, 4, 4, 4, 4
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static yyconst flex_int16_t yy_base[80] =
|
static yyconst flex_int16_t yy_base[83] =
|
||||||
{ 0,
|
{ 0,
|
||||||
0, 0, 95, 94, 99, 102, 27, 29, 94, 77,
|
0, 0, 100, 99, 104, 107, 28, 30, 99, 82,
|
||||||
84, 83, 22, 29, 27, 102, 0, 79, 70, 68,
|
89, 88, 23, 30, 34, 107, 0, 84, 74, 72,
|
||||||
63, 75, 0, 79, 40, 84, 102, 64, 102, 102,
|
67, 80, 0, 84, 35, 89, 107, 68, 107, 107,
|
||||||
35, 102, 102, 0, 102, 75, 0, 59, 65, 67,
|
0, 107, 107, 0, 107, 80, 107, 107, 107, 0,
|
||||||
60, 60, 0, 102, 64, 0, 68, 51, 59, 62,
|
63, 70, 72, 65, 65, 0, 107, 69, 0, 28,
|
||||||
53, 56, 51, 47, 46, 48, 0, 53, 40, 53,
|
56, 65, 68, 59, 62, 57, 52, 49, 50, 0,
|
||||||
46, 0, 38, 47, 47, 33, 0, 39, 18, 14,
|
44, 30, 44, 36, 0, 26, 35, 34, 21, 0,
|
||||||
102, 0, 0, 102, 46, 50, 33, 54, 58
|
30, 18, 17, 107, 0, 0, 107, 61, 65, 37,
|
||||||
|
69, 73
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static yyconst flex_int16_t yy_def[80] =
|
static yyconst flex_int16_t yy_def[83] =
|
||||||
{ 0,
|
{ 0,
|
||||||
74, 1, 75, 75, 74, 74, 74, 74, 76, 74,
|
77, 1, 78, 78, 77, 77, 77, 77, 79, 77,
|
||||||
74, 74, 74, 74, 74, 74, 77, 77, 77, 77,
|
77, 77, 77, 77, 77, 77, 80, 80, 80, 80,
|
||||||
77, 77, 78, 74, 74, 76, 74, 74, 74, 74,
|
80, 80, 81, 77, 77, 79, 77, 77, 77, 77,
|
||||||
74, 74, 74, 79, 74, 74, 77, 77, 77, 77,
|
15, 77, 77, 82, 77, 77, 77, 77, 77, 80,
|
||||||
77, 77, 78, 74, 74, 79, 74, 77, 77, 77,
|
80, 80, 80, 80, 80, 81, 77, 77, 82, 77,
|
||||||
77, 77, 74, 77, 77, 77, 77, 77, 74, 77,
|
80, 80, 80, 80, 80, 77, 80, 80, 80, 80,
|
||||||
77, 77, 77, 74, 77, 77, 77, 74, 77, 77,
|
80, 77, 80, 80, 80, 80, 77, 80, 80, 80,
|
||||||
74, 77, 77, 0, 74, 74, 74, 74, 74
|
77, 80, 80, 77, 80, 80, 0, 77, 77, 77,
|
||||||
|
77, 77
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static yyconst flex_int16_t yy_nxt[131] =
|
static yyconst flex_int16_t yy_nxt[137] =
|
||||||
{ 0,
|
{ 0,
|
||||||
6, 7, 8, 9, 10, 11, 12, 13, 6, 14,
|
6, 7, 8, 9, 10, 11, 12, 13, 6, 14,
|
||||||
15, 16, 17, 18, 17, 17, 17, 17, 17, 19,
|
15, 16, 17, 18, 17, 17, 17, 17, 17, 19,
|
||||||
17, 20, 21, 22, 17, 17, 17, 17, 25, 25,
|
17, 20, 17, 21, 22, 17, 17, 17, 17, 25,
|
||||||
25, 25, 31, 32, 33, 36, 37, 31, 34, 73,
|
25, 25, 25, 31, 32, 33, 25, 25, 50, 34,
|
||||||
35, 25, 25, 36, 72, 31, 23, 23, 23, 23,
|
40, 35, 36, 76, 31, 75, 37, 74, 73, 72,
|
||||||
26, 26, 26, 26, 43, 43, 71, 43, 46, 70,
|
38, 71, 37, 70, 39, 69, 38, 68, 67, 66,
|
||||||
46, 46, 69, 68, 67, 66, 65, 64, 63, 62,
|
39, 23, 23, 23, 23, 26, 26, 26, 26, 46,
|
||||||
61, 60, 59, 58, 57, 56, 55, 54, 47, 53,
|
46, 65, 46, 49, 64, 49, 49, 63, 62, 61,
|
||||||
52, 51, 50, 49, 48, 47, 45, 27, 44, 42,
|
60, 59, 58, 57, 56, 55, 54, 53, 52, 51,
|
||||||
41, 40, 39, 38, 30, 29, 28, 27, 74, 24,
|
50, 48, 27, 47, 45, 44, 43, 42, 41, 30,
|
||||||
|
|
||||||
24, 5, 74, 74, 74, 74, 74, 74, 74, 74,
|
29, 28, 27, 77, 24, 24, 5, 77, 77, 77,
|
||||||
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
|
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
|
||||||
74, 74, 74, 74, 74, 74, 74, 74, 74, 74
|
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
|
||||||
|
77, 77, 77, 77, 77, 77
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static yyconst flex_int16_t yy_chk[131] =
|
static yyconst flex_int16_t yy_chk[137] =
|
||||||
{ 0,
|
{ 0,
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 7, 7,
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 7,
|
||||||
8, 8, 13, 13, 14, 15, 77, 15, 14, 70,
|
7, 8, 8, 13, 13, 14, 25, 25, 50, 14,
|
||||||
14, 25, 25, 31, 69, 31, 75, 75, 75, 75,
|
80, 14, 15, 73, 15, 72, 50, 71, 69, 68,
|
||||||
76, 76, 76, 76, 78, 78, 68, 78, 79, 66,
|
50, 67, 15, 66, 50, 64, 15, 63, 62, 61,
|
||||||
79, 79, 65, 64, 63, 61, 60, 59, 58, 56,
|
15, 78, 78, 78, 78, 79, 79, 79, 79, 81,
|
||||||
55, 54, 53, 52, 51, 50, 49, 48, 47, 45,
|
81, 59, 81, 82, 58, 82, 82, 57, 56, 55,
|
||||||
42, 41, 40, 39, 38, 36, 28, 26, 24, 22,
|
54, 53, 52, 51, 48, 45, 44, 43, 42, 41,
|
||||||
21, 20, 19, 18, 12, 11, 10, 9, 5, 4,
|
36, 28, 26, 24, 22, 21, 20, 19, 18, 12,
|
||||||
|
|
||||||
3, 74, 74, 74, 74, 74, 74, 74, 74, 74,
|
11, 10, 9, 5, 4, 3, 77, 77, 77, 77,
|
||||||
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
|
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
|
||||||
74, 74, 74, 74, 74, 74, 74, 74, 74, 74
|
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
|
||||||
|
77, 77, 77, 77, 77, 77
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
/* Table of booleans, true if rule could match eol. */
|
/* Table of booleans, true if rule could match eol. */
|
||||||
static yyconst flex_int32_t yy_rule_can_match_eol[23] =
|
static yyconst flex_int32_t yy_rule_can_match_eol[26] =
|
||||||
{ 0,
|
{ 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
1, 0, 0, };
|
1, 0, 0, 1, 0, 0, };
|
||||||
|
|
||||||
/* The intent behind this definition is that it'll catch
|
/* The intent behind this definition is that it'll catch
|
||||||
* any uses of REJECT which flex missed.
|
* any uses of REJECT which flex missed.
|
||||||
|
@ -546,7 +550,7 @@ do { \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define YY_NO_UNISTD_H 1
|
#define YY_NO_UNISTD_H 1
|
||||||
|
|
||||||
#line 550 "config_lexer.cc"
|
#line 554 "config_lexer.cc"
|
||||||
|
|
||||||
#define INITIAL 0
|
#define INITIAL 0
|
||||||
#define IN_C_COMMENT 1
|
#define IN_C_COMMENT 1
|
||||||
|
@ -795,7 +799,7 @@ YY_DECL
|
||||||
|
|
||||||
#line 49 "config_lexer.ll"
|
#line 49 "config_lexer.ll"
|
||||||
|
|
||||||
#line 799 "config_lexer.cc"
|
#line 803 "config_lexer.cc"
|
||||||
|
|
||||||
yylval = yylval_param;
|
yylval = yylval_param;
|
||||||
|
|
||||||
|
@ -852,13 +856,13 @@ yy_match:
|
||||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||||
{
|
{
|
||||||
yy_current_state = (int) yy_def[yy_current_state];
|
yy_current_state = (int) yy_def[yy_current_state];
|
||||||
if ( yy_current_state >= 75 )
|
if ( yy_current_state >= 78 )
|
||||||
yy_c = yy_meta[(unsigned int) yy_c];
|
yy_c = yy_meta[(unsigned int) yy_c];
|
||||||
}
|
}
|
||||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||||
++yy_cp;
|
++yy_cp;
|
||||||
}
|
}
|
||||||
while ( yy_current_state != 74 );
|
while ( yy_current_state != 77 );
|
||||||
yy_cp = yyg->yy_last_accepting_cpos;
|
yy_cp = yyg->yy_last_accepting_cpos;
|
||||||
yy_current_state = yyg->yy_last_accepting_state;
|
yy_current_state = yyg->yy_last_accepting_state;
|
||||||
|
|
||||||
|
@ -934,80 +938,95 @@ YY_RULE_SETUP
|
||||||
case 9:
|
case 9:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 58 "config_lexer.ll"
|
#line 58 "config_lexer.ll"
|
||||||
{ yylval->num = strtod(yytext, NULL); return T_NUMBER; }
|
{ yylval->num = strtod(yytext, NULL) * 60 * 60; return T_NUMBER; }
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 10:
|
case 10:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 59 "config_lexer.ll"
|
#line 59 "config_lexer.ll"
|
||||||
{ yylval->op = OperatorSet; return T_EQUAL; }
|
{ yylval->num = strtod(yytext, NULL) * 60; return T_NUMBER; }
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 11:
|
case 11:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 60 "config_lexer.ll"
|
#line 60 "config_lexer.ll"
|
||||||
{ yylval->op = OperatorPlus; return T_PLUS_EQUAL; }
|
{ yylval->num = strtod(yytext, NULL); return T_NUMBER; }
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 12:
|
case 12:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 61 "config_lexer.ll"
|
#line 61 "config_lexer.ll"
|
||||||
{ yylval->op = OperatorMinus; return T_MINUS_EQUAL; }
|
{ yylval->num = strtod(yytext, NULL); return T_NUMBER; }
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 13:
|
case 13:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 62 "config_lexer.ll"
|
#line 62 "config_lexer.ll"
|
||||||
{ yylval->op = OperatorMultiply; return T_MULTIPLY_EQUAL; }
|
{ yylval->op = OperatorSet; return T_EQUAL; }
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 14:
|
case 14:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 63 "config_lexer.ll"
|
#line 63 "config_lexer.ll"
|
||||||
|
{ yylval->op = OperatorPlus; return T_PLUS_EQUAL; }
|
||||||
|
YY_BREAK
|
||||||
|
case 15:
|
||||||
|
YY_RULE_SETUP
|
||||||
|
#line 64 "config_lexer.ll"
|
||||||
|
{ yylval->op = OperatorMinus; return T_MINUS_EQUAL; }
|
||||||
|
YY_BREAK
|
||||||
|
case 16:
|
||||||
|
YY_RULE_SETUP
|
||||||
|
#line 65 "config_lexer.ll"
|
||||||
|
{ yylval->op = OperatorMultiply; return T_MULTIPLY_EQUAL; }
|
||||||
|
YY_BREAK
|
||||||
|
case 17:
|
||||||
|
YY_RULE_SETUP
|
||||||
|
#line 66 "config_lexer.ll"
|
||||||
{ yylval->op = OperatorDivide; return T_DIVIDE_EQUAL; }
|
{ yylval->op = OperatorDivide; return T_DIVIDE_EQUAL; }
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
|
|
||||||
case 15:
|
case 18:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 66 "config_lexer.ll"
|
#line 69 "config_lexer.ll"
|
||||||
BEGIN(IN_C_COMMENT);
|
BEGIN(IN_C_COMMENT);
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
|
|
||||||
|
|
||||||
case 16:
|
|
||||||
YY_RULE_SETUP
|
|
||||||
#line 70 "config_lexer.ll"
|
|
||||||
BEGIN(INITIAL);
|
|
||||||
YY_BREAK
|
|
||||||
case 17:
|
|
||||||
/* rule 17 can match eol */
|
|
||||||
YY_RULE_SETUP
|
|
||||||
#line 71 "config_lexer.ll"
|
|
||||||
/* ignore comment */
|
|
||||||
YY_BREAK
|
|
||||||
case 18:
|
|
||||||
YY_RULE_SETUP
|
|
||||||
#line 72 "config_lexer.ll"
|
|
||||||
/* ignore star */
|
|
||||||
YY_BREAK
|
|
||||||
|
|
||||||
case 19:
|
case 19:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 75 "config_lexer.ll"
|
#line 73 "config_lexer.ll"
|
||||||
/* ignore C++-style comments */
|
BEGIN(INITIAL);
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 20:
|
case 20:
|
||||||
/* rule 20 can match eol */
|
/* rule 20 can match eol */
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 76 "config_lexer.ll"
|
#line 74 "config_lexer.ll"
|
||||||
/* ignore whitespace */
|
/* ignore comment */
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 21:
|
case 21:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 78 "config_lexer.ll"
|
#line 75 "config_lexer.ll"
|
||||||
return yytext[0];
|
/* ignore star */
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
|
|
||||||
case 22:
|
case 22:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
|
#line 78 "config_lexer.ll"
|
||||||
|
/* ignore C++-style comments */
|
||||||
|
YY_BREAK
|
||||||
|
case 23:
|
||||||
|
/* rule 23 can match eol */
|
||||||
|
YY_RULE_SETUP
|
||||||
#line 79 "config_lexer.ll"
|
#line 79 "config_lexer.ll"
|
||||||
|
/* ignore whitespace */
|
||||||
|
YY_BREAK
|
||||||
|
case 24:
|
||||||
|
YY_RULE_SETUP
|
||||||
|
#line 81 "config_lexer.ll"
|
||||||
|
return yytext[0];
|
||||||
|
YY_BREAK
|
||||||
|
case 25:
|
||||||
|
YY_RULE_SETUP
|
||||||
|
#line 82 "config_lexer.ll"
|
||||||
ECHO;
|
ECHO;
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
#line 1011 "config_lexer.cc"
|
#line 1030 "config_lexer.cc"
|
||||||
case YY_STATE_EOF(INITIAL):
|
case YY_STATE_EOF(INITIAL):
|
||||||
case YY_STATE_EOF(IN_C_COMMENT):
|
case YY_STATE_EOF(IN_C_COMMENT):
|
||||||
yyterminate();
|
yyterminate();
|
||||||
|
@ -1303,7 +1322,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
||||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||||
{
|
{
|
||||||
yy_current_state = (int) yy_def[yy_current_state];
|
yy_current_state = (int) yy_def[yy_current_state];
|
||||||
if ( yy_current_state >= 75 )
|
if ( yy_current_state >= 78 )
|
||||||
yy_c = yy_meta[(unsigned int) yy_c];
|
yy_c = yy_meta[(unsigned int) yy_c];
|
||||||
}
|
}
|
||||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||||
|
@ -1332,11 +1351,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
||||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||||
{
|
{
|
||||||
yy_current_state = (int) yy_def[yy_current_state];
|
yy_current_state = (int) yy_def[yy_current_state];
|
||||||
if ( yy_current_state >= 75 )
|
if ( yy_current_state >= 78 )
|
||||||
yy_c = yy_meta[(unsigned int) yy_c];
|
yy_c = yy_meta[(unsigned int) yy_c];
|
||||||
}
|
}
|
||||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||||
yy_is_jam = (yy_current_state == 74);
|
yy_is_jam = (yy_current_state == 77);
|
||||||
|
|
||||||
return yy_is_jam ? 0 : yy_current_state;
|
return yy_is_jam ? 0 : yy_current_state;
|
||||||
}
|
}
|
||||||
|
@ -2195,7 +2214,7 @@ void yyfree (void * ptr , yyscan_t yyscanner)
|
||||||
|
|
||||||
#define YYTABLES_NAME "yytables"
|
#define YYTABLES_NAME "yytables"
|
||||||
|
|
||||||
#line 79 "config_lexer.ll"
|
#line 82 "config_lexer.ll"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,9 @@ inherits return T_INHERITS;
|
||||||
null return T_NULL;
|
null return T_NULL;
|
||||||
[a-zA-Z_][a-zA-Z0-9\-_]* { yylval->text = strdup(yytext); return T_IDENTIFIER; }
|
[a-zA-Z_][a-zA-Z0-9\-_]* { yylval->text = strdup(yytext); return T_IDENTIFIER; }
|
||||||
\"[^\"]*\" { yytext[yyleng-1] = '\0'; yylval->text = strdup(yytext + 1); return T_STRING; }
|
\"[^\"]*\" { yytext[yyleng-1] = '\0'; yylval->text = strdup(yytext + 1); return T_STRING; }
|
||||||
|
-?[0-9]+(\.[0-9]+)?h { yylval->num = strtod(yytext, NULL) * 60 * 60; return T_NUMBER; }
|
||||||
|
-?[0-9]+(\.[0-9]+)?m { yylval->num = strtod(yytext, NULL) * 60; return T_NUMBER; }
|
||||||
|
-?[0-9]+(\.[0-9]+)?s { yylval->num = strtod(yytext, NULL); return T_NUMBER; }
|
||||||
-?[0-9]+(\.[0-9]+)? { yylval->num = strtod(yytext, NULL); return T_NUMBER; }
|
-?[0-9]+(\.[0-9]+)? { yylval->num = strtod(yytext, NULL); return T_NUMBER; }
|
||||||
= { yylval->op = OperatorSet; return T_EQUAL; }
|
= { yylval->op = OperatorSet; return T_EQUAL; }
|
||||||
\+= { yylval->op = OperatorPlus; return T_PLUS_EQUAL; }
|
\+= { yylval->op = OperatorPlus; return T_PLUS_EQUAL; }
|
||||||
|
|
Loading…
Reference in New Issue