summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-08-11Use json-html format for Prolog repliesTimotej Lazar
The only way to get residuals in CLP queries.
2015-08-11Merge prolog.engine.create{,_and_ask} functionsTimotej Lazar
2015-08-11Remove app-specific code from prolog.engineTimotej Lazar
2015-08-11Specify timeout when generating test casesTimotej Lazar
2015-08-11Do not look for edits in problems with no tracesTimotej Lazar
2015-08-11Ignore attempts from all non-student usersTimotej Lazar
2015-08-11Silence warnings from ply.lex.lex()Timotej Lazar
2015-08-11Add a couple of utility functions to NodeTimotej Lazar
2015-08-11Use Node class from monkey.util in parserTimotej Lazar
Also simplify rules for list expressions.
2015-08-11Add a parser for (simplified) PrologTimotej Lazar
2015-08-11Always lex , as COMMA, never as NAMETimotej Lazar
Also a testing loop to prolog.lexer.
2015-08-11Remove unused function from prolog.utilTimotej Lazar
2015-08-11Tweak message handling codeTimotej Lazar
2015-08-11Reorder cases in monkey.test and fix print_hintTimotej Lazar
2015-08-11Use different colors for different types of editsTimotej Lazar
Remove on-hover explanations and replace the now-useless gutter with line numbers. Explanations will be reintroduced in a later commit.
2015-08-11Minor tweaks in monkey.monkeyTimotej Lazar
2015-08-11Print a random failing test for incorrect solutionTimotej Lazar
2015-08-11prolog.engine: use .get() to access replyTimotej Lazar
In case SWI engine goes insane and returns a malformed reply (has happened). Also fix the test case in this file to use the new, classless methods.
2015-08-11Move hint message generation to a new functionTimotej Lazar
2015-08-11Correctly find first token in current part in stepTimotej Lazar
2015-08-11Oops, a line got lostTimotej Lazar
2015-08-11Ignore edits a→b where a or b has multiple partsTimotej Lazar
This happens for instance when a user writes more than one goal on the same line. A better way would be to handle this when building a graph (use annotate instead of splitting on newlines).
2015-08-11Annotate tokens instead of splitting programTimotej 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-11Simplify calls to prolog.util.map_varsTimotej Lazar
2015-08-11Exclude admin and test users when analyzing tracesTimotej Lazar
2015-08-11Use one format for all messages passed to JS sideTimotej Lazar
2015-08-11Add a function for Damerau-Levenshtein distanceTimotej Lazar
Will be used to check for typos.
2015-08-11Don't store solution-line frequenciesTimotej Lazar
This is currently unused.
2015-08-11Pass the entire current path to monkey.fix.stepTimotej Lazar
Only the last step is used currently.
2015-08-11monkey.fix.step: apply all edits in line orderTimotej Lazar
For instance, don't add a new rule at line 1 after changing line 3 - only the ordered sequence of edits will be checked.
2015-08-11Remove unused imports in monkey.testTimotej Lazar
2015-08-11Simplify monkey.edits.get_edits_from_tracesTimotej Lazar
2015-08-11Rename monkey.edits.edit_graph to trace_graphTimotej Lazar
2015-08-11CleanupsTimotej Lazar
2015-08-11Fix recording replacements (remove/insert)Timotej Lazar
2015-08-11Improve adding a rule in monkey.fix.stepTimotej Lazar
2015-08-11Improve codemirror markersTimotej Lazar
2015-08-11Improve monkey.fix.postprocessTimotej Lazar
2015-08-11Move normalize to prolog.utilTimotej Lazar
2015-08-11Ignore edits after the first correct versionTimotej Lazar
2015-08-11Clean up prolog.util.decomposeTimotej Lazar
2015-08-11Clean up monkey.fix.stepTimotej Lazar
2015-08-11Simplify get_edits_from_tracesTimotej Lazar
2015-08-11Minor fixes in monkey.testTimotej Lazar
2015-08-11Remove all trailing punctuation from linesTimotej 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-11Small cleanupsTimotej Lazar
2015-08-11Clean up monkey.edits.get_pathsTimotej Lazar
2015-08-11Move monkey.prolog to root moduleTimotej Lazar
2015-08-11Clean up monkey.prolog.utilTimotej Lazar
2015-08-11Minor cleanups in monkey.monkeyTimotej Lazar