Age | Commit message (Collapse) | Author |
|
|
|
|
|
Instead of splitting the program by line numbers, do limited parsing
(enough to distinguish , in "memb(X,Y)" from , in "a :- b, c."). Each
token in the parsed program is annotated with rule and part number.
Rewrite monkey.fix.step to take program as a sequence of annotated
tokens instead of lists of lines and rules. Improve message passing to
website.
|
|
|
|
|
|
|
|
Remove trailing sequences of COMMAs and PERIODs when extracting edits
from a trace. This is because subgoal order is rarely important in
Prolog, and we don't care if the edit happened on the last line or not.
This means that we treat for example
"conc(A,B)," → "conc(A,B,C)." the same as
"conc(A,B)" → "conc(A,B,C)".
|
|
|
|
Importing pymonkey into webmonkey, let's see how this works.
|
|
Testing logic now lives in PrologEngine. The engine now has some notion
of problems and users, which is necessary to avoid repeatedly loading
code into Prolog.
TODO:
- support library loading
- fix PrologEngine.test for unusual cases (more than one solution, …)
- memoization of correct answers
|
|
This will allow us to match line edits to original source locations.
|
|
Return a single mapping instead of generating all possible permutations.
Only the first solution was used anyway, with little effect on found
solutions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|