| Age | Commit message (Collapse) | Author |
|
This is to prepare for replacing contents with a ReportWriter
|
|
It now works, but is called find-replace-rule instead. There is also
reject-rule, to say to reject any rule that doesn't match a provided
regex.
NOTE: For providing the regexes, if they contain spaces, they must be
quoted.
|
|
|
|
This simplifies the internal way affixes are applied, as well as adding a new circumfix-with pragma
|
|
Enable autovivifying variables. These will have their definition
automatically ran when they are first referenced.
|
|
This makes the two maps in GenerationState private. Use the
defineVar/findVar or defineRuleVar/findRuleVar instead.
This is another change on the way to doing autovivify
|
|
This makes variables scoped by grammar. Previously, you could set a
variable in one grammar, and access it from any grammar, as long as the
rule case that defined it was executed before hand. Now, only cases in
that grammar can use it.
There are still issues to do with the fact that variables can be used at
any time after they've been defined, even after their introductory rule
returned. I'm not certain that this is enough of an issue to bother
trying to fix it though.
The next step is an autovivify pragma for rules to solve several corner
cases, with the main one being wanting to use exhaustible variables from
prefix/suffix pragmas.
|
|
|
|
|
|
|
|
|
|
This enables a directory-scanning behavior for files.
Now, we just have to add internal names to almost all of the grammars
|
|
The overall grammar parser now uses levelSplit where possible.
|
|
|
|
Logging now uses the RGrammarLogging system so as to allow for better
customizability of how the logging works
|
|
|
|
|
|
|
|
A major refactoring to the internals of how things work. I believe that
nothing is broken
|
|
The main refactoring here is removing the type field from the various
classes, but there are a few other smaller ones.
This also contains the grounds for a refactoring on variable use
|
|
Templates should now work, though there is no syntax to reference them
from rules yet
In addition, several internal things have been changed so as to improve
code quality
|
|
More work that leads towards getting templates working
|
|
More work for getting going on templates, as well as just some
refactoring for future changes
|
|
Move config loading to a new class, in preparation for adding template
support
|
|
|
|
There is now syntax for rule references. Use @ instead of $, and use :=
to indicate you want exhaustion enabled
Use @ to refer to it
|
|
Add the capability to store regular/exhaustible rule variables
|
|
Simple/expanding variables are now marked with a $, as they are when
used.
Additionally, some debugging help was added
|
|
|
|
|
|
Blocks should now properly give absolute numbers as to where they are
from
|
|
Inline rules are now enclosed in [...], not {...} to better match other
reference types
|
|
Parser meta-tokens now use <...> syntax instead of {...} so as not to
get them confused with reference tokens.
|
|
This adds a few new syntax features, as well as allowing certain ones to
be used in pragmas.
The next syntax feature to be added will be some sort of quote feature,
to allow the inclusion of spaces where they would otherwise not be
permitted
|
|
This controls the number of times a rule can be entered into during a
single generations, and is set to 5 by default
|
|
Weighting now has a syntax. Include a {^<weight>} token to set the rule
weight
|
|
This re-adds the capability to weight rules.
However, no syntax has yet been add to perform that rule weighting
|
|
This does some minor updates to things, as well as adding some
performance tracking
|
|
This adds inline case elements, essentially cutting down on the need for
short 2-3 alternative rules.
You'll still need explicit rules for things involving spaces though.
Perhaps I will add a quoting feature to solve that problem.
|
|
You can now provide multiple prefix/suffix elements, and all of the
permutations of them will be applied.
For example, providing the elements A & B, will yield the following
permutations
* A
* B
* A B
* B A
|
|
RuleCase now handles its own generation.
|
|
The various types of RuleCaseElement are now their own things.
|
|
Case elements are now responsible for generating themselves.
|
|
Malformed pragmas should now give better error messages.
|
|
|
|
|