6 \title{\spatch and
\sgrep manual
}
10 %##############################################################################
11 \chapter{Introduction
}
13 %_semantic_ patch and grep
18 %%SMPL => semantic match and patch language ?
31 %submit idea/patch/ or even semantic patch :) to xxx@xxx
33 %##############################################################################
34 \chapter{Building
\spatch and
\sgrep}
36 \section{Requirements
}
48 %##############################################################################
53 \section{SmPL piece by pieces
}
56 %bigger ex, show different C constructs.
64 %first process/workflow ?
82 %then '...' and multi usage (in arg, struct, statement)
87 %then multi rules and multi usage
91 %##############################################################################
92 \chapter{Advanced features
}
94 \subsection{Multi files
}
97 %src: a mail from julia
99 %Tu peux maintenant mettre des positions partout. C'est interdit d'heriter
100 %une position a travers une regle qui fait une modif.
102 %Tu peux declarer une position avec des contraintes, eg
104 %position p1 != {x.p2, y.p3};
106 %Entre les premiers @@ d'une regle, tu peux mettre "expression" et avoir
107 %une meilleure parsing. Ca permet par exemple de faire:
109 %<... f() ...> + <... g() ...>
111 %pour decrire un + qui a f() et g() quelquepart comme arguements.
113 %Pour les }, j'ai mis un champ "is_fake" dans les noeuds, avec is_loop,
116 \subsection{Embeded Python scripting
}
118 \subsection{More on ...
}
120 exists annotation on rule
122 'when any' and shortest path
128 %##############################################################################
130 %put additionnal commented scripts ?
134 %##############################################################################
135 \chapter{Developing a semantic patch
}
139 \subsection{Emacs mode
}
141 \subsection{Basic worflow
}
143 \subsection{Linux workflow and git
}
150 \subsection{Debugging a semantic patch/match
}
153 %##############################################################################
154 \chapter{\spatch/
\sgrep command line options
}
161 %##############################################################################
162 \chapter{Other tools
}
177 %patch handling (splitter, mailer, maintainer)
183 %##############################################################################
201 %comments, c vs cocci comments
207 \section{Metavariables
}
209 %scoped metavar and rules
215 \section{Expressions
}
219 %cf also position trick
233 \section{Isomorphisms
}
239 %extra file standard.h
244 \section{cpp quircks
}
249 %also extra file standard.h
251 %##############################################################################
257 %index of concepts ? keywords ?