Commit Graph

642 Commits

Author SHA1 Message Date
Gunnar Beutner e03e143177 Report error for invalid escape sequences
fixes #7910
2014-12-20 09:48:18 +01:00
Gunnar Beutner 1ddab493e1 Make sure that Value::IsEmpty() returns true for empty strings
fixes #8018
2014-12-20 09:31:55 +01:00
Gunnar Beutner 6c53c7f192 Fix debug info for indexer
fixes #8132
2014-12-19 16:53:44 +01:00
Gunnar Beutner a3ea72c4ca Implement the __commit function
refs #8127
2014-12-19 13:08:46 +01:00
Gunnar Beutner 97168378e8 Rename _DEBUG to I2_DEBUG
fixes #7767
2014-12-19 12:19:28 +01:00
Gunnar Beutner 6383da1f2f Replace spaces with tabs 2014-12-18 17:06:00 +01:00
Gunnar Beutner 9f18211ada Remove obsolete code
refs #7709
2014-12-18 15:57:30 +01:00
Gunnar Beutner 873e294158 Refactor the WorkQueue class to make error reporting easier
refs #7709
2014-12-18 15:11:57 +01:00
Gunnar Beutner 82a9a8f0cf Fix crash in ConfigCompilerContext::WriteObject
fixes #8106
2014-12-18 12:46:35 +01:00
Gunnar Beutner 28734daa06 Fix crash when accessing invalid fields
fixes #8104
2014-12-18 11:21:11 +01:00
Gunnar Beutner 9011c9fa67 Fix crash when accessing invalid fields on objects which don't have prototypes 2014-12-16 18:15:47 +01:00
Gunnar Beutner 23a556c7ce Make sure that operator % throws an exception when the ride-hand-side argument is 0
fixes #8089
2014-12-16 08:52:32 +01:00
Gunnar Beutner 8ef8316ca6 Fix location info for strings
fixes #8081
2014-12-16 06:18:39 +01:00
Gunnar Beutner d72bd4fec2 Add another unit test for expressions
refs #8074
2014-12-15 17:23:18 +01:00
Gunnar Beutner b9831f0be4 Add unit tests for the "var" keyword
refs #8074
2014-12-15 16:42:34 +01:00
Gunnar Beutner 77806b9de7 Get rid of the local/global keywords
refs #8074
2014-12-15 16:09:17 +01:00
Gunnar Beutner 252f3205cb Fix incorrect variable scoping
refs #8074
2014-12-15 12:58:55 +01:00
Gunnar Beutner 55b7f00382 Remove unnecessary includes 2014-12-15 10:16:06 +01:00
Gunnar Beutner 8c9fdb537f Remove unused code
refs #8074
2014-12-15 06:03:13 +01:00
Gunnar Beutner 262bfb7fc9 Allow if/else in rterms
refs #8074
2014-12-14 14:08:41 +01:00
Gunnar Beutner b40e95d9b6 Only implicitly convert strings to indexers
refs #8074
2014-12-14 11:55:44 +01:00
Gunnar Beutner 1cb0231c05 Refactor how variable scopes work
refs #8074
2014-12-14 11:33:45 +01:00
Gunnar Beutner dd4c04aa9b Implement the 'global' keyword to differentiate between variable scopes
refs #8074
2014-12-13 17:48:58 +01:00
Gunnar Beutner c0f6d65b66 Fix operator precedence for =>
refs #8030
2014-12-13 14:06:19 +01:00
Gunnar Beutner 54ab4dd924 Implement support for lambdas
refs #8030
2014-12-13 13:50:47 +01:00
Gunnar Beutner 1275847d5a Improve error messages for failed expressions
fixes #8076
2014-12-12 21:21:30 +01:00
Gunnar Beutner 05485ea2d6 Disallow calling strings as functions
fixes #8040
2014-12-12 20:45:11 +01:00
Gunnar Beutner cfd775c948 Move the VMFrame class to libbase
refs #8065
2014-12-12 15:33:56 +01:00
Gunnar Beutner aa38dde1fc Implement prototype functions
fixes #8065
2014-12-12 15:22:37 +01:00
Gunnar Beutner a94b26ff47 Add missing DebugInfo for field accesses
refs #8062
2014-12-12 08:58:39 +01:00
Gunnar Beutner b016003eb5 Implement string indexers
fixes #8062
2014-12-12 06:54:38 +01:00
Gunnar Beutner 4d401a7cc5 Fix if for non-boolean arguments
fixes #8072
2014-12-11 21:31:30 +01:00
Gunnar Beutner a9e2bc4b40 Implement a way to call methods on objects
fixes #8071
2014-12-11 21:12:34 +01:00
Gunnar Beutner 7ac6347d6a Update error message to use the correct lexer token name
refs #7883
2014-12-11 15:07:21 +01:00
Gunnar Beutner e86b36f8d7 Remove the __ prefix from some of the lexer tokens
fixes #7883
2014-12-11 13:12:35 +01:00
Gunnar Beutner 2720333d6e Fix missing location information for included files
fixes #7927
2014-12-10 15:06:09 +01:00
Gunnar Beutner 705447ce18 Make ConfigCompiler::HandleInclude return an inline dictionary
fixes #8047
2014-12-10 11:30:42 +01:00
Gunnar Beutner 89a0fc006e Implement a boolean sub-type for the Value class
fixes #8043
2014-12-10 09:05:16 +01:00
Gunnar Beutner 9e01f6d8b9 Fix operator precedence for %, |, ^, &, in and !in in combination with <
fixes #8029
2014-12-09 20:51:19 +01:00
Gunnar Beutner 291b000e09 Allow modifying the name attribute
fixes #8033
2014-12-09 20:37:20 +01:00
Gunnar Beutner 3cb2afd454 Fix minor memory leak in the config parser 2014-12-06 10:23:25 +01:00
Gunnar Beutner b5b1be95a2 Make the config lexer return an error for unterminated string literals
fixes #7808
2014-11-28 06:49:06 +01:00
Gunnar Beutner ab63fca3d5 Make the config parser thread-safe
fixes #7822
2014-11-28 06:48:27 +01:00
Gunnar Beutner 358d91e912 Remove the __parent field in the DynamicObject class
refs #7748
2014-11-27 06:32:12 +01:00
Gunnar Beutner cee13fbec0 Implement the %, ^, %=, ^=, &= and |= operators
fixes #7813
2014-11-25 17:16:34 +01:00
Gunnar Beutner 1e5751c540 Build fix for GCC
refs #7822
2014-11-25 12:36:13 +01:00
Gunnar Beutner 31605402ea Move the parser's global variables to the ConfigCompiler class
refs #7822
2014-11-25 09:40:32 +01:00
Gunnar Beutner 9281f82ba3 Fix parser problem with missing new-lines
refs #7822
2014-11-25 08:59:55 +01:00
Gunnar Beutner c5839b91aa Use MakeLiteral instead of 'new LiteralExpression'
refs #7822
2014-11-25 08:44:47 +01:00
Gunnar Beutner 03a4452343 Remove the global m_Expressions variable
refs #7822
2014-11-25 08:42:27 +01:00
Gunnar Beutner ed81cb0f2c Make SetExpression check whether the LHS is null
fixes #7814
2014-11-24 18:26:27 +01:00
Gunnar Beutner fddead5303 Fix some compiler warnings
fixes #7826
2014-11-24 18:25:08 +01:00
Gunnar Beutner 7e13f7597f Disallow - in identifiers
fixes #7830
2014-11-24 16:54:06 +01:00
Gunnar Beutner 2ec499be17 Implement the __if and __else keywords
fixes #7824
2014-11-24 09:56:28 +01:00
Gunnar Beutner 47ba5eeddd Change parameter type for include and include_recursive to T_STRING
fixes #7802
2014-11-24 07:18:37 +01:00
Gunnar Beutner d3a6277fec Fix the __return keyword
fixes #7811
2014-11-24 00:07:29 +01:00
Gunnar Beutner c29d6a99ac Fix unary minus operator
fixes #7815
2014-11-23 23:19:46 +01:00
Gunnar Beutner e93595c006 Fix scoping for __for
fixes #7809
2014-11-23 20:43:50 +01:00
Gunnar Beutner d366dd8e30 Fix the reduce/reduce conflicts
refs #7800
2014-11-23 15:25:25 +01:00
Gunnar Beutner 8d0ddb7c8c Implement more unit tests
refs #7805
2014-11-23 12:35:13 +01:00
Gunnar Beutner e302158631 Remove debug code
refs #7800
2014-11-23 12:08:29 +01:00
Gunnar Beutner 9a49e085cd Fix some more shift/reduce conflicts
refs #7800
2014-11-23 12:06:47 +01:00
Gunnar Beutner 81acd34f52 Implement unit tests for the config parser
refs #7805
2014-11-23 09:54:08 +01:00
Gunnar Beutner af759ff6ab Fix incorrect result for the !in operator
fixes #7806
2014-11-23 09:54:08 +01:00
Gunnar Beutner 9bdc7e8a4e Fix the shift/reduce conflicts in the parser
fixes #7800
2014-11-22 23:02:12 +01:00
Gunnar Beutner 037b886584 Remove the C++ code generator
refs #7699
2014-11-22 19:24:13 +01:00
Gunnar Beutner f5766f9118 Refactor the stack frame handling for scripts
fixes #7748
2014-11-22 19:24:03 +01:00
Gunnar Beutner 0ab61291c6 Make sure source information is always available for error messages
refs #7699
2014-11-21 18:35:59 +01:00
Gunnar Beutner 334e61037a Split DynamicObject::OnConfigLoaded into two separate events
refs #7780
2014-11-21 18:31:37 +01:00
Gunnar Beutner 764d72a61a Improve error messages for the config parser
refs #7699
2014-11-21 09:07:08 +01:00
Gunnar Beutner abe583f7d9 Fix some incorrectly generated code
refs #7699
2014-11-21 07:37:20 +01:00
Gunnar Beutner aef7c487cf Build fix
refs #7699
2014-11-20 22:54:29 +01:00
Gunnar Beutner 8e265b7b7f Implement a C++ code generator for libconfig
fixes #7699
fixes #7704
fixes #7706
2014-11-20 21:53:32 +01:00
Gunnar Beutner 0078e00c13 Refactor apply/object rules
fixes #7700
2014-11-20 21:29:50 +01:00
Gunnar Beutner 2d53e000c8 Refactor the config validator so that it doesn't require serialized objects
refs #7701
2014-11-20 13:28:21 +01:00
Gunnar Beutner f84cc8de39 Implement support for signals
fixes #7744
2014-11-20 06:54:48 +01:00
Gunnar Beutner ea729b2b6c Clean up the DebugHint class 2014-11-17 14:52:08 +01:00
Gunnar Beutner 3bb79715fa Fix: Names for nested objects are evaluated at the wrong time
fixes #7689
2014-11-15 15:57:56 +01:00
Gunnar Beutner d8e1943671 Fix missing debug info for nested dictionaries
fixes #7688
2014-11-15 12:17:59 +01:00
Gunnar Beutner 814589ac17 Use Array::Contains in InExpression/NotInExpression 2014-11-15 08:22:32 +01:00
Gunnar Beutner 79fb24cedb Fix null pointer dereference while parsing the config 2014-11-13 23:25:52 +01:00
Gunnar Beutner 12a41795de Add default parameters to the AST classes 2014-11-13 23:25:31 +01:00
Gunnar Beutner 02fef3f84a Remove unions from the DebugInfo class 2014-11-13 09:02:43 +01:00
Gunnar Beutner ee980a788b Clean up the code a bit 2014-11-11 23:06:47 +01:00
Gunnar Beutner 65be09215f Avoid unnecessary type lookups
refs #7622
2014-11-10 20:07:07 +01:00
Gunnar Beutner 3cc79a6005 Optimize apply/object filters
refs #7622
2014-11-10 12:06:29 +01:00
Gunnar Beutner ec109b04dd Refactor the AST
refs #7622
2014-11-10 12:06:25 +01:00
Gunnar Beutner e3c5063aff Remove unused fields from the ObjectRule class
refs #7622
2014-11-10 09:52:27 +01:00
Gunnar Beutner 478f03b49a Replace boost::shared_ptr with boost::intrusive_ptr
refs #7622
2014-11-09 16:54:41 +01:00
Gunnar Beutner 684ad2641a Fix GetInstance() methods for the DbType and config validator registry classes 2014-11-09 13:06:25 +01:00
Gunnar Beutner 4bb535fc47 Discard unnamed config items as early as possible 2014-11-09 04:17:34 +01:00
Gunnar Beutner 25ee5dd1fd Fix problem with missing config items 2014-11-08 14:24:17 +01:00
Gunnar Beutner e1c95d4fa0 Improve config compiler's memory usage 2014-11-08 13:21:51 +01:00
Gunnar Beutner 266b1754c7 Speed up type lookups
refs #7561
2014-11-07 12:39:32 +01:00
Gunnar Beutner f69f7d61f2 Fix variable scope for object rules 2014-11-06 19:26:44 +01:00
Gunnar Beutner 8bbb2bfb7b Fix compiler warnings for the lexers 2014-11-06 06:23:45 +01:00
Gunnar Beutner 32b0429904 Fix templates field
fixes #7585
2014-11-05 15:40:13 +01:00
Gunnar Beutner ad14ff6d6b Fix memory leak in the config parser
refs #7566
2014-11-05 09:29:15 +01:00
Gunnar Beutner 4eb37563b4 Improve memory usage for the config compiler 2014-11-05 08:55:00 +01:00
Gunnar Beutner c1cbe157db Allow strings as indexers
refs #7566
2014-11-04 15:22:10 +01:00
Gunnar Beutner a6f20c7a22 Implement support for arbitrarily complex indexers
fixes #7566
2014-11-04 15:20:33 +01:00
Gunnar Beutner a1c905bf62 Implement dictionary support for apply+for
fixes #7561
2014-11-04 11:02:10 +01:00
Gunnar Beutner 170c5a59e4 Implement typeof() function 2014-11-03 00:45:14 +01:00
Gunnar Beutner 4677014b6d Implement support for arrays in custom variables
fixes #6544
2014-11-02 07:27:50 +01:00
Gunnar Beutner db3887d09e Make the 'name' attribute available in object definitions
fixes #7538
2014-11-01 06:39:21 +01:00
Gunnar Beutner d300ceaaf7 Fix: Nesting an object in a template causes the template to become non-abstract
fixes #7537
2014-11-01 06:25:58 +01:00
Gunnar Beutner 93b66a0c4a Clean up the config parser a bit 2014-11-01 05:23:14 +01:00
Gunnar Beutner 1811f8689b Make sure templates are never evaluated on their own
fixes #7536
2014-11-01 05:12:13 +01:00
Gunnar Beutner f8f89cef6d Fix scoping rules for apply rules
fixes #7503
2014-10-30 09:20:42 +01:00
Gunnar Beutner c10da708ff Fix incorrect locks 2014-10-28 18:57:30 +01:00
Gunnar Beutner a5684ea2ac Build fix for Windows 2014-10-28 18:09:52 +01:00
Gunnar Beutner 76444027e9 Fix: Don't validate templates
refs #7458
2014-10-28 12:20:35 +01:00
Gunnar Beutner 3dc2f82345 Implement validation for "repository add"
fixes #7458
2014-10-28 11:55:25 +01:00
Gunnar Beutner 028186e7f0 Remove support for partial type validators
refs #7458
2014-10-28 08:22:41 +01:00
Gunnar Beutner 7559273359 Replace cJSON with YAJL
fixes #7452
2014-10-26 20:00:35 +01:00
Gunnar Beutner 2d5e9514a5 Refactor logging code 2014-10-19 17:52:17 +02:00
Gunnar Beutner b18f57a745 Remove logger_fwd.hpp 2014-10-19 14:50:39 +02:00
Gunnar Beutner 8cc6368954 Implement generic color support for terminals
fixes #7396
2014-10-17 20:44:17 +02:00
Gunnar Beutner f13ea9e1b8 Remove zone keyword
fixes #7400
2014-10-17 12:45:57 +02:00
Gunnar Beutner feeb550654 Rename AExpression to Expression 2014-10-16 17:44:06 +02:00
Gunnar Beutner 14ac7dd974 Replace spaces with tabs 2014-10-13 09:47:05 +02:00
Gunnar Beutner 15358c6e95 Fix missing error messages (part 2)
refs #7331
2014-10-01 16:01:47 +01:00
Gunnar Beutner a08f4588eb Add error message for missing imports (and possibly other errors)
fixes #7331
2014-10-01 15:13:11 +01:00
Gunnar Beutner 308ba45102 Improve error message for duplicate objects
refs #6070
2014-09-09 14:49:21 +02:00
Gunnar Beutner 46f26024dc Implement support for excluding files from unity builds
refs #7034
2014-09-01 09:19:21 +02:00
Gunnar Beutner 2a65c7821c Remove validator for the Script type
fixes #7036
2014-08-31 11:09:18 +02:00
Gunnar Beutner eb091a87b0 Implement support for unity builds
fixes #7034
fixes #7035
2014-08-30 20:02:12 +02:00
Gunnar Beutner 65bec9e904 Clean up some parts of the code 2014-08-17 17:57:41 +02:00
Gunnar Beutner fdca524cdd Fix some minor issues with the icinga2.debug feature
refs #6702
2014-08-16 22:12:40 +02:00
Gunnar Beutner e359c55909 Add debug hints for attributes
refs #6702
2014-08-16 09:37:17 +02:00
Gunnar Beutner 0443c85bf5 Implement support for writing the icinga2.debug file
refs #6702
2014-08-15 21:00:26 +02:00
Michael Friedrich 7d35585cb0 Fix AExpression log message.
Refs #6346
2014-05-28 14:42:00 +02:00
Michael Friedrich 43dd9729d7 Change log message identifier for libconfig.
Refs #6346
2014-05-28 14:42:00 +02:00
Gunnar Beutner d66b4d587e Implement the "cluster-zone" check task.
Fixes #6204
2014-05-25 19:59:52 +02:00
Gunnar Beutner 632026cd9f Rename C++ header files.
Fixes #6291
2014-05-25 16:27:14 +02:00
Gunnar Beutner 3a1ce23aeb Implicitly set zone attribute for files includes from zones.d.
Refs #6191
2014-05-13 14:40:12 +02:00
Gunnar Beutner a5d3523b85 Rename the function, return and for keywords and remove the lambda keyword.
Fixes #6194
2014-05-12 12:59:12 +02:00
Gunnar Beutner 9c3e399188 Remove unnecessary includes.
Fixes #6189
2014-05-11 18:11:32 +02:00
Gunnar Beutner 12c8814bd8 Fix some more compiler warnings.
Refs #5823
2014-05-11 06:43:01 +02:00
Gunnar Beutner c7b5e4c31e Fix some compiler warnings.
Refs #5823
2014-05-11 06:04:43 +02:00
Gunnar Beutner 7df7ec94d2 Fix scoping rules for dictionaries.
Refs #6183
2014-05-10 12:43:16 +02:00
Gunnar Beutner 6d7e028f92 Use a separate scope for "for" loops.
Refs #6183
2014-05-10 12:03:54 +02:00
Gunnar Beutner 0e34968e8f Implement for loops.
Fixes #6183
2014-05-10 11:26:56 +02:00
Gunnar Beutner ab8624d2f5 Implement support for arrays for the indexer operator.
Fixes #6182
2014-05-10 10:46:49 +02:00
Gunnar Beutner 0c31bae792 Config validator: Make sure that objects are not abstract.
Fixes #6148
2014-05-09 19:40:56 +02:00
Gunnar Beutner bd8ccec258 Fix deadlock when calling functions recursively.
Fixes #6178
2014-05-09 14:45:59 +02:00
Gunnar Beutner 45270f1bb8 Refactor the agent and cluster components.
Refs #6107
2014-05-08 09:13:04 +02:00
Gunnar Beutner b1dab6c074 Implement support for the "package" keyword.
Refs #6107
2014-05-08 09:13:04 +02:00
Michael Friedrich e04d200d36 Allow EvaluateRules() to keep rules for the next iteration.
Refs #6105
2014-05-02 00:23:29 +02:00
Michael Friedrich 3c2dae1804 Evaluate object rules (group assign) before and after creating objects with apply rules.
Refs #6105
2014-05-01 23:51:42 +02:00
Gerd von Egidy 6ac851ca10 Improve error message when trying to open a config file.
Fixes #5666

