1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
#!/bin/sh
# $Id: mkstri.sh,v 6.16 2012-01-09 14:22:20 deraugla Exp $
top=../..
file=$top/test/quot_r.ml
quotation_list="$*"
if [ "$quotation_list" = "" ]; then
quotation_list="expr patt ctyp str_item sig_item module_expr module_type class_expr class_type class_str_item class_sig_item type_decl with_constr poly_variant"
fi
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- $Id: mkstri.sh,v 6.16 2012-01-09 14:22:20 deraugla Exp $ -->
<!-- Copyright (c) INRIA 2007-2012 -->
<title>AST - strict</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link rel="stylesheet" type="text/css" href="styles/base.css"
title="Normal" />
<style type="text/css">
.nodelist { margin-left: 2cm }
table { margin-left: 1cm }
td { padding-right: 2mm }
</style>
</head>
<body>
<div id="menu">
</div>
<div id="content">
<h1 class="top">Syntax tree - strict mode</h1>
<div id="tableofcontents">
</div>
<h2>Nodes and Quotations</h2>'
for q in $quotation_list; do
if [ "$q" = "expr" -o "$q" = "patt" -o "$q" = "ctyp" ]; then
n=3
else
do3=""
if [ "$q" = "str_item" -o "$q" = "sig_item" -o "$q" = "module_expr" -o \
"$q" = "module_type" ]
then
if [ "$tit3" != "modules..." ]; then do3="modules..."; fi
elif [ "$q" = "class_expr" -o "$q" = "class_type" -o \
"$q" = "class_str_item" -o "$q" = "class_sig_item" ]
then
if [ "$tit3" != "classes..." ]; then do3="classes..."; fi
else
if [ "$tit3" != "other" ]; then do3="other"; fi
fi
if [ "$do3" != "" ]; then
tit3="$do3"
echo
echo "<h3>$tit3</h3>"
fi
n=4
fi
echo
echo "<h$n>$q</h$n>"
echo
h="$(grep $q: $file | sed -e 's/^.*: //; s/...$//')"
if [ "$h" != "" ]; then
echo "<p>$h</p>"
echo
fi
class=' class="nodelist"'
if [ "$q" = "type_decl" ]; then
class="";
echo '<dl>'
echo ' <dd>'
fi
$top/meta/camlp5r -nolib $top/meta/q_MLast.cmo $top/etc/pr_r.cmo -l200 -impl $top/test/quot_r.ml |
paste -d@ $file - |
sed -e 's/(\*.*\*)@//; /\*)$/N; s/\n//' |
grep "<:$q<" |
sed -e "s|(\* | </dd>@</dl>@<dl$class>@ <dt>- |" |
sed -e 's| \*)|</dt>@ <dd>@ <tt style="color:blue">|' |
sed -e 's|&|\&|g; s|<:\([a-z_]*\)<|\<:\1\<|' |
sed -e 's|{<|{\<|; s| < | \< |' |
sed -e 's| >>;@| >></tt><br/>@ <tt style="color:red">|' |
sed -e 's|;$|</tt>|' |
sed -e 's|^&| <br/><br/>@ <tt style="color:blue">\&|' |
sed -e '1s|^ </dd>[^@]*@[^@]*@||' |
sed -e '1s|^ <br/><br/>@||' |
tr '@' '\n'
echo ' </dd>'
echo '</dl>'
done
echo
echo '<div class="trailer">
</div>
</div>
</body>
</html>'
|