vimでRust書いてたら出てきたWarningについて

みなさんエディタは何を使ってますか?
私はvimです。

最近RustにハマってるのでvimでRustを書きやすくするためにプラグインを追加で入れました。
qiita.com

導入に関してはこちらが分かりやすいです。

続きを読む

自宅のネット回線が重すぎるので調べてみた

昨年度の夏ごろから急に夜間での回線速度が落ちた気がしました。(昼は安定して使える)

以前は普通に使えたのですが、ある日を境にスマートフォンの通信速度制限なみの速度になっていたので、とりあえず速度を計ってみました。

続きを読む

caperを使って簡単に簡易的な電卓を作る

この記事はAizu Advent Calendar 2016の15日目の記事です。

はじめに

艦これイベントとテストとHaskellにどっぷりハマって内容薄いです(本当にすいません)。

数日前、構文解析に使うパーサジェネレータを探していたらcaperを見つけました。

構文解析?パーサジェネレータ?なにそれ?みたいな方はこちらへ
構文解析 - Wikipedia

caperとは

caperとはモダンでクリーンなC++コードを出力するパーサジェネレータで、C++以外にもJavaScript/C#/D/Java/Boo/Ruby/PHP/Haxeにも対応しているみたいです。
こんな感じで定義できます。

非終端記号名<非終端記号の型> : [セマンティックアクション名] 項 項
                             | [セマンティックアクション名] 項(0) 項(1)
                             | [セマンティックアクション名] 項(0) 項 項(1)
                             ;

(0)とか(1)とか付けるとセマティックアクションに引数として渡すことができます。

詳しくはこちら。

caper -- LALR(1) パーサジェネレータ

パーサジェネレータ"caper"の紹介 - Qiita

続きを読む

言語実装したいなって話

唐突にプログラミング言語を作りたくなったので勉強してます。

まだ勉強中ですが、正規表現を用いた字句解析とcaperでparser作って文法規則を作って構文解析しようかなと。caperがC#にも対応してるみたいなのでC#C++どっちで実装しようか悩んでます。正直GCほしい。