Commit Graph

61 Commits

Author SHA1 Message Date
e2f1abd7e4 Fixed the query functions not comparing data values at all for their return values.
Also made them accept RValue as well and added some test cases for them
and for the overloader bug i fixed last time.
2013-09-25 00:37:54 +02:00
8badb09399 Added query{,Abs,Rel}(x,y,z,typevar,datavar) to the expression parser. 2013-09-21 19:44:56 +02:00
eba1114b39 IntelliJ demanded attention. 2013-09-21 19:44:56 +02:00
57bb5470eb Allowed usage of non-existant variables in all LValue expressions. 2013-09-21 19:44:55 +02:00
4fa5daf974 Moved megabuf to the Functions class 2013-09-21 19:24:54 +02:00
aef3b0024a Fixed the overloader 2013-09-21 19:24:53 +02:00
cabced11a7 Removed some "final" qualifiers from static methods.
Also fixed some other warnings IntelliJ annoyed me with
2013-09-21 10:09:49 -04:00
6f3fbdc963 Removed some debug prints. 2013-07-02 07:30:00 -04:00
6c413289be Added [g]closest(x,y,z,index,count,stride) to the expression parser.
This function reads <count> x/y/z triplets from [g]megabuf, starting at <index> and advancing <stride> elements each time.
It then finds the element closest to the given coordinates.
2012-07-13 17:29:21 +02:00
613f3884d4 Reorganized megabuf a bit. 2012-07-13 12:24:14 +02:00
fd4e94220f Fixed a NullPointerException in ifs without an else.
The NPE occured if the condition was not optimizable to a constant.
2012-07-13 12:20:33 +02:00
70205bfd11 Removed string.isEmpty() method calls 2011-12-27 13:21:55 -08:00
376d3c8727 Added "and contributors" to all Copyright statements on the com.sk89q.worldedit.expression package. 2011-12-25 23:27:19 +01:00
09589e2a79 Fixed switch treating continue like break. 2011-12-05 03:23:22 +01:00
04a08e7e0c Improved Switch's optimizer. 2011-12-04 21:00:03 +01:00
d55376e8a6 Added an optimizer and license/element comments for Switch. 2011-12-04 20:26:14 +01:00
7a429e9932 Made Node.getPosition final and fixed some whitespace in LocalWorld. 2011-12-04 20:06:23 +01:00
a8e64fd8bc Added switch/case to the expression parser.
Also added a test case.
2011-12-04 09:25:56 +01:00
61b2ea4007 Added "switch" and "case" to the list of keywords so they can't be used as variable names. 2011-12-04 06:40:09 +01:00
771d068826 Reduced indentation on a piece of code. 2011-12-01 20:20:49 +01:00
af9e2da6d3 Simplified the statement parser, fixed a few quirks and adjusted a test case. 2011-11-30 09:18:53 +01:00
9cdac001e3 Added a megabuf function to the expression parser, which works like gmegabuf, except that there is one buffer per Expression instance. 2011-11-30 05:27:11 +01:00
c6518a9243 Added a way to retrieve the current expression instance. 2011-11-30 05:20:16 +01:00
662e597f1a Moved temporary variable creation from Parser to Expression. 2011-11-30 04:45:48 +01:00
11245014c8 Added @Override annotations. 2011-11-29 20:17:50 +01:00
a6f0a48f84 Added a swap function to the expression parser. 2011-11-28 00:30:52 +01:00
6aec096709 Fixed a comment. 2011-11-24 21:20:44 +01:00
77bd86a203 Whitespace police 2011-11-24 21:07:14 +01:00
c1e151ac19 Improved the expression parser's optimizer.
Added optimizers for Conditional, For, SimpleFor and While.
Improved the Sequence optimizer.
Removed the optimizer TODOs from Break and Return.
2011-11-24 21:00:09 +01:00
05b427316d Changed signature of the optimize() method to return an RValue. 2011-11-24 20:50:07 +01:00
7cbb7da80b Added the ternary operator. 2011-11-24 20:04:42 +01:00
9456c9e58f Expression parser improvements
- Fixed calling nullary functions.
- Improved error reporting for missing functions
- Added random() and randint(max)
- Improved Sequence.optimize() to eliminate statements with no effect
- Adjusted a comment
2011-11-24 11:05:41 +01:00
dfb729d5f1 Added license blocks and element comments to all expression parser classes.
Also updated some terminology
2011-11-24 03:55:06 +01:00
71287299b5 Added a simple for loop to the expression parser.
Syntax: for (counter = first, last) { body }
Also added a test case.
2011-11-24 02:35:19 +01:00
7e13b60a51 Cleanup 2011-11-23 04:48:40 +01:00
1a57f6e95d Added return, break and continue. 2011-11-22 18:51:19 +01:00
efc2209c0f Prevented overwriting built-in constants. 2011-11-22 17:47:44 +01:00
5ef9df7feb Made it possible to leave parts of a for statement empty. 2011-11-22 16:56:41 +01:00
e6e31d0b93 Moved some code around 2011-11-22 16:35:56 +01:00
effbf9f79c Added for loops to the expression parser, java style.
Also:
- Added a test case for for
- Fixed Identifiable.id() for the runtime Nodes and added missing elements to the list in Identifiable.java.
- Factored keyword and character consumption into a common function.
2011-11-22 16:08:15 +01:00
f217be0bdf Added while loops to the expression parser.
Also added a test case.
Iterations are currently limited to 256 maximum.
2011-11-22 06:16:23 +01:00
aa43975e34 Added support for if/else to the expression parser. Basically same syntax as Java.
Also added a test case.
2011-11-22 05:12:32 +01:00
5071885d10 Expression parser: Extended the index range of the megabuf function and renamed it to gmegabuf 2011-11-22 02:33:01 +01:00
0c9c213e4e Added support for assignable function results.
Also:
- Added megabuf(index) as a first, temporary example
- Introduced a new Node class at the top of the hierarchy for the runtime.
- RValue and LValue are now interfaces
- Narrowed down some exception declarations
- Optimized the optimizer for functions
2011-11-20 17:41:38 +01:00
a51bc28756 Added true and false constants to the expression parser. 2011-11-02 15:29:55 +01:00
c2cd587a9b Added support for functions that take LValues and added rotate(x&,y&,angle) 2011-11-02 03:41:35 +01:00
d3822ee345 Fixed postfix operator evaluation order. 2011-10-31 00:42:57 +01:00
8e0539adf1 Parser improvements
- After a closing brace or a semicolon, a new expression starts. This fixes "{}-1" and ";-1" returning an error.
- Empty statements and empty block statements are now fully supported
- Renamed PrefixOperator to UnaryOperator
- Added postincrement(x++), postdecrement(x--) and factorial(x!) operators
2011-10-30 06:04:49 +01:00
77d1317964 Added support for temporary variables 2011-10-29 21:07:31 +02:00
699807665d Cleanup 2011-10-29 11:57:45 -04:00