Commit Graph

379 Commits

Author SHA1 Message Date
e297d3592f Reduce creation of Map objects in Pattern matching 2019-08-12 11:28:39 +02:00
a76511ea19 Remove the warppi-rules module 2019-08-12 11:28:39 +02:00
2b9fb97648 Make DSL rule loading work on TeaVM 2019-08-12 11:28:39 +02:00
e5b64ce218 Make TeaVMStorageUtils.read work instead of hanging 2019-08-09 17:53:47 +02:00
fef30042ce Avoid using methods which are not available on TeaVM 2019-08-08 14:36:07 +02:00
d4b91c4d4f Merge branch 'master' into rules-dsl 2019-08-08 12:52:59 +02:00
7819e19e6f Make Function visitor an inner interface of Function 2019-08-07 13:11:59 +02:00
86c7da8c81 Test Lexer with empty input 2019-08-07 13:11:59 +02:00
aeb0388925 Implement DSL error pretty-printing 2019-08-07 13:11:59 +02:00
17d1bddbf1 Fixed picture bug 2019-04-29 23:07:24 +02:00
c906c43b8b Updated TeaVM to the latest snapshot and fixed panels history behaviour 2019-02-25 13:12:22 +01:00
788f9663e2 Use Collections.emptyMap and Collections.singletonMap in pattern matching code 2019-02-12 11:40:50 +01:00
04d01565da Correctly handle and report unterminated multiline comments in Lexer 2019-02-11 16:31:03 +01:00
e86a7a6346 Remove Java rule compiling and loading code 2019-02-11 15:55:29 +01:00
fd074b16b7 Do not load DSL rules on JavaScript platforms 2019-02-11 15:11:59 +01:00
2e36bc83bf Fix incorrect rules and port them to the DSL 2019-02-11 12:21:43 +01:00
b9c025d74c Make function rules built-in 2019-02-10 19:59:38 +01:00
7d9b08affd Port most non-function rules from Java to the DSL 2019-02-10 19:05:25 +01:00
6b814b84b6 Add comments to incorrect rules and partially fix ExpandRule1 2019-02-10 19:05:25 +01:00
df5de92931 Make NegativePattern match and produce negative numbers 2019-02-10 19:05:13 +01:00
d18e2d3708 Test the content of DslAggregateExceptions in RulesDslTest 2019-02-07 20:20:58 +01:00
e65f20382f Document the RulesDsl class and its makeRules method 2019-02-04 18:07:51 +01:00
92ad2a9c1e Remove unused imports 2019-01-31 20:39:56 +01:00
57011ceb86 Make EquationsSystemPattern patterns field private (was accidentally package-private) 2019-01-31 20:38:35 +01:00
8eba0cd568 Correctly store sub-function identifiers for rules with the same name and identical rules 2019-01-31 19:23:37 +01:00
2a347e6d19 Allow unary operators in power exponent 2019-01-31 13:10:02 +01:00
ebbf8b013a Replace DslException with the DslError interface and the SyntaxException wrapper 2019-01-31 12:55:15 +01:00
0d89711772 Report DSL errors from RulesDsl.makeRules as a DslAggregateException 2019-01-30 21:47:00 +01:00
f930242ee8 Properly report undefined sub-functions in replacement patterns 2019-01-30 21:47:00 +01:00
3a5ccdfc13 Keep track of sub-function identifier tokens for error reporting 2019-01-30 21:47:00 +01:00
bdb1fc738e Implement multiple error reporting and recovery in Parser 2019-01-30 21:47:00 +01:00
f0d2cdc1ab Implement multiple error reporting and recovery in Lexer 2019-01-29 12:08:35 +01:00
1e0d2e5a0e Create base class for DSL exceptions 2019-01-28 21:13:24 +01:00
1304755c25 Implement loading of DSL rules 2019-01-28 18:19:27 +01:00
c00b71e2ba Remove unneeded throws spec from PatternRule.execute 2019-01-27 21:18:53 +01:00
bea2eb67c8 Check that sub-functions in replacement patterns are defined 2019-01-27 21:18:53 +01:00
ba468d199a Add method to get sub-functions from patterns 2019-01-27 21:18:44 +01:00
591813402d Prevent instantiation of PatternUtils 2019-01-27 19:56:18 +01:00
a92c3a3272 Implement and test RulesDsl.makeRules 2019-01-27 19:24:49 +01:00
6ab69a1613 Implement and test Parser (with temporary error handling) 2019-01-27 19:24:49 +01:00
b959fac770 Implement equals (and hashCode) in PatternRule and patterns for testing 2019-01-27 19:24:49 +01:00
6c8323daf9 Set Java language level to 9 2019-01-27 19:24:49 +01:00
c069e00178 Fix string indentation in LexerTest 2019-01-27 19:24:49 +01:00
27b128a6ea Add single and multi-line comments 2018-11-23 18:52:36 +01:00
da91a5df33 Implement Lexer (with temporary error handling and basic tests) 2018-11-22 20:04:48 +01:00
61d40330be Define the representation for tokens 2018-11-22 19:59:30 +01:00
fa2b9f20a8 Define a temporarily empty RulesDsl.makeRules method
When complete, this method will execute the DSL front-end, and return
the list of rules, if successful, otherwise report errors.
2018-11-20 19:27:04 +01:00
26416dd8f8 Implement ConstantPattern 2018-11-20 19:07:34 +01:00
5238c32380 Implement Pattern-based Rule 2018-11-19 13:05:28 +01:00
101e90ad03 Remove EmptyNumber overload from FunctionVisitor 2018-11-19 10:49:33 +01:00