summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/rgens/parser
AgeCommit message (Collapse)Author
2021-04-11Tweak a thingBen Culkin
2021-03-13Add line-continuation for config filesBen Culkin
2021-03-13Rearrange some thingsBen Culkin
This moves some documentation to a specific docs folder, as well as creating a new examples folder, and putting the two pieces of example code into there
2020-12-03Adapt to esodata changesBen Culkin
2020-10-06Info cleanupBen Culkin
2020-10-05Minor cleanupBen Culkin
2020-04-13Add some javadocBen Culkin
Add some javadoc comments
2020-04-12Adjust to BJC-Utils changesBen Culkin
Several packages were moved from BJC-Utils to esodata. This makes the necessary changes
2020-03-30Clean up warningsBen Culkin
Clean up some warnings that were hanging around
2019-08-28Merge cleanupBenjamin J. Culkin
2019-08-28Add additional comments & suchBenjamin J. Culkin
2019-07-21Add missing importbculkin2442
2019-07-21Merge cleanupsbculkin2442
2019-07-21Refactor front-end error-handlingBenjamin J. Culkin
This refactors the front-end to use a tree for capturing errors, instead of throwing exceptions. This has the benefit that you will receive notifications about all of the error messages you have, instead of only the first. I'm a bit fuzzy on the details, since it's been a while since I wrote these changes.
2018-10-28Cleanupbculkin2442
2018-10-28Import organizationbculkin2442
2018-10-28General cleanupbculkin2442
2018-10-11UpdateBenjamin J. Culkin
2018-09-06Convert to using ReportWriterBenjamin J. Culkin
GenerationState now uses ReportWriter instead of StringBuilder. This will make certain upcoming features (namely, formatting strings) work much better
2018-09-06Convert GenerationState.contents to privateBenjamin J. Culkin
This is to prepare for replacing contents with a ReportWriter
2018-09-05Finally do something with regexizeRuleBenjamin J. Culkin
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.
2018-09-05CommentBenjamin J. Culkin
2018-09-05Simplify affix applicationBenjamin J. Culkin
This simplifies the internal way affixes are applied, as well as adding a new circumfix-with pragma
2018-09-05Autovivify varsBenjamin J. Culkin
Enable autovivifying variables. These will have their definition automatically ran when they are first referenced.
2018-09-05Make variable fields privateBenjamin J. Culkin
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
2018-09-05Make variable grammar dependantBenjamin J. Culkin
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.
2018-09-05Add grammar name pragmaBenjamin J. Culkin
2018-09-05Fix accidental breakageBenjamin J. Culkin
2018-09-05Cleanup suffixWith/prefixWith in builderBenjamin J. Culkin
2018-09-05Minor changesBenjamin J. Culkin
2018-08-17Enable directory scanningBenjamin J. Culkin
This enables a directory-scanning behavior for files. Now, we just have to add internal names to almost all of the grammars
2018-08-16Update parser to use levelSplitBenjamin J. Culkin
The overall grammar parser now uses levelSplit where possible.
2018-08-14Minor cleanupsBenjamin J. Culkin
2018-08-10Update loggingBenjamin J. Culkin
Logging now uses the RGrammarLogging system so as to allow for better customizability of how the logging works
2018-08-08Use levelSplit moreBenjamin J. Culkin
2018-07-20UpdateBenjamin J. Culkin
2018-07-17Swap to using for-each loops instead of for-each methodBenjamin J. Culkin
2018-06-08Major refactoringBenjamin J. Culkin
A major refactoring to the internals of how things work. I believe that nothing is broken
2018-06-07RefactoringBenjamin J. Culkin
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
2018-06-05Templates pt. 3Benjamin J. Culkin
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
2018-06-05Templates pt.2Benjamin J. Culkin
More work that leads towards getting templates working
2018-06-05Config workBenjamin J. Culkin
More work for getting going on templates, as well as just some refactoring for future changes
2018-06-05Move config loading to new classBenjamin J. Culkin
Move config loading to a new class, in preparation for adding template support
2018-06-05Minor bug-fixesBenjamin J. Culkin
2018-06-04Exhaustion pt. 2Benjamin J. Culkin
There is now syntax for rule references. Use @ instead of $, and use := to indicate you want exhaustion enabled Use @ to refer to it
2018-06-04Rule variables pt. 1Benjamin J. Culkin
Add the capability to store regular/exhaustible rule variables
2018-06-04Declaration follows useBenjamin J. Culkin
Simple/expanding variables are now marked with a $, as they are when used. Additionally, some debugging help was added
2018-06-04Debug infoBenjamin J. Culkin
2018-06-04UpdateBenjamin J. Culkin
2018-06-04Add line offsetBenjamin J. Culkin
Blocks should now properly give absolute numbers as to where they are from