Commit Graph

588 Commits

Author SHA1 Message Date
Gunnar Beutner 4a2a6d999a Fix incorrect debug hints for nested attributes
fixes #8604
2015-03-05 13:18:15 +01:00
Gunnar Beutner c33e78aa04 Don't discard config validators 2015-03-04 09:12:57 +01:00
Gunnar Beutner 4d63351561 Fix some compile warnings 2015-03-04 08:26:15 +01:00
Gunnar Beutner 9bbe9a4875 Fix a memory leak in *Expression::GetReference
fixes #8593
2015-03-04 08:00:38 +01:00
Gunnar Beutner c3e32911a7 Fix: else if doesn't work without an else branch
fixes #8572
2015-03-03 10:22:21 +01:00
Gunnar Beutner 7c31654552 Remove the return type for Utility::LoadExtensionLibrary 2015-03-03 07:19:34 +01:00
Gunnar Beutner 09038eeb7c Remove unused variable 2015-03-02 13:21:06 +01:00
Gunnar Beutner fd090e057b Implement 'else if'
fixes #8548
2015-02-26 13:51:13 +01:00
Gunnar Beutner 4da3b1c5b3 Make sure that Notification objects are activated after Host/Service objects
fixes #8517
2015-02-25 12:43:38 +01:00
Gunnar Beutner a76f816623 Implement the 'continue' and 'break' keywords
fixes #8394
2015-02-19 12:57:52 +01:00
Michael Friedrich 2cd5f3516d Fix compiler warning 2015-02-11 15:58:07 +01:00
Gunnar Beutner c95d2f14a3 Fix a crash in yyerror()
refs #8133
2015-02-10 15:53:20 +01:00
Gunnar Beutner 0490fe73f7 Implement line continuation for "icinga2 console"
fixes #8133
2015-02-10 13:27:02 +01:00
Gunnar Beutner 9de7da4d2a Update validators for CustomVarObject
fixes #7542
2015-02-10 08:53:15 +01:00
Gunnar Beutner 97fc5bb10b Implement additional attributes for the Host class
refs #7564
2015-02-09 08:50:17 +01:00
Gunnar Beutner bb12704a31 Implement the Json.encode and Json.decode methods
fixes #8393
2015-02-09 08:14:06 +01:00
Michael Friedrich 29093f2a2f Improve error message on missing included config files
fixes #8179
2015-02-07 21:50:14 +01:00
Gunnar Beutner 4896428c06 Add path information for objects in objects file
fixes #8371
2015-02-05 15:05:07 +01:00
Gunnar Beutner 3b3a65c9ae Document operator precedence
fixes #7816
2015-02-02 12:48:20 +01:00
Gunnar Beutner 173f5241c4 Improve error message for non-matching apply rules
fixes #8323
2015-01-30 15:51:22 +01:00
Gunnar Beutner aeb579d2a0 Implement another syntax for nullary lambdas
refs #7564
2015-01-30 09:49:57 +01:00
Gunnar Beutner d713a6c940 Fix incorrect return value for ConfigItem::ActivateItems
refs #8309
2015-01-29 14:40:49 +01:00
Gunnar Beutner 2f44581f14 Validate timeperiod segments
fixes #8309
2015-01-29 14:14:56 +01:00
Gunnar Beutner fb323ee215 Evaluate apply filters in the for loop
fixes #7610
2015-01-29 12:38:25 +01:00
Gunnar Beutner 13917e07b0 Implement validator support for function objects
fixes #8291
2015-01-27 10:55:14 +01:00
Gunnar Beutner a11cdbdc39 Replace spaces with tabs 2015-01-27 10:50:15 +01:00
Gunnar Beutner b858a05f15 Make operators &&, || behave like in JavaScript
fixes #8290
2015-01-27 08:40:19 +01:00
Gunnar Beutner 01d3be8820 Implement the while statement
fixes #8269
2015-01-23 15:54:27 +01:00
Michael Friedrich 78bfd0204c Update copyright year 2015-01-22 12:00:23 +01:00
Gunnar Beutner 363f23b1d8 Rename ScriptFunction to Function
fixes #8258
2015-01-21 08:48:38 +01:00
Gunnar Beutner 848d076090 Implement the "globals" and "locals" keyword
fixes #8244
2015-01-16 13:04:34 +01:00
Gunnar Beutner 76fefaf9e2 Make argument for the return keyword optional
fixes #8237
2015-01-16 08:41:27 +01:00
Gunnar Beutner a1734e3051 Fix deadlock in VMOps::For
fixes #8236
2015-01-16 08:40:19 +01:00
Gunnar Beutner 1952d7c844 Disallow spaces in T_STRING_ANGLE
fixes #8230
2015-01-15 14:50:07 +01:00
Gunnar Beutner 5db8dd7361 Verify array bounds
fixes #7812
2015-01-12 14:19:35 +01:00
Gunnar Beutner 5e9d9aea74 Change return type for 'set' expressions to Empty
fixes #8172
2015-01-12 08:55:16 +01:00
Michael Friedrich ff3ee32d92 Fix DebugInfoRange for ApplyExpression in config parser
fixes #8173
2015-01-08 17:00:13 +01:00
Gunnar Beutner 7075607773 Use @$ instead of DebugInfoRange 2015-01-08 15:01:13 +01:00
Gunnar Beutner 79b0c13dfb Remove unnecessary default rules 2015-01-08 11:39:06 +01:00
Gunnar Beutner 093be8b5c9 Allow side-effect-free expressions in a limited number of cases
refs #6570
2015-01-08 10:33:45 +01:00
Gunnar Beutner 0091c70c41 Disallow side-effect-free r-value expressions in expression lists
fixes #6570
2015-01-08 09:34:32 +01:00
Gunnar Beutner acbf916506 Fix ambiguity when parsing include_recursive
fixes #8166
2015-01-07 17:22:29 +01:00
Gunnar Beutner f3e0c5f113 Fix escape sequence for double quotes
refs #8164
2015-01-07 13:06:02 +01:00
Gunnar Beutner 2cb9f3011d Fix escape sequence for backslashes
fixes #8164
2015-01-07 08:56:52 +01:00
Gunnar Beutner c433284d27 Improve error reporting
fixes #8136
refs #6070
2014-12-20 15:29:04 +01:00
Gunnar Beutner ee5f4fb7e3 Improve error reporting for the import keyword
fixes #8061
2014-12-20 11:09:21 +01:00
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