1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
# encoding: UTF-8
require File.expand_path('../helper', __FILE__)
class MultibyteTest < Test::Unit::TestCase
grammar :Multibyte do
rule :string do
"ä"
end
rule :regexp do
/(ä)+/
end
rule :character_class do
/[ä]+/
end
rule :dot do
DOT
end
end
def test_multibyte_string
m = Multibyte.parse("ä", :root => :string)
assert(m)
end
def test_multibyte_regexp
m = Multibyte.parse("äää", :root => :regexp)
assert(m)
end
def test_multibyte_character_class
m = Multibyte.parse("äää", :root => :character_class)
assert(m)
end
def test_multibyte_dot
m = Multibyte.parse("ä", :root => :dot)
assert(m)
end
Citrus.eval(<<-CITRUS)
grammar Multibyte2
rule string
"ä"
end
rule regexp
/(ä)+/
end
rule character_class
[ä]+
end
rule dot
.+
end
end
CITRUS
def test_multibyte2_string
m = Multibyte2.parse("ä", :root => :string)
assert(m)
end
def test_multibyte2_regexp
m = Multibyte2.parse("äää", :root => :regexp)
assert(m)
end
def test_multibyte2_character_class
m = Multibyte2.parse("äää", :root => :character_class)
assert(m)
end
def test_multibyte2_dot
m = Multibyte2.parse("äää", :root => :dot)
assert(m)
end
end
|