@parser-generator/cli
Version:
A Parser Generator that supports LL,SLR,LR1,LALR
91 lines (86 loc) • 1.62 kB
HTML
<style>
body {
font-size: 16px;
}
table,
td {
border: 1px solid #DCDFE6;
border-collapse: collapse;
border-spacing: 0px;
}
table td {
min-width: 50px;
padding: 5px 10px
}
#mynetwork {
width: 90%;
height: 2000px;
border: 1px solid lightgray;
}
</style>
<body>
<h1>Productions</h1>
<table>
<tr>
<td>id</td>
<td>body</td>
<td>action</td>
</tr>
<% for (let prod of prods){ %>
<tr>
<td> <%- prod.id %> </td>
<td> <%- prod.head + '->' + prod.body.join(' ') %> </td>
<td> <%- prod.action %> </td>
</tr>
<% } %>
</table>
<% if(first!=undefined){ %>
<!-- First 集 -->
<h1>First Set</h1>
<table>
<% for (var i=0; i<first.length; i++){ %>
<tr>
<% for (var j=0; j<first[i].length; j++){ %>
<td> <%- first[i][j] %> </td>
<% }; %>
</tr>
<% }; %>
</table>
<% } %>
<% if(follow!=undefined){ %>
<!-- Follow 集 -->
<h1>Follow Set</h1>
<table>
<% for (var i=0; i< follow.length; i++){ %>
<tr>
<% for (var j=0; j< follow[i].length; j++){ %>
<td> <%- follow[i][j] %> </td>
<% }; %>
</tr>
<% }; %>
</table>
<% } %>
<% if(lrTable!=undefined){ %>
<!-- LR 分析表 -->
<h1>LR Parsing Table</h1>
<table>
<% for (var i=0; i< lrTable.length; i++){ %>
<tr>
<% for (var j=0; j< lrTable[i].length; j++){ %>
<td> <%- lrTable[i][j] %> </td>
<% }; %>
</tr>
<% }; %>
</table>
<% } %>
<% if(lrAutomata!=undefined){ %>
<h1>LR Automata</h1>
<!-- LR 自动机 -->
<div id="mynetwork"></div>
<script id="automataJson" type="application/json">
<%= lrAutomata %>
</script>
<% } %>
</body>
</html>