rsyntaxtree 1.2.12 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +2 -2
  3. data/README.md +3 -2
  4. data/Rakefile +1 -1
  5. data/bin/rsyntaxtree +4 -2
  6. data/docs/_examples/053.md +41 -0
  7. data/docs/_layouts/default.html +1 -1
  8. data/docs/assets/img/000.png +0 -0
  9. data/docs/assets/img/001.png +0 -0
  10. data/docs/assets/img/002.png +0 -0
  11. data/docs/assets/img/003.png +0 -0
  12. data/docs/assets/img/004.png +0 -0
  13. data/docs/assets/img/005.png +0 -0
  14. data/docs/assets/img/006.png +0 -0
  15. data/docs/assets/img/007.png +0 -0
  16. data/docs/assets/img/008.png +0 -0
  17. data/docs/assets/img/009.png +0 -0
  18. data/docs/assets/img/010.png +0 -0
  19. data/docs/assets/img/011.png +0 -0
  20. data/docs/assets/img/012.png +0 -0
  21. data/docs/assets/img/013.png +0 -0
  22. data/docs/assets/img/014.png +0 -0
  23. data/docs/assets/img/015.png +0 -0
  24. data/docs/assets/img/016.png +0 -0
  25. data/docs/assets/img/017.png +0 -0
  26. data/docs/assets/img/018.png +0 -0
  27. data/docs/assets/img/019.png +0 -0
  28. data/docs/assets/img/020.png +0 -0
  29. data/docs/assets/img/021.png +0 -0
  30. data/docs/assets/img/022.png +0 -0
  31. data/docs/assets/img/023.png +0 -0
  32. data/docs/assets/img/024.png +0 -0
  33. data/docs/assets/img/025.png +0 -0
  34. data/docs/assets/img/026.png +0 -0
  35. data/docs/assets/img/027.png +0 -0
  36. data/docs/assets/img/028.png +0 -0
  37. data/docs/assets/img/029.png +0 -0
  38. data/docs/assets/img/030.png +0 -0
  39. data/docs/assets/img/031.png +0 -0
  40. data/docs/assets/img/032.png +0 -0
  41. data/docs/assets/img/033.png +0 -0
  42. data/docs/assets/img/034.png +0 -0
  43. data/docs/assets/img/035.png +0 -0
  44. data/docs/assets/img/036.png +0 -0
  45. data/docs/assets/img/037.png +0 -0
  46. data/docs/assets/img/038.png +0 -0
  47. data/docs/assets/img/039.png +0 -0
  48. data/docs/assets/img/040.png +0 -0
  49. data/docs/assets/img/041.png +0 -0
  50. data/docs/assets/img/042.png +0 -0
  51. data/docs/assets/img/043.png +0 -0
  52. data/docs/assets/img/044.png +0 -0
  53. data/docs/assets/img/045.png +0 -0
  54. data/docs/assets/img/046.png +0 -0
  55. data/docs/assets/img/048.png +0 -0
  56. data/docs/assets/img/049.png +0 -0
  57. data/docs/assets/img/050.png +0 -0
  58. data/docs/assets/img/051.png +0 -0
  59. data/docs/assets/img/052.png +0 -0
  60. data/docs/assets/img/053.png +0 -0
  61. data/docs/assets/svg/005.svg +17 -17
  62. data/docs/assets/svg/011.svg +19 -19
  63. data/docs/assets/svg/012.svg +17 -17
  64. data/docs/assets/svg/013.svg +76 -76
  65. data/docs/assets/svg/026.svg +15 -15
  66. data/docs/assets/svg/027.svg +46 -46
  67. data/docs/assets/svg/040.svg +63 -63
  68. data/docs/assets/svg/053.svg +81 -0
  69. data/lib/rsyntaxtree/base_graph.rb +1 -1
  70. data/lib/rsyntaxtree/element.rb +16 -10
  71. data/lib/rsyntaxtree/elementlist.rb +1 -1
  72. data/lib/rsyntaxtree/markup_parser.rb +2 -1
  73. data/lib/rsyntaxtree/string_parser.rb +35 -27
  74. data/lib/rsyntaxtree/svg_graph.rb +1 -1
  75. data/lib/rsyntaxtree/utils.rb +1 -1
  76. data/lib/rsyntaxtree/version.rb +1 -1
  77. data/lib/rsyntaxtree.rb +1 -3
  78. data/test/markup_parser_test.rb +7 -0
  79. metadata +6 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7de54cb3d1262ff084403ab3eada539ba7a88f030aa405716f6b1c8ca0167b02
