gravatar
kpeter (Peter Kovacs)
kpeter@inf.elte.hu
Improve the migration script and guide (#166) - Safer replacement of 'graph' and 'edge'. - Fix the erroneous renaming of [Gg]raphToEps. - Fixes and improvements in the migration guide.
0 2 0
default
2 files changed with 31 insertions and 18 deletions:
↑ Collapse diff ↑
Ignore white space 6 line context
... ...
@@ -16,25 +16,25 @@
16 16
 *
17 17
 */
18 18

	
19 19
namespace lemon {
20 20
/*!
21 21

	
22 22
\page migration Migration from the 0.x Series
23 23

	
24 24
This guide gives an in depth description on what has changed compared
25 25
to the 0.x release series.
26 26

	
27 27
Many of these changes adjusted automatically by the
28
<tt>script/lemon-0.x-to-1.x.sh</tt> tool. Those requiring manual
28
<tt>lemon-0.x-to-1.x.sh</tt> tool. Those requiring manual
29 29
update are typeset <b>boldface</b>.
30 30

	
31 31
\section migration-graph Graph Related Name Changes
32 32

	
33 33
- \ref concepts::Digraph "Directed graphs" are called \c Digraph and
34 34
  they have <tt>Arc</tt>s (instead of <tt>Edge</tt>s), while
35 35
  \ref concepts::Graph "undirected graphs" are called \c Graph
36 36
  (instead of \c UGraph) and they have <tt>Edge</tt>s (instead of
37 37
  <tt>UEdge</tt>s). These changes reflected thoroughly everywhere in
38 38
  the library. Namely,
39 39
  - \c Graph -> \c Digraph
40 40
    - \c %ListGraph -> \c ListDigraph, \c %SmartGraph -> \c SmartDigraph etc.
... ...
@@ -44,27 +44,29 @@
44 44
  - \c EdgeMap -> \c ArcMap, \c UEdgeMap -> \c EdgeMap
45 45
  - \c EdgeIt -> \c ArcIt, \c UEdgeIt -> \c EdgeIt
46 46
  - Class names and function names containing the words \c graph,
47 47
    \c ugraph, \e edge or \e arc should also be updated.
48 48
- <b>The two endpoints of an (\e undirected) \c Edge can be obtained by the
49 49
  <tt>u()</tt> and <tt>v()</tt> member function of the graph
50 50
  (instead of <tt>source()</tt> and <tt>target()</tt>). This change
51 51
  must be done by hand.</b>
52 52
  \n Of course, you can still use <tt>source()</tt> and <tt>target()</tt>
53 53
  for <tt>Arc</tt>s (directed edges).
54 54

	
55 55
\warning
56
<b>The <tt>script/lemon-0.x-to-1.x.sh</tt> tool replaces all instances of
57
the words \c graph, \c digraph, \c edge and \c arc, so it replaces them
58
in strings, comments etc. as well as in all identifiers.</b>
56
<b>The <tt>lemon-0.x-to-1.x.sh</tt> script replaces the words \c graph,
57
\c ugraph, \c edge and \c uedge in your own identifiers and in
58
strings, comments etc. as well as in all LEMON specific identifiers.
59
So use the script carefully and make a backup copy of your source files
60
before applying the script to them.</b>
59 61

	
60 62
\section migration-lgf LGF tools
61 63
 - The \ref lgf-format "LGF file format" has changed,
62 64
   <tt>\@nodeset</tt> has changed to <tt>\@nodes</tt>,
63 65
   <tt>\@edgeset</tt> and <tt>\@uedgeset</tt> to <tt>\@arcs</tt> or
64 66
   <tt>\@edges</tt>, which become completely equivalents. The
65 67
   <tt>\@nodes</tt>, <tt>\@edges</tt> and <tt>\@uedges</tt> sections are
66 68
   removed from the format, the content of them should be
67 69
   the part of <tt>\@attributes</tt> section. The data fields in
68 70
   the sections must follow a strict format, they must be either character
69 71
   sequences without whitespaces or quoted strings.
70 72
 - The <tt>LemonReader</tt> and <tt>LemonWriter</tt> core interfaces
Ignore white space 24 line context
... ...
@@ -5,58 +5,69 @@
5 5
if [ $# -eq 0 -o x$1 = "x-h" -o x$1 = "x-help" -o x$1 = "x--help" ]; then
6 6
    echo "Usage:"
7 7
    echo "  $0 source-file(s)"
8 8
    exit
9 9
fi
10 10

	
11 11
for i in $@
12 12
do
13 13
    echo Update $i...
14 14
    TMP=`mktemp`
15 15
    sed -e "s/undirected graph/_gr_aph_label_/g"\
16 16
        -e "s/undirected edge/_ed_ge_label_/g"\
17
        -e "s/graph_/_gr_aph_label__/g"\
18
        -e "s/_graph/__gr_aph_label_/g"\
19 17
        -e "s/UGraph/_Gr_aph_label_/g"\
20
        -e "s/uGraph/_gr_aph_label_/g"\
21
        -e "s/ugraph/_gr_aph_label_/g"\
18
        -e "s/u[Gg]raph/_gr_aph_label_/g"\
19
        -e "s/\<Graph\>/_Digr_aph_label_/g"\
20
        -e "s/\<graph\>/_digr_aph_label_/g"\
21
        -e "s/\<Graphs\>/_Digr_aph_label_s/g"\
22
        -e "s/\<graphs\>/_digr_aph_label_s/g"\
23
        -e "s/_Graph/__Gr_aph_label_/g"\
24
        -e "s/\([Gg]\)raph\([a-z_]\)/_\1r_aph_label_\2/g"\
25
        -e "s/\([a-z_]\)graph/\1_gr_aph_label_/g"\
22 26
        -e "s/Graph/_Digr_aph_label_/g"\
23 27
        -e "s/graph/_digr_aph_label_/g"\
24 28
        -e "s/UEdge/_Ed_ge_label_/g"\
25
        -e "s/uEdge/_ed_ge_label_/g"\
26
        -e "s/uedge/_ed_ge_label_/g"\
29
        -e "s/u[Ee]dge/_ed_ge_label_/g"\
27 30
        -e "s/IncEdgeIt/_In_cEd_geIt_label_/g"\
31
        -e "s/\<Edge\>/_Ar_c_label_/g"\
32
        -e "s/\<edge\>/_ar_c_label_/g"\
33
        -e "s/\<Edges\>/_Ar_c_label_s/g"\
34
        -e "s/\<edges\>/_ar_c_label_s/g"\
35
        -e "s/_Edge/__Ed_ge_label_/g"\
36
        -e "s/Edge\([a-z_]\)/_Ed_ge_label_\1/g"\
37
        -e "s/edge\([a-z_]\)/_ed_ge_label_\1/g"\
38
        -e "s/\([a-z_]\)edge/\1_ed_ge_label_/g"\
28 39
        -e "s/Edge/_Ar_c_label_/g"\
29 40
        -e "s/edge/_ar_c_label_/g"\
30
        -e "s/ANode/_Re_d_label_/g"\
31
        -e "s/BNode/_Blu_e_label_/g"\
32
        -e "s/A-Node/_Re_d_label_/g"\
33
        -e "s/B-Node/_Blu_e_label_/g"\
34
        -e "s/anode/_re_d_label_/g"\
35
        -e "s/bnode/_blu_e_label_/g"\
36
        -e "s/aNode/_re_d_label_/g"\
37
        -e "s/bNode/_blu_e_label_/g"\
41
        -e "s/A[Nn]ode/_Re_d_label_/g"\
42
        -e "s/B[Nn]ode/_Blu_e_label_/g"\
43
        -e "s/A-[Nn]ode/_Re_d_label_/g"\
44
        -e "s/B-[Nn]ode/_Blu_e_label_/g"\
45
        -e "s/a[Nn]ode/_re_d_label_/g"\
46
        -e "s/b[Nn]ode/_blu_e_label_/g"\
38 47
        -e "s/_Digr_aph_label_/Digraph/g"\
39 48
        -e "s/_digr_aph_label_/digraph/g"\
40 49
        -e "s/_Gr_aph_label_/Graph/g"\
41 50
        -e "s/_gr_aph_label_/graph/g"\
42 51
        -e "s/_Ar_c_label_/Arc/g"\
43 52
        -e "s/_ar_c_label_/arc/g"\
44 53
        -e "s/_Ed_ge_label_/Edge/g"\
45 54
        -e "s/_ed_ge_label_/edge/g"\
46 55
        -e "s/_In_cEd_geIt_label_/IncEdgeIt/g"\
47 56
        -e "s/_Re_d_label_/Red/g"\
48 57
        -e "s/_Blu_e_label_/Blue/g"\
49 58
        -e "s/_re_d_label_/red/g"\
50 59
        -e "s/_blu_e_label_/blue/g"\
60
        -e "s/DigraphToEps/GraphToEps/g"\
61
        -e "s/digraphToEps/graphToEps/g"\
51 62
        -e "s/\<DefPredMap\>/SetPredMap/g"\
52 63
        -e "s/\<DefDistMap\>/SetDistMap/g"\
53 64
        -e "s/\<DefReachedMap\>/SetReachedMap/g"\
54 65
        -e "s/\<DefProcessedMap\>/SetProcessedMap/g"\
55 66
        -e "s/\<DefHeap\>/SetHeap/g"\
56 67
        -e "s/\<DefStandardHeap\>/SetStandradHeap/g"\
57 68
        -e "s/\<DefOperationTraits\>/SetOperationTraits/g"\
58 69
        -e "s/\<DefProcessedMapToBeDefaultMap\>/SetStandardProcessedMap/g"\
59 70
        -e "s/\<copyGraph\>/graphCopy/g"\
60 71
        -e "s/\<copyDigraph\>/digraphCopy/g"\
61 72
        -e "s/\<IntegerMap\>/RangeMap/g"\
62 73
        -e "s/\<integerMap\>/rangeMap/g"\
0 comments (0 inline)