Flat Leon Works

アプリやゲームを作ってます。

Nim

【Nim】マクロプログラミング用メモ

Nim

ドキュメント : macrosモジュール 定数 型の種類一覧 NimTypeKind = enum ntyNone, ntyBool, ntyChar, ntyEmpty, ntyAlias, ntyNil, ntyExpr, ntyStmt, ntyTypeDesc, ntyGenericInvocation, ntyGenericBody, ntyGenericInst, ntyGenericParam, ntyDistinct, …

【Nim】コンパイラソースコードリーディングのためのメモ

Nim

ファイル トークン種類(tk) ASTノード種類(nk) シンボル種類(sk) シンボルフラグ(sf) 内部型種類(ty) 内部型フラグ(tf) コンパイラマジック定数(m) ファイル compiler main.nim : コンパイラ起点 lexer.nim : レキサー parser.nim : パーサー ast.nim : AST …

【Nim】クラス定義マクロを作ってみる

Nim

Nimにはクラスという概念がありません。しかし、オブジェクト指向プログラミング自体はサポートされており、object型を使えばクラスとほぼ同じことが可能になっています。ただし、object型の定義が微妙に面倒なことに加え、やはりクラスが欲しいということで…

【Nim】seq型とstring型のリファレンスの罠

Nim

[執筆時のNimバージョン : 0.17.2] seq型とstring型のリファレンスの罠に引っかかったので、記事に残しておこうと思います。 罠を紹介するために事前知識として「seq型とstring型のデフォルト値」と「リファレンスのデフォルト値」について説明します。 まず…

【Nim】文字列操作

Nim

Nimでの文字列操作関連をまとめてみました。 Nimのバージョンは 0.17.2 を想定しています。( 執筆時の最新バージョン ) 文字列の基本 文字、文字列リテラル 文字、文字列型 文字列関連モジュール 標準モジュール(system,strutils)の文字列関連プロシージャ …

NimとC++を比較してみる

この記事は「Nim Advent Calendar 2017」の記事として登録させてもらっています。 NimはNimソースコードをC言語ソースへ変換するトランスコンパイラ言語です。これは普段C++を使っている人にとって非常に重要なことです。なぜなら、C++(C言語)が使える環境な…

【Nim】個人的逆引きリファレンス

Nim

Nimの勉強を兼ねて逆引きリファレンスとしてまとめてみようと思います。(随時更新) この記事は「Nim Advent Calendar 2017」の記事として登録させてもらっています。 注意: 使用しているNimのバージョンは0.17.2です Nimに詳しいわけではないので変な書き方…

【Nim】メモ

Nim

基本情報 作者 : Andreas Rumpfさん ( GitHubではAraqという名前 ) リンク 公式 公式サイト : Nim programming language | Nim Nimの特徴 : Features | Nim Nimインストール方法 : Install | Nim 言語マニュアル : Nim Manual BNF風文法定義 : Grammar 標準…