Skip to content

Commit 7654ce3

Browse files
author
Matthieu Lemerre
committed
Add landing page
1 parent 984419f commit 7654ce3

File tree

5 files changed

+752
-19
lines changed

5 files changed

+752
-19
lines changed

assets/codexoutputs/abs.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/* dune exec frama-c -- -codex -machdep x86_32 abs.c -codex-html-dump output.html -codex-type-file test.types -codex-overflow-alarms -main abs && cat test.dump */
2+
/* dune exec frama-c -- -codex -machdep x86_32 -codex-print -codex-no-print-value -ulevel -1 abs.c -main abs -codex-exp-dump test.dump -codex-html-dump output.html -codex-type-file test.types -codex-overflow-alarms */
3+
int abs(int x){
4+
int res;
5+
if(x < 0)
6+
res = -x;
7+
else
8+
res = x;
9+
return res;
10+
}

assets/codexoutputs/abs.notypes.html

Lines changed: 338 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,338 @@
1+
2+
<!DOCTYPE HTML>
3+
<html lang="en">
4+
5+
<head>
6+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
7+
<script type='text/javascript'>
8+
clicked = [];
9+
10+
$(document).ready(function () {
11+
12+
$(".expnest").mouseup(function () {
13+
$(this).css({"background-color": $(this).css("background-color"), "color": "black"});
14+
$("#eidinfo" + $(this).attr("data-eid")).show();
15+
clicked.push($(this));
16+
});
17+
18+
$(".expnest").hover(
19+
function () {
20+
if (clicked.length == 0) {
21+
$(this).css({"background-color": $(this).css("background-color"), "color": "black"});
22+
$("#eidinfo" + $(this).attr("data-eid")).show();
23+
}
24+
},
25+
function () {
26+
if (clicked.length == 0) {
27+
$(this).removeAttr('style');
28+
$("#eidinfo" + $(this).attr("data-eid")).hide();
29+
}
30+
});
31+
32+
$(".code-container").mousedown(function (e) {
33+
if ((e.offsetX <= e.target.clientWidth && e.offsetY <= e.target.clientHeight) ||
34+
(e.target.clientWidth == 0 && e.target.clientHeight == 0)) {
35+
clicked.forEach(c => {c.removeAttr('style'); $("#eidinfo" + c.attr("data-eid")).hide();});
36+
clicked = [];
37+
}
38+
});
39+
40+
});
41+
</script>
42+
<style>
43+
44+
.def {
45+
display: none;
46+
}
47+
48+
.expnest:hover+.expinfo>.def {
49+
display: inline-block;
50+
}
51+
52+
.expinfo {
53+
border: 1px solid black;
54+
border-radius: 12px;
55+
}
56+
57+
.expinfo>.eidinfo {
58+
display: none;
59+
}
60+
61+
.expnest0:hover {
62+
background-color: #DDFFD6;
63+
color: #000000;
64+
}
65+
66+
.expnest1:hover {
67+
background-color: #FFC2C2;
68+
color: #000000;
69+
}
70+
71+
.expnest2:hover {
72+
background-color: #ADF8FF;
73+
color: #000000;
74+
}
75+
76+
.expnest3:hover {
77+
background-color: #FEFFD6;
78+
color: #000000;
79+
}
80+
81+
.expnest4:hover {
82+
background-color: #DCD6FF;
83+
color: #000000;
84+
}
85+
86+
.expnest5:hover {
87+
background-color: #FFE3C2;
88+
color: #000000;
89+
}
90+
91+
.expnest6:hover {
92+
background-color: #C2D9FF;
93+
color: #000000;
94+
}
95+
96+
.expnest7:hover {
97+
background-color: #F9C8E0;
98+
color: #000000;
99+
}
100+
101+
.expnest8:hover {
102+
background-color: #DCD6FF;
103+
color: #000000;
104+
}
105+
106+
.expnest9:hover {
107+
background-color: #BDB2FF;
108+
color: #000000;
109+
}
110+
111+
.expnest10:hover {
112+
background-color: #FFECD6;
113+
color: #000000;
114+
}
115+
116+
.expnest11:hover {
117+
background-color: #FFD6A5;
118+
color: #000000;
119+
}
120+
121+
.expnest12:hover {
122+
background-color: #D6E6FF;
123+
color: #000000;
124+
}
125+
126+
.expnest13:hover {
127+
background-color: #A0C4FF;
128+
color: #000000;
129+
}
130+
131+
.expnest14:hover {
132+
background-color: #FBDAEB;
133+
color: #000000;
134+
}
135+
136+
.expnest15:hover {
137+
background-color: #F7B6D7;
138+
color: #000000;
139+
}
140+
141+
.expnest0 {
142+
background-color: #f0f0f0;
143+
}
144+
145+
.font-expnest0 {
146+
background-color: #DDFFD6;
147+
}
148+
149+
.font-expnest1 {
150+
background-color: #FFC2C2;
151+
}
152+
153+
.font-expnest2 {
154+
background-color: #ADF8FF;
155+
}
156+
157+
.font-expnest3 {
158+
background-color: #FEFFD6;
159+
}
160+
161+
.font-expnest4 {
162+
background-color: #DCD6FF;
163+
}
164+
165+
.font-expnest5 {
166+
background-color: #FFE3C2;
167+
}
168+
169+
.font-expnest6 {
170+
background-color: #C2D9FF;
171+
}
172+
173+
.font-expnest7 {
174+
background-color: #F9C8E0;
175+
}
176+
177+
.font-expnest8 {
178+
background-color: #DCD6FF;
179+
}
180+
181+
.font-expnest9 {
182+
background-color: #BDB2FF;
183+
}
184+
185+
.font-expnest10 {
186+
background-color: #FFECD6;
187+
}
188+
189+
.font-expnest11 {
190+
background-color: #FFD6A5;
191+
}
192+
193+
.font-expnest12 {
194+
background-color: #D6E6FF;
195+
}
196+
197+
.font-expnest13 {
198+
background-color: #A0C4FF;
199+
}
200+
201+
.font-expnest14 {
202+
background-color: #FBDAEB;
203+
}
204+
205+
.font-expnest15 {
206+
background-color: #F7B6D7;
207+
}
208+
209+
body {
210+
/* background-color: #001B2E; */
211+
}
212+
213+
.code-container {
214+
font-family: monospace;
215+
font-size: 14px;
216+
line-height: 1.5;
217+
color: /* #FFF8EB; */ #000000;
218+
overflow: auto;
219+
height: 92vh;
220+
}
221+
222+
.expinfo {
223+
/* background-color: #ADB6C4; */
224+
background-color: #eeeeee;
225+
padding: 10px;
226+
font-family: sans;
227+
font-size: 14px;
228+
line-height: 1.5;
229+
color: #000;
230+
}
231+
232+
.column {
233+
float: left;
234+
overflow: auto;
235+
}
236+
237+
.row:after {
238+
content: "";
239+
display: table;
240+
clear: both;
241+
}
242+
243+
/* Syntax highlighting for C keywords */
244+
.code-container .keyword {
245+
color: #800080 /* 579dd6;
246+
font-weight: bold; */
247+
}
248+
249+
.code-container .type {
250+
color: #228b22;
251+
}
252+
253+
.code-container .vardecl {
254+
color: #a0522d;
255+
}
256+
257+
/* Syntax highlighting for C comments */
258+
.code-container .comment {
259+
color: #6a9955;
260+
/* green */
261+
font-style: italic;
262+
}
263+
264+
/* Syntax highlighting for C strings */
265+
.code-container .string {
266+
color: #ce9079;
267+
/* red */
268+
}
269+
270+
/* Syntax highlighting for C numbers */
271+
.code-container .number {
272+
color: #b5cea8;
273+
/* orange */
274+
}
275+
276+
/* Syntax highlighting for C preprocessor directives */
277+
.code-container .preprocessor {
278+
color: #c586c0;
279+
/* gray */
280+
}
281+
282+
/* Syntax highlighting for C functions */
283+
.code-container .function-name {
284+
color: #0000ff;
285+
}
286+
287+
.scrollbar::-webkit-scrollbar-track
288+
{
289+
border: 1px solid black;
290+
background-color: #FFF8EB;
291+
}
292+
293+
.scrollbar::-webkit-scrollbar
294+
{
295+
width: 10px;
296+
}
297+
298+
.scrollbar::-webkit-scrollbar-thumb
299+
{
300+
background-color: #ADB6C4;
301+
}
302+
</style>
303+
<meta http-equiv="content-type" content="text/html; charset=utf-8">
304+
<title>Frama-C/Codex Analysis results</title>
305+
</head>
306+
307+
<body>
308+
<div class="row">
309+
<pre class="scrollbar column code-container" style="width: 45%; margin: 0px;">
310+
<a name="vi-global-abs"></a><span class="type"><span class="type"><span class="type">int</span> <span class="vardecl"><span class="vardecl"><a data-eid="0" href="#vi-global-abs" class="expnest expnest0 function-name">abs</a></span>(<span class="type"><span class="type">int</span> <span class="vardecl">x</span></span>)</span></span></span>
311+
{
312+
<span class="type"><span class="type">int</span> <span class="vardecl">res</span></span>;
313+
<span class="keyword">if</span> (<span data-eid="1" class="expnest expnest0"><span data-eid="2" class="expnest expnest1"><span data-eid="3" class="expnest expnest1">x</span></span> &lt; <span data-eid="4" class="expnest expnest1">0</span></span>) <span class="statement"><span data-eid="5" class="expnest expnest0">res</span> = <span data-eid="6" class="expnest expnest0">- <span data-eid="7" class="expnest expnest1"><span data-eid="8" class="expnest expnest1">x</span></span></span>;</span> <span class="keyword">else</span> <span class="statement"><span data-eid="9" class="expnest expnest0">res</span> = <span data-eid="10" class="expnest expnest0"><span data-eid="11" class="expnest expnest0">x</span></span>;</span>
314+
<span class="keyword">return</span> <span data-eid="12" class="expnest expnest0"><span data-eid="13" class="expnest expnest0">res</span></span>;
315+
}
316+
317+
318+
</pre><div class="column expinfo" style="height: 92vh; width: 54%; padding: 0px;"><div class="scrollbar" style="padding: 10px; font-family: sans; background-color: #8C96A7; color: black; min-height: 5vh; max-height: 20vh; overflow: auto;">
319+
<div style="font-variant: small-caps">Unproved alarms:</div>
320+
<div style="font-family: monospace">abs.c:6: Signed_overflow(- x <=
321+
2147483647) {true;false}</div>
322+
<div style="font-variant: small-caps">Proved 1/2 alarms</div></div>
323+
<hr style="border: 1px solid black; margin: 0px;">
324+
<table style="width: 100%"> <tr> <th style="font-style: italic">/</th> <th>Name</th> <th>Type</th> <th>Value</th> </tr><tr class="font-expnest0 eidinfo" id="eidinfo1" style="display: none"><td>Expr</td> <td>x < 0</td> <td>int</td> <td>{0; 1}</td></tr>
325+
<tr class="font-expnest1 eidinfo" id="eidinfo2" style="display: none"><td>Expr</td> <td>x</td> <td>int</td> <td>[--..--]</td></tr>
326+
<tr class="font-expnest1 eidinfo" id="eidinfo3" style="display: none"><td>Lval</td> <td>x</td> <td>int</td></tr>
327+
<tr class="font-expnest1 eidinfo" id="eidinfo4" style="display: none"><td>Expr</td> <td>0</td> <td>int</td> <td>{0}</td></tr>
328+
<tr class="font-expnest0 eidinfo" id="eidinfo5" style="display: none"><td>Lval</td> <td>res</td> <td>int</td></tr>
329+
<tr class="font-expnest0 eidinfo" id="eidinfo6" style="display: none"><td>Expr</td> <td>- x</td> <td>int</td> <td>[1..0x7FFFFFFF]</td></tr>
330+
<tr class="font-expnest1 eidinfo" id="eidinfo7" style="display: none"><td>Expr</td> <td>x</td> <td>int</td> <td>[-0x80000000..-1]</td></tr>
331+
<tr class="font-expnest1 eidinfo" id="eidinfo8" style="display: none"><td>Lval</td> <td>x</td> <td>int</td></tr>
332+
<tr class="font-expnest0 eidinfo" id="eidinfo9" style="display: none"><td>Lval</td> <td>res</td> <td>int</td></tr>
333+
<tr class="font-expnest0 eidinfo" id="eidinfo10" style="display: none"><td>Expr</td> <td>x</td> <td>int</td> <td>[0..0x7FFFFFFF]</td></tr>
334+
<tr class="font-expnest0 eidinfo" id="eidinfo11" style="display: none"><td>Lval</td> <td>x</td> <td>int</td></tr>
335+
<tr class="font-expnest0 eidinfo" id="eidinfo12" style="display: none"><td>Expr</td> <td>res</td> <td>int</td> <td>[0..0x7FFFFFFF]</td></tr>
336+
<tr class="font-expnest0 eidinfo" id="eidinfo13" style="display: none"><td>Lval</td> <td>res</td> <td>int</td></tr>
337+
<tr class="font-expnest0 eidinfo" id="eidinfo0" style="display: none"><td>Func</td> <td>abs</td> <td>undefined ctype</td></tr>
338+
</table></div></body></html>

assets/codexoutputs/abs.types

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
(int with self >= 0) abs((int with self >= 0-1000) x);

0 commit comments

Comments
 (0)