2008-02-01から1ヶ月間の記事一覧

PDF::Writer:ImageInfo

require 'pdf/writer' f = open('images/chunkybacon.jpg') image = f.read i = PDF::Writer::Graphics::ImageInfo.new(image) p i.instance_variables p [i.format, i.height, i.width, i.bits, i.channels, i.info] で、 ["@channels", "@width", "@info",…

『とほほのJava入門』「その他 jarファイルを作る」

『とほほのJava入門』を読んでいるところ21. その他 の「jarファイルを作る」 ページのソースをそのまま試す。jar ファイル(の実行)ってこういうものだったのか。なかなか面白い。

lex を試す。トークン定義が正規表現でないと?

「t_PLUS = r'\+'」を「t_PLUS = '+'」にしてみる #!/usr/bin/env python import ply.lex as lex tokens = ( 'CHAR', 'PLUS', ) t_CHAR = r'\w+' #t_PLUS = r'\+' t_PLUS = '+' t_ignore = ' \t' def t_error(t): print "Illegal character '%s'" % t.value[…

PDF::Writer:#save_state, #restore_state

require 'pdf/writer' pdf = PDF::Writer.new pdf.save_state pdf.translate_axis(pdf.margin_x_middle, pdf.margin_y_middle) pdf.restore_state pdf.rectangle(0, 0, 100, 50).stroke File.open("2008022800.pdf", "wb") { |f| f.write pdf.render }

『とほほのJava入門』「その他 簡易テキストエディタ」

『とほほのJava入門』を読んでいるところ21. その他 の「簡易テキストエディタ」 TextEditor.java の動作確認日本語は表示できなかった。何か設定が必要なのかな?

lex を試す。トークン定義を忘れると?

t_CHAR をコメントアウト #!/usr/bin/env python import ply.lex as lex tokens = ( 'CHAR', 'PLUS', ) #t_CHAR = r'\w+' t_PLUS = r'\+' t_ignore = ' \t' def t_error(t): print "Illegal character '%s'" % t.value[0] t.lexer.skip(1) lex.lex() lex.inp…

PDF::Writer:#transform_matrix

require 'pdf/writer' pdf = PDF::Writer.new pdf.transform_matrix(2, 0, 0, 4, 100, 100) pdf.rectangle(0, 0, 100, 50).stroke File.open("2008022700.pdf", "wb") { |f| f.write pdf.render }

『とほほのJava入門』「その他 外部コマンドを起動する」

『とほほのJava入門』を読んでいるところ21. その他 の「外部コマンドを起動する」 ページのソースを起動コマンドのみ変えて試す。ls を起動してみたが、何も出力されなかった。 出力は表示されないものなのか???

lex を試す、t_ignore

読みとばしトークン用に t_ignore というのが あらかじめ用意されているようだ #!/usr/bin/env python import ply.lex as lex tokens = ( 'CHAR', 'PLUS', ) t_CHAR = r'\w+' t_PLUS = r'\+' t_ignore = ' \t' def t_error(t): print "Illegal character '%s…

PDF::Writer:#skew_axis

require 'pdf/writer' pdf = PDF::Writer.new pdf.skew_axis(10) pdf.rectangle(100, 100, 100, 50).stroke pdf.skew_axis(10, 20) pdf.rectangle(100, 300, 100, 50).stroke File.open("2008022600.pdf", "wb") { |f| f.write pdf.render }

『とほほのJava入門』「その他 コマンドライン引数を参照する」

『とほほのJava入門』を読んでいるところ21. その他 の「コマンドライン引数を参照する」 ページのソースをそのまま試す。

lex を試す

#!/usr/bin/env python import ply.lex as lex tokens = ( 'A', 'PLUS', ) t_A = r'a' t_PLUS = r'\+' def t_error(t): print "Illegal character '%s'" % t.value[0] t.lexer.skip(1) lex.lex() lex.input("a+a") while 1: tok = lex.token() if not tok: b…

PDF::Writer:#scale_axis

require 'pdf/writer' pdf = PDF::Writer.new pdf.rectangle(100, 100, 100, 50).stroke pdf.scale_axis(2,2) pdf.rectangle(100, 100, 100, 50).stroke File.open("2008022500.pdf", "wb") { |f| f.write pdf.render }

『とほほのJava入門』「Javaアプレット」

『とほほのJava入門』を読んでいるところ21. Javaアプレット ページのソースをそのまま試す。

example/calc/calc.py を動かしてみる

$ python calc.py yacc: Generating LALR parsing table... calc > 1+2 3 calc > 2 * 3 6 calc > 1 + 2 * 3 7 calc > (1 + 2) * 3 9

PDF::Writer:#rotate_axis

require 'pdf/writer' pdf = PDF::Writer.new pdf.rotate_axis(45) pdf.rectangle(100, 100, 100, 50).stroke File.open("2008022400.pdf", "wb") { |f| f.write pdf.render } 単位はラジアンではないようだ

『とほほのJava入門』「リスナー アダプター」

『とほほのJava入門』を読んでいるところ20. リスナー の「アダプター」 ページのソースをそのまま試す。

インストール

# python setup.py install インストール方法が書いていない? distutils の場合の標準的な方法があるようだ

PDF::Writer:#translate_axis

require 'pdf/writer' pdf = PDF::Writer.new pdf.translate_axis(pdf.margin_x_middle, pdf.margin_y_middle) pdf.rectangle(0, 0, 100, 50).stroke File.open("2008022300.pdf", "wb") { |f| f.write pdf.render }

関数 category-set-mnemonics

(category-set-mnemonics (char-category-set ?a)) => "al"modify-category-entry とばし

『とほほのJava入門』「リスナー アイテムリスナー」

『とほほのJava入門』を読んでいるところ20. リスナー の「アイテムリスナー」 ページのソースをそのまま試す。

A Very Simple Example Scanner

付録の Scanner の例を bison マニュアルの中間記法電卓で確認CUP ファイルは、 import java_cup.runtime.*; terminal SEMI, PLUS, MINUS, TIMES, DIVIDE, MOD, EXPON, EOL, LPAREN, RPAREN; terminal UMINUS; terminal Integer NUMBER; non terminal Object…

PDF::Writer:#image で :link オプションを指定

require 'pdf/writer' pdf = PDF::Writer.new pdf.image('images/chunkybacon.jpg', { :link => {:type => :external, :target => "http://rubyforge.org/projects/ruby-pdf/"} }) File.open("2008022200.pdf", "wb") { |f| f.write pdf.render }

関数 char-category-set

(char-category-set ?a) => #&128"..."

『とほほのJava入門』「リスナー テキストリスナー」

『とほほのJava入門』を読んでいるところ20. リスナー の「テキストリスナー」 ページのソースをそのまま試す。 Swing では DocumentListener を使用するのが一般的らしい。 Document というやつが良く分からないので、そこらへんを触らないコードを書いた。…

カスタマイズ可能メソッド unrecovered_syntax_error()

「error EOL」があると発生しないようなので、はずしてCUP ファイルは、 import java_cup.runtime.*; parser code {: public void unrecovered_syntax_error(Symbol cur_token) { System.out.println("unrecovered_syntax_error: " + cur_token); } :}; term…

PDF::Writer:#image で :border オプションを指定

require 'pdf/writer' pdf = PDF::Writer.new pdf.image('images/chunkybacon.jpg', { :border => true }) pdf.image('images/chunkybacon.jpg', { :border => { :color => Color::RGB::Blue, :style => PDF::Writer::StrokeStyle.new(20) } }) File.open("2…

関数 make-category-set

(make-category-set "al") => #&128"..."

『とほほのJava入門』「リスナー キーリスナー」

『とほほのJava入門』を読んでいるところ20. リスナー の「キーリスナー」 ページのソースをそのまま試す。

カスタマイズ可能メソッド syntax_error()

CUP ファイルは、 import java_cup.runtime.*; parser code {: public void syntax_error(Symbol cur_token) { System.out.println("syntax_error: " + cur_token); } :}; terminal A, EOL; non terminal Object input, line; input ::= | input line ; line…