嘘言語
昨日の埋め込みについての話はびっくりするほどまとまっていなかった.それとは別にやりたいこと: SQL s="select a,b from Product"; for (%rec : s) { print " a=#{s.a} b=#{s.b} \n"; } ってやると,クエリの結果を表示する.ここまではあたりまえ.しか…
select * from Product where name = 'hoge'; の hogeの部分に埋め込みをしたい.でもSQLインジェクションはさせたくない,という 場合になるべく簡単に書きたい. 方法1: %word="It's ok"; SQL s="select * from Product where name = #{word} "; とかく…
次のプログラミング言語のパーサをつくってみよう. class Foo { int get () { test().get() this.set() } int test() { } } 普通,構文解析にパーサジェネレータを使うが,文法を定義する支援はしてくれても,意味解析はしてくれない.せめて型があっている…
class Kakko{ final int a; String toString() { return ""; } } Kakko k=new Kakko(); k.a=3; System.out.println(k.toString()); // (これ以降kは出てこない) と書くとSystem.out.println("");というコードが生成される仕組みがあると,ライブラリが軽くな…
Ruby でおなじみの #{...} a = "My name is #{name}"; ".. " の中は自然言語,その外側はRubyである,と解釈できるので #{ ... } は,「1レベル上(=外側) の言語を参照する」という意味合いと考えられる.じゃあ,♭{... } があってもいいだろう. ♭{... }は…