| Age | Commit message (Collapse) | Author |
|
Use command statuses as return values from commands, instead of
returning nothing at all.
|
|
|
|
Bundle the state for BlockReaderCLI into a class by itself, for use in
future plans.
|
|
|
|
|
|
Defines are simple unary functions that apply replacements to strings.
Currently, there are two types.
* SimpleDefine - Replace all occurances of a pattern with a given
string.
* IteratedDefine - Replace occurances of a pattern with a string chosen
from a series of strings.
|
|
Adds a function that creates a function that iterates an operator until
it either converges or exceeds a defined number of iterations.
|
|
|
|
|
|
BoundBlockReader is a BlockReader that draws blocks from a pair of
functions.
Thus, it is the most general of the BlockReaders, in that you could
probably implement any of them with suitably chosen functions.
|
|
|
|
Adds a new type of block reader, the ToggleBlockReader. This switches
between two different sources every block.
Also, make sure all of the BlockReaders keep their own block count.
|
|
This includes some minor fixes to the BlockReaderCLI, and two new
BlockReader types
* MappedBlockReader - Apply a function to each block, transforming it.
* FlatMappedBlockReader - Apply a function to each block, expanding it
into one or more blocks.
|
|
Most of it is documentation changes.
The rest is more work on BlockReaders, as well as a simple command
language for configuring them.
|
|
|
|
|
|
SimpleBlockReader now properly gives line numbers
|
|
|
|
|
|
An isomorphism is a pair of functions between a source and destination
type. Ideally, they should be inverses, but java has no way to check
that by itself.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This cuts down on the amount of regex escapes
|
|
|
|
|
|
|
|
|
|
The operations are very heavily inspired by the 'Sam' editor
|
|
|
|
|
|
The major changes this time are that we have both data/command
macros, as well as proper Unicode character support.
|
|
|
|
|
|
|
|
Add a simple utility class for easy I/O prompting on triggered readers.
|
|
Adds additional useful block reader types.
* LayeredBlockReader, which represents priority
* SerialBlockReader, which concatenates readers
|
|
|
|
|
|
|
|
|
|
|
|
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.
|