Signed-off-by: Gunnar Beutner <gunnar.beutner@netways.de>
2014-04-30 00:36:49 +02:00
Gerd von Egidy 19afcd894a Split ConfigItem::ActivateItems() into ConfigItem::ValidateItems() and ConfigItem::ActivateItems().
Also removes the -Z commandline parameter: won't be needed when this feature is done.

Refs #5788
2014-04-29 10:34:01 +02:00
Michael Friedrich d0af8a226b Fix headers. 2014-04-23 15:57:58 +02:00
Michael Friedrich 7a147d268e Add group assign/ignore rules.
Fixes #5910
2014-04-23 15:50:00 +02:00
Michael Friedrich c239f84fd7 Revert "Add group apply (creates object only once and sets membership)."
This reverts commit 559a4fef67.

Refs #5910
2014-04-23 14:59:48 +02:00
Michael Friedrich 559a4fef67 Add group apply (creates object only once and sets membership).
Refs #5910
2014-04-15 14:55:29 +02:00
Gunnar Beutner b8d3d42b7f Allow trailing comma in arrays.
Fixes #5928
2014-04-11 13:51:14 +02:00
Gunnar Beutner e6667c15d3 Support shell-style comments.
Fixes #5994
2014-04-10 11:30:01 +02:00
Gunnar Beutner a16ef350e2 Avoid unnecessary copies for DynamicType::GetObjects.
Fixes #5987
2014-04-09 12:22:23 +02:00
Gunnar Beutner 91f946a40e Implement the "return" keyword.
Fixes #5985
2014-04-09 10:36:57 +02:00
Michael Friedrich aae5f092d4 Log warning if apply rule does not match anywhere.
Fixes #5911
Fixes #5957
2014-04-07 15:00:14 +02:00
Michael Friedrich e97e1cf63f Throw error on missing 'assign' in 'apply'.
Refs #5911
2014-04-07 13:04:13 +02:00
Gunnar Beutner ad42367999 Refactor name helper classes a bit.
Refs #5925
2014-04-06 08:15:07 +02:00
Gunnar Beutner 020eaf99ab Fix yet another validation issue.
Refs #5925
2014-04-05 23:23:49 +02:00
Gunnar Beutner 8d81f4b90a Fix another bug with relative object names.
Refs #5925
2014-04-05 23:23:49 +02:00
Gunnar Beutner bc4cacfee9 Fix validation problem with relative object names.
Refs #5925
2014-04-05 23:23:39 +02:00
Gunnar Beutner 00fd51e628 Implement relative object names.
Fixes #5925
2014-04-05 22:17:37 +02:00
Gunnar Beutner 5e38c81eb5 Implement apply target types.
Fixes #5924
2014-04-05 13:53:55 +02:00
Gunnar Beutner c42a582307 Rename "short_name", "host" and "sevice" attributes.
Fixes #5857
2014-04-05 09:15:40 +02:00
Michael Friedrich 5c58eb368c Merge 'macros' and 'custom' attributes into 'vars', part 1.
Refs #5855
2014-04-03 11:35:25 +02:00
Gunnar Beutner 41d0dde52e Allow functions to return values.
Fixes #5922
2014-04-02 17:27:04 +02:00
Gunnar Beutner 0683fca535 Allow anonymous functions to be garbage-collected.
Fixes #5921
2014-04-02 17:27:04 +02:00
Gunnar Beutner 2faf17cb14 Fix column information for config errors.
Refs #5901
2014-04-01 11:43:53 +02:00
Gunnar Beutner 5eca503362 Support new-lines in addition to commas to separate commands.
Fixes #5901
2014-04-01 09:45:57 +02:00
Gunnar Beutner b924941488 Fix ShowCodeFragment column numbers.
Refs #5893
2014-03-31 12:44:18 +02:00
Gunnar Beutner d874cbfe5b Fix: Crash when there's a config error in the first line / first column.
Fixes #5893
2014-03-31 09:41:07 +02:00
Gunnar Beutner 397fee13ff Allow "object" and "apply" in AST expressions.
Refs #5870
2014-03-30 15:04:53 +02:00
Gunnar Beutner 7a6172c135 Remove support for the deprecated "var" and "set" keywords.
Refs #
2014-03-30 10:29:52 +02:00
Gunnar Beutner 5179eebf09 Allow rterm in indexer ops.
Refs #5870
2014-03-30 10:00:11 +02:00
Gunnar Beutner ec0fdd3fd2 Fix operator precedence.
Refs #5870
2014-03-30 05:04:58 +02:00
Gunnar Beutner 14084735da Make sure we evaluate "apply" rules in the right order.
Refs #5870
2014-03-30 01:20:58 +01:00
Gunnar Beutner d00a839620 Fix incorrect debug info for "apply" rules.
Refs #5870
2014-03-30 01:20:58 +01:00
Gunnar Beutner 64aa5d1b09 Dump AST execution state in debug mode.
Refs #5878
2014-03-29 13:48:04 +01:00
Gunnar Beutner 66e769672c Fix failed assertion in ConfigItem::GetProperties.
Refs #5870
2014-03-28 23:01:35 +01:00
Gunnar Beutner 33ae12d084 Implement apply support for scheduled downtimes and notifications.
Refs #5880
2014-03-28 23:01:33 +01:00
Gunnar Beutner 8a1bbc0ace Make the real object name available for use in templates.
Refs #5882
2014-03-28 19:45:07 +01:00
Gunnar Beutner fa11e5a97e Update example config.
Refs #5878
2014-03-28 16:32:15 +01:00
Gunnar Beutner 0e79abb8f2 Implement instance variable "templates" for config objects.
Refs #5884
2014-03-28 14:46:19 +01:00
Gunnar Beutner 8ab39194f1 Unknown attributes should be a config error.
Refs #5883
2014-03-28 14:25:16 +01:00
Gunnar Beutner 54063f0b9f Rename __name and __type properties.
Refs #5870
2014-03-28 14:17:55 +01:00
Gunnar Beutner 7ee1278118 Implement the new syntax for the "apply" keyword.
Refs #5878
2014-03-28 14:00:00 +01:00
Gunnar Beutner b289987500 Implement the "." operator.
Refs #5876
2014-03-28 13:59:56 +01:00
Gunnar Beutner de81baf515 Remove inline service/notification/downtime definitions.
Refs #5875
2014-03-28 11:22:39 +01:00
Gunnar Beutner 8958d2f69f Implement the "import" keyword.
Refs #5869
2014-03-28 11:22:36 +01:00
Gunnar Beutner 47fe59e4de Windows build fix. 2014-03-26 08:23:54 +01:00
Gunnar Beutner 536562cddd Build fixes.
Refs #5846
2014-03-24 12:54:23 +01:00
Gunnar Beutner 013690e486 Remove __parent element for +=, -=, *= and /= operators.
Refs #5846
2014-03-24 11:34:41 +01:00
Gunnar Beutner c66ac66219 Allow semi-colons as separators for lterms.
Refs #5846
2014-03-24 11:24:01 +01:00
Gunnar Beutner 8e699ac0fa Fix scoping rules for object definitions.
Refs #5846
2014-03-24 11:23:47 +01:00
Gunnar Beutner 8bfb60b7fa Improve error message for invalid inline service definitions.
Refs #5846
2014-03-24 11:23:05 +01:00
Gunnar Beutner 4ec939f332 Some more variable scoping fixes.
Refs #5846
2014-03-24 09:44:18 +01:00
Gunnar Beutner 3032cf8100 Make it easier to call AExpression::Dump from GDB.
Refs #5846
2014-03-24 09:27:46 +01:00
Gunnar Beutner fd1aaa1997 Add missing locks.
Refs #5846
2014-03-24 09:15:45 +01:00
Gunnar Beutner 7086b44d3a Fix variable scoping.
Refs #5846
2014-03-24 09:10:37 +01:00
Gunnar Beutner 1aca29afd2 Clean up the +=, -=, *= and /= operators.
Refs #5846
2014-03-24 09:06:16 +01:00
Gunnar Beutner 9adc63737a Allow rterms as object names.
Refs #5846
2014-03-23 22:41:37 +01:00
Gunnar Beutner ddc548bb5d Fix AExpression::ExtractPath.
Refs #5846
2014-03-23 19:58:24 +01:00
Gunnar Beutner d23078d6c4 Make sure +=, -=, *= and /= behave like they did before.
Refs #5846
2014-03-23 17:26:31 +01:00
Gunnar Beutner aacc699dd4 Refactor the config parser's AST.
Refs #5846
2014-03-23 11:27:40 +01:00
Gunnar Beutner 67d8bc219e Clean up the AExpression class.
Refs #5846
2014-03-22 10:29:45 +01:00
Gunnar Beutner 24e029bdb0 Allow values as top-level statements.
Refs #5846
2014-03-22 09:50:44 +01:00
Gunnar Beutner ddbbd42c4b Implement the log() function.
Refs #5846
2014-03-22 09:47:29 +01:00
Gunnar Beutner 2a6a75d52e Improve error messages for exceptions in AExpressions.
Refs #5846
2014-03-22 08:40:09 +01:00
Gunnar Beutner c9590d5183 Fix location messages.
Refs #5825
2014-03-21 16:01:32 +01:00
Gunnar Beutner c0b10a8245 Make config error messages friendler.
Refs #5825
2014-03-21 15:58:13 +01:00
Gunnar Beutner c286c25183 Show additional lines for config errors.
Refs #5825
2014-03-21 15:51:55 +01:00
Gunnar Beutner 0b90444dd8 Build fix. 2014-03-21 15:41:00 +01:00
Gunnar Beutner dde483d7a8 Make config error messages more awesome.
Refs #5825
2014-03-21 15:39:52 +01:00
Gunnar Beutner 87e4b24686 Add line number info to duplicate object error message.
Refs #5825
2014-03-21 14:48:18 +01:00
Gunnar Beutner 7d7c8e8ec9 Fix path names in DebugInfo objects.
Refs #5825
2014-03-21 14:45:01 +01:00
Gunnar Beutner 8629071392 Improve line number information.
Fixes #5825
2014-03-21 10:28:58 +01:00
Gunnar Beutner 95bf7ca560 Make duplicate object definitions an error.
Fixes #3638
2014-03-20 15:38:29 +01:00
Gunnar Beutner 02fc3278c8 Implement missing operators for the Value class.
Fixes #5804
2014-03-20 13:02:31 +01:00
Michael Friedrich 1d32c5b2d3 Add --no-validate option and skip duplicate validation on (re)start.
Fixes #5800
2014-03-19 20:59:18 +01:00
Gunnar Beutner 46d7cf3d6a Implement len() and the operators >, >=, < and <=.
Refs #5789
2014-03-19 13:25:06 +01:00
Gunnar Beutner 3383951791 Implement regex() and match() functions.
Refs #5789
2014-03-19 12:46:23 +01:00
Gunnar Beutner 124fa9ebc1 Make braces around constant expressions optional.
Refs #5789
2014-03-19 12:46:23 +01:00
Gunnar Beutner f871758502 Fix the !in operator.
Refs #5789
2014-03-19 12:46:23 +01:00
Gunnar Beutner ec0557afea Implement additional operators: &&, ||, in and !in.
Refs #5789
2014-03-19 12:46:23 +01:00
Gunnar Beutner e0ad30a9c6 Allow arrays as operands in constant expressions.
Refs #5789
2014-03-19 12:46:23 +01:00
Gunnar Beutner caad7a7973 Implement the 'apply template' directive.
Refs #5789
2014-03-19 12:46:23 +01:00
Gunnar Beutner 3587dbbd13 Implement support for local variables in AExpressions.
Refs #5789
2014-03-19 12:46:23 +01:00
Gunnar Beutner 04b8724cb8 Implement == and != operators for AExpressions.
Refs #5789
2014-03-19 12:46:23 +01:00
Michael Friedrich ce737ff2f3 Change copyright header (again).
Fixes #5424
2014-03-19 11:42:47 +01:00
Gunnar Beutner 25dc86881a Make script variables constant.
Fixes #5446
2014-02-12 11:51:50 +01:00
Gunnar Beutner 663f72300b Fix validation for the "authorities" attribute.
Fixes #5593
2014-02-10 08:50:09 +01:00
Gunnar Beutner c818d94d93 Fix race condition in the config validator.
Fixes #5602
2014-02-05 12:00:37 +01:00
Gunnar Beutner f9e8e204f9 Fix: Crash when state file is invalid.
Fixes #5361
2014-01-28 14:33:21 +01:00
Michael Friedrich 555d72150a Update copyright header.
Fixes #5424
2014-01-09 00:32:11 +01:00
Gunnar Beutner 3e5af43e4d Don't cache config item properties.
Refs #5400
2013-12-20 13:31:13 +01:00
Gunnar Beutner 38aa231a2d Discard unused config items as early as possibly.
Refs #5400
2013-12-20 13:31:13 +01:00
Gunnar Beutner 162cee5c40 Remove the ConsoleLogger class and keep the default console log enabled until we daemonize.
Refs #5342
2013-12-16 17:23:23 +01:00
Michael Friedrich 9452bc7095 Only print config validation for existing objects.
Refs #5298
2013-12-16 09:39:14 +01:00
Gunnar Beutner 807d0a47e6 Fix spelling mistake in ConfigItem::ActivateItems.
Fixes #5334
2013-12-15 18:47:11 +01:00
Gunnar Beutner 0af81f2da2 Fix race conditions in the config compiler.
Fixes #5335
2013-12-15 11:54:22 +01:00
Gunnar Beutner 4563bb355f Fix another race condition in DynamicObject::Start.
Fixes #5330
2013-12-14 07:36:49 +01:00
Michael Friedrich c66878fa45 Add config validation stats.
Fixes #5298
2013-12-13 16:53:40 +01:00
Gunnar Beutner f8d7f7799e Improve WorkQueue performance
Refs #5327
2013-12-13 14:08:06 +01:00
Gunnar Beutner b4f2f06b88 Implement ParallelWorkQueue class.
Refs #5327
2013-12-13 14:08:02 +01:00
Gunnar Beutner b5792a0b81 Avoid using ConfigItem::GetObject when possible.
Refs #5327
2013-12-13 14:07:57 +01:00