2009-06-01から1ヶ月間の記事一覧

prawn:Prawn::Document.generate

まんま #!/usr/bin/env ruby require "prawn" Prawn::Document.generate(File.basename($0, ".rb") + ".pdf") do font "Times-Roman" text "Hello World", :at => [200,720], :size => 32 end まんま #!/usr/bin/env ruby require "prawn" Prawn::Document.g…

Commons Lang、CharRange#isNegated

import org.apache.commons.lang.CharRange; public class C2009062000 { public static void main(String[] args) { System.out.println(new CharRange('a', 'c').isNegated()); System.out.println(new CharRange('a', true).isNegated()); } } で、 false…

簡単な例、Scanner の部分で JFlex を使って

トークンを記述 %% %class Scanner %implements Test.yyInput %type int %eofval{ return YYEOF; %eofval} %{ private int token; protected Object value; public boolean advance() throws java.io.IOException { token = yylex(); return token != YYEOF;…

prawn:はじめの一歩

#!/usr/bin/env ruby require "prawn" Prawn::Document.generate(File.basename($0, ".rb") + ".pdf") do end

Commons Lang、CharRange#hashCode

import org.apache.commons.lang.CharRange; public class C2009061900 { public static void main(String[] args) { System.out.println(new CharRange('a', 'c').hashCode()); System.out.println(new CharRange('a', 'c').hashCode()); } } で、 873 873

簡単な例、Scanner の部分を StreamTokenizer を使わずに

トークンを記述 %{ import java.io.*; public class Test { %} %token <char> A %% start : A '\n' { System.out.println("*a*"); } %% public static void main (String args []) { Scanner scanner = new Scanner(); try { new Test().yyparse(scanner); } catch</char>…

libharu:HPDFPage#set_horizontal_scalling

#!/usr/bin/env ruby require "hpdf" pdf = HPDFDoc.new page = pdf.add_page page.set_horizontal_scalling(100*2) font = pdf.get_font("Helvetica", nil) page.set_font_and_size(font, 20) page.begin_text page.text_out(100, 100, "foo") page.end_tex…

Commons Lang、CharRange#getStart

import org.apache.commons.lang.CharRange; public class C2009061800 { public static void main(String[] args) { System.out.println(new CharRange('a', 'c').getStart()); System.out.println(new CharRange('a', true).getStart()); } } で、 a a

簡単な例、Scanner の部分を StreamTokenizer を使わずに

トークンでなく、直接文字を記述 %{ import java.io.*; public class Test { %} %% start : 'a' '\n' { System.out.println("*a*"); } %% public static void main (String args []) { Scanner scanner = new Scanner(); try { new Test().yyparse(scanner);…

libharu:HPDFPage#close_path_eofill_stroke

#!/usr/bin/env ruby require "hpdf" pdf = HPDFDoc.new page = pdf.add_page page.move_to(100, 100) page.line_to(150, 100) page.line_to(150, 50) page.line_to(125, 150) page.close_path_eofill_stroke page.move_to(200, 100) page.line_to(250, 100)…

Commons Lang、CharRange#getEnd

import org.apache.commons.lang.CharRange; public class C2009061700 { public static void main(String[] args) { System.out.println(new CharRange('a', 'c').getEnd()); System.out.println(new CharRange('a', true).getEnd()); } } で、 c a

簡単な例、Scanner の部分を試行錯誤

トークンでなく、直接文字を記述 %{ import java.io.*; public class Test { %} %% start : 'a' '\n' { System.out.println("*a*"); } %% public static void main (String args []) { Scanner scanner = new Scanner(new InputStreamReader(System.in)); tr…

libharu:HPDFDoc::HPDF_PAGE_NUM_STYLE_LOWER_LETTERS

#!/usr/bin/env ruby require "hpdf" pdf = HPDFDoc.new pdf.add_page_label(0, HPDFDoc::HPDF_PAGE_NUM_STYLE_LOWER_LETTERS, 1, "") page = pdf.add_page page = pdf.add_page pdf.save_to_file(File.basename($0, ".rb") + ".pdf")

Commons Lang、CharRange#equals

import org.apache.commons.lang.CharRange; public class C2009061600 { public static void main(String[] args) { System.out.println(new CharRange('a', 'c').equals(new CharRange('a', 'c'))); System.out.println(new CharRange('a', 'c').equals(ne…

簡単な例、Scanner の部分を試行錯誤

arith_simple/Arith.jay を参考に %{ import java.io.*; public class Test { %} %token <char> A %% start : A '\n' { System.out.println("*a*"); } %% public static void main (String args []) { Scanner scanner = new Scanner(new InputStreamReader(System</char>…

libharu:HPDFDoc::HPDF_PAGE_NUM_STYLE_UPPER_LETTERS

#!/usr/bin/env ruby require "hpdf" pdf = HPDFDoc.new pdf.add_page_label(0, HPDFDoc::HPDF_PAGE_NUM_STYLE_UPPER_LETTERS, 1, "") 30.times do page = pdf.add_page end pdf.save_to_file(File.basename($0, ".rb") + ".pdf") 「Z」の後は「AA」「BB」〜…

Commons Lang、CharRange#contains

import org.apache.commons.lang.CharRange; public class C2009061500 { public static void main(String[] args) { System.out.println(new CharRange('a', 'c').contains(new CharRange('a'))); System.out.println(new CharRange('a', 'c').contains(new…

「Coins を使って新たなコンパイラを作る:LLパーサを使った例」を動作させてみた

「Coins を使って新たなコンパイラを作る:LLパーサを使った例」が(自分にとっては)余りにも分かりにくく、色々はまってしまったので記録(on Linux)準備 JDK を使えるようにしておく JavaCC 使えるようにしておく COINS を展開しておく(unzip coins-1.4.4.3-…

libharu:HPDFDoc::HPDF_PAGE_NUM_STYLE_LOWER_ROMAN

#!/usr/bin/env ruby require "hpdf" pdf = HPDFDoc.new pdf.add_page_label(0, HPDFDoc::HPDF_PAGE_NUM_STYLE_LOWER_ROMAN, 1, "") page = pdf.add_page page = pdf.add_page pdf.save_to_file(File.basename($0, ".rb") + ".pdf")

Commons Lang、CharRange#contains

import org.apache.commons.lang.CharRange; public class C2009061400 { public static void main(String[] args) { System.out.println(new CharRange('a', 'c').contains('a')); System.out.println(new CharRange('a', 'c').contains('c')); System.out.…

bison マニュアルの多機能電卓

練習問題2 import re globalvars = { 'PI' : 3.14159265358979, 'E' : 2.71828182845905 } def lookup(name): if not globalvars.has_key(name): print 'Undefined (defaulting to 0):', name return globalvars.get(name, 0) def power(a): if len(a) >= 2:…

libharu:HPDFDoc::HPDF_PAGE_NUM_STYLE_UPPER_ROMAN

#!/usr/bin/env ruby require "hpdf" pdf = HPDFDoc.new pdf.add_page_label(0, HPDFDoc::HPDF_PAGE_NUM_STYLE_UPPER_ROMAN, 1, "") page = pdf.add_page page = pdf.add_page pdf.save_to_file(File.basename($0, ".rb") + ".pdf")

Commons Lang、CharRange

import org.apache.commons.lang.CharRange; public class C2009061300 { public static void main(String[] args) { System.out.println(new CharRange('a')); System.out.println(new CharRange('a', true)); System.out.println(new CharRange('a', 'c'))…

bison マニュアルの多機能電卓

本当は未完成 globalvars = {} def lookup(name): if not globalvars.has_key(name): print 'Undefined (defaulting to 0):', name return globalvars.get(name, 0) def power(a): if len(a) >= 2: x = a.pop(0) return x ** power(a) else: return a[0] %% …

libharu:HPDFDoc#add_page_label, HPDFDoc::HPDF_PAGE_NUM_STYLE_DECIMAL

#!/usr/bin/env ruby require "hpdf" pdf = HPDFDoc.new pdf.add_page_label(0, HPDFDoc::HPDF_PAGE_NUM_STYLE_DECIMAL, 1, "foo") page = pdf.add_page page = pdf.add_page pdf.save_to_file(File.basename($0, ".rb") + ".pdf") ドキュメントの各ページの…

Commons Lang、IntRange#toString

import org.apache.commons.lang.math.IntRange; public class C2009061200 { public static void main(String[] args) { System.out.println(new IntRange(1, 3)); System.out.println(new IntRange(1, 3).toString()); } } で、 Range[1,3] Range[1,3]

bison マニュアルの中間記法電卓

整数入力のみ def power(a): if len(a) >= 2: x = a.pop(0) return x ** power(a) else: return a[0] %% parser Test: ignore: "[ \r\t\n]+" token END : "$" token NUM : "[0-9]+" rule start : expr END {{ print "\t%d" % expr }} rule expr : term {{ n …

libharu:HPDFDoc::HPDF_CS_DEVICE_GRAY, HPDF_CS_DEVICE_RGB, HPDF_CS_DEVICE_CMYK

#!/usr/bin/env ruby require "hpdf" pdf = HPDFDoc.new page = pdf.add_page p page.get_filling_color_space page.set_rgb_fill(1, 0, 0) p page.get_filling_color_space page.set_cmyk_fill(1, 0, 0, 0) p page.get_filling_color_space page.set_gray_f…

Commons Lang、IntRange#overlapsRange

import org.apache.commons.lang.math.IntRange; public class C2009061100 { public static void main(String[] args) { System.out.println(new IntRange(1, 3).overlapsRange(new IntRange(1, 3))); System.out.println(new IntRange(1, 3).overlapsRange…

Python コードを書かない場合、二つ目の「%%」はなくても良い

%% parser Test: token END: "$" token A: "a" rule start: A END {{ print "*a*" }} 最後に以下の部分が追加されていた if __name__ == '__main__': from sys import argv, stdin if len(argv) >= 2: if len(argv) >= 3: f = open(argv[2],'r') else: f = s…