257 Commits

Author SHA1 Message Date
Jonathan Turner
5426496b4f Fix parsing of member access and function calls 2011-06-13 07:43:51 -07:00
Jonathan Turner
6131a9c4c1 Moved common operators into their own AST nodes and removed the operator child. 2011-06-04 11:01:35 -07:00
Jonathan Turner
6c18c197c6 Fixed operator parsing to return trees instead of flat representations. Fixed evaluator to not loop over equations. 2011-06-04 09:15:19 -07:00
Jason Turner
36faba8ed3 Bypass dispatch during numeric operations. 2x speedup 2011-06-04 04:25:54 +08:00
Jason Turner
0d238b1617 Documentation updates and namespace reorg for docs. 2011-04-02 20:52:49 -06:00
Jason Turner
d6b8e32373 Allow for parse time evaluation of const values.
The goal is to allow for more evaluation at parse time, in general, to
increase eval time performance.

 - Make AST_Node non-constructable except by derived classes.
 - Make data in AST_Node const (as much as possible).
 - Replace reflection "text = " with replace_child() (where the
   replacement must be with a new parse tree).
 - Evaluate floats, strings, ints, chars at parse time to avoid repeat
   evaluations (~10% speed up in loops in -O3)
2011-03-27 08:17:04 -06:00
Jason Turner
cd8bead54a Further namespace reorganization and cleanup to limit to the user the
most important aspect of the API and make documenation easier.
2011-03-24 09:23:05 -06:00
Jason Turner
637164e457 Move around some namespaces for documentation purposes.
Fix problems with building on clang 2.8.
Remove unneeded function for get_engine() and fix functor<> calls that take a Boxed_Value
2011-03-15 17:35:14 -06:00
Jason Turner
9dd9ffec46 Update copyright information for 2011 2011-03-15 09:42:33 -06:00
Jason Turner
5cc4a758ab Make scoping more explicit during initialization of alphabet 2011-02-21 19:25:22 -07:00
Jason Turner
7c2550ba74 Modify alphabet to m_alphabet to match rest of coding style 2011-02-21 19:17:36 -07:00
clanmills
65d054b36e Three lots of changes:
1) Changes post code review by Jason
2) Fixing bug in end of line processing on Windows with cr-lf
3) Adding command-line options to chai
2011-02-16 08:21:19 -08:00
clanmills
894063261e Changes to parser. 2011-02-14 10:33:40 -08:00
Jason Turner
5f661fad20 Get rid of a C++ conversion and make it a static_cast 2010-11-12 23:19:30 +00:00
Jason Turner
e75a354a04 Apply some module and parameter variable naming standards. Remove ChaiScript template where it was no longer necessary. 2010-11-06 05:20:41 +00:00
Jason Turner
36173d277d Closing issue #99 : shared const char * memory issues. Also, clean up some file loading overhead (did not seem to have an performance impact). 2010-11-05 22:01:39 +00:00
Jason Turner
e1e48d732f Wrap up of clean up of warnings in 64bit visual studio 2010-11-05 04:05:02 +00:00
Jason Turner
6e18aa3dcd Further VS 64bit warning fixes. 2010-11-05 02:43:52 +00:00
Jonathan Turner
5a92146d28 Fix to disallow mixing inline map and array elements 2010-10-02 23:39:17 +00:00
Jonathan Turner
cfa42158af Clean up reflection a bit, and how we do pretty printing of ast nodes. Registered new internal_to_string in reflection module so that we
can have automatic pretty printing of ast nodes during repl eval.
2010-08-30 13:37:50 +00:00
Jason Turner
31feab6053 Fix to parsing of single-line comments where the comment at the end of a line was merging statements separated by a single line comment 2010-08-28 22:14:09 +00:00
Jason Turner
7ef12f634d Register AST_Node and Parser, overloaded eval for AST_Node and some const correctness fixes 2010-08-28 21:48:30 +00:00
Jonathan Turner
c6452c4bd6 Rename of Token to AST_Node to be more correct 2010-08-28 18:38:01 +00:00
Jason Turner
329244759f Fix warnings discovered on macos 2010-08-28 17:58:02 +00:00
Jonathan Turner
58c62f6333 More refactoring of parser to use the token children types directly instead of using a giant switch statement during build_match. 2010-08-15 02:04:35 +00:00
Jonathan Turner
7f037b26d4 Updated email addresses in copyright information. 2010-08-10 05:24:07 +00:00
Jonathan Turner
b1e357423f Move structure to being inheritance-based in preparation for reflection infrastructure. This technique relies on the vtable's dynamic dispatch for correct evaluation, and removes the giant switch eval style of previous revisions. 2010-08-08 17:18:32 +00:00
Jonathan Turner
d838f7a6d4 Renaming of helper function char_between. Adding help to check for hitting the end of input. 2010-08-07 02:18:51 +00:00
Jonathan Turner
556e7ad916 Cleaned up the formatting a bit. Switched parser over to using charBetween, which significantly improves
readability of the early parsing rules.
2010-08-06 11:17:53 +00:00
Jason Turner
799b3ef388 Update copyright for 2010 2010-05-15 22:48:54 +00:00
Jonathan Turner
e5a29ede5f Added 0b1010 binary format. Fixed hex and octal to allow negative ints 2009-12-11 14:46:12 +00:00
Jonathan Turner
ac8462fb67 Fix up some broken sample files 2009-12-02 14:29:42 +00:00
Jonathan Turner
c418644a5b Fix for single-line comments stopping at semicolon. 2009-11-27 22:52:55 +00:00
Jonathan Turner
e14931f389 Move completely over to new operators 2009-11-10 14:07:51 +00:00
Jonathan Turner
1bc968e788 Add initial unaries 2009-11-08 16:27:39 +00:00
Jonathan Turner
18bfead387 Move to a better operator parser, add support for most of the C++ binary operators 2009-11-07 14:43:12 +00:00
Jonathan Turner
9827345213 Fix Id Literals so that they are keyed off an Id search. This allows us to add operator overloading on the parse side. 2009-10-14 13:51:35 +00:00
Jonathan Turner
12e909d9aa Add bit shifting operators 2009-10-13 03:35:01 +00:00
Jonathan Turner
315d7521a7 Clean up warnings. Add simple blocks. 2009-10-08 03:01:19 +00:00
Jonathan Turner
ff177b5eaf Add octal support 2009-10-06 21:17:23 +00:00
Jonathan Turner
46fd7e9a58 Add hex value parsing support 2009-10-06 16:04:05 +00:00
Jason Turner
edd274ccce Fix some more obscure warnings 2009-10-06 02:26:47 +00:00
Jonathan Turner
c5f837fd19 Added 'finally' to try/catch block 2009-09-19 18:12:22 +00:00
Jonathan Turner
7c244d25b5 Add support for chai objects by adding methods and attrs 2009-09-19 15:32:12 +00:00
Jonathan Turner
813fa055a3 Added guarded exception catches 2009-09-19 13:30:11 +00:00
Jonathan Turner
204d379176 Fix default cmake build to use readline and gdb. Add simple try/catch/throw exceptions 2009-09-18 22:04:07 +00:00
Jonathan Turner
63de0fd33c Add a couple more in-string eval unit tests to check for proper escaping 2009-09-13 12:53:12 +00:00
Jonathan Turner
5092713876 Add in-string eval 2009-09-12 14:52:46 +00:00
Jonathan Turner
f23f0edc70 Fix parser to handle shortform equations (fix bad operator parsing). Add back lines to prelude for line numbers 2009-09-09 14:11:03 +00:00
Jonathan Turner
91011695f0 Allow simple multiline commands in arg list and container arg list 2009-08-26 20:34:32 +00:00