copper
copper copied to clipboard
An integrated context-aware scanner and parser generator
Hey everyone, We (namely @krame505 and I) were thinking about adding copper to maven central. The process to get this done is not hugely complex, but there are a few...
Would be nice if `copper` could also generate an `EBNF` as understood by https://www.bottlecaps.de/rr/ui to generate railroad diagrams (https://en.wikipedia.org/wiki/Syntax_diagram). I extended `bison`, `byacc`, `lemon` and `btyacc` to do so and...
For context, this problem showed up in ableC, where we are trying to use the C preprocessor tags to control the disambiguation of identifiers, based on whether we are currently...
Some unexpected behavior was discovered when experimenting with layout on an ableC extension for prolog-style logic programming. The following is a somewhat simplified grammar that seems to exhibit the same...
Currently, the XML- and HTML-format dumps make no distinction between disambiguation functions that disambiguate non-declaratively and disambiguation groups that always disambiguate to the same terminal. This should be added as...
How difficult would this be to support on Copper's side? I have in mind amending Copper specs to support something like: ``` ... ``` The result being generating additional methods...
Currently, the pretty-printing methods responsible for printing lists of grammar symbols for Copper's error messages [[1]](https://github.com/melt-umn/copper/blob/2d4c34b32c61e3bfc88913e5245aedffcf2de523/src/edu.umn.cs.melt.copper.runtime/src/main/java/edu/umn/cs/melt/copper/runtime/auxiliary/internal/PrettyPrinter.java) have the caller specify a fixed number of items per line. This should be...
A TODO in [SlidingWindowScannerBuffer.java](https://github.com/melt-umn/copper/blob/2d4c34b32c61e3bfc88913e5245aedffcf2de523/src/edu.umn.cs.melt.copper.runtime/src/main/java/edu/umn/cs/melt/copper/runtime/io/SlidingWindowScannerBuffer.java#L9) suggests that the buffer is inefficient and building a new string object for every character read. We should either verify that this is not happening or...
TODOs in several places in the codebase (''e.g.'', [SingleDFAEngineBuilder.java](https://github.com/melt-umn/copper/blob/2d4c34b32c61e3bfc88913e5245aedffcf2de523/src/edu.umn.cs.melt.copper.compiletime/src/main/java/edu/umn/cs/melt/copper/compiletime/srcbuilders/single/SingleDFAEngineBuilder.java#L342)) say, "Remove nonterminals from the 'validLA' sets in the parse table."
A TODO in [GrammarConsistencyChecker.java](https://github.com/melt-umn/copper/blob/2d4c34b32c61e3bfc88913e5245aedffcf2de523/src/edu.umn.cs.melt.copper.compiletime/src/main/java/edu/umn/cs/melt/copper/compiletime/spec/grammarbeans/visitors/GrammarConsistencyChecker.java#L360) suggests that Copper makes no check for duplicate productions.