mirror of
				https://github.com/DanilaFe/abacus
				synced 2025-10-31 09:53:42 -07:00 
			
		
		
		
	More around files into more applicable packages.
This commit is contained in:
		
							parent
							
								
									d7bb838866
								
							
						
					
					
						commit
						c990d4c50a
					
				| @ -1,9 +1,8 @@ | |||||||
| package org.nwapw.abacus.lexing; | package org.nwapw.abacus.lexing; | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.lexing.pattern.EndNode; | import org.nwapw.abacus.lexing.pattern.nodes.EndNode; | ||||||
| import org.nwapw.abacus.lexing.pattern.Match; |  | ||||||
| import org.nwapw.abacus.lexing.pattern.Pattern; | import org.nwapw.abacus.lexing.pattern.Pattern; | ||||||
| import org.nwapw.abacus.lexing.pattern.PatternNode; | import org.nwapw.abacus.lexing.pattern.nodes.PatternNode; | ||||||
| 
 | 
 | ||||||
| import java.util.*; | import java.util.*; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.nwapw.abacus.lexing.pattern; | package org.nwapw.abacus.lexing; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A match that has been generated by the lexer. |  * A match that has been generated by the lexer. | ||||||
| @ -1,5 +1,7 @@ | |||||||
| package org.nwapw.abacus.lexing.pattern; | package org.nwapw.abacus.lexing.pattern; | ||||||
| 
 | 
 | ||||||
|  | import org.nwapw.abacus.lexing.pattern.nodes.*; | ||||||
|  | 
 | ||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
