rb2html サンプル
どこ (何) に色を付けるかは設定ファイルで変更できます。
Ruby
- =begin
- Rubyスクリプトのサンプル
- リテラル(数値、文字列、配列、シンボル、正規表現)、キーワード、コメント
- =end
- def hoge
- print <<EOF, <<'EOF'
- hoge # hoge
- EOF
- foo # bar # baz
- EOF
- %w(1 2 3).each {|s| print s}
- while line = gets
- break if line =~ /end/
- end
- p 123.5, :[]=, %r!foo!, %s(sym)
- end
- #main
- hoge()
ERB (eRuby)
rb2html.rbに-x htmlオプションを与えて。
erb_sample.erb
1| #!/usr/bin/erb 2| <body> 3| <p>行番号なし。 4| <% require 'rb2html/factory' %> 5| <%= Rb2HTML::Factory.format 'ruby', <<EOF, :lineno=>false 6| def n(v); p v; end 7| EOF 8| %> 9| 10| <p>行番号あり。:linenoを省略すると1から開始。 11| <%= Rb2HTML::Factory.format 'ruby', <<EOF, :lineno=>21 12| require 'foo' 13| class Foo 14| end 15| EOF 16| %> 17| 18| <p>あらかじめ整形オブジェクトを作っておく。 19| <% pyf = Rb2HTML::Factory.get_formatter 'python' %> 20| <%= pyf.format_code <<EOF, false 21| import os 22| filename = os.environ.get('PYTHONSTARTUP') 23| if filename and os.path.isfile(filename): 24| execfile(filename) 25| EOF 26| %> 27| </body>
Java
- /*
- Javaソースのサンプル
- */
- import java.awt.Graphics;
- import java.awt.Frame;
- import java.awt.event.WindowAdapter;
- import java.awt.event.WindowEvent;
- import java.applet.Applet;
- public class Hoge extends Applet {
- public void paint(Graphics g) {
- g.drawString("はろーわーるど", 25, 50);
- g.drawString("Javaバージョン: "
- + System.getProperty("java.version"), 25, 70);
- }
- public static void main(String[] args) { // アプリケーションとしても使えるようにする
- Frame f = new Frame("Hoge");
- f.add(new Hoge());
- f.setSize(200, 150);
- f.addWindowListener(new WindowAdapter() {
- public void windowClosing(WindowEvent e) {
- System.exit(0);
- }});
- f.setVisible(true);
- }
- }
アノテーションを定義してみる。
MyAnno.java
1| // -*- coding:utf-8 -*- 2| // カスタムアノテーションのサンプル 3| 4| @interface _inP {} 5| 6| public class MyAnno { 7| @_inP 8| public void calc() {} 9| }
(2008.3.29追加)
ジェネリクス (Generics) のサンプル
- import java.util.LinkedList;
- import java.util.List;
- class GenericsSample {
- public static void main(String[] args) {
- List<LinkedList<String>> list = new LinkedList<LinkedList<String>>();
- for (int i = 0; i < args.length; i++) {
- LinkedList<String> l2 = new LinkedList<String>();
- l2.add(args[i]);
- list.add(l2);
- }
- for (int i = 0; i < list.size(); i++) {
- String text = list.get(i).get(0);
- System.out.println(text);
- }
- }
- }
JavaScript
proto.js
1| 2| // prototype.jsから 3| 4| function $(element) { 5| if (arguments.length > 1) { 6| for (var i = 0, elements = [], length = arguments.length; i < length; i++) 7| elements.push($(arguments[i])); 8| return elements; 9| } 10| if (typeof element == 'string') 11| element = document.getElementById(element); 12| return Element.extend(element); 13| }
Haskell
Haskellは演算子のつづりを自分で定義できる。
haskell_sym.hs
1| -- ふつうのHaskell p.182 2| {-コメントは{-ネストする。-}まだコメント-} 3| (/$$/)::Float -> Float -> Float 4| (/$$/) x y = x + y 5| 6| main = do 7| print $ 5.3 /$$/ 4.5
C/C++
- /*
- C++ソースのサンプル
- */
- #include <stdio.h> // printf
- class Hoge {
- public:
- virtual void p() = 0;
- };
- class HogeHoge: public Hoge {
- public:
- virtual void p() { printf("hogehoge\n"); }
- };
- int main(int argc, char* argv[])
- {
- Hoge* h = new HogeHoge();
- h->p();
- delete h;
- return 0;
- }