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

PDF::Writer:PDF::SimpleTable#heading_color, #heading_color=

require 'pdf/simpletable' pdf = PDF::Writer.new PDF::SimpleTable.new do |tab| tab.column_order = %w(col1 col2 col3) p tab.heading_color tab.show_lines = :all tab.heading_color = Color::RGB::Blue p tab.heading_color data = [ { "col1" => "fo…

Java FAQ:文字の扱い。is* というような文字種類判定関数

Java FAQ、『Java の質問箱』 とはちょっと離れて。 そういえば、C 言語っぽい文字種類の判定関数の話は、どこの項目に書いてある? public class C2008033100 { public static void main(String[] args) { char c; c = 'a'; System.out.println(Character.i…

lex を試す。状態の管理

begin でなく、push_state, pop_state を使うこともできる。 #!/usr/bin/env python import ply.lex as lex states = ( ('foo', 'exclusive'), ) tokens = ( 'A', 'PLUS', ) t_A = r'a' t_ANY_PLUS = r'\+' t_ANY_ignore = ' \t\n' t_foo_A = r'b' def t_beg…

PDF::Writer:PDF::SimpleTable#title_color, #title_color=

require 'pdf/simpletable' pdf = PDF::Writer.new PDF::SimpleTable.new do |tab| tab.column_order = %w(col1 col2 col3) tab.title = "TITLE" p tab.title_color tab.show_lines = :all tab.title_color = Color::RGB::Blue p tab.title_color data = [ {…

Java FAQ:文字の扱い

Java FAQ、『Java の質問箱』 とはちょっと離れて。 そういえば、C 言語っぽい文字の扱いという話は、どこの項目に書いてある? public class C2008033000 { public static void main(String[] args) { char c = 'a'; System.out.println(c); System.out.pri…

lex を試す。複数の状態を指定

「t_foo_INITIAL_PLUS = r'\+'」のように複数の状態「foo」「INITIAL」(初期状態)を指定できるようだ。 ('exclusive' でも全条件だったら ANY を使えば良いだけだけど) #!/usr/bin/env python import ply.lex as lex states = ( ('foo', 'exclusive'), ) tok…

PDF::Writer:PDF::SimpleTable#title_font_size, #title_font_size=

require 'pdf/simpletable' pdf = PDF::Writer.new PDF::SimpleTable.new do |tab| tab.column_order = %w(col1 col2 col3) tab.title = "TITLE" p tab.font_size p tab.heading_font_size p tab.title_font_size tab.show_lines = :all tab.title_font_size…

Java FAQ:そもそも Integer とかって何?

Java FAQ、『Java の質問箱』 とはちょっと離れて。 そういえば、そもそも Integer とかって何?という話は、どこの項目に書いてある? public class C2008032900 { public static void main(String[] args) { int i = 1; Integer I; I = new Integer(i); Sy…

lex を試す。状態 inclusive, exclusive

Flex のマニュアルの例を使ってFlex のマニュアルで言うところの包含的スタート状態(%s) #!/usr/bin/env python import ply.lex as lex states = ( ('state1', 'inclusive'), ) tokens = ( 'ONE', 'THREE', ) def t_state1_ONE(t): r'one' print "two" retur…

PDF::Writer:PDF::SimpleTable#heading_font_size, #heading_font_size=

require 'pdf/simpletable' pdf = PDF::Writer.new PDF::SimpleTable.new do |tab| tab.column_order = %w(col1 col2 col3) p tab.font_size p tab.heading_font_size tab.show_lines = :all tab.heading_font_size = 20 data = [ { "col1" => "foo", "col2"…

Java FAQ:型変換のまとめ

数値 -> 文字列: String.valueOf(x) か new Integer(i).toString() か Integer.toString(i) など 数値 -> n進数の文字列: Integer.toBinaryString(i), Integer.toOctalString(i), Integer.toString(i, n), Integer.toHexString(i) など 数値オブジェクト -…

lex を試す。状態

機能の詳細はともかく、とりあえず試してみる #!/usr/bin/env python import ply.lex as lex states = ( ('foo', 'exclusive'), ) tokens = ( 'A', 'PLUS', ) t_A = r'a' t_ANY_PLUS = r'\+' t_ANY_ignore = ' \t\n' t_foo_A = r'b' def t_begin_foo(t): r's…

PDF::Writer:PDF::SimpleTable#font_size, #font_size=

require 'pdf/simpletable' pdf = PDF::Writer.new PDF::SimpleTable.new do |tab| tab.column_order = %w(col1 col2 col3) p tab.font_size tab.show_lines = :all tab.font_size = 20 data = [ { "col1" => "foo", "col2" => "bar", "col3" => "baz" }, ] …

Java FAQ:byte に対するシフト演算子「>>>=」

Java FAQ:S007 Q-12 public class C2008032700 { public static void main(String[] args) { byte b; b = -1; b = (byte)(b >>> 1); System.out.println("b : " + b + " " + Integer.toHexString(b)); b = -1; b = (byte)((int)b >>> 1); System.out.printl…

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) lexer = lex.lex() lexer.input("a+a") print dir(lexer) print lexer.l…

PDF::Writer:PDF::SimpleTable#show_headings, #show_headings=

require 'pdf/simpletable' pdf = PDF::Writer.new PDF::SimpleTable.new do |tab| tab.column_order = %w(col1 col2 col3) p tab.show_headings tab.show_lines = :all tab.show_headings = false data = [ { "col1" => "foo", "col2" => "bar", "col3" => …

Java FAQ:byte を unsigned byte として int と相互変換

Java FAQ:S007 Q-11 public class C2008032600 { public static void main(String[] args) { byte b; int i; b = (byte)0xfd; i = b & 0xFF; System.out.println("b : " + b + " " + Integer.toHexString(b)); System.out.println("b : " + i + " " + Integ…

lex を試す。Lexer の複製

マニュアルによると、こういうこと? クラスで定義していないときは、以下のようにやれば良い。 これは、lex() を呼んで再度ルールなどを構築し直すよりも速い。 lexer = lex.lex() ... newlexer = lexer.clone() 一方、クラス定義した場合は、ちょっと考え…

PDF::Writer:PDF::SimpleTable#title, #title=

require 'pdf/simpletable' pdf = PDF::Writer.new PDF::SimpleTable.new do |tab| tab.column_order = %w(col1 col2 col3) p tab.title tab.title = "TITLE" p tab.title tab.show_lines = :all tab.show_headings = true data = [ { "col1" => "foo", "col…

Java FAQ:Integer#parseInt で NumberFormatException が発生

Java FAQ:S007 Q-10 public class C2008032500 { public static void main(String[] args) { int i = Integer.parseInt("1.2"); System.out.println(i); } } で、 Exception in thread "main" java.lang.NumberFormatException: 1.2 at java.lang.Integer.p…

lex を試す。状態をどう持つか?

グローバル変数。複数の lexer に対応できない t.lexer.var のような lex 以外の prefix を持つ lexer のアトリビュート(var がアトリビュート名)。嫌われる場合あり。なんで? lexer クラスを作り、そのインスタンス変数

PDF::Writer:PDF::SimpleTable::Column::Heading#bold, #bold=

require 'pdf/simpletable' pdf = PDF::Writer.new PDF::SimpleTable.new do |tab| tab.column_order = %w(col1 col2 col3) tab.show_lines = :all tab.show_headings = true tab.columns["col1"] = PDF::SimpleTable::Column.new("COL1") {|col| col.headin…

Java FAQ:short a = 2; a = -a; がコンパイルエラーに

Java FAQ:S007 Q-09 public class C2008032400 { public static void main(String[] args) { // short a = 2; a = -a; // 精度が落ちている可能性 short a = 2; a = (short)-a; System.out.println(a); } } で、 -2

lex を試す。複数のクラスを記述

一つのファイルに複数のクラスを記述 #!/usr/bin/env python import ply.lex as lex class MyLexer1: tokens = ( 'A', 'PLUS', ) t_A = r'a' t_PLUS = r'\+' def t_error(self,t): print "Illegal character '%s'" % t.value[0] t.lexer.skip(1) # Build the…

PDF::Writer:PDF::SimpleTable::Column::Heading#justification, #justification=

require 'pdf/simpletable' pdf = PDF::Writer.new PDF::SimpleTable.new do |tab| tab.column_order = %w(col1 col2 col3) tab.show_lines = :all tab.show_headings = true tab.columns["col1"] = PDF::SimpleTable::Column.new("COL1") {|col| col.headin…

Java FAQ:文字 '0' を数値の 0 に、数値の 0 を文字 '0' 変換

Java FAQ:S007 Q-08 public class C2008032300 { public static void main(String[] args) { char c; int i; c = '0'; i = Character.digit(c, 10); System.out.println(i); i = 0; c = Character.forDigit(i, 10); System.out.println(c); c = '1'; i = Ch…

lex を試す。クラスとして記述

まんま #!/usr/bin/env python import ply.lex as lex class MyLexer: # List of token names. This is always required tokens = ( 'NUMBER', 'PLUS', 'MINUS', 'TIMES', 'DIVIDE', 'LPAREN', 'RPAREN', ) # Regular expression rules for simple tokens t_…

PDF::Writer:PDF::SimpleTable::Column::Heading#title, #title=

require 'pdf/simpletable' pdf = PDF::Writer.new PDF::SimpleTable.new do |tab| tab.column_order = %w(col1 col2 col3) tab.show_lines = :all tab.show_headings = true tab.columns["col1"] = PDF::SimpleTable::Column.new("COL1") {|col| col.headin…

Java FAQ:文字列を指定されたクラスの値(valueOf)に変換

Java FAQ:S007 Q-07まんま public class C2008032201 { public static void main(String[] args) { String classname = "java.lang.Integer"; String value = "1"; Number n; if (classname.equals("java.lang.Integer")) { n = Integer.valueOf(value); } …

lex を試す。複数の lexer 再び

(複数の lexer に限った話ではないけど) d:id:noritsugu:20080309:parser で自分なりにやっていたが、マニュアルにも記述があった。 ルールだけ書けば良かったようだ。 lexer ルール 1 tokens = ( 'A', 'PLUS', ) t_A = r'a' t_PLUS = r'\+' def t_error(t):…