Results 11 issues of Andrew Kay

Calling addSource("A", "class B {}"); addSource("B", "class A {}"); compileAll(); returns a Map of "A" to the class A and "B" to the class B. This is unexpected, and means...

It would be useful to be able to express relationships between an input pattern and an output pattern, using something like "capturing groups" (in regex terminology). Taking the [River](https://github.com/kaya3/MJr/blob/main/models/River.mjr) model...

enhancement

The current implementation uses a pair of DFAs to keep track of all matches of all input patterns in the grid. This is suboptimal for 1x1 patterns, because each 1x1...

enhancement

Currently, `all` statements do not support output patterns which depend both on the current grid state and the match position. The reason for this is that either the output patterns...

bug

At the moment only 2D grids are supported, but it would be good to support 3D grids. This will necessarily require changes to many parts of the compiler: - Need...

enhancement

A "sampler" is a data structure containing the current matches for some set of input patterns. In the current implementation, each rule block either uses a single sampler for all...

enhancement

Consider the following program: ```none grid [BW] all: [B] -> [W] one: [BW] -> [WB] ``` By considering the program's control flow, it is in principle possible to statically determine...

enhancement

A "sampler" is a data structure containing the current matches for some set of input patterns. In the current implementation, a sampler is implemented as a pair of arrays (one...

enhancement

For some programs it is in principle possible to statically determine (by [control-flow analysis](https://github.com/kaya3/MJr/issues/2)) that some alphabet symbols can never occur simultaneously in the same grid state. For example, in...

enhancement

The value 2^24 + 1 is equidistant from 2^24 and 2^24 + 2.