nutn-homepage/Home/Compiler/index.html
2021-09-16 20:45:54 +08:00

76 lines
2.4 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Assignment</title>
<link rel="stylesheet" href="lib/bootstrap.min.css">
<link rel="stylesheet" href="lib/codemirror.min.css">
<link rel="stylesheet" href="main.css">
</head>
<body>
<div id="root" class="container">
<h1>Lexical, Syntax & Semantic Analysis</h1>
<dl class="row mt-5">
<dt class="col-sm-2">Requirements: </dt>
<dd class="col-sm-10">
<pre>
# 保留字或運算子begin, for, end, if, then, else, while, int
# 運算子:+, -, *, /, =
# 判斷子:<, >, <=, >=, ==, and, or
# 若有詞法或語法錯誤,請印出並說明
# 請印出所有變數最後的狀態
# 自定義文法,使得以下範例成立:
begin
int x=0, zzz=5;
int i, j=1;
# 進行迴圈
for, i=1, i<=50, j; # j爲i每次遞增的值
x=x+1;
end
if ((x>5) and (j<=8)) then
x=1;
else
for, i=1, i<=50, j+1;
x=x+1;
end
while (i<11)
yy=x;
i=i+1;
end
end
end
</pre>
</dd>
<dt class="col-sm-2">Source Code: </dt>
<dd class="col-sm-10">
<div class="custom-file">
<input type="file" id="file" class="custom-file-input" @change="fileHandler">
<label class="custom-file-label" for="file">{{ file ? file.name : 'Choose file' }}</label>
<button type="button" class="btn btn-secondary" @click="fileHandler">Reload</button>
</div>
<div id="editor" class="editor"></div>
</dd>
<dt class="col-sm-2"></dt>
<dd class="col-sm-10">
<button type="button" class="btn btn-info" @click="lexer">Lex</button>
<button type="button" class="btn btn-info" @click="parser">Parse</button>
<button type="button" class="btn btn-primary" @click="run">Run</button>
<button type="button" class="btn btn-secondary" @click="reset">Clear</button>
</dd>
<hr>
<dt class="col-sm-2">Console: </dt>
<dd class="col-sm-10">
<pre class="error" v-if="error" v-text="error"></pre>
<pre v-if="!error && ids.length" v-for="(v, i) in ids">{{ v }}: {{ vars[i] }}</pre>
<p v-if="!error && lex.length" v-for="(l, i) in lex">{{ l }}</p>
<pre v-if="!error && json" v-text="json"></pre>
</dd>
</dl>
</div>
<script src="lib/codemirror.min.js"></script>
<script src="lib/vue-2.6.0.min.js"></script>
<script src="main.js"></script>
</body>
</html>