Age | Commit message (Collapse) | Author | |
---|---|---|---|
2017-02-24 | Modify Prolog parser to produce ASTs instead of parse trees | Timotej Lazar | |
2016-09-27 | Incorporate some tweaks to the monkey methods | Timotej Lazar | |
2016-05-16 | Detect predicates used in DCG clauses | Timotej Lazar | |
2016-04-08 | Prolog: use A,B,C,… for normalized variable names | Timotej Lazar | |
This is somewhat more readable than A0,A1,A2,…. | |||
2016-04-08 | Remove unused prolog.util.normalized | Timotej Lazar | |
2016-04-07 | Always return a string in prolog.util.Token.__str__ | Timotej Lazar | |
2016-01-12 | Replace prolog.util.rename_vars with rename_vars_list everywhere | Timotej Lazar | |
2016-01-04 | Add function to find predicates used by a Prolog program | Timotej Lazar | |
2015-12-11 | Rename a function | Timotej Lazar | |
2015-12-11 | Use a more general method for extracting edits | Timotej Lazar | |
This is a large overhaul of monkey code. Before, only edits within individual lines were tracked, which required a Prolog-specific method for splitting a program into a list of lines for every rule. In this version, modifications can be tracked within arbitrary code ranges. Ranges to be tracked are determined by selecting "interesting" subtrees in the AST of the starting code version. The new method is simpler, less language-dependent and easier to extend. The downside is that a program must be syntactically correct before we can attempt to fix it (the previous approach could handle programs with syntax errors in some cases). This commit also integrates a call to monkey.fix in prolog_session.hint, by running it if no other hint is found. | |||
2015-12-10 | Support Tree objects in python.util.stringify | Timotej Lazar | |
2015-12-10 | Fix a parser bug | Timotej Lazar | |
2015-12-10 | Add prolog.util.parse method | Timotej Lazar | |
2015-12-10 | Add copyright info | Timotej Lazar | |
2015-08-11 | Disable parser generation | Timotej Lazar | |
The parser is currently unused. | |||
2015-08-11 | Add a parser for (simplified) Prolog | Timotej Lazar | |
2015-08-11 | Remove unused function from prolog.util | Timotej Lazar | |
2015-08-11 | Annotate tokens instead of splitting program | Timotej Lazar | |
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. | |||
2015-08-11 | Simplify calls to prolog.util.map_vars | Timotej Lazar | |
2015-08-11 | Move normalize to prolog.util | Timotej Lazar | |
2015-08-11 | Clean up prolog.util.decompose | Timotej Lazar | |
2015-08-11 | Remove all trailing punctuation from lines | Timotej Lazar | |
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)". | |||
2015-08-11 | Move monkey.prolog to root module | Timotej Lazar | |
2015-08-11 | Move pymonkey stuff to monkey/ | Timotej Lazar | |
Importing pymonkey into webmonkey, let's see how this works. | |||
2015-08-11 | Start refactoring testing code | Timotej Lazar | |
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 | |||
2015-08-11 | Keep token positions when lexing | Timotej Lazar | |
This will allow us to match line edits to original source locations. | |||
2015-08-11 | Simplify prolog.util.map_vars | Timotej Lazar | |
Return a single mapping instead of generating all possible permutations. Only the first solution was used anyway, with little effect on found solutions. | |||
2015-08-11 | Add some ad-hoc test code to prolog/util.py | Timotej Lazar | |
2015-08-11 | Move PQueue and utility functions into util.py | Timotej Lazar | |
2015-08-11 | Use immutable values in queue | Timotej Lazar | |
2015-08-11 | Remove unnecessary check from prolog.util.compose | Timotej Lazar | |
2015-08-11 | Fix two bugs in prolog.util.decompose | Timotej Lazar | |
2015-08-11 | Optimize prolog.util.stringify (~15% faster) | Timotej Lazar | |
2015-08-11 | Cleanups | Timotej Lazar | |
2015-08-11 | Some cleanups in main program | Timotej Lazar | |
2015-08-11 | Initial commit for pymonkey | Timotej Lazar | |