Skip to content

Commit 3856325

Browse files
committed
fixes by Alex and updated documentation
1 parent f447043 commit 3856325

31 files changed

Lines changed: 2217 additions & 2217 deletions

app/examples/EditPatterns.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{- |
1+
{- |
22
Description: Examples for edit patterns used in our evaluation.
33
License: GNU LGPLv3
44
Maintainer: paul.bittner@uni-ulm.de
@@ -7,7 +7,7 @@ This module provides 'Example's to reproduce each edit pattern we inspected in t
77
of feature trace recording (Section 5 in our paper).
88
As each pattern describes a possible /type/ of edit and not an edit itself, each example shows
99
one possible instance for a pattern (not the pattern itself as this is not possible).
10-
For some patterns, we thus /have to) show multiple examples as described in the paper.
10+
For some patterns, we thus /have to/ show multiple examples as described in the paper.
1111
Most notably, distinguishing between the case when no feature traces are present (/in general/ case)
1212
and the case when an optional outer scope of the edit code fragment is already mapped to the target feature mapping.
1313
-}

docs/DefaultFeatureTraceRecording.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>DefaultFeatureTraceRecording</title><link href="linuwial.css" rel="stylesheet" type="text/css" title="Linuwial" /><link rel="stylesheet" type="text/css" href="quick-jump.css" /><link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=PT+Sans:400,400i,700" /><script src="haddock-bundle.min.js" async="async" type="text/javascript"></script><script type="text/x-mathjax-config">MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script></head><body><div id="package-header"><span class="caption empty">&nbsp;</span><ul class="links" id="page-menu"><li><a href="src/DefaultFeatureTraceRecording.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul></div><div id="content"><div id="module-header"><table class="info"><tr><th>License</th><td>GNU LGPLv3</td></tr><tr><th>Maintainer</th><td>paul.bittner@uni-ulm.de</td></tr><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">DefaultFeatureTraceRecording</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Implementation of feature trace recording as proposed in the paper (Section 4.2).</p></div></div><div id="synopsis"><details id="syn"><summary>Synopsis</summary><ul class="details-toggle" data-details-id="syn"><li class="src short"><a href="#v:defaultFeatureTraceRecording">defaultFeatureTraceRecording</a> :: (<a href="Grammar.html#t:Grammar" title="Grammar">Grammar</a> g, Show a, Eq a) =&gt; <a href="FeatureTraceRecording.html#t:FeatureTraceRecording" title="FeatureTraceRecording">FeatureTraceRecording</a> g a</li><li class="src short"><a href="#v:nullifyMandatory">nullifyMandatory</a> :: <a href="Grammar.html#t:Grammar" title="Grammar">Grammar</a> g =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a -&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li><li class="src short"><a href="#v:removeTheRedundanciesWeIntroduced">removeTheRedundanciesWeIntroduced</a> :: (<a href="Grammar.html#t:Grammar" title="Grammar">Grammar</a> g, Eq a, Show a) =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a -&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li><li class="src short"><a href="#v:r_id">r_id</a> :: <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li><li class="src short"><a href="#v:r_trace">r_trace</a> :: Eq a =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li><li class="src short"><a href="#v:r_ins">r_ins</a> :: (Show a, Eq a) =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li><li class="src short"><a href="#v:r_del">r_del</a> :: (<a href="Grammar.html#t:Grammar" title="Grammar">Grammar</a> g, Eq a, Show a) =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li><li class="src short"><a href="#v:r_move">r_move</a> :: (Show a, Eq a) =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li><li class="src short"><a href="#v:r_up">r_up</a> :: (Eq a, Show a) =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li></ul></details></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:defaultFeatureTraceRecording" class="def">defaultFeatureTraceRecording</a> :: (<a href="Grammar.html#t:Grammar" title="Grammar">Grammar</a> g, Show a, Eq a) =&gt; <a href="FeatureTraceRecording.html#t:FeatureTraceRecording" title="FeatureTraceRecording">FeatureTraceRecording</a> g a <a href="src/DefaultFeatureTraceRecording.html#defaultFeatureTraceRecording" class="link">Source</a> <a href="#v:defaultFeatureTraceRecording" class="selflink">#</a></p><div class="doc"><p>This is the default implementation of feature trace recording we propose in the paper.
1+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>DefaultFeatureTraceRecording</title><link href="linuwial.css" rel="stylesheet" type="text/css" title="Linuwial" /><link rel="stylesheet" type="text/css" href="quick-jump.css" /><link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=PT+Sans:400,400i,700" /><script src="haddock-bundle.min.js" async="async" type="text/javascript"></script><script type="text/x-mathjax-config">MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script></head><body><div id="package-header"><span class="caption empty">&nbsp;</span><ul class="links" id="page-menu"><li><a href="src/DefaultFeatureTraceRecording.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul></div><div id="content"><div id="module-header"><table class="info"><tr><th>License</th><td>GNU LGPLv3</td></tr><tr><th>Maintainer</th><td>paul.bittner@uni-ulm.de</td></tr><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">DefaultFeatureTraceRecording</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Implementation of feature trace recording as proposed in the paper (Section 4.2).</p></div></div><div id="synopsis"><details id="syn"><summary>Synopsis</summary><ul class="details-toggle" data-details-id="syn"><li class="src short"><a href="#v:defaultFeatureTraceRecording">defaultFeatureTraceRecording</a> :: (<a href="Grammar.html#t:Grammar" title="Grammar">Grammar</a> g, Show a, Eq a) =&gt; <a href="FeatureTraceRecording.html#t:FeatureTraceRecording" title="FeatureTraceRecording">FeatureTraceRecording</a> g a</li><li class="src short"><a href="#v:nullifyMandatory">nullifyMandatory</a> :: <a href="Grammar.html#t:Grammar" title="Grammar">Grammar</a> g =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a -&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li><li class="src short"><a href="#v:removeTheRedundanciesWeIntroduced">removeTheRedundanciesWeIntroduced</a> :: (<a href="Grammar.html#t:Grammar" title="Grammar">Grammar</a> g, Eq a, Show a) =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a -&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li><li class="src short"><a href="#v:r_id">r_id</a> :: <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li><li class="src short"><a href="#v:r_trace">r_trace</a> :: Eq a =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li><li class="src short"><a href="#v:r_ins">r_ins</a> :: (Show a, Eq a) =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li><li class="src short"><a href="#v:r_del">r_del</a> :: (<a href="Grammar.html#t:Grammar" title="Grammar">Grammar</a> g, Eq a, Show a) =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li><li class="src short"><a href="#v:r_move">r_move</a> :: (Show a, Eq a) =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li><li class="src short"><a href="#v:r_up">r_up</a> :: (Eq a, Show a) =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a</li></ul></details></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:defaultFeatureTraceRecording" class="def">defaultFeatureTraceRecording</a> :: (<a href="Grammar.html#t:Grammar" title="Grammar">Grammar</a> g, Show a, Eq a) =&gt; <a href="FeatureTraceRecording.html#t:FeatureTraceRecording" title="FeatureTraceRecording">FeatureTraceRecording</a> g a <a href="src/DefaultFeatureTraceRecording.html#defaultFeatureTraceRecording" class="link">Source</a> <a href="#v:defaultFeatureTraceRecording" class="selflink">#</a></p><div class="doc"><p>This is the default implementation of feature trace recording as proposed in our paper.
22
For each type of edit, we choose one of the four recording functions from R_ins, R_del, R_mov, and R_up.
33
Next to these four functions, we support two more default recording function in this library, <code><a href="DefaultFeatureTraceRecording.html#v:r_id" title="DefaultFeatureTraceRecording">r_id</a></code> and <code><a href="DefaultFeatureTraceRecording.html#v:r_trace" title="DefaultFeatureTraceRecording">r_trace</a></code>.
4-
We use <code><a href="DefaultFeatureTraceRecording.html#v:r_id" title="DefaultFeatureTraceRecording">r_id</a></code> for technical reasones (e.g., folds, printing) and it does nothing.
4+
We use <code><a href="DefaultFeatureTraceRecording.html#v:r_id" title="DefaultFeatureTraceRecording">r_id</a></code> for technical reasons (e.g., folds, printing) and it does not affect the mappings.
55
We use <code><a href="DefaultFeatureTraceRecording.html#v:r_trace" title="DefaultFeatureTraceRecording">r_trace</a></code> to manually change the feature mappings of a set of nodes without changing the source code.</p></div></div><div class="top"><p class="src"><a id="v:nullifyMandatory" class="def">nullifyMandatory</a> :: <a href="Grammar.html#t:Grammar" title="Grammar">Grammar</a> g =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a -&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a <a href="src/DefaultFeatureTraceRecording.html#nullifyMandatory" class="link">Source</a> <a href="#v:nullifyMandatory" class="selflink">#</a></p><div class="doc"><p>Sets the feature mapping of all mandatory AST nodes to <em>null</em>.</p></div></div><div class="top"><p class="src"><a id="v:removeTheRedundanciesWeIntroduced" class="def">removeTheRedundanciesWeIntroduced</a> :: (<a href="Grammar.html#t:Grammar" title="Grammar">Grammar</a> g, Eq a, Show a) =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a -&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a <a href="src/DefaultFeatureTraceRecording.html#removeTheRedundanciesWeIntroduced" class="link">Source</a> <a href="#v:removeTheRedundanciesWeIntroduced" class="selflink">#</a></p><div class="doc"><p>This simplifies feature traces with respect to presence conditions.
66
See <code><a href="FeatureTrace.html#v:simplifyFeatureTrace" title="FeatureTrace">simplifyFeatureTrace</a></code> and <code><a href="Simplify.html#v:removeRedundancy" title="Simplify">removeRedundancy</a></code> for further information.</p></div></div><div class="top"><p class="src"><a id="v:r_id" class="def">r_id</a> :: <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a <a href="src/DefaultFeatureTraceRecording.html#r_id" class="link">Source</a> <a href="#v:r_id" class="selflink">#</a></p><div class="doc"><p>Feature trace recording for identity edit:
77
When nothing is changed, nothing has to be recorded.</p></div></div><div class="top"><p class="src"><a id="v:r_trace" class="def">r_trace</a> :: Eq a =&gt; <a href="FeatureTraceRecording.html#t:RecordingFunction" title="FeatureTraceRecording">RecordingFunction</a> g a <a href="src/DefaultFeatureTraceRecording.html#r_trace" class="link">Source</a> <a href="#v:r_trace" class="selflink">#</a></p><div class="doc"><p>Feature trace recording on an identity edit with non-empty delta.

0 commit comments

Comments
 (0)