summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/parserutils/TokenTransformer.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2018-04-07 15:20:50 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2018-04-07 15:20:50 -0400
commit4e1a13330028b57818ece6741e029ebdbc9c7572 (patch)
treea9ce7ea5912d736f7c3c06bf59680f0483a7fe61 /base/src/main/java/bjc/utils/parserutils/TokenTransformer.java
parente51542d6c5f0db3717c91dae77458445bc01094c (diff)
Documentation
Diffstat (limited to 'base/src/main/java/bjc/utils/parserutils/TokenTransformer.java')
-rw-r--r--base/src/main/java/bjc/utils/parserutils/TokenTransformer.java31
1 files changed, 24 insertions, 7 deletions
diff --git a/base/src/main/java/bjc/utils/parserutils/TokenTransformer.java b/base/src/main/java/bjc/utils/parserutils/TokenTransformer.java
index 72913db..f0221be 100644
--- a/base/src/main/java/bjc/utils/parserutils/TokenTransformer.java
+++ b/base/src/main/java/bjc/utils/parserutils/TokenTransformer.java
@@ -21,8 +21,10 @@ final class TokenTransformer<TokenType> implements Consumer<TokenType> {
* Handle operators
*/
private final class OperatorHandler implements UnaryOperator<ConstructorState<TokenType>> {
+ /* The handled element. */
private final TokenType element;
+ /* Create a new operator handler. */
public OperatorHandler(final TokenType element) {
this.element = element;
}
@@ -33,9 +35,8 @@ final class TokenTransformer<TokenType> implements Consumer<TokenType> {
* Replace the current AST with the result of handling
* an operator
*/
- return new ConstructorState<>(pair.bindLeft(queuedASTs -> {
- return handleOperator(queuedASTs);
- }));
+ return new ConstructorState<>(pair.bindLeft(
+ queuedASTs -> handleOperator(queuedASTs)));
}
private ConstructorState<TokenType> handleOperator(final Deque<ITree<TokenType>> queuedASTs) {
@@ -66,7 +67,7 @@ final class TokenTransformer<TokenType> implements Consumer<TokenType> {
* Grab the two operands
*/
final ITree<TokenType> right = queuedASTs.pop();
- final ITree<TokenType> left = queuedASTs.pop();
+ final ITree<TokenType> left = queuedASTs.pop();
/*
* Create a new AST
@@ -86,15 +87,31 @@ final class TokenTransformer<TokenType> implements Consumer<TokenType> {
}
}
+ /* The initial state of the transformer. */
private final IHolder<ConstructorState<TokenType>> initialState;
+ /* The predicate tot use to detect operators. */
private final Predicate<TokenType> operatorPredicate;
- private final Predicate<TokenType> isSpecialOperator;
- private final Function<TokenType, QueueFlattener<TokenType>> handleSpecialOperator;
+ /* The predicate for detecting special operators. */
+ private final Predicate<TokenType> isSpecialOperator;
+ /* The function for handling special operators. */
+ private final Function<TokenType, QueueFlattener<TokenType>> handleSpecialOperator;
- /*
+ /**
* Create a new transformer
+ *
+ * @param initialState
+ * The initial state of the transformer.
+ *
+ * @param operatorPredicate
+ * The predicate to use to identify operators.
+ *
+ * @param isSpecialOperator
+ * The predicate used to identify special operators.
+ *
+ * @param handleSpecialOperator
+ * The function used for handling special operators.
*/
public TokenTransformer(final IHolder<ConstructorState<TokenType>> initialState,
final Predicate<TokenType> operatorPredicate, final Predicate<TokenType> isSpecialOperator,