| import java.util.HashMap; | import java.util.HashMap; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| @ -88,7 +90,7 @@ public class Pattern<T> { | |||||||
|      * @return the modified chain. |      * @return the modified chain. | ||||||
|      */ |      */ | ||||||
|     private PatternChain<T> transformPlus(PatternChain<T> chain) { |     private PatternChain<T> transformPlus(PatternChain<T> chain) { | ||||||
|         chain.tail.outputStates.add(chain.head); |         chain.tail.getOutputStates().add(chain.head); | ||||||
|         return chain; |         return chain; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -102,10 +104,10 @@ public class Pattern<T> { | |||||||
|     private PatternChain<T> transformStar(PatternChain<T> chain) { |     private PatternChain<T> transformStar(PatternChain<T> chain) { | ||||||
|         LinkNode<T> newTail = new LinkNode<>(); |         LinkNode<T> newTail = new LinkNode<>(); | ||||||
|         LinkNode<T> newHead = new LinkNode<>(); |         LinkNode<T> newHead = new LinkNode<>(); | ||||||
|         newHead.outputStates.add(chain.head); |         newHead.getOutputStates().add(chain.head); | ||||||
|         newHead.outputStates.add(newTail); |         newHead.getOutputStates().add(newTail); | ||||||
|         chain.tail.outputStates.add(newTail); |         chain.tail.getOutputStates().add(newTail); | ||||||
|         newTail.outputStates.add(newHead); |         newTail.getOutputStates().add(newHead); | ||||||
|         chain.head = newHead; |         chain.head = newHead; | ||||||
|         chain.tail = newTail; |         chain.tail = newTail; | ||||||
|         return chain; |         return chain; | ||||||
| @ -121,9 +123,9 @@ public class Pattern<T> { | |||||||
|     private PatternChain<T> transformQuestion(PatternChain<T> chain) { |     private PatternChain<T> transformQuestion(PatternChain<T> chain) { | ||||||
|         LinkNode<T> newTail = new LinkNode<>(); |         LinkNode<T> newTail = new LinkNode<>(); | ||||||
|         LinkNode<T> newHead = new LinkNode<>(); |         LinkNode<T> newHead = new LinkNode<>(); | ||||||
|         newHead.outputStates.add(chain.head); |         newHead.getOutputStates().add(chain.head); | ||||||
|         newHead.outputStates.add(newTail); |         newHead.getOutputStates().add(newTail); | ||||||
|         chain.tail.outputStates.add(newTail); |         chain.tail.getOutputStates().add(newTail); | ||||||
|         chain.head = newHead; |         chain.head = newHead; | ||||||
|         chain.tail = newTail; |         chain.tail = newTail; | ||||||
|         return chain; |         return chain; | ||||||
| @ -140,8 +142,8 @@ public class Pattern<T> { | |||||||
|         LinkNode<T> tail = new LinkNode<>(); |         LinkNode<T> tail = new LinkNode<>(); | ||||||
|         PatternChain<T> newChain = new PatternChain<>(head, tail); |         PatternChain<T> newChain = new PatternChain<>(head, tail); | ||||||
|         for (PatternChain<T> chain : collection) { |         for (PatternChain<T> chain : collection) { | ||||||
|             head.outputStates.add(chain.head); |             head.getOutputStates().add(chain.head); | ||||||
|             chain.tail.outputStates.add(tail); |             chain.tail.getOutputStates().add(tail); | ||||||
|         } |         } | ||||||
|         return newChain; |         return newChain; | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -1,5 +1,7 @@ | |||||||
| package org.nwapw.abacus.lexing.pattern; | package org.nwapw.abacus.lexing.pattern; | ||||||
| 
 | 
 | ||||||
|  | import org.nwapw.abacus.lexing.pattern.nodes.PatternNode; | ||||||
|  | 
 | ||||||
| /** | /** | ||||||
|  * A chain of nodes that can be treated as a single unit. |  * A chain of nodes that can be treated as a single unit. | ||||||
|  * Used during pattern compilation. |  * Used during pattern compilation. | ||||||
| @ -56,7 +58,7 @@ public class PatternChain<T> { | |||||||
|             this.head = other.head; |             this.head = other.head; | ||||||
|             this.tail = other.tail; |             this.tail = other.tail; | ||||||
|         } else { |         } else { | ||||||
|             tail.outputStates.add(other.head); |             tail.getOutputStates().add(other.head); | ||||||
|             tail = other.tail; |             tail = other.tail; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @ -72,7 +74,7 @@ public class PatternChain<T> { | |||||||
|         if (tail == null) { |         if (tail == null) { | ||||||
|             head = tail = node; |             head = tail = node; | ||||||
|         } else { |         } else { | ||||||
|             tail.outputStates.add(node); |             tail.getOutputStates().add(node); | ||||||
|             tail = node; |             tail = node; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.nwapw.abacus.lexing.pattern; | package org.nwapw.abacus.lexing.pattern.nodes; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A pattern node that matches any character. |  * A pattern node that matches any character. | ||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.nwapw.abacus.lexing.pattern; | package org.nwapw.abacus.lexing.pattern.nodes; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A node that represents a successful match. |  * A node that represents a successful match. | ||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.nwapw.abacus.lexing.pattern; | package org.nwapw.abacus.lexing.pattern.nodes; | ||||||
| 
 | 
 | ||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
| 
 | 
 | ||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.nwapw.abacus.lexing.pattern; | package org.nwapw.abacus.lexing.pattern.nodes; | ||||||
| 
 | 
 | ||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
| import java.util.HashSet; | import java.util.HashSet; | ||||||
| @ -65,4 +65,11 @@ public class PatternNode<T> { | |||||||
|         outputStates.forEach(e -> e.addInto(into)); |         outputStates.forEach(e -> e.addInto(into)); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * Gets the output states of this node. | ||||||
|  |      * @return the output states. | ||||||
|  |      */ | ||||||
|  |     public Set<PatternNode<T>> getOutputStates() { | ||||||
|  |         return outputStates; | ||||||
|  |     } | ||||||
| } | } | ||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.nwapw.abacus.lexing.pattern; | package org.nwapw.abacus.lexing.pattern.nodes; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A node that matches a range of characters. |  * A node that matches a range of characters. | ||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.nwapw.abacus.lexing.pattern; | package org.nwapw.abacus.lexing.pattern.nodes; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A node that matches a single value. |  * A node that matches a single value. | ||||||
| @ -1,4 +1,6 @@ | |||||||
| package org.nwapw.abacus.number; | package org.nwapw.abacus.number.standard; | ||||||
|  | 
 | ||||||
|  | import org.nwapw.abacus.number.NumberInterface; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * An implementation of NumberInterface using a double. |  * An implementation of NumberInterface using a double. | ||||||
| @ -1,4 +1,6 @@ | |||||||
| package org.nwapw.abacus.number; | package org.nwapw.abacus.number.standard; | ||||||
|  | 
 | ||||||
|  | import org.nwapw.abacus.number.NumberInterface; | ||||||
| 
 | 
 | ||||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||||
| import java.math.MathContext; | import java.math.MathContext; | ||||||
| @ -1,12 +1,12 @@ | |||||||
| package org.nwapw.abacus.parsing; | package org.nwapw.abacus.parsing.standard; | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.exception.TokenizeException; | import org.nwapw.abacus.exception.TokenizeException; | ||||||
| import org.nwapw.abacus.lexing.Lexer; | import org.nwapw.abacus.lexing.Lexer; | ||||||
| import org.nwapw.abacus.lexing.pattern.Match; | import org.nwapw.abacus.lexing.Match; | ||||||
| import org.nwapw.abacus.lexing.pattern.Pattern; | import org.nwapw.abacus.lexing.pattern.Pattern; | ||||||
|  | import org.nwapw.abacus.parsing.Tokenizer; | ||||||
| import org.nwapw.abacus.plugin.PluginListener; | import org.nwapw.abacus.plugin.PluginListener; | ||||||
| import org.nwapw.abacus.plugin.PluginManager; | import org.nwapw.abacus.plugin.PluginManager; | ||||||
| import org.nwapw.abacus.tree.TokenType; |  | ||||||
| 
 | 
 | ||||||
| import java.util.Comparator; | import java.util.Comparator; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| @ -1,13 +1,14 @@ | |||||||
| package org.nwapw.abacus.parsing; | package org.nwapw.abacus.parsing.standard; | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.exception.ParseException; | import org.nwapw.abacus.exception.ParseException; | ||||||
| import org.nwapw.abacus.function.Operator; | import org.nwapw.abacus.function.Operator; | ||||||
| import org.nwapw.abacus.function.OperatorAssociativity; | import org.nwapw.abacus.function.OperatorAssociativity; | ||||||
| import org.nwapw.abacus.function.OperatorType; | import org.nwapw.abacus.function.OperatorType; | ||||||
| import org.nwapw.abacus.lexing.pattern.Match; | import org.nwapw.abacus.lexing.Match; | ||||||
|  | import org.nwapw.abacus.parsing.Parser; | ||||||
| import org.nwapw.abacus.plugin.PluginListener; | import org.nwapw.abacus.plugin.PluginListener; | ||||||
| import org.nwapw.abacus.plugin.PluginManager; | import org.nwapw.abacus.plugin.PluginManager; | ||||||
| import org.nwapw.abacus.tree.*; | import org.nwapw.abacus.tree.nodes.*; | ||||||
| 
 | 
 | ||||||
| import java.util.*; | import java.util.*; | ||||||
| 
 | 
 | ||||||
| @ -162,7 +163,7 @@ public class ShuntingYardParser implements Parser<Match<TokenType>>, PluginListe | |||||||
|             matches.remove(0); |             matches.remove(0); | ||||||
|             CallNode node; |             CallNode node; | ||||||
|             if (matchType == TokenType.FUNCTION) { |             if (matchType == TokenType.FUNCTION) { | ||||||
|                 node = new FunctionNode(functionName, children); |                 node = new NumberFunctionNode(functionName, children); | ||||||
|             } else { |             } else { | ||||||
|                 node = new TreeValueFunctionNode(functionName, children); |                 node = new TreeValueFunctionNode(functionName, children); | ||||||
|             } |             } | ||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.nwapw.abacus.tree; | package org.nwapw.abacus.parsing.standard; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Enum to represent the type of the token that has been matched |  * Enum to represent the type of the token that has been matched | ||||||
| @ -1,6 +1,10 @@ | |||||||
| package org.nwapw.abacus.plugin; | package org.nwapw.abacus.plugin; | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.function.*; | import org.nwapw.abacus.function.*; | ||||||
|  | import org.nwapw.abacus.function.interfaces.NumberFunction; | ||||||
|  | import org.nwapw.abacus.function.interfaces.NumberOperator; | ||||||
|  | import org.nwapw.abacus.function.interfaces.TreeValueFunction; | ||||||
|  | import org.nwapw.abacus.function.interfaces.TreeValueOperator; | ||||||
| import org.nwapw.abacus.number.NumberInterface; | import org.nwapw.abacus.number.NumberInterface; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  | |||||||
| @ -2,6 +2,10 @@ package org.nwapw.abacus.plugin; | |||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.Abacus; | import org.nwapw.abacus.Abacus; | ||||||
| import org.nwapw.abacus.function.*; | import org.nwapw.abacus.function.*; | ||||||
|  | import org.nwapw.abacus.function.interfaces.NumberFunction; | ||||||
|  | import org.nwapw.abacus.function.interfaces.NumberOperator; | ||||||
|  | import org.nwapw.abacus.function.interfaces.TreeValueFunction; | ||||||
|  | import org.nwapw.abacus.function.interfaces.TreeValueOperator; | ||||||
| import org.nwapw.abacus.number.NumberInterface; | import org.nwapw.abacus.number.NumberInterface; | ||||||
| 
 | 
 | ||||||
| import java.lang.reflect.InvocationTargetException; | import java.lang.reflect.InvocationTargetException; | ||||||
|  | |||||||
| @ -2,9 +2,12 @@ package org.nwapw.abacus.plugin.standard; | |||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.context.MutableEvaluationContext; | import org.nwapw.abacus.context.MutableEvaluationContext; | ||||||
| import org.nwapw.abacus.function.*; | import org.nwapw.abacus.function.*; | ||||||
| import org.nwapw.abacus.number.NaiveNumber; | import org.nwapw.abacus.function.interfaces.NumberFunction; | ||||||
|  | import org.nwapw.abacus.function.interfaces.NumberOperator; | ||||||
|  | import org.nwapw.abacus.function.interfaces.TreeValueOperator; | ||||||
|  | import org.nwapw.abacus.number.standard.NaiveNumber; | ||||||
| import org.nwapw.abacus.number.NumberInterface; | import org.nwapw.abacus.number.NumberInterface; | ||||||
| import org.nwapw.abacus.number.PreciseNumber; | import org.nwapw.abacus.number.standard.PreciseNumber; | ||||||
| import org.nwapw.abacus.plugin.NumberImplementation; | import org.nwapw.abacus.plugin.NumberImplementation; | ||||||
| import org.nwapw.abacus.plugin.Plugin; | import org.nwapw.abacus.plugin.Plugin; | ||||||
| import org.nwapw.abacus.plugin.PluginManager; | import org.nwapw.abacus.plugin.PluginManager; | ||||||
|  | |||||||
| @ -3,15 +3,14 @@ package org.nwapw.abacus | |||||||
| import org.nwapw.abacus.config.Configuration | import org.nwapw.abacus.config.Configuration | ||||||
| import org.nwapw.abacus.context.MutableEvaluationContext | import org.nwapw.abacus.context.MutableEvaluationContext | ||||||
| import org.nwapw.abacus.context.EvaluationContext | import org.nwapw.abacus.context.EvaluationContext | ||||||
| import org.nwapw.abacus.number.PromotionManager | import org.nwapw.abacus.number.promotion.PromotionManager | ||||||
| import org.nwapw.abacus.parsing.LexerTokenizer | import org.nwapw.abacus.parsing.standard.LexerTokenizer | ||||||
| import org.nwapw.abacus.parsing.ShuntingYardParser | import org.nwapw.abacus.parsing.standard.ShuntingYardParser | ||||||
| import org.nwapw.abacus.parsing.TreeBuilder | import org.nwapw.abacus.parsing.TreeBuilder | ||||||
| import org.nwapw.abacus.plugin.PluginManager | import org.nwapw.abacus.plugin.PluginManager | ||||||
| import org.nwapw.abacus.plugin.standard.StandardPlugin | import org.nwapw.abacus.plugin.standard.StandardPlugin | ||||||
| import org.nwapw.abacus.tree.EvaluationResult | import org.nwapw.abacus.tree.standard.NumberReducer | ||||||
| import org.nwapw.abacus.tree.NumberReducer | import org.nwapw.abacus.tree.nodes.TreeNode | ||||||
| import org.nwapw.abacus.tree.TreeNode |  | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Core class to handle all mathematics. |  * Core class to handle all mathematics. | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.nwapw.abacus.tree | package org.nwapw.abacus | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.context.MutableEvaluationContext | import org.nwapw.abacus.context.MutableEvaluationContext | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
| @ -3,7 +3,7 @@ package org.nwapw.abacus.context | |||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
| import org.nwapw.abacus.plugin.NumberImplementation | import org.nwapw.abacus.plugin.NumberImplementation | ||||||
| import org.nwapw.abacus.tree.Reducer | import org.nwapw.abacus.tree.Reducer | ||||||
| import org.nwapw.abacus.tree.TreeNode | import org.nwapw.abacus.tree.nodes.TreeNode | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A context for the reduction of a [org.nwapw.abacus.tree.TreeNode] into a number. |  * A context for the reduction of a [org.nwapw.abacus.tree.TreeNode] into a number. | ||||||
|  | |||||||
| @ -3,7 +3,7 @@ package org.nwapw.abacus.context | |||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
| import org.nwapw.abacus.plugin.NumberImplementation | import org.nwapw.abacus.plugin.NumberImplementation | ||||||
| import org.nwapw.abacus.tree.Reducer | import org.nwapw.abacus.tree.Reducer | ||||||
| import org.nwapw.abacus.tree.TreeNode | import org.nwapw.abacus.tree.nodes.TreeNode | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A reduction context that is mutable. |  * A reduction context that is mutable. | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.nwapw.abacus.function.applicable | package org.nwapw.abacus.function | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.context.MutableEvaluationContext | import org.nwapw.abacus.context.MutableEvaluationContext | ||||||
| import org.nwapw.abacus.exception.DomainException | import org.nwapw.abacus.exception.DomainException | ||||||
| @ -1,6 +1,6 @@ | |||||||
| package org.nwapw.abacus.function | package org.nwapw.abacus.function.interfaces | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.function.applicable.Applicable | import org.nwapw.abacus.function.Applicable | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
| @ -1,6 +1,9 @@ | |||||||
| package org.nwapw.abacus.function | package org.nwapw.abacus.function.interfaces | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.function.applicable.Applicable | import org.nwapw.abacus.function.Applicable | ||||||
|  | import org.nwapw.abacus.function.Operator | ||||||
|  | import org.nwapw.abacus.function.OperatorAssociativity | ||||||
|  | import org.nwapw.abacus.function.OperatorType | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
| @ -1,8 +1,8 @@ | |||||||
| package org.nwapw.abacus.function | package org.nwapw.abacus.function.interfaces | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.function.applicable.Applicable | import org.nwapw.abacus.function.Applicable | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
| import org.nwapw.abacus.tree.TreeNode | import org.nwapw.abacus.tree.nodes.TreeNode | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A function that operates on trees. |  * A function that operates on trees. | ||||||
| @ -1,8 +1,11 @@ | |||||||
| package org.nwapw.abacus.function | package org.nwapw.abacus.function.interfaces | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.function.applicable.Applicable | import org.nwapw.abacus.function.Applicable | ||||||
|  | import org.nwapw.abacus.function.Operator | ||||||
|  | import org.nwapw.abacus.function.OperatorAssociativity | ||||||
|  | import org.nwapw.abacus.function.OperatorType | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
| import org.nwapw.abacus.tree.TreeNode | import org.nwapw.abacus.tree.nodes.TreeNode | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * An operator that operates on trees. |  * An operator that operates on trees. | ||||||
| @ -1,6 +1,7 @@ | |||||||
| package org.nwapw.abacus.number | package org.nwapw.abacus.number | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.exception.ComputationInterruptedException | import org.nwapw.abacus.exception.ComputationInterruptedException | ||||||
|  | import org.nwapw.abacus.number.range.NumberRangeBuilder | ||||||
| 
 | 
 | ||||||
| abstract class NumberInterface: Comparable<NumberInterface> { | abstract class NumberInterface: Comparable<NumberInterface> { | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,5 +1,7 @@ | |||||||
| @file:JvmName("NumberUtils") | @file:JvmName("NumberUtils") | ||||||
| package org.nwapw.abacus.number | package org.nwapw.abacus.number.promotion | ||||||
|  | 
 | ||||||
|  | import org.nwapw.abacus.number.NumberInterface | ||||||
| 
 | 
 | ||||||
| typealias PromotionFunction = java.util.function.Function<NumberInterface, NumberInterface> | typealias PromotionFunction = java.util.function.Function<NumberInterface, NumberInterface> | ||||||
| typealias PromotionPath = List<PromotionFunction> | typealias PromotionPath = List<PromotionFunction> | ||||||
| @ -1,7 +1,8 @@ | |||||||
| package org.nwapw.abacus.number | package org.nwapw.abacus.number.promotion | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.Abacus | import org.nwapw.abacus.Abacus | ||||||
| import org.nwapw.abacus.exception.PromotionException | import org.nwapw.abacus.exception.PromotionException | ||||||
|  | import org.nwapw.abacus.number.NumberInterface | ||||||
| import org.nwapw.abacus.plugin.NumberImplementation | import org.nwapw.abacus.plugin.NumberImplementation | ||||||
| import org.nwapw.abacus.plugin.PluginListener | import org.nwapw.abacus.plugin.PluginListener | ||||||
| import org.nwapw.abacus.plugin.PluginManager | import org.nwapw.abacus.plugin.PluginManager | ||||||
| @ -51,7 +52,7 @@ class PromotionManager(val abacus: Abacus) : PluginListener { | |||||||
|         val implementations = numbers.map { pluginManager.interfaceImplementationFor(it.javaClass) } |         val implementations = numbers.map { pluginManager.interfaceImplementationFor(it.javaClass) } | ||||||
|         val highestPriority = implementations.sortedBy { it.priority }.last() |         val highestPriority = implementations.sortedBy { it.priority }.last() | ||||||
|         return PromotionResult(items = numbers.map { |         return PromotionResult(items = numbers.map { | ||||||
|             if(it.javaClass == highestPriority.implementation) it |             if (it.javaClass == highestPriority.implementation) it | ||||||
|             else computePaths[pluginManager.interfaceImplementationFor(it.javaClass) to highestPriority] |             else computePaths[pluginManager.interfaceImplementationFor(it.javaClass) to highestPriority] | ||||||
|                     ?.promote(it) ?: throw PromotionException() |                     ?.promote(it) ?: throw PromotionException() | ||||||
|         }.toTypedArray(), promotedTo = highestPriority) |         }.toTypedArray(), promotedTo = highestPriority) | ||||||
| @ -1,5 +1,6 @@ | |||||||
| package org.nwapw.abacus.number | package org.nwapw.abacus.number.promotion | ||||||
| 
 | 
 | ||||||
|  | import org.nwapw.abacus.number.NumberInterface | ||||||
| import org.nwapw.abacus.plugin.NumberImplementation | import org.nwapw.abacus.plugin.NumberImplementation | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
| @ -1,6 +1,7 @@ | |||||||
| package org.nwapw.abacus.number | package org.nwapw.abacus.number.range | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.Abacus | import org.nwapw.abacus.Abacus | ||||||
|  | import org.nwapw.abacus.number.NumberInterface | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A closed range designed specifically for [NumberInterface] |  * A closed range designed specifically for [NumberInterface] | ||||||
| @ -1,6 +1,7 @@ | |||||||
| package org.nwapw.abacus.number | package org.nwapw.abacus.number.range | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.Abacus | import org.nwapw.abacus.Abacus | ||||||
|  | import org.nwapw.abacus.number.NumberInterface | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A utility class for creating [NumberRange] instances. |  * A utility class for creating [NumberRange] instances. | ||||||
| @ -1,6 +1,6 @@ | |||||||
| package org.nwapw.abacus.parsing | package org.nwapw.abacus.parsing | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.tree.TreeNode | import org.nwapw.abacus.tree.nodes.TreeNode | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Converter from tokens into a parse tree. |  * Converter from tokens into a parse tree. | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| package org.nwapw.abacus.parsing | package org.nwapw.abacus.parsing | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.tree.TreeNode | import org.nwapw.abacus.tree.nodes.TreeNode | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Class to combine a [Tokenizer] and a [Parser] |  * Class to combine a [Tokenizer] and a [Parser] | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| package org.nwapw.abacus.plugin.standard.operator | package org.nwapw.abacus.plugin.standard.operator | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.context.MutableEvaluationContext | import org.nwapw.abacus.context.MutableEvaluationContext | ||||||
| import org.nwapw.abacus.function.NumberOperator | import org.nwapw.abacus.function.interfaces.NumberOperator | ||||||
| import org.nwapw.abacus.function.OperatorAssociativity | import org.nwapw.abacus.function.OperatorAssociativity | ||||||
| import org.nwapw.abacus.function.OperatorType | import org.nwapw.abacus.function.OperatorType | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| package org.nwapw.abacus.plugin.standard.operator | package org.nwapw.abacus.plugin.standard.operator | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.context.MutableEvaluationContext | import org.nwapw.abacus.context.MutableEvaluationContext | ||||||
| import org.nwapw.abacus.function.NumberOperator | import org.nwapw.abacus.function.interfaces.NumberOperator | ||||||
| import org.nwapw.abacus.function.OperatorAssociativity | import org.nwapw.abacus.function.OperatorAssociativity | ||||||
| import org.nwapw.abacus.function.OperatorType | import org.nwapw.abacus.function.OperatorType | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
|  | |||||||
| @ -3,10 +3,10 @@ package org.nwapw.abacus.plugin.standard.operator | |||||||
| import org.nwapw.abacus.context.MutableEvaluationContext | import org.nwapw.abacus.context.MutableEvaluationContext | ||||||
| import org.nwapw.abacus.function.OperatorAssociativity | import org.nwapw.abacus.function.OperatorAssociativity | ||||||
| import org.nwapw.abacus.function.OperatorType | import org.nwapw.abacus.function.OperatorType | ||||||
| import org.nwapw.abacus.function.TreeValueOperator | import org.nwapw.abacus.function.interfaces.TreeValueOperator | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
| import org.nwapw.abacus.tree.TreeNode | import org.nwapw.abacus.tree.nodes.TreeNode | ||||||
| import org.nwapw.abacus.tree.VariableNode | import org.nwapw.abacus.tree.nodes.VariableNode | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * The definition operator. |  * The definition operator. | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| package org.nwapw.abacus.plugin.standard.operator | package org.nwapw.abacus.plugin.standard.operator | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.context.MutableEvaluationContext | import org.nwapw.abacus.context.MutableEvaluationContext | ||||||
| import org.nwapw.abacus.function.NumberOperator | import org.nwapw.abacus.function.interfaces.NumberOperator | ||||||
| import org.nwapw.abacus.function.OperatorAssociativity | import org.nwapw.abacus.function.OperatorAssociativity | ||||||
| import org.nwapw.abacus.function.OperatorType | import org.nwapw.abacus.function.OperatorType | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| package org.nwapw.abacus.plugin.standard.operator | package org.nwapw.abacus.plugin.standard.operator | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.context.MutableEvaluationContext | import org.nwapw.abacus.context.MutableEvaluationContext | ||||||
| import org.nwapw.abacus.function.NumberOperator | import org.nwapw.abacus.function.interfaces.NumberOperator | ||||||
| import org.nwapw.abacus.function.OperatorAssociativity | import org.nwapw.abacus.function.OperatorAssociativity | ||||||
| import org.nwapw.abacus.function.OperatorType | import org.nwapw.abacus.function.OperatorType | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| package org.nwapw.abacus.plugin.standard.operator | package org.nwapw.abacus.plugin.standard.operator | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.context.MutableEvaluationContext | import org.nwapw.abacus.context.MutableEvaluationContext | ||||||
| import org.nwapw.abacus.function.NumberOperator | import org.nwapw.abacus.function.interfaces.NumberOperator | ||||||
| import org.nwapw.abacus.function.OperatorAssociativity | import org.nwapw.abacus.function.OperatorAssociativity | ||||||
| import org.nwapw.abacus.function.OperatorType | import org.nwapw.abacus.function.OperatorType | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| package org.nwapw.abacus.plugin.standard.operator | package org.nwapw.abacus.plugin.standard.operator | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.context.MutableEvaluationContext | import org.nwapw.abacus.context.MutableEvaluationContext | ||||||
| import org.nwapw.abacus.function.NumberOperator | import org.nwapw.abacus.function.interfaces.NumberOperator | ||||||
| import org.nwapw.abacus.function.OperatorAssociativity | import org.nwapw.abacus.function.OperatorAssociativity | ||||||
| import org.nwapw.abacus.function.OperatorType | import org.nwapw.abacus.function.OperatorType | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| package org.nwapw.abacus.plugin.standard.operator | package org.nwapw.abacus.plugin.standard.operator | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.context.MutableEvaluationContext | import org.nwapw.abacus.context.MutableEvaluationContext | ||||||
| import org.nwapw.abacus.function.NumberOperator | import org.nwapw.abacus.function.interfaces.NumberOperator | ||||||
| import org.nwapw.abacus.function.OperatorAssociativity | import org.nwapw.abacus.function.OperatorAssociativity | ||||||
| import org.nwapw.abacus.function.OperatorType | import org.nwapw.abacus.function.OperatorType | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| package org.nwapw.abacus.plugin.standard.operator | package org.nwapw.abacus.plugin.standard.operator | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.context.MutableEvaluationContext | import org.nwapw.abacus.context.MutableEvaluationContext | ||||||
| import org.nwapw.abacus.function.NumberOperator | import org.nwapw.abacus.function.interfaces.NumberOperator | ||||||
| import org.nwapw.abacus.function.OperatorAssociativity | import org.nwapw.abacus.function.OperatorAssociativity | ||||||
| import org.nwapw.abacus.function.OperatorType | import org.nwapw.abacus.function.OperatorType | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
|  | |||||||
| @ -3,10 +3,10 @@ package org.nwapw.abacus.plugin.standard.operator | |||||||
| import org.nwapw.abacus.context.MutableEvaluationContext | import org.nwapw.abacus.context.MutableEvaluationContext | ||||||
| import org.nwapw.abacus.function.OperatorAssociativity | import org.nwapw.abacus.function.OperatorAssociativity | ||||||
| import org.nwapw.abacus.function.OperatorType | import org.nwapw.abacus.function.OperatorType | ||||||
| import org.nwapw.abacus.function.TreeValueOperator | import org.nwapw.abacus.function.interfaces.TreeValueOperator | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
| import org.nwapw.abacus.tree.TreeNode | import org.nwapw.abacus.tree.nodes.TreeNode | ||||||
| import org.nwapw.abacus.tree.VariableNode | import org.nwapw.abacus.tree.nodes.VariableNode | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * The set operator. |  * The set operator. | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| package org.nwapw.abacus.plugin.standard.operator | package org.nwapw.abacus.plugin.standard.operator | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.context.MutableEvaluationContext | import org.nwapw.abacus.context.MutableEvaluationContext | ||||||
| import org.nwapw.abacus.function.NumberOperator | import org.nwapw.abacus.function.interfaces.NumberOperator | ||||||
| import org.nwapw.abacus.function.OperatorAssociativity | import org.nwapw.abacus.function.OperatorAssociativity | ||||||
| import org.nwapw.abacus.function.OperatorType | import org.nwapw.abacus.function.OperatorType | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
|  | |||||||
| @ -1,5 +1,7 @@ | |||||||
| package org.nwapw.abacus.tree | package org.nwapw.abacus.tree | ||||||
| 
 | 
 | ||||||
|  | import org.nwapw.abacus.tree.nodes.TreeNode | ||||||
|  | 
 | ||||||
| /** | /** | ||||||
|  * Reducer interface that takes a tree and returns a single value. |  * Reducer interface that takes a tree and returns a single value. | ||||||
|  * |  * | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.nwapw.abacus.tree | package org.nwapw.abacus.tree.nodes | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A tree node that holds a binary operation. |  * A tree node that holds a binary operation. | ||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.nwapw.abacus.tree | package org.nwapw.abacus.tree.nodes | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Represents a more generic function call. |  * Represents a more generic function call. | ||||||
| @ -1,4 +1,6 @@ | |||||||
| package org.nwapw.abacus.tree | package org.nwapw.abacus.tree.nodes | ||||||
|  | 
 | ||||||
|  | import org.nwapw.abacus.tree.Reducer | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A binary operator node that reduces its children. |  * A binary operator node that reduces its children. | ||||||
| @ -1,4 +1,6 @@ | |||||||
| package org.nwapw.abacus.tree | package org.nwapw.abacus.tree.nodes | ||||||
|  | 
 | ||||||
|  | import org.nwapw.abacus.tree.Reducer | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A tree node that holds a function call. |  * A tree node that holds a function call. | ||||||
| @ -8,7 +10,7 @@ package org.nwapw.abacus.tree | |||||||
|  * |  * | ||||||
|  * @param function the function string. |  * @param function the function string. | ||||||
|  */ |  */ | ||||||
| class FunctionNode(function: String, children: List<TreeNode>) : CallNode(function, children) { | class NumberFunctionNode(function: String, children: List<TreeNode>) : CallNode(function, children) { | ||||||
| 
 | 
 | ||||||
|     override fun <T : Any> reduce(reducer: Reducer<T>): T { |     override fun <T : Any> reduce(reducer: Reducer<T>): T { | ||||||
|         val children = Array<Any>(children.size, { children[it].reduce(reducer) }) |         val children = Array<Any>(children.size, { children[it].reduce(reducer) }) | ||||||
| @ -1,4 +1,6 @@ | |||||||
| package org.nwapw.abacus.tree | package org.nwapw.abacus.tree.nodes | ||||||
|  | 
 | ||||||
|  | import org.nwapw.abacus.tree.Reducer | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A tree node that holds a single number value. |  * A tree node that holds a single number value. | ||||||
| @ -1,4 +1,6 @@ | |||||||
| package org.nwapw.abacus.tree | package org.nwapw.abacus.tree.nodes | ||||||
|  | 
 | ||||||
|  | import org.nwapw.abacus.tree.Reducer | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A unary operator node that reduces its children. |  * A unary operator node that reduces its children. | ||||||
| @ -1,4 +1,6 @@ | |||||||
| package org.nwapw.abacus.tree | package org.nwapw.abacus.tree.nodes | ||||||
|  | 
 | ||||||
|  | import org.nwapw.abacus.tree.Reducer | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A tree node. |  * A tree node. | ||||||
| @ -1,4 +1,6 @@ | |||||||
| package org.nwapw.abacus.tree | package org.nwapw.abacus.tree.nodes | ||||||
|  | 
 | ||||||
|  | import org.nwapw.abacus.tree.Reducer | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A tree node that represents a binary tree value operator. |  * A tree node that represents a binary tree value operator. | ||||||
| @ -1,4 +1,6 @@ | |||||||
| package org.nwapw.abacus.tree | package org.nwapw.abacus.tree.nodes | ||||||
|  | 
 | ||||||
|  | import org.nwapw.abacus.tree.Reducer | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A tree node that represents a tree value function call. |  * A tree node that represents a tree value function call. | ||||||
| @ -1,4 +1,6 @@ | |||||||
| package org.nwapw.abacus.tree | package org.nwapw.abacus.tree.nodes | ||||||
|  | 
 | ||||||
|  | import org.nwapw.abacus.tree.Reducer | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A tree node that represents a unary tree value operator. |  * A tree node that represents a unary tree value operator. | ||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.nwapw.abacus.tree | package org.nwapw.abacus.tree.nodes | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A tree node that holds a unary operation. |  * A tree node that holds a unary operation. | ||||||
| @ -1,4 +1,6 @@ | |||||||
| package org.nwapw.abacus.tree | package org.nwapw.abacus.tree.nodes | ||||||
|  | 
 | ||||||
|  | import org.nwapw.abacus.tree.Reducer | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * A tree node that holds a placeholder variable. |  * A tree node that holds a placeholder variable. | ||||||
| @ -1,10 +1,12 @@ | |||||||
| package org.nwapw.abacus.tree | package org.nwapw.abacus.tree.standard | ||||||
| 
 | 
 | ||||||
| import org.nwapw.abacus.Abacus | import org.nwapw.abacus.Abacus | ||||||
| import org.nwapw.abacus.context.EvaluationContext | import org.nwapw.abacus.context.EvaluationContext | ||||||
| import org.nwapw.abacus.exception.NumberReducerException | import org.nwapw.abacus.exception.NumberReducerException | ||||||
| import org.nwapw.abacus.exception.ReductionException | import org.nwapw.abacus.exception.ReductionException | ||||||
| import org.nwapw.abacus.number.NumberInterface | import org.nwapw.abacus.number.NumberInterface | ||||||
|  | import org.nwapw.abacus.tree.Reducer | ||||||
|  | import org.nwapw.abacus.tree.nodes.* | ||||||
| 
 | 
 | ||||||
| class NumberReducer(val abacus: Abacus, context: EvaluationContext) : Reducer<NumberInterface> { | class NumberReducer(val abacus: Abacus, context: EvaluationContext) : Reducer<NumberInterface> { | ||||||
| 
 | 
 | ||||||
| @ -40,7 +42,7 @@ class NumberReducer(val abacus: Abacus, context: EvaluationContext) : Reducer<Nu | |||||||
|                 context.numberImplementation = promotionResult.promotedTo |                 context.numberImplementation = promotionResult.promotedTo | ||||||
|                 abacus.pluginManager.operatorFor(treeNode.operation).apply(context, *promotionResult.items) |                 abacus.pluginManager.operatorFor(treeNode.operation).apply(context, *promotionResult.items) | ||||||
|             } |             } | ||||||
|             is FunctionNode -> { |             is NumberFunctionNode -> { | ||||||
|                 val promotionResult = promotionManager |                 val promotionResult = promotionManager | ||||||
|                         .promote(*children.map { it as NumberInterface }.toTypedArray()) |                         .promote(*children.map { it as NumberInterface }.toTypedArray()) | ||||||
|                 context.numberImplementation = promotionResult.promotedTo |                 context.numberImplementation = promotionResult.promotedTo | ||||||
| @ -8,7 +8,7 @@ import org.nwapw.abacus.config.Configuration; | |||||||
| import org.nwapw.abacus.exception.DomainException; | import org.nwapw.abacus.exception.DomainException; | ||||||
| import org.nwapw.abacus.number.NumberInterface; | import org.nwapw.abacus.number.NumberInterface; | ||||||
| import org.nwapw.abacus.plugin.standard.StandardPlugin; | import org.nwapw.abacus.plugin.standard.StandardPlugin; | ||||||
| import org.nwapw.abacus.tree.TreeNode; | import org.nwapw.abacus.tree.nodes.TreeNode; | ||||||
| 
 | 
 | ||||||
| public class CalculationTests { | public class CalculationTests { | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -3,7 +3,7 @@ package org.nwapw.abacus.tests; | |||||||
| import org.junit.Assert; | import org.junit.Assert; | ||||||
| import org.junit.Test; | import org.junit.Test; | ||||||
| import org.nwapw.abacus.lexing.Lexer; | import org.nwapw.abacus.lexing.Lexer; | ||||||
| import org.nwapw.abacus.lexing.pattern.Match; | import org.nwapw.abacus.lexing.Match; | ||||||
| 
 | 
 | ||||||
| import java.util.List; | import java.util.List; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,10 +5,10 @@ import org.junit.BeforeClass; | |||||||
| import org.junit.Test; | import org.junit.Test; | ||||||
| import org.nwapw.abacus.Abacus; | import org.nwapw.abacus.Abacus; | ||||||
| import org.nwapw.abacus.config.Configuration; | import org.nwapw.abacus.config.Configuration; | ||||||
| import org.nwapw.abacus.number.NaiveNumber; | import org.nwapw.abacus.number.standard.NaiveNumber; | ||||||
| import org.nwapw.abacus.number.NumberInterface; | import org.nwapw.abacus.number.NumberInterface; | ||||||
| import org.nwapw.abacus.number.NumberRange; | import org.nwapw.abacus.number.range.NumberRange; | ||||||
| import org.nwapw.abacus.number.PreciseNumber; | import org.nwapw.abacus.number.standard.PreciseNumber; | ||||||
| import org.nwapw.abacus.plugin.standard.StandardPlugin; | import org.nwapw.abacus.plugin.standard.StandardPlugin; | ||||||
| 
 | 
 | ||||||
| import java.util.function.Function; | import java.util.function.Function; | ||||||
|  | |||||||
| @ -7,11 +7,13 @@ import org.nwapw.abacus.Abacus; | |||||||
| import org.nwapw.abacus.config.Configuration; | import org.nwapw.abacus.config.Configuration; | ||||||
| import org.nwapw.abacus.context.MutableEvaluationContext; | import org.nwapw.abacus.context.MutableEvaluationContext; | ||||||
| import org.nwapw.abacus.function.*; | import org.nwapw.abacus.function.*; | ||||||
| import org.nwapw.abacus.lexing.pattern.Match; | import org.nwapw.abacus.function.interfaces.NumberFunction; | ||||||
|  | import org.nwapw.abacus.function.interfaces.NumberOperator; | ||||||
|  | import org.nwapw.abacus.lexing.Match; | ||||||
| import org.nwapw.abacus.number.NumberInterface; | import org.nwapw.abacus.number.NumberInterface; | ||||||
| import org.nwapw.abacus.parsing.LexerTokenizer; | import org.nwapw.abacus.parsing.standard.LexerTokenizer; | ||||||
| import org.nwapw.abacus.plugin.Plugin; | import org.nwapw.abacus.plugin.Plugin; | ||||||
| import org.nwapw.abacus.tree.TokenType; | import org.nwapw.abacus.parsing.standard.TokenType; | ||||||
| 
 | 
 | ||||||
| import java.util.List; | import java.util.List; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -20,8 +20,8 @@ import org.nwapw.abacus.plugin.ClassFinder; | |||||||
| import org.nwapw.abacus.plugin.PluginListener; | import org.nwapw.abacus.plugin.PluginListener; | ||||||
| import org.nwapw.abacus.plugin.PluginManager; | import org.nwapw.abacus.plugin.PluginManager; | ||||||
| import org.nwapw.abacus.plugin.standard.StandardPlugin; | import org.nwapw.abacus.plugin.standard.StandardPlugin; | ||||||
| import org.nwapw.abacus.tree.EvaluationResult; | import org.nwapw.abacus.EvaluationResult; | ||||||
| import org.nwapw.abacus.tree.TreeNode; | import org.nwapw.abacus.tree.nodes.TreeNode; | ||||||
| 
 | 
 | ||||||
| import java.io.File; | import java.io.File; | ||||||
| import java.io.IOException; | import java.io.IOException; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user