-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add html documents to 'text' menu tab
- Loading branch information
1 parent
0a3dce2
commit 0aec1e8
Showing
14 changed files
with
579 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,23 @@ | ||
using System.Diagnostics; | ||
using System.Text.RegularExpressions; | ||
|
||
namespace Compiler; | ||
|
||
public class HtmlHelper | ||
{ | ||
public static void OpenInBrowser(string filePath) | ||
public static void OpenInBrowser(string path) | ||
{ | ||
if (System.IO.File.Exists(filePath)) | ||
if (System.IO.File.Exists(path) || IsUrl(path)) | ||
{ | ||
Process p = new Process(); | ||
p.StartInfo = new ProcessStartInfo(filePath) { UseShellExecute = true }; | ||
p.StartInfo = new ProcessStartInfo(path) { UseShellExecute = true }; | ||
p.Start(); | ||
} | ||
} | ||
|
||
private static bool IsUrl(string input) | ||
{ | ||
string pattern = @"^(https?|ftp)://[^\s/$.?#].[^\s]*$"; | ||
return Regex.IsMatch(input, pattern); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
<title>Грамматика</title> | ||
<style> | ||
body { | ||
font-family: Arial, sans-serif; | ||
margin: 20px; | ||
} | ||
|
||
h2 { | ||
text-align: center; | ||
color: #333; | ||
} | ||
|
||
.grammar { | ||
font-family: 'Courier New', Courier, monospace; | ||
white-space: pre-wrap; | ||
background-color: #f9f9f9; | ||
padding: 20px; | ||
border-radius: 5px; | ||
box-shadow: 0 2px 5px rgba(0,0,0,0.1); | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
<h2>Грамматика</h2> | ||
<div class="grammar"> | ||
G[Z] = { V<sub>T</sub>, V<sub>N</sub>, P, Z }<br><br> | ||
Z = <целочисленная константа><br><br> | ||
V<sub>T</sub> = { ‘DECLARE’, ‘INTEGER’, ‘CONSTANT’, ‘a’…’z’, ‘A’…’Z’, ‘0’…’9’, ‘:’, ‘;’, ‘+’, ‘-‘, ‘=’, ‘_’ }<br><br> | ||
V<sub>N</sub> = { <целочисленная константа>, <выражение>, <константа>, <присваивание>, <число>, <знак>, <Б>, <Ц> }<br><br> | ||
P = {<br> | ||
 1. <целочисленная константа> → ‘DECLARE’ ( <выражение> )<sup>+</sup><br> | ||
 2. <выражение> → <id> <константа> <число> ’;’<br> | ||
 3. <id> → <Б> ( <Б> | <Ц> | ‘_’ )<sup>*</sup><br> | ||
 4. <константа> → ‘CONSTANT’ ’INTEGER’ <присваивание><br> | ||
 5. <число> → [ <знак> ] ( <Ц> )<sup>+</sup><br> | ||
 6. <присваивание> → [ ‘:’ ] ‘=’<br> | ||
 7. <знак> → { ‘+’ | ‘-‘ }<br> | ||
 8. <Б> → ‘a’ | ‘b’ | … | ‘z’ | ‘A’ | ‘B’ | … | ‘Z’<br> | ||
 9. <Ц> → ‘0’ | ‘1’ | … | ‘9’<br> | ||
} | ||
</div> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
<!DOCTYPE html> | ||
<html lang="ru"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
<title>Классификация грамматики</title> | ||
<style> | ||
body { | ||
font-family: Arial, sans-serif; | ||
line-height: 1.6; | ||
padding: 20px; | ||
max-width: 800px; | ||
margin: 0 auto; | ||
} | ||
|
||
h1 { | ||
color: #333; | ||
text-align: center; | ||
} | ||
|
||
p { | ||
color: #555; | ||
font-size: 18px; | ||
margin-bottom: 20px; | ||
} | ||
|
||
pre { | ||
background-color: #f4f4f4; | ||
padding: 10px; | ||
border-radius: 5px; | ||
} | ||
|
||
code { | ||
font-family: Consolas, monospace; | ||
font-size: 16px; | ||
} | ||
|
||
ul, ol { | ||
margin-left: 20px; | ||
margin-bottom: 20px; | ||
} | ||
|
||
li { | ||
font-size: 18px; | ||
color: #555; | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
<h1>Классификация грамматики</h1> | ||
<p>Понятие автоматных или регулярных грамматик было введено Н. Хомским как один из четырех классов формальных грамматик, обладающих самыми строгими ограничениями на форму записи правил вывода. Формально такие грамматики можно определить следующим образом:</p> | ||
<p>Пусть <code>G = (V<sub>T</sub>, V<sub>N</sub>, P, Z)</code> - формальная грамматика, где:</p> | ||
<ul> | ||
<li><code>V<sub>T</sub></code> - множество терминальных символов,</li> | ||
<li><code>V<sub>N</sub></code> - множество нетерминальных символов,</li> | ||
<li><code>P</code> - множество правил вывода,</li> | ||
<li><code>Z</code> - стартовый символ.</li> | ||
</ul> | ||
<p>Тогда автоматная грамматика имеет следующую структуру правил вывода:</p> | ||
<pre><code>A → aB | a | ε</code></pre> | ||
<p>Где:</p> | ||
<ul> | ||
<li><code>A ∈ V<sub>N</sub></code> - нетерминальный символ в левой части правила,</li> | ||
<li><code>a ∈ V<sub>T</sub></code> - терминальный символ,</li> | ||
<li><code>B ∈ V<sub>N</sub></code> - нетерминальный символ,</li> | ||
<li><code>ε</code> - пустая строка.</li> | ||
</ul> | ||
<p>Это означает, что:</p> | ||
<ol> | ||
<li>В левой части правила может быть только один нетерминальный символ.</li> | ||
<li>В правой части правила может быть либо один терминальный символ и один нетерминальный символ, либо только один терминальный символ, либо пустая строка.</li> | ||
</ol> | ||
<p>Грамматика, разработанная в этой программе, соответствует описанию автоматной грамматики, что подтверждает ее строгие ограничения на форму записи правил вывода.</p> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
<!DOCTYPE html> | ||
<html lang="ru"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
<title>Список литературы</title> | ||
<style> | ||
body { | ||
font-family: Arial, sans-serif; | ||
line-height: 1.6; | ||
padding: 20px; | ||
max-width: 800px; | ||
margin: 0 auto; | ||
} | ||
|
||
h1 { | ||
color: #333; | ||
text-align: center; | ||
} | ||
|
||
p { | ||
color: #555; | ||
font-size: 18px; | ||
margin-bottom: 20px; | ||
} | ||
|
||
pre { | ||
background-color: #f4f4f4; | ||
padding: 10px; | ||
border-radius: 5px; | ||
} | ||
|
||
code { | ||
font-family: Consolas, monospace; | ||
font-size: 16px; | ||
} | ||
|
||
ul, ol { | ||
margin-left: 20px; | ||
margin-bottom: 20px; | ||
} | ||
|
||
li { | ||
font-size: 18px; | ||
color: #555; | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
|
||
<h1>Список литературы</h1> | ||
|
||
<h2 id="учебник">Оглавление</h2> | ||
|
||
<ul> | ||
<li><a href="#учебник">Учебник</a></li> | ||
<li><a href="#основная-литература">Основная литература</a></li> | ||
<li><a href="#дополнительная-литература">Дополнительная литература</a></li> | ||
</ul> | ||
|
||
<h2 id="учебник">Учебник</h2> | ||
<p><a href="https://elibrary.nstu.ru/source?id=178996">Теория языков программирования: проектирование и реализация : учебное пособие / Ю. В. Шорников. – Новосибирск : Изд-во НГТУ, 2022. – 290 с. – (Учебники НГТУ).</a></p> | ||
|
||
<h2 id="основная-литература">Основная литература</h2> | ||
<ol> | ||
<li><a href="https://drive.google.com/file/d/0B5gm1TvcuJNYemliM3I5blZUQXc/view?resourcekey=0-Ph6AFSFSzSwsUNnajqDGdg">Грис Д. Конструирование компиляторов для цифровых вычислительных машин / Д. Грис ; пер. с. англ. Е. Б. Докшицкой, Л. А. Зелениной, Л. Б. Морозовой, В. С. Штаркмана, под ред. Ю. М. Баяковского, Вс. С. Штаркмана. - М., 1975. - 544 с. : табл., схемы</a></li> | ||
<li><a href="https://djvu.online/file/fb8K9Mrk5vQF3">Ахо А. В. Компиляторы : Принципы, технологии, инструменты / А. Ахо, Р. Сети, Д. Ульман. - М., 2003. - 768 с.</a></li> | ||
<li><a href="https://elibrary.nstu.ru/source?id=42001">Малявко, А. А. Формальные языки и компиляторы : учебник / Малявко А. А. - Новосибирск : Изд-во НГТУ, 2014. - 431 с. (Серия "Учебники НГТУ")</a></li> | ||
<li><a href="http://lib.tau-edu.kz/wp-content/uploads/2023/01/%D0%A1%D0%B2%D0%B5%D1%80%D0%B4%D0%BB%D0%BE%D0%B2-%D0%A1.%D0%97.-%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D0%B8.pdf">Свердлов С. З. Языки программирования и методы трансляции: Учебное пособие. — 2е изд., испр. — СПб.: Издательство «Лань», 2019. — 564 с.: ил. — (Учебники для вузов. Специальная литература).</a></li> | ||
<li><a href="https://djvu.online/file/3oLSmFNfgicD4">Мозговой М. В. Классика программирования : алгоритмы, языки, автоматы, компиляторы : практический подход / Мозговой М. В. - СПб., 2006. - 320 с. : ил.</a></li> | ||
</ol> | ||
|
||
<h2 id="дополнительная-литература">Дополнительная литература</h2> | ||
<ol> | ||
<li><a href="https://djvu.online/file/etaotYd4S9NzT">Льюис Ф. Теоретические основы проектирования компиляторов / Ф. Льюис, Д. Розенкранц, Р. Стирнз ; пер. с англ. В. А. Исаева [и др.] ; под ред. В. Н. Агафонова. - М., 1979. - 654 с.</a></li> | ||
<li><a href="https://reallib.org/reader?file=793152">Вайнгартен Ф. Трансляция языков программирования : [монография] / Ф. Вайнгартен ; пер. с англ. Л. В. Ухова, под ред. В. В. Мартынюка. - М., 1977. - 190 с. : схемы</a></li> | ||
<li><a href="https://djvu.online/file/EWxC8PG8F3UBo">Лебедев В. Н. Введение в системы программирования. - М., 1975. - 311 с. : ил.</a></li> | ||
</ol> | ||
|
||
</body> | ||
</html> |
Oops, something went wrong.