4
- data.tar.gz: df2e706db9e7edd381bc0f56c5462e838e28636eda1f22016eebeb67024b7024
3
+ metadata.gz: d22d15ae9e17b8312dc6fdc9c37c4fe942e981854eb69589eb4b117acd1d781b
4
+ data.tar.gz: 983152369ea224f73372c0e7f7754bc5db36e65fab6d20eec235757dde5a44b0
5
5
  SHA512:
6
- metadata.gz: 75166406524c0dcf301b7d71445c5bb25c1c5f7000189332ba517ebe125a60a3f0a35c0103ad070b737a9aa5fa9c59e49e80eb087d428a4bcce17f8c4c75ee9e
7
- data.tar.gz: ec4035e5cc23440c84c4d087b206e8d0f5abab8b7ab8855704eea0e65971dcdefd8fcdbd39fb7cd329f62ac9405d6f12f8042e764a4c7788f7001385d3aab784
6
+ metadata.gz: 7d754218424e09ebf23c84471f192f5f3192dd0a94e1b277e3c28bfed2cdcd5ca5e0cb4785fd19f37584811943cd09e0eb9a22595f2b0c321add4d417bda08c3
7
+ data.tar.gz: 024f6fd854639fee40d7377509b2f36b00cab56c86929c6d2c1b833aab7c0ad77b6a519a5506a679fa315c69c8b1fe7c16bf1665e425ac4747cb6714feb67c2a
data/Dockerfile CHANGED
@@ -1,5 +1,5 @@
1
- FROM ruby:3.2.0-alpine3.17
2
- ENV WORKSPACE /rsyntaxtree
1
+ FROM ruby:3.3-alpine
2
+ ENV WORKSPACE=/rsyntaxtree
3
3
  WORKDIR $WORKSPACE
4
4
 
5
5
  RUN apk update && \
data/README.md CHANGED
@@ -74,6 +74,7 @@ Usage:
74
74
  2) rsyntaxtree [options] "/path/to/text/file"
75
75
  where [options] are:
76
76
  -o, --outdir=<s> Output directory (default: ./)
77
+ -u, --outfilename=<s> Output file base name (default: syntree)
77
78
  -f, --format=<s> Output format: png, gif, jpg, pdf, or svg (default: png)
78
79
  -l, --leafstyle=<s> visual style of tree leaves: auto, triangle, bar, or nothing (default: auto)
79
80
  -n, --fontstyle=<s> Font style (available when ttf font is specified): sans, serif, cjk, mono (default: sans)
