rsyntaxtree 1.2.3 → 1.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.tags +365 -127
- data/Rakefile +1 -76
- data/bin/rsyntaxtree +2 -0
- data/devel/generate_examples.rb +91 -0
- data/docs/_examples/000.md +3 -1
- data/docs/_examples/001.md +2 -0
- data/docs/_examples/002.md +2 -0
- data/docs/_examples/003.md +2 -0
- data/docs/_examples/004.md +2 -0
- data/docs/_examples/005.md +2 -0
- data/docs/_examples/006.md +2 -0
- data/docs/_examples/007.md +2 -0
- data/docs/_examples/008.md +2 -0
- data/docs/_examples/009.md +2 -0
- data/docs/_examples/010.md +2 -0
- data/docs/_examples/011.md +2 -0
- data/docs/_examples/012.md +2 -0
- data/docs/_examples/013.md +2 -0
- data/docs/_examples/014.md +2 -0
- data/docs/_examples/015.md +2 -0
- data/docs/_examples/016.md +2 -0
- data/docs/_examples/017.md +2 -0
- data/docs/_examples/018.md +2 -0
- data/docs/_examples/019.md +2 -0
- data/docs/_examples/020.md +8 -6
- data/docs/_examples/021.md +2 -0
- data/docs/_examples/022.md +2 -0
- data/docs/_examples/023.md +2 -0
- data/docs/_examples/024.md +2 -0
- data/docs/_examples/025.md +2 -0
- data/docs/_examples/026.md +2 -0
- data/docs/_examples/027.md +2 -0
- data/docs/_examples/028.md +2 -0
- data/docs/_examples/029.md +2 -0
- data/docs/_examples/030.md +2 -0
- data/docs/_examples/031.md +2 -0
- data/docs/_examples/032.md +2 -0
- data/docs/_examples/033.md +2 -0
- data/docs/_examples/034.md +2 -0
- data/docs/_examples/035.md +2 -0
- data/docs/_examples/036.md +2 -0
- data/docs/_examples/037.md +8 -5
- data/docs/_examples/038.md +3 -1
- data/docs/_examples/039.md +3 -0
- data/docs/_examples/040.md +63 -0
- data/docs/_examples/041.md +35 -0
- data/docs/_examples/042.md +22 -0
- data/docs/_examples/043.md +40 -0
- data/docs/_examples/044.md +16 -0
- data/docs/_examples/045.md +48 -0
- data/docs/assets/img/000.png +0 -0
- data/docs/assets/img/001.png +0 -0
- data/docs/assets/img/002.png +0 -0
- data/docs/assets/img/003.png +0 -0
- data/docs/assets/img/004.png +0 -0
- data/docs/assets/img/005.png +0 -0
- data/docs/assets/img/006.png +0 -0
- data/docs/assets/img/007.png +0 -0
- data/docs/assets/img/008.png +0 -0
- data/docs/assets/img/009.png +0 -0
- data/docs/assets/img/010.png +0 -0
- data/docs/assets/img/011.png +0 -0
- data/docs/assets/img/012.png +0 -0
- data/docs/assets/img/013.png +0 -0
- data/docs/assets/img/014.png +0 -0
- data/docs/assets/img/014_.png +0 -0
- data/docs/assets/img/015.png +0 -0
- data/docs/assets/img/016.png +0 -0
- data/docs/assets/img/017.png +0 -0
- data/docs/assets/img/018.png +0 -0
- data/docs/assets/img/019.png +0 -0
- data/docs/assets/img/020.png +0 -0
- data/docs/assets/img/021.png +0 -0
- data/docs/assets/img/022.png +0 -0
- data/docs/assets/img/023.png +0 -0
- data/docs/assets/img/024.png +0 -0
- data/docs/assets/img/025.png +0 -0
- data/docs/assets/img/026.png +0 -0
- data/docs/assets/img/027.png +0 -0
- data/docs/assets/img/028.png +0 -0
- data/docs/assets/img/029.png +0 -0
- data/docs/assets/img/030.png +0 -0
- data/docs/assets/img/031.png +0 -0
- data/docs/assets/img/032.png +0 -0
- data/docs/assets/img/033.png +0 -0
- data/docs/assets/img/034.png +0 -0
- data/docs/assets/img/035.png +0 -0
- data/docs/assets/img/036.png +0 -0
- data/docs/assets/img/037.png +0 -0
- data/docs/assets/img/038.png +0 -0
- data/docs/assets/img/039.png +0 -0
- data/docs/assets/img/040.png +0 -0
- data/docs/assets/img/041.png +0 -0
- data/docs/assets/img/042.png +0 -0
- data/docs/assets/img/043.png +0 -0
- data/docs/assets/img/044.png +0 -0
- data/docs/assets/img/045.png +0 -0
- data/docs/assets/svg/000.svg +43 -43
- data/docs/assets/svg/001.svg +22 -22
- data/docs/assets/svg/002.svg +37 -37
- data/docs/assets/svg/003.svg +29 -29
- data/docs/assets/svg/004.svg +40 -40
- data/docs/assets/svg/005.svg +20 -20
- data/docs/assets/svg/006.svg +25 -25
- data/docs/assets/svg/007.svg +31 -31
- data/docs/assets/svg/008.svg +35 -35
- data/docs/assets/svg/009.svg +34 -34
- data/docs/assets/svg/010.svg +55 -55
- data/docs/assets/svg/011.svg +29 -29
- data/docs/assets/svg/012.svg +34 -34
- data/docs/assets/svg/013.svg +140 -140
- data/docs/assets/svg/014.svg +103 -110
- data/docs/assets/svg/015.svg +36 -36
- data/docs/assets/svg/016.svg +380 -380
- data/docs/assets/svg/017.svg +52 -52
- data/docs/assets/svg/018.svg +40 -40
- data/docs/assets/svg/019.svg +204 -234
- data/docs/assets/svg/020.svg +65 -63
- data/docs/assets/svg/021.svg +57 -57
- data/docs/assets/svg/022.svg +102 -102
- data/docs/assets/svg/023.svg +65 -65
- data/docs/assets/svg/024.svg +23 -23
- data/docs/assets/svg/025.svg +144 -144
- data/docs/assets/svg/026.svg +23 -23
- data/docs/assets/svg/027.svg +63 -63
- data/docs/assets/svg/028.svg +24 -24
- data/docs/assets/svg/029.svg +88 -98
- data/docs/assets/svg/030.svg +47 -53
- data/docs/assets/svg/031.svg +15 -15
- data/docs/assets/svg/032.svg +60 -66
- data/docs/assets/svg/033.svg +46 -46
- data/docs/assets/svg/034.svg +58 -67
- data/docs/assets/svg/035.svg +48 -53
- data/docs/assets/svg/036.svg +26 -29
- data/docs/assets/svg/037.svg +35 -55
- data/docs/assets/svg/038.svg +51 -57
- data/docs/assets/svg/039.svg +10 -10
- data/docs/assets/svg/040.svg +120 -0
- data/docs/assets/svg/041.svg +93 -0
- data/docs/assets/svg/042.svg +42 -0
- data/docs/assets/svg/043.svg +304 -0
- data/docs/assets/svg/044.svg +32 -0
- data/docs/assets/svg/045.svg +107 -0
- data/docs/documentation.md +9 -6
- data/docs/documentation_ja.md +9 -5
- data/docs/examples.html +2 -0
- data/fonts/NotoEmoji-Bold.ttf +0 -0
- data/fonts/NotoEmoji-Regular.ttf +0 -0
- data/fonts/OpenMoji-black-glyf.ttf +0 -0
- data/lib/rsyntaxtree/base_graph.rb +7 -6
- data/lib/rsyntaxtree/element.rb +7 -6
- data/lib/rsyntaxtree/svg_graph.rb +57 -53
- data/lib/rsyntaxtree/version.rb +1 -1
- data/lib/rsyntaxtree.rb +10 -5
- data/test/example_verify_test.rb +3 -0
- metadata +25 -4
- data/fonts/OpenMoji-Black.ttf +0 -0
- data/fonts/OpenMoji-Color.ttf +0 -0
data/Rakefile
CHANGED
@@ -15,80 +15,5 @@ end
|
|
15
15
|
|
16
16
|
desc "Generate SVG and PNG example images"
|
17
17
|
task :generate do
|
18
|
-
|
19
|
-
svg_dir = File.expand_path(File.join(__dir__, "docs", "assets", "svg"))
|
20
|
-
png_dir = File.expand_path(File.join(__dir__, "docs", "assets", "img"))
|
21
|
-
Dir.glob("*.md", base: examples_dir).map do |md|
|
22
|
-
md = File.join(examples_dir, md)
|
23
|
-
config = YAML.load_file(md)
|
24
|
-
rst = File.read(md).scan(/```([^`]+)```/m).last.first
|
25
|
-
|
26
|
-
opts = {
|
27
|
-
format: "png",
|
28
|
-
leafstyle: "auto",
|
29
|
-
fontstyle: "sans",
|
30
|
-
fontsize: 16,
|
31
|
-
margin: 1,
|
32
|
-
vheight: 2.0,
|
33
|
-
color: "modern",
|
34
|
-
symmetrize: "on",
|
35
|
-
transparent: "off",
|
36
|
-
polyline: "off",
|
37
|
-
hide_default_connectors: "off"
|
38
|
-
}
|
39
|
-
name = nil
|
40
|
-
config.each do |key, value|
|
41
|
-
next if value.to_s == ""
|
42
|
-
|
43
|
-
case key
|
44
|
-
when "name"
|
45
|
-
name = value
|
46
|
-
opts[:name] = name
|
47
|
-
when "color"
|
48
|
-
opts[:color] = case value
|
49
|
-
when "modern", "on", "true"
|
50
|
-
"modern"
|
51
|
-
when "traditional"
|
52
|
-
"traditional"
|
53
|
-
else
|
54
|
-
"off"
|
55
|
-
end
|
56
|
-
when "polyline"
|
57
|
-
opts[:polyline] = value
|
58
|
-
when "hide_default_connectors"
|
59
|
-
opts[:hide_default_connectors] = value
|
60
|
-
when "symmetrization"
|
61
|
-
opts[:symmetrize] = value
|
62
|
-
when "connector"
|
63
|
-
opts[:leafstyle] = value
|
64
|
-
when "font"
|
65
|
-
opts[:fontstyle] = case value
|
66
|
-
when /mono/i
|
67
|
-
"mono"
|
68
|
-
when /sans/i
|
69
|
-
"sans"
|
70
|
-
when /serif/i
|
71
|
-
"serif"
|
72
|
-
when /wqy/i
|
73
|
-
"cjk"
|
74
|
-
else
|
75
|
-
"sans"
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
opts[:data] = rst
|
80
|
-
rsg = RSyntaxTree::RSGenerator.new(opts)
|
81
|
-
|
82
|
-
File.open(File.join(svg_dir, "#{name}.svg"), "w") do |f|
|
83
|
-
puts "Creating svg file: #{name}.svg"
|
84
|
-
svg = rsg.draw_svg
|
85
|
-
f.write(svg)
|
86
|
-
end
|
87
|
-
|
88
|
-
File.open(File.join(png_dir, "#{name}.png"), "w") do |f|
|
89
|
-
puts "Creating png file: #{name}.png"
|
90
|
-
png = rsg.draw_png
|
91
|
-
f.write(png)
|
92
|
-
end
|
93
|
-
end
|
18
|
+
require_relative "devel/generate_examples"
|
94
19
|
end
|
data/bin/rsyntaxtree
CHANGED
@@ -22,6 +22,7 @@ opts = Optimist.options do
|
|
22
22
|
opt :fontstyle, "Font style (available when ttf font is specified): sans, serif, cjk, mono", default: "sans"
|
23
23
|
opt :font, "Path to a ttf font used to generate tree (optional)", type: String
|
24
24
|
opt :fontsize, "Size: 8-26", default: 16
|
25
|
+
opt :linewidth, "Size: 1-5", default: 1
|
25
26
|
opt :margin, "Margin: 0-10", default: 1
|
26
27
|
opt :vheight, "Connector Height: 0.5-5.0", default: 2.0
|
27
28
|
opt :color, "Color text and bars: modern, traditional, or off", default: "modern"
|
@@ -37,6 +38,7 @@ Optimist.die :leafstyle, "must be auto, triangle, bar, or nothing" unless /\A(au
|
|
37
38
|
Optimist.die :fontstyle, "must be sans, serif, cjk, or mono" unless /\A(sans|serif|cjk|mono)\z/ =~ opts[:fontstyle]
|
38
39
|
Optimist.die :font, "must be path to an existing ttf font" if opts[:font] && !File.exist?(opts[:font])
|
39
40
|
Optimist.die :fontsize, "must be in the range of 8-26" unless opts[:fontsize] >= 8 && opts[:fontsize] <= 26
|
41
|
+
Optimist.die :linewidth, "must be in the range of 1-5" unless opts[:linewidth] >= 1 && opts[:linewidth] <= 5
|
40
42
|
Optimist.die :color, "must be either modern, traditional, or off" unless /\A(modern|traditional|on|off|true|false)\z/ =~ opts[:color]
|
41
43
|
Optimist.die :symmetrize, "must be either on or off" unless /\A(on|off|true|false)\z/ =~ opts[:symmetrize]
|
42
44
|
Optimist.die :margin, "must be in the range of 0-10" if opts[:margin].negative? || opts[:margin] > 10
|
@@ -0,0 +1,91 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
examples_dir = File.expand_path(File.join(__dir__, "..", "docs", "_examples"))
|
5
|
+
svg_dir = File.expand_path(File.join(__dir__, "..", "docs", "assets", "svg"))
|
6
|
+
png_dir = File.expand_path(File.join(__dir__, "..", "docs", "assets", "img"))
|
7
|
+
Dir.glob("*.md", base: examples_dir).map do |md|
|
8
|
+
md = File.join(examples_dir, md)
|
9
|
+
config = YAML.load_file(md)
|
10
|
+
rst = File.read(md).scan(/```([^`]+)```/m).last.first
|
11
|
+
begin
|
12
|
+
RSyntaxTree::RSGenerator.check_data(rst)
|
13
|
+
rescue StandardError => e
|
14
|
+
puts "Error detected in #{md}"
|
15
|
+
pp e
|
16
|
+
exit
|
17
|
+
end
|
18
|
+
|
19
|
+
opts = {
|
20
|
+
format: "png",
|
21
|
+
leafstyle: "auto",
|
22
|
+
fontstyle: "sans",
|
23
|
+
fontsize: 16,
|
24
|
+
linewidth: 1,
|
25
|
+
margin: 1,
|
26
|
+
vheight: 2.0,
|
27
|
+
color: "modern",
|
28
|
+
symmetrize: "on",
|
29
|
+
transparent: "off",
|
30
|
+
polyline: "off",
|
31
|
+
hide_default_connectors: "off"
|
32
|
+
}
|
33
|
+
name = nil
|
34
|
+
config.each do |key, value|
|
35
|
+
next if value.to_s == ""
|
36
|
+
|
37
|
+
case key
|
38
|
+
when "name"
|
39
|
+
name = value
|
40
|
+
opts[:name] = name
|
41
|
+
when "color"
|
42
|
+
opts[:color] = case value
|
43
|
+
when "modern", "on", "true"
|
44
|
+
"modern"
|
45
|
+
when "traditional"
|
46
|
+
"traditional"
|
47
|
+
else
|
48
|
+
"off"
|
49
|
+
end
|
50
|
+
when "linewidth", "line_width"
|
51
|
+
opts[:linewidth] = value
|
52
|
+
when "polyline"
|
53
|
+
opts[:polyline] = value
|
54
|
+
when "hide_default_connectors"
|
55
|
+
opts[:hide_default_connectors] = value
|
56
|
+
when "connector_height"
|
57
|
+
opts[:vheight] = value
|
58
|
+
when "symmetrization"
|
59
|
+
opts[:symmetrize] = value
|
60
|
+
when "connector"
|
61
|
+
opts[:leafstyle] = value
|
62
|
+
when "font"
|
63
|
+
opts[:fontstyle] = case value
|
64
|
+
when /mono/i
|
65
|
+
"mono"
|
66
|
+
when /sans/i
|
67
|
+
"sans"
|
68
|
+
when /serif/i
|
69
|
+
"serif"
|
70
|
+
when /wqy/i
|
71
|
+
"cjk"
|
72
|
+
else
|
73
|
+
"sans"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
opts[:data] = rst
|
78
|
+
rsg = RSyntaxTree::RSGenerator.new(opts)
|
79
|
+
|
80
|
+
File.open(File.join(svg_dir, "#{name}.svg"), "w") do |f|
|
81
|
+
puts "Creating svg file: #{name}.svg"
|
82
|
+
svg = rsg.draw_svg
|
83
|
+
f.write(svg)
|
84
|
+
end
|
85
|
+
|
86
|
+
File.open(File.join(png_dir, "#{name}.png"), "w") do |f|
|
87
|
+
puts "Creating png file: #{name}.png"
|
88
|
+
png = rsg.draw_png
|
89
|
+
f.write(png)
|
90
|
+
end
|
91
|
+
end
|
data/docs/_examples/000.md
CHANGED
data/docs/_examples/001.md
CHANGED
data/docs/_examples/002.md
CHANGED
data/docs/_examples/003.md
CHANGED
data/docs/_examples/004.md
CHANGED
data/docs/_examples/005.md
CHANGED
data/docs/_examples/006.md
CHANGED
data/docs/_examples/007.md
CHANGED
data/docs/_examples/008.md
CHANGED
data/docs/_examples/009.md
CHANGED
data/docs/_examples/010.md
CHANGED
data/docs/_examples/011.md
CHANGED
data/docs/_examples/012.md
CHANGED
data/docs/_examples/013.md
CHANGED
data/docs/_examples/014.md
CHANGED
data/docs/_examples/015.md
CHANGED
data/docs/_examples/016.md
CHANGED
data/docs/_examples/017.md
CHANGED
data/docs/_examples/018.md
CHANGED
data/docs/_examples/019.md
CHANGED
data/docs/_examples/020.md
CHANGED
@@ -6,6 +6,8 @@ category: "General"
|
|
6
6
|
polyline: "off"
|
7
7
|
symmetrization: "off"
|
8
8
|
connector: "bar"
|
9
|
+
connector_height: "2"
|
10
|
+
linewidth: "1"
|
9
11
|
hide_default_connectors: "off"
|
10
12
|
font: "WQY Zen Hei"
|
11
13
|
reference:
|
@@ -13,8 +15,8 @@ reference:
|
|
13
15
|
```
|
14
16
|
[The<>umpires<>talked<>to<>the<>players
|
15
17
|
[the<>umpires
|
16
|
-
[the
|
17
|
-
[<> ði]
|
18
|
+
[the+-1
|
19
|
+
[<> ði+-1]
|
18
20
|
]
|
19
21
|
[umpires
|
20
22
|
[umpire ʌ́mpaɪər]
|
@@ -26,11 +28,11 @@ reference:
|
|
26
28
|
[talk tɔːk]
|
27
29
|
[ed t]
|
28
30
|
]
|
29
|
-
[to
|
30
|
-
[<>
|
31
|
+
[to+-2
|
32
|
+
[<> tə+-2]
|
31
33
|
]
|
32
|
-
[the
|
33
|
-
[<>
|
34
|
+
[the+-3
|
35
|
+
[<> ðə+-3]
|
34
36
|
]
|
35
37
|
[players
|
36
38
|
[player pléɪər]
|
data/docs/_examples/021.md
CHANGED
data/docs/_examples/022.md
CHANGED
data/docs/_examples/023.md
CHANGED
data/docs/_examples/024.md
CHANGED
data/docs/_examples/025.md
CHANGED
data/docs/_examples/026.md
CHANGED
data/docs/_examples/027.md
CHANGED
data/docs/_examples/028.md
CHANGED
data/docs/_examples/029.md
CHANGED
data/docs/_examples/030.md
CHANGED
data/docs/_examples/031.md
CHANGED
data/docs/_examples/032.md
CHANGED
data/docs/_examples/033.md
CHANGED
data/docs/_examples/034.md
CHANGED
data/docs/_examples/035.md
CHANGED
data/docs/_examples/036.md
CHANGED
data/docs/_examples/037.md
CHANGED
@@ -1,18 +1,21 @@
|
|
1
1
|
---
|
2
2
|
name: "037"
|
3
|
+
caption: "Action chain"
|
3
4
|
color: "modern"
|
4
|
-
category: "
|
5
|
+
category: "Cognitive Grammar"
|
5
6
|
polyline: "off"
|
6
7
|
symmetrization: "on"
|
7
8
|
connector: "auto"
|
9
|
+
connector_height: "1"
|
10
|
+
linewidth: "3"
|
8
11
|
hide_default_connectors: "on"
|
9
12
|
font: "Noto Serif"
|
10
|
-
reference:
|
11
13
|
---
|
12
14
|
```
|
13
|
-
[###
|
15
|
+
[###John<>opened<>the<>door<>with<>the<>key\
|
14
16
|
<>\
|
15
|
-
{
|
17
|
+
{}->{}->{}->\
|
16
18
|
<>\
|
17
|
-
|
19
|
+
AGT<>\><>INST<>\><>PAT
|
20
|
+
]
|
18
21
|
```
|
data/docs/_examples/038.md
CHANGED
@@ -2,10 +2,12 @@
|
|
2
2
|
name: "038"
|
3
3
|
caption: "Relations between WordNet senses"
|
4
4
|
color: "none"
|
5
|
-
category: "
|
5
|
+
category: "Natural Language Processing"
|
6
6
|
polyline: "off"
|
7
7
|
symmetrization: "on"
|
8
8
|
connector: "auto"
|
9
|
+
connector_height: "2"
|
10
|
+
linewidth: "1"
|
9
11
|
hide_default_connectors: "on"
|
10
12
|
font: "Noto Sans Mono"
|
11
13
|
reference: "Jurafsky and Martin 2018"
|
data/docs/_examples/039.md
CHANGED