TomyLobo
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
TomyLobo
8badb09399
Added query{,Abs,Rel}(x,y,z,typevar,datavar) to the expression parser.
2013-09-21 19:44:56 +02:00
TomyLobo
eba1114b39
IntelliJ demanded attention.
2013-09-21 19:44:56 +02:00
TomyLobo
57bb5470eb
Allowed usage of non-existant variables in all LValue expressions.
2013-09-21 19:44:55 +02:00
TomyLobo
4fa5daf974
Moved megabuf to the Functions class
2013-09-21 19:24:54 +02:00
TomyLobo
aef3b0024a
Fixed the overloader
2013-09-21 19:24:53 +02:00
TomyLobo
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
TomyLobo
6f3fbdc963
Removed some debug prints.
2013-07-02 07:30:00 -04:00
TomyLobo
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
TomyLobo
613f3884d4
Reorganized megabuf a bit.
2012-07-13 12:24:14 +02:00
TomyLobo
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
zml2008
70205bfd11
Removed string.isEmpty() method calls
2011-12-27 13:21:55 -08:00
TomyLobo
376d3c8727
Added "and contributors" to all Copyright statements on the com.sk89q.worldedit.expression package.
2011-12-25 23:27:19 +01:00
TomyLobo
09589e2a79
Fixed switch treating continue like break.
2011-12-05 03:23:22 +01:00
TomyLobo
04a08e7e0c
Improved Switch's optimizer.
2011-12-04 21:00:03 +01:00
TomyLobo
d55376e8a6
Added an optimizer and license/element comments for Switch.
2011-12-04 20:26:14 +01:00
TomyLobo
7a429e9932
Made Node.getPosition final and fixed some whitespace in LocalWorld.
2011-12-04 20:06:23 +01:00
TomyLobo
a8e64fd8bc
Added switch/case to the expression parser.
...
Also added a test case.
2011-12-04 09:25:56 +01:00
TomyLobo
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
TomyLobo
771d068826
Reduced indentation on a piece of code.
2011-12-01 20:20:49 +01:00
TomyLobo
af9e2da6d3
Simplified the statement parser, fixed a few quirks and adjusted a test case.
2011-11-30 09:18:53 +01:00
TomyLobo
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
TomyLobo
c6518a9243
Added a way to retrieve the current expression instance.
2011-11-30 05:20:16 +01:00
TomyLobo
662e597f1a
Moved temporary variable creation from Parser to Expression.
2011-11-30 04:45:48 +01:00
sk89q
11245014c8
Added @Override annotations.
2011-11-29 20:17:50 +01:00
TomyLobo
a6f0a48f84
Added a swap function to the expression parser.
2011-11-28 00:30:52 +01:00
TomyLobo
6aec096709
Fixed a comment.
2011-11-24 21:20:44 +01:00
TomyLobo
77bd86a203
Whitespace police
2011-11-24 21:07:14 +01:00
TomyLobo
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
TomyLobo
05b427316d
Changed signature of the optimize() method to return an RValue.
2011-11-24 20:50:07 +01:00
TomyLobo
7cbb7da80b
Added the ternary operator.
2011-11-24 20:04:42 +01:00
TomyLobo
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
TomyLobo
dfb729d5f1
Added license blocks and element comments to all expression parser classes.
...
Also updated some terminology
2011-11-24 03:55:06 +01:00
TomyLobo
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
TomyLobo
7e13b60a51
Cleanup
2011-11-23 04:48:40 +01:00
TomyLobo
1a57f6e95d
Added return, break and continue.
2011-11-22 18:51:19 +01:00
TomyLobo
efc2209c0f
Prevented overwriting built-in constants.
2011-11-22 17:47:44 +01:00
TomyLobo
5ef9df7feb
Made it possible to leave parts of a for statement empty.
2011-11-22 16:56:41 +01:00
TomyLobo
e6e31d0b93
Moved some code around
2011-11-22 16:35:56 +01:00
TomyLobo
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
TomyLobo
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
TomyLobo
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
TomyLobo
5071885d10
Expression parser: Extended the index range of the megabuf function and renamed it to gmegabuf
2011-11-22 02:33:01 +01:00
TomyLobo
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
TomyLobo
a51bc28756
Added true and false constants to the expression parser.
2011-11-02 15:29:55 +01:00
TomyLobo
c2cd587a9b
Added support for functions that take LValues and added rotate(x&,y&,angle)
2011-11-02 03:41:35 +01:00
TomyLobo
d3822ee345
Fixed postfix operator evaluation order.
2011-10-31 00:42:57 +01:00
TomyLobo
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
TomyLobo
77d1317964
Added support for temporary variables
2011-10-29 21:07:31 +02:00
Wizjany
699807665d
Cleanup
2011-10-29 11:57:45 -04:00