summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java
AgeCommit message (Collapse)Author
2017-03-27Implement more BlockReader typesbculkin2442
Adds additional useful block reader types. * LayeredBlockReader, which represents priority * SerialBlockReader, which concatenates readers
2017-03-27Work on FDS morebjculkin
2017-03-27Update FDSstudent
2017-03-27Simplificationsbjculkin
2017-03-26More FDS workbculkin2442
2017-03-26Update treesbculkin2442
2017-03-26Make BlockReader abstract, with varying impls.bculkin2442
This allows cool things to be accomplished through chaining BlockReaders together without having to handle the block plumbing yourself. The current set of implementations are a simple one that reads blocks from a scanner delimited by a pattern, one that has a queue of blocks it will attempt to pull from before reading, and one that triggers an action before a block is read. As an example use, for FDS, a combo of simple -> triggered -> pushback is used where the triggered is used for prompting the user, and the pushback supports macros.
2017-03-26Updatebculkin2442
2017-03-25Separate general I/O from parsing.bculkin2442
2017-03-25Add static constructorsbculkin2442
2017-03-25Update Pratt parserbculkin2442
2017-03-25General cleanupbculkin2442
2017-03-24Update Pratt Parserbjculkin
2017-03-24Update Pratt Parserbjculkin
2017-03-24Update Pratt parserstudent
2017-03-24Update Pratt parser.bjculkin
2017-03-24Implement Pratt parser.bjculkin
2017-03-23Add forgetful groups.bjculkin
Forgetful groups are groups which reset the currently allowed nested openers/closers from enclosing groups. This is useful for things like quoted strings, where you don't want groups to open inside them. As a consequence, this also adds nested openers. However, predicated openers/closers cannot be nested.
2017-03-22Fix Block toStringbjculkin
The toString for block had the start/end lines backwards :-(
2017-03-22Updatebjculkin
2017-03-20Updatebjculkin
2017-03-20Add BlockReaderbjculkin
Adds BlockReader, which allows you to read blocks of characters delimited by a given sequence from an arbitrary input source. It provides line numbering relative to that source, as well as block numbering. The main caveat is that to prevent spurious NoSuchElementExceptions, EOF is always treated as a valid delimiter, so blocks may be shorter than you expect them to be. This is only meant as a data input utility, not a data validation utility.
2017-03-20Add sample predicated openers/closersbjculkin
This adds a sample predicated opener/closer pair based off of regular expressions. The opener accepts a regular expression and will provide all of its numbered captured groups. The closer accepts a format string and uses the parameters (capture groups) as the format parameters.
2017-03-20Move delimiter stuff to a new packagebjculkin
2017-03-20Add more features to sequence delimiter.bjculkin
Two main features were added. One, various sequence closers can imply a subgroup. This is mainly useful in contexts like arrays, where you want one subgroup per array element. Two, predicated opening/closing delimiters. These allow having both an infinite set of opening delimiters, as well as having a set of closers that is both infinite and dependant on what the opener was. Note, however, that predicated openers and closers will be slower than using normal openers/closers, since every one has to be tried to check if a token is a opener/closer.
2017-03-20Move openers into groups, not globalbjculkin
2017-03-20Minor testing reorgstudent
2017-03-20Test removeDQuotedStringsstudent
2017-03-20Start work on testing.bjculkin
2017-03-19Fix subgroups.bjculkin
This fixes subgroups, by mostly rewriting the way the delimiter works.
2017-03-19Add prepending children to treesbjculkin
2017-03-18Attempt to get subgroups workingbjculkin
2017-03-18Add ability to use subgroups for sequences.bjculkin
Subgroups are essentially things like the , in a function call. Now, you should be able to properly have function call arguments marked for you.
2017-03-18Use whole child, not just child head for findbjculkin
2017-03-18Add revFind to treesbjculkin
2017-03-17Add more toString/hashCode/equalsbjculkin
2017-03-17Add more toString/hashCode/equalsbjculkin
2017-03-17Removed useless iteratorbjculkin
2017-03-17Add abbreviation map.bjculkin
An abbreviation map allows you to figure out which of the possible strings in a given set could be abbreviated by a particular string.
2017-03-17Add new 3-arg consumer typebjculkin
2017-03-17Fix toEnglishList spacingbjculkin
2017-03-17More toString/hashCode/equalsbjculkin
2017-03-17Add toString/equals/hashCode/compareTo part 1bjculkin
Adds utility methods to classes that need them. This covers the cli & component packages.
2017-03-17Move parsing utilities.bjculkin
Moved the parsing utilities SequenceDelimiter and TokenSplitter to the parserutils package, instead of the funcutils package.
2017-03-17Refactor StringUtilsbjculkin
Moved a bunch of token-oriented stuff from StringUtils to a new TokenUtils class.
2017-03-17Generalize SequenceDelimiter.bjculkin
Made SequenceDelimiter work for arbitrary sequences of objects. Use the StringDelimiter class for ease of use on strings.
2017-03-16Formattingbculkin2442
2017-03-16Formattingbjculkin
2017-03-16Add sequence delimitation.bjculkin
Essentially, this allows you to convert flat strings to trees that match the delimiter structure of that flat string.
2017-03-16Minor change to map behaviorbjculkin