@@ -97,11 +98,11 @@ See the [documentation](https://yohasebe.github.io/rsyntaxtree/documentation) fo
97
98
  Please use the following BibTeX entry when referring to RSyntaxTree.
98
99
 
99
100
  ```
100
- @misc{rsyntaxtree_2023,
101
+ @misc{rsyntaxtree_2024,
101
102
  author = {Yoichiro Hasebe},
102
103
  title = {RSyntaxTree: A graphical syntax tree image generator}
103
104
  url = {https://yohasebe.com/rsyntaxtree},
104
- year = {2023}
105
+ year = {2024}
105
106
  }
106
107
  ```
107
108
 
data/Rakefile CHANGED
@@ -23,7 +23,7 @@ task :docker_build do
23
23
  `docker build ./ -t rsyntaxtree_devel`
24
24
  end
25
25
 
26
- desc "Generate SVG and PNG example images using Docker mage"
26
+ desc "Generate SVG and PNG example images using Docker image"
27
27
  task :docker_generate do
28
28
  docpath = File.expand_path(File.join(__dir__, "docs"))
29
29
  `docker build ./ -t rsyntaxtree_devel`
data/bin/rsyntaxtree CHANGED
@@ -7,7 +7,7 @@ require_relative '../lib/rsyntaxtree'
7
7
  require_relative '../lib/rsyntaxtree/utils'
8
8
 
9
9
  opts = Optimist.options do
10
- version "RSyntaxTree #{RSyntaxTree::VERSION} (c) 2023 Yoichiro Hasebe"
10
+ version "RSyntaxTree #{RSyntaxTree::VERSION} (c) 2024 Yoichiro Hasebe"
11
11
  banner <<~BANNER
12
12
  RSyntaxTree, (linguistic) syntax tree generator written in Ruby.
13
13
 
@@ -18,6 +18,7 @@ opts = Optimist.options do
18
18
  BANNER
19
19
 
20
20
  opt :outdir, "Output directory", default: "./"
21
+ opt :outfilename, "Output file base name", default: "syntree"
21
22
  opt :format, "Output format: png, pdf, or svg", default: "png"
22
23
  opt :leafstyle, "visual style of tree leaves: auto, triangle, bar, or nothing", default: "auto"
23
24
  opt :fontstyle, "Font style (available when ttf font is specified): sans, serif, cjk, mono", default: "sans"
@@ -69,7 +70,8 @@ begin
69
70
  string_opts[:data] = data
70
71
  rsg = RSyntaxTree::RSGenerator.new(string_opts)
71
72
  ext = string_opts[:format]
72
- filepath = File.expand_path(string_opts[:outdir]) + "/syntree." + ext
73
+ outfilename = string_opts[:outfilename] || "syntree"
74
+ filepath = File.expand_path(string_opts[:outdir]) + "/#{outfilename}." + ext
73
75
  case ext
74
76
  when "pdf"
75
77
  outfile = File.new(filepath, "wb")
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: "053"
3
+ color: "on"
4
+ caption: "Escaping square brackets"
5
+ category: "Miscellaneous"
6
+ polyline: "off"
7
+ symmetrization: "off"
8
+ connector: "auto"
9
+ connector_height: "3.0"
10
+ linewidth: "1"
11
+ hide_default_connectors: "off"
12
+ font: "Noto Serif"
13
+ ---
14
+ ```
15
+ [expr
16
+ [id x
17
+
18
+ ]
19
+ [suffix
20
+ \[
21
+ [id 2
22
+
23
+ ]
24
+ \]
25
+ [suffix
26
+ \[
27
+ [id 3
28
+
29
+ ]
30
+ \]
31
+ [suffix
32
+ \[
33
+ [id 4
34
+
35
+ ]
36
+ \]
37
+ ]
38
+ ]
39
+ ]
40
+ ]
41
+ ```
@@ -35,7 +35,7 @@
35
35
  {{ content }}
36
36
 
37
37
  <footer class="site-footer" style='border-top-width: 0; text-align: center;'>
38
- <div> <span class="site-footer-credits">© Yoichiro HASEBE 2009-2023</span></div>
38
+ <div> <span class="site-footer-credits">© Yoichiro HASEBE 2009-2024</span></div>
39
39
  {% include social_media_links.html %}
40
40
  </footer>
41
41
  </main>
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" standalone="no"?>
2
2
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
- <svg width="514.0" height="545.75" viewBox="-16.8, 0, 530.8, 557.0" version="1.1" xmlns="http://www.w3.org/2000/svg">
3
+ <svg width="472.0" height="545.75" viewBox="-16.8, 0, 488.8, 557.0" version="1.1" xmlns="http://www.w3.org/2000/svg">
4
4
  <defs>
5
5
  <marker id="arrow" markerUnits="userSpaceOnUse" viewBox="0 0 10 10" refX="10" refY="5" markerWidth="16.8" markerHeight="16.8" orient="auto">
6
6
  <path d="M 0 0 L 10 5 L 0 10" fill="black"/>
@@ -24,27 +24,27 @@
24
24
  <line x1="0" y="0" x2="0" y2="10" stroke="black" stroke-width="4"></line>
25
25
  </pattern>
26
26
  </defs>
27
- <rect x="-16.8" y="0" width="530.8" height="557.0" stroke="none" fill="white" />"
28
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='172.1625' y='67.5'><tspan x='172.1625' y='67.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">X</tspan>
29
- <tspan x='194.1625' y='57.25' style="font-size: 70%; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">max</tspan>
27
+ <rect x="-16.8" y="0" width="488.8" height="557.0" stroke="none" fill="white" />"
28
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='140.6625' y='67.5'><tspan x='140.6625' y='67.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">X</tspan>
29
+ <tspan x='162.6625' y='57.25' style="font-size: 70%; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">max</tspan>
30
30
  </text>
31
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='16.80000000000001' y='218.0'><tspan x='16.80000000000001' y='218.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">[Y−X]</tspan>
31
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='16.799999999999997' y='218.0'><tspan x='16.799999999999997' y='218.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">[Y−X]</tspan>
32
32
  </text>
33
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='312.525' y='218.0'><tspan x='312.525' y='218.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">YP</tspan>
33
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='270.525' y='218.0'><tspan x='270.525' y='218.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">YP</tspan>
34
34
  </text>
35
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='210.0' y='368.5'><tspan x='210.0' y='368.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">Spec</tspan>
36
- <tspan x='283.0' y='372.5' style="font-size: 70%; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">1</tspan>
35
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='168.0' y='368.5'><tspan x='168.0' y='368.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">Spec</tspan>
36
+ <tspan x='241.0' y='372.5' style="font-size: 70%; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">1</tspan>
37
37
  </text>
38
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='400.54999999999995' y='368.5'><tspan x='400.54999999999995' y='368.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">Y'</tspan>
38
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='358.54999999999995' y='368.5'><tspan x='358.54999999999995' y='368.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">Y'</tspan>
39
39
  </text>
40
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='362.2' y='519.0'><tspan x='362.2' y='519.0' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">t</tspan>
40
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='320.20000000000005' y='519.0'><tspan x='320.20000000000005' y='519.0' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">t</tspan>
41
41
  </text>
42
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='441.4' y='519.0'><tspan x='441.4' y='519.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">ZP</tspan>
42
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='399.4' y='519.0'><tspan x='399.4' y='519.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">ZP</tspan>
43
43
  </text>
44
- <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='79.80000000000001' y1='161.75' x2='206.6625' y2='95.625' />
45
- <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='333.525' y1='161.75' x2='206.6625' y2='95.625' />
46
- <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='252.5' y1='312.25' x2='333.525' y2='246.125' />
47
- <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='414.54999999999995' y1='312.25' x2='333.525' y2='246.125' />
48
- <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='368.2' y1='462.75' x2='414.54999999999995' y2='396.625' />
49
- <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='460.9' y1='462.75' x2='414.54999999999995' y2='396.625' />
44
+ <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='58.8' y1='161.75' x2='175.1625' y2='95.625' />
45
+ <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='291.525' y1='161.75' x2='175.1625' y2='95.625' />
46
+ <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='210.5' y1='312.25' x2='291.525' y2='246.125' />
47
+ <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='372.54999999999995' y1='312.25' x2='291.525' y2='246.125' />
48
+ <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='326.20000000000005' y1='462.75' x2='372.54999999999995' y2='396.625' />
49
+ <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='418.9' y1='462.75' x2='372.54999999999995' y2='396.625' />
50
50
  </svg>
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" standalone="no"?>
2
2
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
- <svg width="596.9999999999999" height="614.25" viewBox="-16.8, 0, 613.7999999999998, 625.5" version="1.1" xmlns="http://www.w3.org/2000/svg">
3
+ <svg width="577.0" height="614.25" viewBox="-16.8, 0, 593.8, 625.5" version="1.1" xmlns="http://www.w3.org/2000/svg">
4
4
  <defs>
5
5
  <marker id="arrow" markerUnits="userSpaceOnUse" viewBox="0 0 10 10" refX="10" refY="5" markerWidth="16.8" markerHeight="16.8" orient="auto">
6
6
  <path d="M 0 0 L 10 5 L 0 10" fill="black"/>
@@ -24,35 +24,35 @@
24
24
  <line x1="0" y="0" x2="0" y2="10" stroke="black" stroke-width="4"></line>
25
25
  </pattern>
26
26
  </defs>
27
- <rect x="-16.8" y="0" width="613.7999999999998" height="625.5" stroke="none" fill="white" />"
28
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='273.97499999999997' y='67.5'><tspan x='273.97499999999997' y='67.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S</tspan>
29
- <tspan x='277.22499999999997' y='112.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;</tspan>
27
+ <rect x="-16.8" y="0" width="593.8" height="625.5" stroke="none" fill="white" />"
28
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='266.47499999999997' y='67.5'><tspan x='266.47499999999997' y='67.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S</tspan>
29
+ <tspan x='269.72499999999997' y='112.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;</tspan>
30
30
  </text>
31
31
  <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='100.14999999999998' y='283.5'><tspan x='100.14999999999998' y='283.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP</tspan>
32
32
  <tspan x='116.39999999999998' y='328.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#62;</tspan>
33
33
  </text>
34
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='16.80000000000001' y='499.5'><tspan x='16.80000000000001' y='499.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP/N</tspan>
35
- <tspan x='31.30000000000001' y='589.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">the</tspan>
34
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='16.799999999999983' y='499.5'><tspan x='16.799999999999983' y='499.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP/N</tspan>
35
+ <tspan x='31.299999999999983' y='589.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">the</tspan>
36
36
  </text>
37
37
  <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='159.99999999999997' y='499.5'><tspan x='176.49999999999997' y='499.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">N</tspan>
38
38
  <tspan x='159.99999999999997' y='589.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">dog</tspan>
39
39
  </text>
40
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='408.29999999999995' y='283.5'><tspan x='408.29999999999995' y='283.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S\NP</tspan>
41
- <tspan x='438.04999999999995' y='328.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#62;</tspan>
40
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='398.29999999999995' y='283.5'><tspan x='398.29999999999995' y='283.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S\NP</tspan>
41
+ <tspan x='423.04999999999995' y='328.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#62;</tspan>
42
42
  </text>
43
43
  <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='284.19999999999993' y='499.5'><tspan x='284.19999999999993' y='499.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">(S\NP)\NP</tspan>
44
- <tspan x='336.69999999999993' y='589.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">bit</tspan>
44
+ <tspan x='326.69999999999993' y='589.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">bit</tspan>
45
45
  </text>
46
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='496.4' y='499.5'><tspan x='508.4' y='499.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP</tspan>
47
- <tspan x='496.4' y='589.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">John</tspan>
46
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='476.4' y='499.5'><tspan x='488.4' y='499.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP</tspan>
47
+ <tspan x='476.4' y='589.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">John</tspan>
48
48
  </text>
49
- <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='121.64999999999998' y1='227.25' x2='282.47499999999997' y2='140.625' />
50
- <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='443.29999999999995' y1='227.25' x2='282.47499999999997' y2='140.625' />
51
- <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='54.80000000000001' y1='443.25' x2='121.64999999999998' y2='356.625' />
49
+ <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='121.64999999999998' y1='227.25' x2='274.97499999999997' y2='140.625' />
50
+ <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='428.29999999999995' y1='227.25' x2='274.97499999999997' y2='140.625' />
51
+ <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='54.79999999999998' y1='443.25' x2='121.64999999999998' y2='356.625' />
52
52
  <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='188.49999999999997' y1='443.25' x2='121.64999999999998' y2='356.625' />
53
- <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='356.69999999999993' y1='443.25' x2='443.29999999999995' y2='356.625' />
54
- <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='529.9' y1='443.25' x2='443.29999999999995' y2='356.625' />
55
- <line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="16.80000000000001" y1="533.25" x2="92.80000000000001" y2="533.25"></line>
53
+ <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='346.69999999999993' y1='443.25' x2='428.29999999999995' y2='356.625' />
54
+ <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='509.9' y1='443.25' x2='428.29999999999995' y2='356.625' />
55
+ <line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="16.799999999999983" y1="533.25" x2="92.79999999999998" y2="533.25"></line>
56
56
  <line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="159.99999999999997" y1="533.25" x2="216.99999999999997" y2="533.25"></line>
57
- <line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="284.19999999999993" y1="533.25" x2="429.19999999999993" y2="533.25"></line>
58
- <line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="496.4" y1="533.25" x2="563.4" y2="533.25"></line></svg>
57
+ <line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="284.19999999999993" y1="533.25" x2="409.19999999999993" y2="533.25"></line>
58
+ <line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="476.4" y1="533.25" x2="543.4" y2="533.25"></line></svg>
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" standalone="no"?>
2
2
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
- <svg width="595.9999999999999" height="1046.25" viewBox="-16.8, 0, 612.7999999999998, 1057.5" version="1.1" xmlns="http://www.w3.org/2000/svg">
3
+ <svg width="585.9999999999999" height="1046.25" viewBox="-16.8, 0, 602.7999999999998, 1057.5" version="1.1" xmlns="http://www.w3.org/2000/svg">
4
4
  <defs>
5
5
  <marker id="arrow" markerUnits="userSpaceOnUse" viewBox="0 0 10 10" refX="10" refY="5" markerWidth="16.8" markerHeight="16.8" orient="auto">
6
6
  <path d="M 0 0 L 10 5 L 0 10" fill="black"/>
@@ -24,15 +24,15 @@
24
24
  <line x1="0" y="0" x2="0" y2="10" stroke="black" stroke-width="4"></line>
25
25
  </pattern>
26
26
  </defs>
27
- <rect x="-16.8" y="0" width="612.7999999999998" height="1057.5" stroke="none" fill="white" />"
28
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='375.41249999999997' y='67.5'><tspan x='375.41249999999997' y='67.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S</tspan>
29
- <tspan x='378.66249999999997' y='112.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#62;</tspan>
27
+ <rect x="-16.8" y="0" width="602.7999999999998" height="1057.5" stroke="none" fill="white" />"
28
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='369.16249999999997' y='67.5'><tspan x='369.16249999999997' y='67.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S</tspan>
29
+ <tspan x='372.41249999999997' y='112.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#62;</tspan>
30
30
  </text>
31
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='204.42499999999995' y='283.5'><tspan x='204.42499999999995' y='283.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S/NP</tspan>
32
- <tspan x='224.67499999999995' y='328.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">B</tspan>
33
- <tspan x='245.67499999999995' y='332.5' style="font-size: 70%; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#62;</tspan>
31
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='201.92499999999995' y='283.5'><tspan x='201.92499999999995' y='283.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S/NP</tspan>
32
+ <tspan x='222.17499999999995' y='328.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">B</tspan>
33
+ <tspan x='243.17499999999995' y='332.5' style="font-size: 70%; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#62;</tspan>
34
34
  </text>
35
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='62.64999999999998' y='499.5'><tspan x='62.64999999999998' y='499.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S/(S\NP)</tspan>
35
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='67.64999999999998' y='499.5'><tspan x='67.64999999999998' y='499.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S/(S\NP)</tspan>
36
36
  <tspan x='107.89999999999998' y='544.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">T</tspan>
37
37
  <tspan x='127.89999999999998' y='548.5' style="font-size: 70%; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#62;</tspan>
38
38
  </text>
@@ -46,19 +46,19 @@
46
46
  <tspan x='160.0' y='1021.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">dog</tspan>
47
47
  </text>
48
48
  <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='284.2' y='499.5'><tspan x='284.2' y='499.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">(S\NP)/NP</tspan>
49
- <tspan x='336.2' y='589.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">bit</tspan>
49
+ <tspan x='331.2' y='589.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">bit</tspan>
50
50
  </text>
51
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='495.4' y='283.5'><tspan x='507.4' y='283.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP</tspan>
52
- <tspan x='495.4' y='373.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">John</tspan>
51
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='485.4' y='283.5'><tspan x='497.4' y='283.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP</tspan>
52
+ <tspan x='485.4' y='373.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">John</tspan>
53
53
  </text>
54
- <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='238.92499999999998' y1='227.25' x2='383.91249999999997' y2='140.625' />
55
- <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='528.9' y1='227.25' x2='383.91249999999997' y2='140.625' />
56
- <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='121.64999999999998' y1='443.25' x2='238.92499999999998' y2='356.625' />
57
- <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='356.2' y1='443.25' x2='238.92499999999998' y2='356.625' />
54
+ <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='236.42499999999998' y1='227.25' x2='377.66249999999997' y2='140.625' />
55
+ <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='518.9' y1='227.25' x2='377.66249999999997' y2='140.625' />
56
+ <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='121.64999999999998' y1='443.25' x2='236.42499999999998' y2='356.625' />
57
+ <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='351.2' y1='443.25' x2='236.42499999999998' y2='356.625' />
58
58
  <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='121.64999999999998' y1='659.25' x2='121.64999999999998' y2='572.625' />
59
59
  <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='54.80000000000001' y1='875.25' x2='121.64999999999998' y2='788.625' />
60
60
  <line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='188.5' y1='875.25' x2='121.64999999999998' y2='788.625' />
61
61
  <line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="16.80000000000001" y1="965.25" x2="92.80000000000001" y2="965.25"></line>
62
62
  <line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="160.0" y1="965.25" x2="217.0" y2="965.25"></line>
63
- <line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="284.2" y1="533.25" x2="428.2" y2="533.25"></line>
64
- <line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="495.4" y1="317.25" x2="562.4" y2="317.25"></line></svg>
63
+ <line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="284.2" y1="533.25" x2="418.2" y2="533.25"></line>
64
+ <line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="485.4" y1="317.25" x2="552.4" y2="317.25"></line></svg>