1
0
mirror of https://github.com/DanilaFe/abacus synced 2024-12-22 23:40:08 -08:00
Commit Graph

261 Commits

Author SHA1 Message Date
2f1ed5f0d1 Change the default implementation string to "<default>" 2017-08-02 19:26:14 -07:00
2615273d28 Refresh all settings on plugin load. 2017-08-02 19:18:33 -07:00
6e1d2ce629 Clear caches on unload and call onUnload before plugins are removed. 2017-08-02 19:14:50 -07:00
44b8efd9bc Actually disable loading the plugin functions in the PluginManager. 2017-08-02 19:06:16 -07:00
2502c90837 Write disabled / enabled plugins to the configuration. 2017-08-02 19:01:01 -07:00
e49f28a850 Add a check box list cell generator. 2017-08-02 18:48:42 -07:00
88e4a87d81 Add a data model for the plugins displayed in the enabled plugins list. 2017-08-02 18:39:00 -07:00
cda09518c3 Add the disabled plugins configuration option. 2017-08-02 18:38:37 -07:00
56510d97de Add the new UI components required for the plugin loading. 2017-08-02 18:24:20 -07:00
Arthur Drobot
86533d53c9 Fix scaling for optimization in FUNCTION_LN, in the positive direction towards unity (i.e., when the argument passed to ln is small). 2017-08-02 15:33:34 -07:00
Arthur Drobot
9b71f9aaf4 Add comments for FUNCTION_SIN and intFactorial in StandardPlugin. 2017-08-02 15:13:04 -07:00
Arthur Drobot
cf953da40a Fix getPi function. 2017-08-02 14:13:30 -07:00
Arthur Drobot
27ad10c0f1 Remember to use floor in the angle reduction function. Comment debugging output. 2017-08-02 13:27:39 -07:00
Arthur Drobot
601c4fea55 Change ceiling and floor to return NumberInterface. Add fractional part function. Add intValue function. Change StandardPlugin correspondingly. 2017-08-02 12:00:56 -07:00
c2ae0b4138 Merge branch 'negatives' 2017-08-02 11:33:21 -07:00
16938b4e06 Fix division to not multiply numbers. 2017-08-02 11:28:49 -07:00
d964fbfb6f Implement the negation operator. 2017-08-02 11:26:59 -07:00
Arthur Drobot
52fbfd5134 Change getPi to calculate pi using a series. 2017-08-02 11:03:17 -07:00
9713f24ed2 Rename nodes to more general names. 2017-08-02 10:41:52 -07:00
5de9453bec Merge branch 'config-rewrite' 2017-08-01 16:42:58 -07:00
Arthur Drobot
b31151384d Implement sin function and helper functions such as getSmallAngle and floor. 2017-08-01 15:36:54 -07:00
d205651332 Add a number implementation selector box. 2017-08-01 11:52:48 -07:00
6f99f07150 Add comment to PreciseNumber. 2017-08-01 10:49:50 -07:00
2cf41c1029 Add comments to the JavaFX codebase 2017-08-01 10:49:00 -07:00
76677ef494 Merge the two configuration classes into one. 2017-08-01 10:24:32 -07:00
0cd40b028a Merge branch 'javafx' 2017-08-01 09:53:47 -07:00
7cb04a1222 Switch to the new UI. 2017-08-01 09:53:38 -07:00
0a97eeb442 Resize table columns. 2017-08-01 09:25:13 -07:00
Arthur Drobot
1ee8c7d231 Keep 15 additional decimal places. 2017-07-31 23:16:37 -07:00
Arthur Drobot
f97d16c640 Comment out debugging output. 2017-07-31 23:09:11 -07:00
Arthur Drobot
a0bba03c2c Separate power and factorial calculations to fix large precision loss in exp. 2017-07-31 22:56:55 -07:00
05d0755526 Implement a cell that copies input when clicked, and add it to table. 2017-07-31 22:53:42 -07:00
0b97a935bf Enable cell selection to later allow for data copying. 2017-07-31 22:34:49 -07:00
211e963db0 Populate the history table. 2017-07-31 22:29:44 -07:00
d8145acc8f Implement the history data model. 2017-07-31 17:49:57 -07:00
63b8162a9b Format the fxml. 2017-07-31 17:18:08 -07:00
c655c63233 Link up the evaluation and the UI buttons. 2017-07-31 17:17:56 -07:00
27ff1a47b5 Add the inputs to the calculator tab. 2017-07-31 17:16:26 -07:00
2941252f7d Add a tabbed pane as the main focus of the window. 2017-07-31 16:56:38 -07:00
44ed0199d4 Add initialization code to AbacusController 2017-07-31 16:52:34 -07:00
5b582a7dbe Add FXML loading application. 2017-07-31 16:50:39 -07:00
a02086e791 Create new fxml file and controller for it. 2017-07-31 16:48:04 -07:00
Arthur Drobot
8666e96420 Remove unused code and functions in StandardPlugin. 2017-07-31 14:53:41 -07:00
Arthur Drobot
fd40e6b297 Rewrite exp. (Now works faster.) Add private factorial function to StandardPlugin as well. 2017-07-31 14:49:25 -07:00
Arthur Drobot
79ccd61af3 Add ceiling to NumberInterface and the two numbers that implement it. 2017-07-31 13:25:23 -07:00
Arthur Drobot
699ba9e193 Merge branch 'master' of https://github.com/DanilaFe/abacus 2017-07-31 12:40:19 -07:00
Arthur Drobot
e43f223086 Optimize log. 2017-07-31 12:39:56 -07:00
2dbc91f79e Merge branch 'master' of github.com:DanilaFe/abacus 2017-07-31 11:54:25 -07:00
Arthur Drobot
782636a982 Fix comment. 2017-07-31 10:28:39 -07:00
97d63489cc Focus on the text field on startup. 2017-07-30 21:25:21 -07:00
a0a4f1fbfe Add comments to the newly defined static functions. 2017-07-30 21:15:01 -07:00
763683b6b4 Move OP_CARET back into place. 2017-07-30 21:12:50 -07:00
3ce74303ed Format code. 2017-07-30 21:11:32 -07:00
122874b97a Move all functions to a static context, stopping unnecessary lookups. 2017-07-30 21:10:11 -07:00
0125980c5a Write tests involving plugin loading, and generalize token testing code. 2017-07-30 19:21:26 -07:00
cb7d0f309b Remove the window as a part of the Abacus class. 2017-07-30 15:00:08 -07:00
cb98601ae5 Add some comments. 2017-07-30 14:59:20 -07:00
67b95edd44 Write basic tokenizer tests. 2017-07-30 14:52:10 -07:00
960f891393 Remove abacus dependency from PluginManager. 2017-07-30 14:42:06 -07:00
b599bef775 Write more tests for the Lexer. 2017-07-30 14:12:17 -07:00
28004ed98d Write tests for special cases. 2017-07-30 00:46:42 -07:00
317cc552e6 Write basic tests for string matching. 2017-07-29 23:48:01 -07:00
43c11f8454 Move the source files into a new default directory. 2017-07-29 23:44:21 -07:00
3131d96d07 Merge branch 'new-parser-prep' into unit-tests 2017-07-29 23:42:23 -07:00
7b2ee1c87a Create empty class, getting ready to write tests. 2017-07-29 21:49:36 -07:00
274826cc09 Replace the old TreeBuilder with the new TreeBuilder. 2017-07-29 21:37:55 -07:00
bfee4ec322 Implement a LexerTokenizer and a ShuntingYard parser.
These are basically two pieces of the old TreeBuilder, but decoupled
and reimplemented conventionally.
2017-07-29 21:37:32 -07:00
bd1f7b8786 Add comments to the two parsing interfaces. 2017-07-29 21:36:39 -07:00
90c6625108 Change matches to store the string they matched. 2017-07-29 21:20:11 -07:00
a99b6b647f Implement the components of a new tree builder. 2017-07-29 21:02:41 -07:00
9454620489 Remove precision specification as it seems detrimental. 2017-07-28 22:51:59 -07:00
1160768ee5 Allow plugins to register number implementations and use user's choice. 2017-07-28 22:17:22 -07:00
1ce9fc6b1c Add configuration object to Abacus. 2017-07-28 21:37:47 -07:00
acf3d85584 Merge branch 'configuration' into architecture 2017-07-28 21:31:45 -07:00
6c80d8fe93 Rewrite Abacus to be the central class of the application. 2017-07-28 21:25:02 -07:00
c230675855 Change precision to getMaxPrecision, as precision can be configured. 2017-07-28 20:04:13 -07:00
bd44307f2b Create a ConfigurationObject class. 2017-07-28 20:03:50 -07:00
a949a27da4 Make ClassFinder return generic List objects. 2017-07-28 19:36:34 -07:00
5c301e4afa Load default plugin without jars. 2017-07-28 15:22:38 -07:00
8c5306051e Add a toString for UnaryPrefixNode 2017-07-28 14:57:11 -07:00
c3bb3d7d3f Remove unused default value from PreciseNumber 2017-07-28 14:55:01 -07:00
556a72f946 Change the constructor for NumberNode 2017-07-28 14:47:34 -07:00
f303093a3f Add a promotion priority to PerciseNumber 2017-07-28 14:39:37 -07:00
8dae4a880e Comment class finder. 2017-07-28 14:32:27 -07:00
243dc81deb Change ClassFinder code to be static. 2017-07-28 14:21:43 -07:00
0c07695991 Merge branch 'unary' 2017-07-28 13:28:59 -07:00
ff689f9bd5 Merge branch 'big-decimal' 2017-07-28 13:18:44 -07:00
Arthur Drobot
c184b55738 Implement preciseNumber for arbitrary precision. 2017-07-28 11:38:22 -07:00
dc410917b3 Remove old ClassFinder and hardcoded folder names, and fix class filter. 2017-07-28 11:35:23 -07:00
9850f896bb Remove unneeded files from git. 2017-07-28 11:23:25 -07:00
0b3648d4f3 Fix null pointer exceptions associated with turning ! into an operator. 2017-07-28 11:19:41 -07:00
rileyJones
69e3b55643 Add external plugin support 2017-07-28 11:17:54 -07:00
2ba6e22fcb Rename OpNode to BinaryInfixNode. 2017-07-28 11:15:36 -07:00
5228773b5e Implement unary operators. 2017-07-28 11:14:45 -07:00
42393ca6a6 Add operator types. 2017-07-28 10:26:25 -07:00
b20ddc2013 Add rounding to naive number. 2017-07-28 09:57:39 -07:00
a881640bf6 Make the decimal matching optional. 2017-07-28 09:52:14 -07:00
0263086e10 Add link nodes to collections and check for their presence.
This prevents infinite loops, as Link nodes do not follow regular
addInto behavior.
2017-07-28 09:51:59 -07:00
c9fad36d16 Fix bug causing an NPE when sqrt() was called. 2017-07-27 19:30:40 -07:00
2cc4bd14ce Switch all uses of *List, *Map to just List and Map. 2017-07-27 18:19:12 -07:00