Jason Turner
f03659c865
More careful testing of 'for' parses
2017-07-19 13:19:36 -06:00
Jason Turner
cfb2e663d3
Fix unhandled exception found via libfuzzer
2017-07-19 10:09:44 -06:00
Jason Turner
ea03a5462f
Wrap up build issues for dropping of shared_ptr
2017-07-18 16:58:09 -06:00
Mike Bogdanov
0c31d81711
fixed PVS-Studio warnings V728
2017-07-13 12:41:23 +03:00
Jason Turner
77315ae4b9
Fix non-shared_ptr tree code
2017-06-22 09:32:49 -06:00
Jason Turner
5a5600914c
Move away from shared_ptr for parse nodes
2017-06-21 21:27:48 -06:00
Jason Turner
bd736eddec
Deprecate GLOBAL #247
2017-05-30 11:33:12 -06:00
Jason Turner
0f9d9cae4a
Merge pull request #332 from ftk/develop
...
Ability to disable module loading support at compile time
2017-03-21 12:55:30 -07:00
Jason Turner
9847618cf3
Fix use after move during parsing
...
closes #337
2017-03-21 12:17:30 -07:00
ftk
60c43233c6
More clear error message in load_module
2017-03-05 21:55:01 +03:00
ftk
c2f7ca3aa2
Using runtime stdlib constructor will result in compilation error
2017-03-05 21:48:59 +03:00
ftk
72cb9bd940
Compile out module path search code when module support is disabled
2017-03-05 21:26:01 +03:00
ftk
698dfb06db
Loadable module support can be disabled by defining CHAISCRIPT_NO_DYNLOAD
2017-03-05 20:54:01 +03:00
Jason Turner
064a385a64
Merge branch 'develop' of github.com:ChaiScript/ChaiScript into develop
2017-02-22 15:56:04 -07:00
Jason Turner
283785faaf
Add PVS Studio and address some issues it found
2017-02-22 15:18:56 -07:00
Jason Turner
40fb8d257e
Fix warnings from MSVC
2017-02-22 13:55:02 -07:00
Jason Turner
87f1242ed4
Update copyrights to 2017
2017-02-15 15:55:40 -07:00
Jason Turner
f5ced799cf
Hopefully find balance with gcc/clang for static_string
2017-02-02 08:10:47 -08:00
Jason Turner
24352c62e8
Some clang specific fixes / warnings
2017-02-02 08:00:57 -08:00
Jason Turner
d8d7bc79b7
Enhance number parsing tests
2017-02-01 09:07:40 -08:00
Jason Turner
3e04210027
Add more integer literal tests / fix neg test
...
Addresses #322
2017-02-01 07:02:18 -08:00
Jason Turner
c82c9ccb6e
Revert "Fix parsing of negative numbers"
...
This reverts commit 83b7973cb885af928e36195a7cbc6ab8f04a93b6.
2017-02-01 06:18:14 -08:00
Jason Turner
83b7973cb8
Fix parsing of negative numbers
2017-01-31 15:41:21 -08:00
Jason Turner
0a18f0a809
Remove unnecessary params
2017-01-31 13:40:16 -08:00
Jason Turner
8efba903c3
use std::end instead of end because of MSVC
2017-01-31 13:28:40 -08:00
Jason Turner
ca87c05cd4
Don't add 'this' if it was explicitly captured
2017-01-31 13:25:26 -08:00
Jason Turner
a8e70a4cfe
Merge branch 'develop' of github.com:ChaiScript/ChaiScript into develop
2016-12-06 13:43:53 -07:00
Jason Turner
cee57f998a
Allow conversions while calling chaiscript funcs
...
* This puts ChaiScript funcs more on even footings with
C++ defined funcs
* Minor performance hit (0.5%)
2016-12-06 13:05:17 -07:00
Jason Turner
ce62706fea
Clean up warnings
...
* msvc
* pvs-studio
2016-12-06 10:31:36 -07:00
Jason Turner
defdb53a55
Fix regression from last commit on single char operators
2016-12-02 23:26:54 -07:00
Jason Turner
0dea62dd54
Finish removing runtime string comparisons
...
* Now virtually all parser string work is done at compile time
* Continuing the work started by @niXman
2016-12-02 23:01:57 -07:00
Jason Turner
9e17514b57
Move away from class level statics
...
- Avoiding potential issues with linking and multiple symbol definitions
2016-12-01 15:20:48 -07:00
Jason Turner
5f402e71dd
Move away from macro, get slight perf boost with hand rolled compare
2016-12-01 14:47:23 -07:00
Jason Turner
95e119fffe
Merge github.com:niXman/ChaiScript into develop
2016-12-01 14:03:56 -07:00
Jason Turner
f17439a9d3
Add scope around condition in for/while
...
* solves issue with rapidly expanding memory usage if
function variable use stack is growing rapidly
2016-12-01 13:42:40 -07:00
Jason Turner
50dcbc8c7e
Simplify Symbol parsing.
...
closes #301
2016-11-13 15:14:41 -07:00
niXman
1ea91faf52
parser optimization Three
2016-11-08 01:11:46 +02:00
niXman
745e0c0f0b
parser optimization step Two
2016-11-04 09:15:02 +02:00
niXman
c42477f2eb
parser optimization step One
2016-11-03 22:47:48 +02:00
Jason Turner
012f1ffff5
Remove incorrect override
2016-10-30 21:51:00 -06:00
Jason Turner
9925b20fad
Cleanups found with PMD's CPD
2016-10-29 09:41:55 -06:00
Jason Turner
28122f7cb0
Fix single parameter constructors found by cppcheck
2016-10-28 15:49:40 -06:00
Jason Turner
b1f1803759
Some cleanups found by clang's analyzer
2016-10-28 14:53:01 -06:00
Jason Turner
359897a442
Flesh out parser and tracer usage cases
2016-10-28 13:36:10 -06:00
Jason Turner
332a62769b
Merge branch 'release-5.x' into develop
2016-10-28 10:57:55 -06:00
Jason Turner
a38b254a98
Only allow class in top level scope
...
* Throw error if class is in unexpected place
* Allow catching of `eval_error` from inside of script
closes #297
2016-10-28 10:56:12 -06:00
Jason Turner
eefd50a6bc
Merge branch 'release-5.x' into develop
2016-10-26 14:05:28 -06:00
Jason Turner
0d4a99af82
Enable conversion to bool in conditionals
...
closes #295
2016-10-26 13:52:03 -06:00
Jason Turner
7d9e1b3af7
Add ability to disable loading external files
...
* Options are passed to ChaiScript constructor
* load_module / eval_file / use can be disabled
from script context
2016-10-17 20:51:15 -06:00
Stephen Berry
d2c2962eb7
Added braces to better distinguish case statements.
...
Added more comments to namespace handling functions.
Added mutex protection to import.
2016-10-17 08:26:26 -05:00
Jason Turner
c97a69537d
Add ability to get current script context
...
closes #277
2016-10-13 20:44:13 -06:00
Stephen Berry
a01687d7ad
Added basic namespace handling. The new code is wrapped in NAMESPACE HANDLING comments.
...
C++:
register_namespace(): registers a namespace with an instance of ChaiScript (supports delayed namespace generation)
import(): imports a namespace as a global Dynamic_Object
ChaiScript:
import(): imports a namespace
namespace(): generates and registers a new namespace
2016-10-12 09:42:57 -05:00
Jason Turner
fac8f3ec90
Merge branch 'release-5.x' into develop
2016-10-10 20:09:40 -06:00
Jason Turner
23c13e6570
Apply return optimization to lambdas
...
closes #289
2016-10-10 18:52:54 -06:00
Jason Turner
c37c901a0c
Fix MSVC build
...
closes #287
2016-10-07 21:39:19 -06:00
Jason Turner
b091439567
Merge branch 'release-5.x' into develop
2016-10-07 09:13:19 -06:00
Jason Turner
665125665a
Bump to 5.8.5
...
- remove parsing of unary &, it was unused
2016-10-06 22:32:55 -06:00
Jason Turner
d1c7645a4e
Backport inits for g++4.6
2016-10-06 15:19:47 -06:00
Jason Turner
8b7fe33bf1
Fix order of operations for prefix and '*', '/'
...
The problem is that Prefix did not properly participate in
operator precedence. I've fixed this, at least for the moment,
by adding a final depth of precedence that can be called when
the depth gets to the bottom.
closes #285
2016-10-06 14:44:30 -06:00
Jason Turner
21495ebb40
Make sure atomics are initialized
2016-10-06 09:09:50 -06:00
Jason Turner
4e6e63ab5d
Cleanups and split up into _basic options
2016-08-27 10:33:44 -06:00
Jason Turner
e44724c780
Fix debug/clang build issues
2016-06-29 17:27:07 -06:00
Jason Turner
b0f07cbe5d
Merge branch 'develop' into cleanups_and_reworkds
2016-06-29 16:11:00 -06:00
Jason Turner
a14f1983e8
Handle a few more optimization cases
2016-06-27 12:56:43 -06:00
Jason Turner
9e16cc2a79
Simplify and normalize if block code
2016-06-27 08:56:03 -06:00
ELynx
201fef49c6
More standard compliant, use converter only where available
2016-06-27 17:40:43 +03:00
ELynx
58ebb22c55
clean-up conversion for other than std:string
2016-06-27 16:03:32 +03:00
ELynx
368a3b78a2
create holder class
2016-06-27 13:46:37 +03:00
ELynx
e3e90de02a
Proper comparison in unit tests; remove leftover static keyword
2016-06-27 13:09:32 +03:00
ELynx
8478ddc470
Move details to detail namespace, make to standard
2016-06-27 12:45:38 +03:00
ELynx
bd26355516
No warnings from MSVC
2016-06-27 12:38:50 +03:00
ELynx
19a730b78b
Basic support for Unicode 'slash'uABCD escape notation - parser understands escape sequence and following data
2016-06-27 11:52:22 +03:00
Jason Turner
e3d1741c63
Add C++17-style if-init blocks
2016-06-26 22:10:53 -06:00
Jason Turner
09bdec4882
Add ranged-for loops
...
closes [#145 ]
2016-06-26 20:00:01 -06:00
Jason Turner
c31ebb5665
Move checking of valid object names to parse time
2016-06-23 10:23:40 -06:00
Jason Turner
52a191df9e
Add optimization for unused return values
2016-06-19 20:20:51 -06:00
Jason Turner
228c942b6c
Use std::exchange
2016-06-07 12:26:30 -06:00
Jason Turner
7b3f06b269
Even more scope / block simplification
2016-05-03 14:41:16 -06:00
Jason Turner
5373bbd52e
Add Fold-Right optimizer
2016-05-03 10:21:59 -06:00
Jason Turner
17821be1e2
Reduce shared_ptr copies during dispatch
2016-05-03 08:51:44 -06:00
Jason Turner
9a526bc1ec
Allow constant folding to do conversions also
2016-05-01 12:46:15 -06:00
Jason Turner
03803ee4c4
Initial take on Tracer hooks
...
This will allow the user to add hooks in for debugging / execution
tracing / throttling / etc for each node execution
The cost is *almost* 0 if no tracing is enabled.
2016-04-30 20:53:01 -06:00
Jason Turner
dcedd64032
Merge branch 'develop' into cleanups_and_reworkds
2016-04-29 10:40:38 -06:00
Jason Turner
f6c69f2826
Allow folding of if blocks
2016-04-25 21:32:48 -06:00
Jason Turner
184ca7f7b2
Create Block reducing optimizer
2016-04-24 07:49:00 -06:00
Jason Turner
71caf5006f
Pull constant folding optimizer out
2016-04-23 22:27:34 -06:00
Jason Turner
4dbf1ee2bd
Pull out Return_Optimizer
2016-04-23 22:12:08 -06:00
Jason Turner
4324a700ad
Fix instring eval parsing
2016-04-23 21:00:32 -06:00
Jason Turner
5b78d5a898
Make optimizer pluggable
2016-04-23 20:22:17 -06:00
Jason Turner
ff2ab6bb8d
Make optimizer split out
2016-04-23 15:52:19 -06:00
Jason Turner
25575564c0
Make module load error much more explicit
2016-04-23 15:47:39 -06:00
Jason Turner
683164650a
Add ability to 'compile' for loops
2016-04-21 08:09:10 -06:00
Jason Turner
6d6f79b1a4
Only pop min/max if they were defined previously
2016-04-18 14:38:25 -06:00
Jason Turner
7ab6bce7fa
Untangle chaiscript_engine from the rest of it
2016-04-17 21:14:01 -06:00
Jason Turner
f9294c8cbe
Remove ChaiScript_Parser from stdlib, unnecessary
2016-04-17 16:55:08 -06:00
Jason Turner
c68488388e
Remove some unused code in Boxed_Value
2016-04-16 22:14:02 -06:00
Jason Turner
7d5a97aa2f
Clean up if block parsing and eval
2016-04-16 15:39:32 -06:00
Jason Turner
83c6df11f0
Fix global reference assignment
2016-04-16 14:30:12 -06:00
Jason Turner
cf2fa09d6c
Eliminate branching in var decl
2016-04-16 14:13:14 -06:00
Jason Turner
f3f84594ee
A few parser cleanups
2016-04-16 12:04:18 -06:00
Jason Turner
32bd936a18
Remove 'annotation' feature
2016-04-16 07:52:39 -06:00
Jason Turner
498339c202
Remove some dead parser code
2016-04-16 07:35:30 -06:00
Jason Turner
49dfdfd15a
Fix some boxed_cast and exception issues
2016-04-14 12:03:55 -06:00
Jason Turner
6f0d02f158
Massive simplification of boxed_cast. More planned
2016-04-13 14:09:08 -06:00
Jason Turner
8d808f75c0
Remove pretty_print functionality
2016-04-13 12:04:55 -06:00
Jason Turner
b594043eef
Clean up redundant code
2016-04-11 09:36:23 -06:00
Jason Turner
fe8f8a89a7
Implement constant expression folding
2016-04-11 08:19:02 -06:00
Jason Turner
40694c798c
Eliminate Str_AST_Node
2016-04-10 23:12:35 -06:00
Jason Turner
443828fa23
More parser simplification
2016-04-10 22:27:35 -06:00
Jason Turner
866db4ee8b
Reduce instances of Str_AST_Node
2016-04-10 21:38:44 -06:00
Jason Turner
5e97f459d8
Remove unnecessary false
2016-04-10 19:01:55 -06:00
Jason Turner
e02ac78195
Remove Char_AST_Node
2016-04-10 18:57:23 -06:00
Jason Turner
62cd8031ac
Make quoted strings into Constants
2016-04-10 18:29:16 -06:00
Jason Turner
61dfcb00c0
Move int/float into Constant
2016-04-10 17:19:48 -06:00
Jason Turner
4bf619c80f
some initialization and destructor cleanups
2016-04-09 22:10:06 -06:00
Jason Turner
08a68f310a
Move to strongly typed algebraic enum
2016-04-09 21:50:23 -06:00
Jason Turner
641ac1a1ae
Split up ifdef'd module code
2016-04-09 21:49:12 -06:00
Jason Turner
2400c64c82
Move to strongly typed enums for node types
2016-04-09 21:15:07 -06:00
Jason Turner
5567e767a3
Change some {{ code
2016-04-04 15:57:14 -06:00
Eduard
33c966b8d6
Fix description of get_guard()
2016-03-30 18:14:12 +03:00
Jason Turner
2f2f789f48
Fix parsing of '' strings. found by AFL
2016-03-26 17:34:36 -06:00
Jason Turner
b424d1f9cb
delimit chaiscript text blocks
2016-03-13 15:33:23 -06:00
Jason Turner
d5ae30191d
Add =, ==, and != for Dynamic_Objects
...
closes #251
2016-03-12 12:44:05 -07:00
Jason Turner
34a2001a7b
Reduce lookups into stack indexes
2016-03-12 07:05:12 -07:00
Jason Turner
16c4a11990
More C++11/C++14 updates
2016-03-11 18:17:04 -07:00
Jason Turner
5247de7d1b
use a global void value for returning unknown values
2016-03-11 10:21:39 -07:00
Jason Turner
cd1b3f8887
Virtual / override / public cleanups
2016-03-11 09:24:00 -07:00
Jason Turner
cfc8a3d214
Warning cleanups and simplification
2016-03-07 21:24:21 -07:00
Jason Turner
019c6b2830
Cleanup of ChaiScript_Parser
...
From episode 1 of C++ Weekly.
2016-03-07 15:36:12 -07:00
Jason Turner
947d7c2591
Merge branch 'develop' into update_travis_toolchain
...
Conflicts:
.decent_ci-Windows.yaml
CMakeLists.txt
include/chaiscript/chaiscript_defines.hpp
2016-03-05 21:12:14 -07:00
Jason Turner
2a8c248167
Implement locale dependent float parser
...
closes #250
2016-03-04 15:18:12 -07:00
Jason Turner
b5b6e5a5a3
Drop ifdef'd code for gcc4.6 and msvc12
2016-03-04 11:15:39 -07:00
Jason Turner
d4f02b5e67
Address sign promotion warnings, add todo test
2016-03-04 07:58:21 -07:00
Jason Turner
7f8a6f24f9
Fix a few warnings from old gcc
2016-02-16 11:13:14 -07:00
Jason Turner
07fa8010e4
Ack! Rollback debug statement print out
2016-02-16 11:06:20 -07:00
Jason Turner
e024b99b36
Fixes for type_conversion handling
2016-02-16 08:29:01 -07:00
Jason Turner
ed65ad72d0
Update copyrights
2016-02-14 20:04:17 -07:00
Jason Turner
bc0eaa5d15
Fix some issues found by cppcheck
2016-02-14 20:01:49 -07:00
Jason Turner
bff30278e1
Fix string parsing
2016-01-31 19:35:40 -07:00
Jason Turner
b104b26f11
Also allow lcase global keyword
...
Closes #221
2016-01-31 19:15:32 -07:00
Jason Turner
1a06e53c58
Add some compiler identification info to build
2016-01-31 19:06:44 -07:00
Jason Turner
7688c14d43
Parse strings in ${} closes #131
2016-01-29 21:34:04 -07:00
Jason Turner
485482b2be
Fix tabs in source code
2016-01-29 19:42:50 -07:00
Jason Turner
f697384028
Merge pull request #243 from vrennert/feature_initializer_list_conversion
...
Added initializer_list<T> conversion as possible function call argument or return type.
2016-01-29 15:20:38 -07:00
Jason Turner
dfd04c8291
Clean up formatting from last merge
...
Closes #238
2016-01-29 15:16:35 -07:00
Jason Turner
209d6ed2e4
Merge remote-tracking branch 'ktm/set-global' into develop
2016-01-29 15:14:32 -07:00
Jason Turner
f82f6c2068
Some fixes found by resharper c++
2016-01-25 16:41:11 -07:00
Viktor Rennert
fcca453223
Added initializer_list<T> conversion as possible function call argument or return type.
2016-01-26 00:06:57 +01:00
ktm
43def57852
add set_global, update unit test
2016-01-17 00:01:51 -05:00
Christian Kaeser
202204a82a
Limit hexadecimal escape sequence length
...
Helps with cases like "\xFFecho" by limiting the number of hex digits
that will be parsed to maximum suitable for the char type.
This rule differs from the C/C++ standard, but ChaiScript does not offer
the same workaround options.
Furthermore, without it having hexadecimal sequences longer than can fit
into the char type is undefined behavior anyway.
2015-11-08 18:36:16 +01:00