summaryrefslogtreecommitdiff
path: root/monkey
AgeCommit message (Collapse)Author
2015-12-21Support all action types in monkey.actionTimotej Lazar
2015-12-21Fix printing edits in monkey.testTimotej Lazar
2015-12-11Rename a functionTimotej Lazar
2015-12-11Use a more general method for extracting editsTimotej 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-10Remove unused monkey.action.compressTimotej Lazar
2015-12-10Remove trace-graph function from monkey.testTimotej Lazar
2015-12-10Add copyright infoTimotej Lazar
2015-11-04Use correct type for prolog_solve actionTimotej Lazar
2015-10-15Store identifiers instead of IDs in Problem modelTimotej Lazar
2015-10-13Move monkey/monkey.py to monkey/__init__.pyTimotej Lazar
2015-10-13Remove unused code from monkey.actionTimotej Lazar
2015-10-13Fix: add a missing commaTimotej Lazar
2015-10-05Update actionsTimotej Lazar
2015-09-24Update monkey.test.test for new testing functionsTimotej Lazar
2015-09-24Remove trailing . from historical Prolog queriesTimotej Lazar
2015-09-22Add Node.subtrees and Node.leaves functionsTimotej Lazar
2015-09-02Update monkey.test to work with new DBTimotej Lazar
2015-09-02Accept test function as a parameter to monkey.fixTimotej Lazar
2015-08-27Replace prolog.engine.run with ask_allTimotej Lazar
Creating and destroying the pengine should be handled somewhere else. This commit also removes query functionality from prolog.engine.create.
2015-08-24Remove in-edges from monkey.graph.Node classTimotej Lazar
2015-08-24monkey.graph.graphviz: fix escaping of node labelsTimotej Lazar
2015-08-24monkey.graph.graphviz: use id() to reference nodesTimotej Lazar
2015-08-20Convert monkey.edits to use the new DBTimotej Lazar
2015-08-20Remove unneeded DB init stuff from monkey.actionTimotej Lazar
2015-08-13Initial PostgreSQL data model: codeq_user and solution tables.Aleš Smodiš
Converted the action.py to use the new model.
2015-08-11Add code to check for typosMehmet Akalın
2015-08-11Fix monkey.test.print_hintTimotej Lazar
2015-08-11Improve error & warning reportingTimotej Lazar
Hope it does not break anything.
2015-08-11Merge prolog.engine.create{,_and_ask} functionsTimotej Lazar
2015-08-11Remove app-specific code from prolog.engineTimotej 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-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-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-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.