タグ

2013年12月4日のブックマーク (3件)

  • goyaccを使う - Qiita

    goにはコンパイラ以外にもいくつか便利なツールがついてきていて、goyaccもその一つだ。yaccはパーサージェネレータで、プログラミング言語みたいな言語を読み取るためのプログラムを生成してくれる。goyaccはそのGo言語バージョンとなっている。 この文章では、簡単な言語を処理するプログラムを作りながら、goyaccを用いた構文解析の方法について説明する。 プログラム全体はdraftcode/goyacc_sampleで参照できる。文章中では抜粋しか載せないので、足りない部分はこちらをみて補って欲しい。 生成する言語 実際に字句解析器や構文解析器を作りながら説明するため、簡単な計算機のようなものを作ることにしよう。作る言語は次のような構文を持つ言語だ。 字句解析器 字句解析器は、文字列としてのソースコードからトークン列としてのソースコードへ変換するプログラムだ。 プログラムのソースコード

    goyaccを使う - Qiita
  • C言語とGo言語で標準出力が端末を参照しているかどうかを判定する - ryochack.blog

    標準出力のディスクリプタを取得して、それが端末を参照しているかどうかを判定する。 使いどころは端末に出力する時と、ファイルにリダイレクト出力する時とで表示の仕方を変えたいとき。 例えば、以下のページの方法でターミナルの文字をカラーにできる。 C言語でターミナルで表示される文字をカラー表示させる だけど、これをファイルにリダイレクト出力するとエスケープシーケンスまで記録されてしまい、非常に見づらくなる。 そこで、標準出力がどこに出力されるかを判定し、カラーのON/OFFを切り替える処理を入れるようにしたい。 出力先が端末かどうかの判定は、Cだとこう書く。 #include <stdio.h> #include <unistd.h> int main() { int fd = fileno(stdout); int isTerminal = isatty(fd); printf("fd=%d,

    C言語とGo言語で標準出力が端末を参照しているかどうかを判定する - ryochack.blog
  • Advent Calendar 3日目:SVG画像を1バイトでも削るためのコードゴルフ - 聴く耳を持たない(片方しか)

    このエントリーはGraphical Web Advent Calendar 2013 への参加記事です。 今日は12月3日、ということで Advent Calendar の3日目は私id:rikuoが担当します。今回はSVG画像ファイルを1バイトでも削るためのコードゴルフのTipsを紹介していきます。 コードゴルフって? まずコードゴルフとはなにか?の説明から。 コードゴルフとは任意のソースコードを出来るだけ短く書くことを目的にしたものです。そのコードの動作を損なわなず、かつ可能な限り短縮して記述する手法を試行錯誤していく様子が、ゴルフのように少ない打法で競うところに似ていることからこのように呼ばれています。 またそれを競技としたコンテストも催されていますね。 画像のファイルサイズ低減策 JPEG、GIF、PNGといったビットマップ画像であればファイルサイズを低減する方法やソフトウェア・ツ

    Advent Calendar 3日目:SVG画像を1バイトでも削るためのコードゴルフ - 聴く耳を持たない(片方しか)