summaryrefslogtreecommitdiffhomepage
path: root/vhosts/blog/public/posts/2025-05-05/make-tiny-self-hosted-c-compiler/index.html
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-05-06 00:20:40 +0900
committernsfisis <nsfisis@gmail.com>2025-05-06 00:20:40 +0900
commitd8c7e198e4338be30a33909666083154056eedba (patch)
tree0c1c70f3f6d90dec91f9808506f14b732a451ff0 /vhosts/blog/public/posts/2025-05-05/make-tiny-self-hosted-c-compiler/index.html
parentbcca40d0e7a9ddf0a487cb2b0c9819f332ac73f2 (diff)
downloadnsfisis.dev-d8c7e198e4338be30a33909666083154056eedba.tar.gz
nsfisis.dev-d8c7e198e4338be30a33909666083154056eedba.tar.zst
nsfisis.dev-d8c7e198e4338be30a33909666083154056eedba.zip
feat(blog/nuldoc): fix processing of tight list
Diffstat (limited to 'vhosts/blog/public/posts/2025-05-05/make-tiny-self-hosted-c-compiler/index.html')
-rw-r--r--vhosts/blog/public/posts/2025-05-05/make-tiny-self-hosted-c-compiler/index.html64
1 files changed, 16 insertions, 48 deletions
diff --git a/vhosts/blog/public/posts/2025-05-05/make-tiny-self-hosted-c-compiler/index.html b/vhosts/blog/public/posts/2025-05-05/make-tiny-self-hosted-c-compiler/index.html
index f9195f29..2022f33b 100644
--- a/vhosts/blog/public/posts/2025-05-05/make-tiny-self-hosted-c-compiler/index.html
+++ b/vhosts/blog/public/posts/2025-05-05/make-tiny-self-hosted-c-compiler/index.html
@@ -96,14 +96,10 @@
</p>
<ul>
<li>
- <p>
- 宣言の文法を単純にパースできるものに絞る
- </p>
+ 宣言の文法を単純にパースできるものに絞る
<ul>
<li>
- <p>
- <code>typedef</code> をサポートしない
- </p>
+ <code>typedef</code> をサポートしない
<ul>
<li>
構造体には必ず <code>struct</code> キーワードを書く
@@ -111,9 +107,7 @@
</ul>
</li>
<li>
- <p>
- 配列型をサポートしない
- </p>
+ 配列型をサポートしない
<ul>
<li>
常にヒープに確保してポインタ経由で扱う
@@ -126,17 +120,13 @@
</ul>
</li>
<li>
- <p>
- 無くてもなんとかなる構文糖を実装しない。ソースを書くときに頑張る
- </p>
+ 無くてもなんとかなる構文糖を実装しない。ソースを書くときに頑張る
<ul>
<li>
インクリメント・デクリメント演算子 (1足したり引いたりする)
</li>
<li>
- <p>
- 複合代入演算子 (左辺と右辺で 2回書く)
- </p>
+ 複合代入演算子 (左辺と右辺で 2回書く)
<ul>
<li>
なお、<code>+=</code> と <code>-=</code> はセルフホスト達成後に実装された
@@ -144,9 +134,7 @@
</ul>
</li>
<li>
- <p>
- <code>while</code> (<code>for</code> で置き換える)
- </p>
+ <code>while</code> (<code>for</code> で置き換える)
<ul>
<li>
なお、<code>while</code> はセルフホスト達成後に実装された
@@ -162,9 +150,7 @@
</ul>
</li>
<li>
- <p>
- プリプロセッサのほとんどを実装しない
- </p>
+ プリプロセッサのほとんどを実装しない
<ul>
<li>
数値または識別子へ置換する単純な <code>#define</code> のみサポートする
@@ -175,9 +161,7 @@
</ul>
</li>
<li>
- <p>
- グローバル変数を用いない
- </p>
+ グローバル変数を用いない
<ul>
<li>
<code>stdin</code>、<code>stdout</code>、<code>stderr</code> を含む
@@ -191,9 +175,7 @@
</ul>
</li>
<li>
- <p>
- 変数のシャドウイングを実装しない
- </p>
+ 変数のシャドウイングを実装しない
<ul>
<li>
変数は常に関数スコープ
@@ -211,9 +193,7 @@
</p>
<ul>
<li>
- <p>
- 文
- </p>
+ 文
<ul>
<li>
<code>if</code> / <code>else</code>
@@ -236,14 +216,10 @@
</ul>
</li>
<li>
- <p>
- 式
- </p>
+ 式
<ul>
<li>
- <p>
- 二項演算
- </p>
+ 二項演算
<ul>
<li>
<code>+</code> / <code>-</code> / <code>*</code> / <code>/</code> / <code>%</code>
@@ -260,9 +236,7 @@
</ul>
</li>
<li>
- <p>
- 代入
- </p>
+ 代入
<ul>
<li>
<code>=</code>
@@ -293,9 +267,7 @@
</ul>
</li>
<li>
- <p>
- 型
- </p>
+ 型
<ul>
<li>
<code>char</code>
@@ -318,9 +290,7 @@
</ul>
</li>
<li>
- <p>
- 宣言・定義
- </p>
+ 宣言・定義
<ul>
<li>
関数
@@ -331,9 +301,7 @@
</ul>
</li>
<li>
- <p>
- プリプロセッサ
- </p>
+ プリプロセッサ
<ul>
<li>
引数なし <code>#define</code>