railroad_diagrams 0.1.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 992d560c768d0ad4991ea5c774a60083b4a2f8c407b88c91abfe6c92ab73fea5
4
- data.tar.gz: 108ce587863fb33a368d2e5278002ff6ee6bd6885576f6f7b9a7cd4e7c8eec3a
3
+ metadata.gz: a6fa68a911b60026d1ad25654c32a26e5f0f2e972e62361b23d451a4f9a97631
4
+ data.tar.gz: 24048fdb5ee0ffb805f5581f37035f37f7fab2328ba15aec5134590de5f5db1d
5
5
  SHA512:
6
- metadata.gz: 6795906adf826df7a16207cea05cc54a3724cd66ab5dd0a9120643d5b2bf24f08ab7ac2b66d517478cd826c1baccc6faadfe1365b40dc6636bcd102e2ab393cf
7
- data.tar.gz: e041c348cea71435c688dedb451eb368b00e71dac41cce239492766e7dd2991c61576c0087774064a948d9248538f74b233dfde439117b6587ed46df310a4ba3
6
+ metadata.gz: cab2582164d955d3761eabb1f28b663b9dcd28399309259e225560b9d142eff2f92963dc4e9f118a6bfe21be1dba2e67c452638e8de63ce1282c6db30d4052d5
7
+ data.tar.gz: d7babd2c0e30c60fedd4a3ca638eec5169ffd3d60418abe36478f256010f0354b857b7c9891ad90991b728b9cfa6ea926bf948b2ccec0f4d10cd723d7a09345f
@@ -0,0 +1,29 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+
9
+ jobs:
10
+ ruby-versions:
11
+ uses: ruby/actions/.github/workflows/ruby_versions.yml@master
12
+ with:
13
+ engine: cruby
14
+ min_version: 2.5
15
+ test:
16
+ needs: ruby-versions
17
+ runs-on: ubuntu-22.04
18
+ strategy:
19
+ fail-fast: false
20
+ matrix:
21
+ ruby: ${{ fromJson(needs.ruby-versions.outputs.versions) }}
22
+ steps:
23
+ - uses: actions/checkout@v4
24
+ - name: Set up Ruby
25
+ uses: ruby/setup-ruby@v1
26
+ with:
27
+ ruby-version: ${{ matrix.ruby }}
28
+ bundler-cache: true
29
+ - run: exe/railroad_diagrams --format=svg
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ Gemfile.lock
data/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.2.1 - 2025-02-01
6
+
7
+ - Fix an error for bundle install from Ruby 2.5.
8
+
9
+ ## 0.2.0 - 2025-02-01
10
+
11
+ - Fix an error for standalone mode.
12
+ - Support Ruby 2.5 ~ 3.4.
13
+ - Change default style.
14
+
5
15
  ## 0.1.0 - 2025-02-01
6
16
 
7
- - Initial release
17
+ - Initial release.
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gemspec
6
+
7
+ gem "rake"
@@ -201,7 +201,7 @@ module RailroadDiagrams
201
201
  else
202
202
  []
203
203
  end
204
- diagram_td = diagram_td.append_below(item_td, separator, move_entry:, move_exit:)
204
+ diagram_td = diagram_td.append_below(item_td, separator, move_entry: move_entry, move_exit: move_exit)
205
205
  end
206
206
  diagram_td
207
207
  end
@@ -31,7 +31,7 @@ module RailroadDiagrams
31
31
  text: @text
32
32
  )
33
33
  if @href
34
- a = DiagramItem.new('a', attrs: { 'xlink:href' => @href }, text:).add(self)
34
+ a = DiagramItem.new('a', attrs: { 'xlink:href' => @href }, text: text).add(self)
35
35
  text.add(a)
36
36
  else
37
37
  text.add(self)
@@ -71,8 +71,8 @@ module RailroadDiagrams
71
71
 
72
72
  def text_diagram
73
73
  separator, = TextDiagram.get_parts(['separator'])
74
- diagram_td = items[0].text_diagram
75
- items[1..].each do |item|
74
+ diagram_td = @items[0].text_diagram
75
+ @items[1..-1].each do |item|
76
76
  item_td = item.text_diagram
77
77
  item_td.expand(1, 1, 0, 0) if item.needs_space
78
78
  diagram_td = diagram_td.append_right(separator)
@@ -85,7 +85,7 @@ module RailroadDiagrams
85
85
  super
86
86
  end
87
87
 
88
- def write_text(_write)
88
+ def write_text(write)
89
89
  output = text_diagram
90
90
  output = "#{output.lines.join("\n")}\n"
91
91
  output = output.gsub('&', '&amp;').gsub('<', '&lt;').gsub('>', '&gt;').gsub('"', '&quot;') if ESCAPE_HTML
@@ -98,7 +98,7 @@ module RailroadDiagrams
98
98
  Style.new(css).add(self)
99
99
  @attrs['xmlns'] = 'http://www.w3.org/2000/svg'
100
100
  @attrs['xmlns:xlink'] = 'http://www.w3.org/1999/xlink'
101
- DiagramItem.write_svg(write)
101
+ super(write)
102
102
  @children.pop
103
103
  @attrs.delete('xmlns')
104
104
  @attrs.delete('xmlns:xlink')
@@ -34,7 +34,7 @@ module RailroadDiagrams
34
34
  write.call(" #{name}=\"#{RailroadDiagrams.escape_attr(value)}\"")
35
35
  end
36
36
  write.call('>')
37
- write.call("\n") if @name in %w[g svg]
37
+ write.call("\n") if %w[g svg].include?(@name)
38
38
  @children.each do |child|
39
39
  if child.is_a?(DiagramItem) || child.is_a?(Path) || child.is_a?(Style)
40
40
  child.write_svg(write)
@@ -73,5 +73,9 @@ module RailroadDiagrams
73
73
  [diff / 2, diff / 2]
74
74
  end
75
75
  end
76
+
77
+ def write_standalone(write, css = nil)
78
+ write_svg(write)
79
+ end
76
80
  end
77
81
  end
@@ -3,7 +3,7 @@
3
3
  module RailroadDiagrams
4
4
  class DiagramMultiContainer < DiagramItem
5
5
  def initialize(name, items, attrs = nil, text = nil)
6
- super(name, attrs:, text:)
6
+ super(name, attrs: attrs, text: text)
7
7
  @items = items.map { |item| wrap_string(item) }
8
8
  end
9
9
 
@@ -74,7 +74,7 @@ module RailroadDiagrams
74
74
 
75
75
  # lower track
76
76
  lower_span =
77
- @items[1..].sum { |item| item.width + (item.needs_space ? 20 : 0) } +
77
+ @items[1..-1].sum { |item| item.width + (item.needs_space ? 20 : 0) } +
78
78
  ((@items.size - 2) * AR * 2) +
79
79
  (last.height.positive? ? AR : 0) -
80
80
  AR
@@ -70,7 +70,7 @@ module RailroadDiagrams
70
70
  Path.new(x + 30 + AR + @inner_width, y + @height).right(AR).add(self)
71
71
 
72
72
  # Do the elements that curve below
73
- below = @items[(@default + 1)..] || []
73
+ below = @items[(@default + 1)..-1] || []
74
74
  distance_from_y = [10 + AR, default.height + default.down + VS + below.first.up].max if below.any?
75
75
 
76
76
  below.each_with_index do |item, i|
@@ -49,7 +49,7 @@ module RailroadDiagrams
49
49
  attrs: {
50
50
  'xlink:href' => @href
51
51
  },
52
- text:
52
+ text: text
53
53
  ).add(self)
54
54
  text.add(a)
55
55
  else
@@ -103,7 +103,7 @@ module RailroadDiagrams
103
103
  # The bottom item exits directly to its right.
104
104
  right_lines += [line * 2]
105
105
  end
106
- left_pad, right_pad = TextDiagram._gaps(max_width, item_td.width)
106
+ left_pad, right_pad = TextDiagram.gaps(max_width, item_td.width)
107
107
  item_td = item_td.expand(left_pad, right_pad, 0, 0)
108
108
  diagram_td = if item_num.zero?
109
109
  item_td
@@ -9,8 +9,11 @@ module RailroadDiagrams
9
9
  class << self
10
10
  def default_style
11
11
  <<~CSS
12
+ * {
13
+ color: #333333;
14
+ }
12
15
  svg.railroad-diagram {
13
- background-color:hsl(30,20%,95%);
16
+ background-color: white;
14
17
  }
15
18
  svg.railroad-diagram path {
16
19
  stroke-width:3;
@@ -21,17 +24,26 @@ module RailroadDiagrams
21
24
  font:bold 14px monospace;
22
25
  text-anchor:middle;
23
26
  }
24
- svg.railroad-diagram text.label{
27
+ svg.railroad-diagram text.label {
25
28
  text-anchor:start;
26
29
  }
27
- svg.railroad-diagram text.comment{
30
+ svg.railroad-diagram text.comment {
28
31
  font:italic 12px monospace;
29
32
  }
30
- svg.railroad-diagram rect{
33
+ svg.railroad-diagram rect {
31
34
  stroke-width:3;
32
- stroke:black;
35
+ stroke: #333333;
33
36
  fill:hsl(120,100%,90%);
34
37
  }
38
+ svg.railroad-diagram path {
39
+ stroke: #333333;
40
+ }
41
+ svg.railroad-diagram .terminal rect {
42
+ fill: hsl(190, 100%, 83%);
43
+ }
44
+ svg.railroad-diagram .non-terminal rect {
45
+ fill: hsl(223, 100%, 83%);
46
+ }
35
47
  svg.railroad-diagram rect.group-box {
36
48
  stroke: gray;
37
49
  stroke-dasharray: 10 5;
@@ -46,7 +46,7 @@ module RailroadDiagrams
46
46
  text: @text
47
47
  )
48
48
  if @href
49
- a = DiagramItem.new('a', attrs: { 'xlink:href' => @href }, text:).add(self)
49
+ a = DiagramItem.new('a', attrs: { 'xlink:href' => @href }, text: text).add(self)
50
50
  text.add(a)
51
51
  else
52
52
  text.add(self)
@@ -139,6 +139,32 @@ module RailroadDiagrams
139
139
  string + (pad * (gap / pad.length))
140
140
  end
141
141
 
142
+ def get_parts(part_names)
143
+ part_names.map { |name| @parts[name] }
144
+ end
145
+
146
+ def enclose_lines(lines, lefts, rights)
147
+ unless lines.length == lefts.length && lines.length == rights.length
148
+ raise 'All arguments must be the same length'
149
+ end
150
+
151
+ lines.each_with_index.map { |line, i| lefts[i] + line + rights[i] }
152
+ end
153
+
154
+ def gaps(outer_width, inner_width)
155
+ diff = outer_width - inner_width
156
+ case INTERNAL_ALIGNMENT
157
+ when 'left'
158
+ [0, diff]
159
+ when 'right'
160
+ [diff, 0]
161
+ else
162
+ left = diff / 2
163
+ right = diff - left
164
+ [left, right]
165
+ end
166
+ end
167
+
142
168
  private
143
169
 
144
170
  def rectish(rect_type, data, dashed)
@@ -192,32 +218,6 @@ module RailroadDiagrams
192
218
 
193
219
  new(entry, exit, new_lines)
194
220
  end
195
-
196
- def enclose_lines(lines, lefts, rights)
197
- unless lines.length == lefts.length && lines.length == rights.length
198
- raise 'All arguments must be the same length'
199
- end
200
-
201
- lines.each_with_index.map { |line, i| lefts[i] + line + rights[i] }
202
- end
203
-
204
- def gaps(outer_width, inner_width)
205
- diff = outer_width - inner_width
206
- case INTERNAL_ALIGNMENT
207
- when 'left'
208
- [0, diff]
209
- when 'right'
210
- [diff, 0]
211
- else
212
- left = diff / 2
213
- right = diff - left
214
- [left, right]
215
- end
216
- end
217
-
218
- def get_parts(part_names)
219
- part_names.map { |name| @parts[name] }
220
- end
221
221
  end
222
222
 
223
223
  attr_reader :entry, :exit, :height, :lines, :width
@@ -282,7 +282,7 @@ module RailroadDiagrams
282
282
  left = [pad * left_width] * @height
283
283
  right = [pad * (total_padding - left_width)] * @height
284
284
 
285
- self.class.new(@entry, @exit, enclose_lines(@lines, left, right))
285
+ self.class.new(@entry, @exit, self.class.enclose_lines(@lines, left, right))
286
286
  end
287
287
 
288
288
  def copy
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailroadDiagrams
4
- VERSION = '0.1.0'
4
+ VERSION = '0.2.1'
5
5
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/railroad_diagrams/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'railroad_diagrams'
7
+ spec.version = RailroadDiagrams::VERSION
8
+ spec.authors = ['Yudai Takada']
9
+ spec.email = ['t.yudai92@gmail.com']
10
+
11
+ spec.summary = '🛤️ A tiny Ruby+SVG library for drawing railroad syntax diagrams like JSON.org.'
12
+ spec.description = 'Generate SVG railroad syntax diagrams, like on JSON.org.'
13
+ spec.homepage = "https://github.com/ydah/railroad_diagrams"
14
+ spec.license = 'MIT'
15
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
16
+
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = spec.homepage
19
+ spec.metadata["changelog_uri"] = "#{spec.homepage}/releases"
20
+ spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/issues"
21
+ spec.metadata['rubygems_mfa_required'] = 'true'
22
+
23
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
24
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features|sample)/}) }
25
+ end
26
+
27
+ spec.bindir = 'exe'
28
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ['lib']
30
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: railroad_diagrams
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yudai Takada
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-01-31 00:00:00.000000000 Z
10
+ date: 2025-02-01 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: Generate SVG railroad syntax diagrams, like on JSON.org.
13
13
  email:
@@ -17,7 +17,10 @@ executables:
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
+ - ".github/workflows/main.yml"
21
+ - ".gitignore"
20
22
  - CHANGELOG.md
23
+ - Gemfile
21
24
  - LICENSE.txt
22
25
  - MIT
23
26
  - README.md
@@ -49,7 +52,7 @@ files:
49
52
  - lib/railroad_diagrams/text_diagram.rb
50
53
  - lib/railroad_diagrams/version.rb
51
54
  - lib/railroad_diagrams/zero_or_more.rb
52
- - sample/sample.html
55
+ - railroad_diagrams.gemspec
53
56
  - test.rb
54
57
  homepage: https://github.com/ydah/railroad_diagrams
55
58
  licenses:
@@ -67,7 +70,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
67
70
  requirements:
68
71
  - - ">="
69
72
  - !ruby/object:Gem::Version
70
- version: 3.1.0
73
+ version: 2.5.0
71
74
  required_rubygems_version: !ruby/object:Gem::Requirement
72
75
  requirements:
73
76
  - - ">="
data/sample/sample.html DELETED
@@ -1,215 +0,0 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <title>Test</title>
5
- <style>
6
- svg.railroad-diagram {
7
- background-color:hsl(30,20%,95%);
8
- }
9
- svg.railroad-diagram path {
10
- stroke-width:3;
11
- stroke:black;
12
- fill:rgba(0,0,0,0);
13
- }
14
- svg.railroad-diagram text {
15
- font:bold 14px monospace;
16
- text-anchor:middle;
17
- }
18
- svg.railroad-diagram text.label{
19
- text-anchor:start;
20
- }
21
- svg.railroad-diagram text.comment{
22
- font:italic 12px monospace;
23
- }
24
- svg.railroad-diagram rect{
25
- stroke-width:3;
26
- stroke:black;
27
- fill:hsl(120,100%,90%);
28
- }
29
- svg.railroad-diagram rect.group-box {
30
- stroke: gray;
31
- stroke-dasharray: 10 5;
32
- fill: none;
33
- }
34
-
35
- .blue text { fill: blue; }
36
- </style>
37
- </head><body>
38
-
39
- <h1>test choice up</h1>
40
- <svg class="railroad-diagram" height="298" viewBox="0 0 205 298" width="205"><g transform="translate(.5 .5)"><g><path d="M20 258v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 268h0" /><path d="M165 268h0" /><path d="M40 268a10 10 0 0 0 10 -10v-46a10 10 0 0 1 10 -10" /><g><path d="M60 202h0" /><path d="M145 242h0" /><rect class="group-box" height="100" rx="10" ry="10" width="85" x="60" y="160"></rect><g><path d="M60 202h0" /><path d="M145 242h0" /><path d="M60 202a10 10 0 0 0 10 -10v-14a10 10 0 0 1 10 -10" /><g><path d="M80 168h45" /></g><path d="M125 168a10 10 0 0 1 10 10v54a10 10 0 0 0 10 10" /><path d="M60 202h20" /><g><path d="M80 202h0" /><path d="M125 242h0" /><rect class="group-box" height="60" rx="10" ry="10" width="45" x="80" y="192"></rect><g><path d="M80 202h12" /><path d="M92 202h10" /><g><path d="M102 202h0" /></g><path d="M102 202a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h0a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M102 242h0" /></g><path d="M102 242h10" /><path d="M112 242h12" /></g><g class="non-terminal "><path d="M80 184h0" /><path d="M125 184h0" /><text class="comment" x="102" y="188">inner</text></g></g><path d="M125 242h20" /></g><g class="non-terminal "><path d="M60 152h0" /><path d="M91 152h0" /><text class="comment" x="75" y="156">top</text></g></g><path d="M145 242a10 10 0 0 1 10 10v6a10 10 0 0 0 10 10" /><path d="M40 268a10 10 0 0 0 10 -10v-170a10 10 0 0 1 10 -10" /><g><path d="M60 78h0" /><path d="M145 118h0" /><rect class="group-box" height="100" rx="10" ry="10" width="85" x="60" y="36"></rect><g><path d="M60 78h0" /><path d="M145 118h0" /><path d="M60 78a10 10 0 0 0 10 -10v-14a10 10 0 0 1 10 -10" /><g><path d="M80 44h45" /></g><path d="M125 44a10 10 0 0 1 10 10v54a10 10 0 0 0 10 10" /><path d="M60 78h20" /><g><path d="M80 78h0" /><path d="M125 118h0" /><rect class="group-box" height="60" rx="10" ry="10" width="45" x="80" y="68"></rect><g><path d="M80 78h12" /><path d="M92 78h10" /><g><path d="M102 78h0" /></g><path d="M102 78a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h0a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M102 118h0" /></g><path d="M102 118h10" /><path d="M112 118h12" /></g><g class="non-terminal "><path d="M80 60h0" /><path d="M125 60h0" /><text class="comment" x="102" y="64">inner</text></g></g><path d="M125 118h20" /></g><g class="non-terminal "><path d="M60 28h0" /><path d="M91 28h0" /><text class="comment" x="75" y="32">top</text></g></g><path d="M145 118a10 10 0 0 1 10 10v130a10 10 0 0 0 10 10" /><path d="M40 268h20" /><g><path d="M60 268h85" /></g><path d="M145 268h20" /></g><path d="M 165 268 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
41
-
42
- <h1>test choice down</h1>
43
- <svg class="railroad-diagram" height="197" viewBox="0 0 245.5 197" width="245.5"><g transform="translate(.5 .5)"><g><path d="M20 36v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 46h0.0" /><path d="M205.5 46h0.0" /><path d="M40.0 46h20" /><g><path d="M60.0 46h0.0" /><path d="M185.5 46h0.0" /><rect class="group-box" height="111" rx="10" ry="10" width="125.5" x="60" y="36"></rect><g><path d="M60.0 46h0.0" /><path d="M185.5 46h0.0" /><path d="M60.0 46h20" /><g><path d="M80.0 46h85.5" /></g><path d="M165.5 46h20" /><path d="M60.0 46a10 10 0 0 1 10 10v23a10 10 0 0 0 10 10" /><g><path d="M80.0 89h0.0" /><path d="M165.5 129h0.0" /><rect class="group-box" height="69" rx="10" ry="10" width="85.5" x="80" y="70"></rect><g><path d="M80.0 89h0.0" /><path d="M80.0 89h10" /><g class="terminal "><path d="M90.0 89h10.0" /><path d="M145.5 89h10.0" /><rect height="22" rx="10" ry="10" width="45.5" x="100" y="78"></rect><text x="122.75" y="93">abc</text></g><path d="M155.5 89a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h-65.5a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M90.0 129h65.5" /></g><path d="M155.5 129h10" /><path d="M165.5 129h0.0" /></g><g class="non-terminal "><path d="M80.0 62h0" /><path d="M125.0 62h0" /><text class="comment" x="102" y="66">inner</text></g></g><path d="M165.5 129a10 10 0 0 0 10 -10v-63a10 10 0 0 1 10 -10" /></g><g class="non-terminal "><path d="M60.0 28h0" /><path d="M91.0 28h0" /><text class="comment" x="75" y="32">top</text></g></g><path d="M185.5 46h20" /><path d="M40.0 46a10 10 0 0 1 10 10v100a10 10 0 0 0 10 10" /><g class="terminal "><path d="M60.0 166h40.0" /><path d="M145.5 166h40.0" /><rect height="22" rx="10" ry="10" width="45.5" x="100" y="155"></rect><text x="122.75" y="170">xyz</text></g><path d="M185.5 166a10 10 0 0 0 10 -10v-100a10 10 0 0 1 10 -10" /></g><path d="M 205.5 46 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
44
-
45
- <h1>comment</h1>
46
- <svg class="railroad-diagram" height="80" viewBox="0 0 512.0 80" width="512.0"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><path d="M40 40h10" /><g class="terminal "><path d="M50 40h0.0" /><path d="M87.0 40h0.0" /><rect height="22" rx="10" ry="10" width="37" x="50" y="29"></rect><text x="68.5" y="44">/*</text></g><path d="M87.0 40h10" /><g><path d="M97.0 40h0.0" /><path d="M415.0 40h0.0" /><path d="M97.0 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M117.0 20h278.0" /></g><path d="M395.0 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M97.0 40h20" /><g><path d="M117.0 40h0.0" /><path d="M395.0 40h0.0" /><path d="M117.0 40h10" /><g class="non-terminal "><path d="M127.0 40h0.0" /><path d="M385.0 40h0.0" /><rect height="22" width="258" x="127" y="29"></rect><text x="256" y="44">anything but * followed by /</text></g><path d="M385.0 40h10" /><path d="M127.0 40a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M127.0 60h258.0" /></g><path d="M385.0 60a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10" /></g><path d="M395.0 40h20" /></g><path d="M415.0 40h10" /><g class="terminal "><path d="M425.0 40h0.0" /><path d="M462.0 40h0.0" /><rect height="22" rx="10" ry="10" width="37" x="425" y="29"></rect><text x="443.5" y="44">*/</text></g><path d="M462.0 40h10" /><path d="M 472.0 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
47
-
48
- <h1>newline</h1>
49
- <svg class="railroad-diagram" height="152" viewBox="0 0 174.0 152" width="174.0"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 31h0.0" /><path d="M134.0 31h0.0" /><path d="M40.0 31h20" /><g class="terminal "><path d="M60.0 31h8.5" /><path d="M105.5 31h8.5" /><rect height="22" rx="10" ry="10" width="37" x="68.5" y="20"></rect><text x="87" y="35">\n</text></g><path d="M114.0 31h20" /><path d="M40.0 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M60.0 61h0.0" /><path d="M114.0 61h0.0" /><rect height="22" rx="10" ry="10" width="54" x="60" y="50"></rect><text x="87" y="65">\r\n</text></g><path d="M114.0 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M40.0 31a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g class="terminal "><path d="M60.0 91h8.5" /><path d="M105.5 91h8.5" /><rect height="22" rx="10" ry="10" width="37" x="68.5" y="80"></rect><text x="87" y="95">\r</text></g><path d="M114.0 91a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><path d="M40.0 31a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10" /><g class="terminal "><path d="M60.0 121h8.5" /><path d="M105.5 121h8.5" /><rect height="22" rx="10" ry="10" width="37" x="68.5" y="110"></rect><text x="87" y="125">\f</text></g><path d="M114.0 121a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10" /></g><path d="M 134.0 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
50
-
51
- <h1>whitespace</h1>
52
- <svg class="railroad-diagram" height="122" viewBox="0 0 199.5 122" width="199.5"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 31h0.0" /><path d="M159.5 31h0.0" /><path d="M40.0 31h20" /><g class="terminal "><path d="M60.0 31h8.5" /><path d="M131.0 31h8.5" /><rect height="22" rx="10" ry="10" width="62.5" x="68.5" y="20"></rect><text x="99.75" y="35">space</text></g><path d="M139.5 31h20" /><path d="M40.0 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M60.0 61h21.25" /><path d="M118.25 61h21.25" /><rect height="22" rx="10" ry="10" width="37" x="81.25" y="50"></rect><text x="99.75" y="65">\t</text></g><path d="M139.5 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M40.0 31a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M60.0 91h0.0" /><path d="M139.5 91h0.0" /><rect height="22" width="79.5" x="60" y="80"></rect><text x="99.75" y="95">newline</text></g><path d="M139.5 91a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /></g><path d="M 159.5 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
53
-
54
- <h1>hex digit</h1>
55
- <svg class="railroad-diagram" height="62" viewBox="0 0 239.0 62" width="239.0"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><path d="M40 31h10" /><g class="non-terminal "><path d="M50 31h0.0" /><path d="M189.0 31h0.0" /><rect height="22" width="139" x="50" y="20"></rect><text x="119.5" y="35">0-9 a-f or A-F</text></g><path d="M189.0 31h10" /><path d="M 199.0 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
56
-
57
- <h1>escape</h1>
58
- <svg class="railroad-diagram" height="116" viewBox="0 0 440.0 116" width="440.0"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><path d="M40 31h10" /><g class="terminal "><path d="M50 31h0.0" /><path d="M78.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="50" y="20"></rect><text x="64.25" y="35">\</text></g><path d="M78.5 31h10" /><g><path d="M88.5 31h0.0" /><path d="M400.0 31h0.0" /><path d="M88.5 31h20" /><g class="non-terminal "><path d="M108.5 31h23.75" /><path d="M356.25 31h23.75" /><rect height="22" width="224" x="132.25" y="20"></rect><text x="244.25" y="35">not newline or hex digit</text></g><path d="M380.0 31h20" /><path d="M88.5 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g><path d="M108.5 61h0.0" /><path d="M380.0 61h0.0" /><g><path d="M108.5 61h0.0" /><path d="M225.0 61h0.0" /><path d="M108.5 61h10" /><g class="non-terminal "><path d="M118.5 61h0.0" /><path d="M215.0 61h0.0" /><rect height="22" width="96.5" x="118.5" y="50"></rect><text x="166.75" y="65">hex digit</text></g><path d="M215.0 61h10" /><path d="M118.5 61a10 10 0 0 0 -10 10v7a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M118.5 88h0" /><path d="M191.5 88h0" /><text class="comment" x="154.5" y="92">1-6 times</text></g><path d="M215.0 88a10 10 0 0 0 10 -10v-7a10 10 0 0 0 -10 -10" /></g><path d="M225.0 61h10" /><g><path d="M235.0 61h0.0" /><path d="M380.0 61h0.0" /><path d="M235.0 61h20" /><g><path d="M255.0 61h105.0" /></g><path d="M360.0 61h20" /><path d="M235.0 61a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M255.0 81h0.0" /><path d="M360.0 81h0.0" /><rect height="22" width="105" x="255" y="70"></rect><text x="307.5" y="85">whitespace</text></g><path d="M360.0 81a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /></g></g><path d="M380.0 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g><path d="M 400.0 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
59
-
60
- <h1>&lt;whitespace-token></h1>
61
- <svg class="railroad-diagram" height="71" viewBox="0 0 225.0 71" width="225.0"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><path d="M40 31h10" /><g><path d="M50 31h0.0" /><path d="M175.0 31h0.0" /><path d="M50.0 31h10" /><g class="non-terminal "><path d="M60.0 31h0.0" /><path d="M165.0 31h0.0" /><rect height="22" width="105" x="60" y="20"></rect><text x="112.5" y="35">whitespace</text></g><path d="M165.0 31h10" /><path d="M60.0 31a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M60.0 51h105.0" /></g><path d="M165.0 51a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10" /></g><path d="M175.0 31h10" /><path d="M 185.0 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
62
-
63
- <h1>ws*</h1>
64
- <svg class="railroad-diagram" height="80" viewBox="0 0 313.0 80" width="313.0"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 40h0.0" /><path d="M273.0 40h0.0" /><path d="M40.0 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M60.0 20h193.0" /></g><path d="M253.0 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M40.0 40h20" /><g><path d="M60.0 40h0.0" /><path d="M253.0 40h0.0" /><path d="M60.0 40h10" /><g class="non-terminal "><path d="M70.0 40h0.0" /><path d="M243.0 40h0.0" /><rect height="22" width="173" x="70" y="29"></rect><text x="156.5" y="44">&lt;whitespace-token></text></g><path d="M243.0 40h10" /><path d="M70.0 40a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M70.0 60h173.0" /></g><path d="M243.0 60a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10" /></g><path d="M253.0 40h20" /></g><path d="M 273.0 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
65
-
66
- <h1>&lt;ident-token></h1>
67
- <svg class="railroad-diagram" height="109" viewBox="0 0 753.5 109" width="753.5"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 40h0.0" /><path d="M108.5 40h0.0" /><path d="M40.0 40h20" /><g><path d="M60.0 40h28.5" /></g><path d="M88.5 40h20" /><path d="M40.0 40a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M60.0 60h0.0" /><path d="M88.5 60h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="60" y="49"></rect><text x="74.25" y="64">-</text></g><path d="M88.5 60a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /></g><g><path d="M108.5 40h0.0" /><path d="M355.5 40h0.0" /><path d="M108.5 40h20" /><g class="non-terminal "><path d="M128.5 40h0.0" /><path d="M335.5 40h0.0" /><rect height="22" width="207" x="128.5" y="29"></rect><text x="232" y="44">a-z A-Z _ or non-ASCII</text></g><path d="M335.5 40h20" /><path d="M108.5 40a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M128.5 70h68.0" /><path d="M267.5 70h68.0" /><rect height="22" width="71" x="196.5" y="59"></rect><text x="232" y="74">escape</text></g><path d="M335.5 70a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g><g><path d="M355.5 40h0.0" /><path d="M713.5 40h0.0" /><path d="M355.5 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M375.5 20h318.0" /></g><path d="M693.5 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M355.5 40h20" /><g><path d="M375.5 40h0.0" /><path d="M693.5 40h0.0" /><path d="M375.5 40h10" /><g><path d="M385.5 40h0.0" /><path d="M683.5 40h0.0" /><path d="M385.5 40h20" /><g class="non-terminal "><path d="M405.5 40h0.0" /><path d="M663.5 40h0.0" /><rect height="22" width="258" x="405.5" y="29"></rect><text x="534.5" y="44">a-z A-Z 0-9 _ - or non-ASCII</text></g><path d="M663.5 40h20" /><path d="M385.5 40a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M405.5 70h93.5" /><path d="M570.0 70h93.5" /><rect height="22" width="71" x="499" y="59"></rect><text x="534.5" y="74">escape</text></g><path d="M663.5 70a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g><path d="M683.5 40h10" /><path d="M385.5 40a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10" /><g><path d="M385.5 89h298.0" /></g><path d="M683.5 89a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10" /></g><path d="M693.5 40h20" /></g><path d="M 713.5 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
68
-
69
- <h1>&lt;function-token></h1>
70
- <svg class="railroad-diagram" height="62" viewBox="0 0 279.0 62" width="279.0"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><path d="M40 31h10" /><g class="non-terminal "><path d="M50 31h0.0" /><path d="M180.5 31h0.0" /><rect height="22" width="130.5" x="50" y="20"></rect><text x="115.25" y="35">&lt;ident-token></text></g><path d="M180.5 31h10" /><path d="M190.5 31h10" /><g class="terminal "><path d="M200.5 31h0.0" /><path d="M229.0 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="200.5" y="20"></rect><text x="214.75" y="35">(</text></g><path d="M229.0 31h10" /><path d="M 239.0 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
71
-
72
- <h1>&lt;at-keyword-token></h1>
73
- <svg class="railroad-diagram" height="62" viewBox="0 0 279.0 62" width="279.0"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><path d="M40 31h10" /><g class="terminal "><path d="M50 31h0.0" /><path d="M78.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="50" y="20"></rect><text x="64.25" y="35">@</text></g><path d="M78.5 31h10" /><path d="M88.5 31h10" /><g class="non-terminal "><path d="M98.5 31h0.0" /><path d="M229.0 31h0.0" /><rect height="22" width="130.5" x="98.5" y="20"></rect><text x="163.75" y="35">&lt;ident-token></text></g><path d="M229.0 31h10" /><path d="M 239.0 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
74
-
75
- <h1>&lt;hash-token></h1>
76
- <svg class="railroad-diagram" height="100" viewBox="0 0 466.5 100" width="466.5"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><path d="M40 31h10" /><g class="terminal "><path d="M50 31h0.0" /><path d="M78.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="50" y="20"></rect><text x="64.25" y="35">#</text></g><path d="M78.5 31h10" /><path d="M88.5 31h10" /><g><path d="M98.5 31h0.0" /><path d="M416.5 31h0.0" /><path d="M98.5 31h10" /><g><path d="M108.5 31h0.0" /><path d="M406.5 31h0.0" /><path d="M108.5 31h20" /><g class="non-terminal "><path d="M128.5 31h0.0" /><path d="M386.5 31h0.0" /><rect height="22" width="258" x="128.5" y="20"></rect><text x="257.5" y="35">a-z A-Z 0-9 _ - or non-ASCII</text></g><path d="M386.5 31h20" /><path d="M108.5 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M128.5 61h93.5" /><path d="M293.0 61h93.5" /><rect height="22" width="71" x="222" y="50"></rect><text x="257.5" y="65">escape</text></g><path d="M386.5 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g><path d="M406.5 31h10" /><path d="M108.5 31a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10" /><g><path d="M108.5 80h298.0" /></g><path d="M406.5 80a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10" /></g><path d="M416.5 31h10" /><path d="M 426.5 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
77
-
78
- <h1>&lt;string-token></h1>
79
- <svg class="railroad-diagram" height="246" viewBox="0 0 470.0 246" width="470.0"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 40h0.0" /><path d="M430.0 40h0.0" /><path d="M40.0 40h20" /><g><path d="M60.0 40h0.0" /><path d="M410.0 40h0.0" /><g class="terminal "><path d="M60.0 40h0.0" /><path d="M88.5 40h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="60" y="29"></rect><text x="74.25" y="44">&quot;</text></g><path d="M88.5 40h10" /><g><path d="M98.5 40h0.0" /><path d="M371.5 40h0.0" /><path d="M98.5 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M118.5 20h233.0" /></g><path d="M351.5 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M98.5 40h20" /><g><path d="M118.5 40h0.0" /><path d="M351.5 40h0.0" /><path d="M118.5 40h10" /><g><path d="M128.5 40h0.0" /><path d="M341.5 40h0.0" /><path d="M128.5 40h20" /><g class="non-terminal "><path d="M148.5 40h0.0" /><path d="M321.5 40h0.0" /><rect height="22" width="173" x="148.5" y="29"></rect><text x="235" y="44">not &quot; \ or newline</text></g><path d="M321.5 40h20" /><path d="M128.5 40a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M148.5 70h51.0" /><path d="M270.5 70h51.0" /><rect height="22" width="71" x="199.5" y="59"></rect><text x="235" y="74">escape</text></g><path d="M321.5 70a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M128.5 40a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g><path d="M148.5 100h22.5" /><path d="M299.0 100h22.5" /><g class="terminal "><path d="M171.0 100h0.0" /><path d="M199.5 100h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="171" y="89"></rect><text x="185.25" y="104">\</text></g><path d="M199.5 100h10" /><path d="M209.5 100h10" /><g class="non-terminal "><path d="M219.5 100h0.0" /><path d="M299.0 100h0.0" /><rect height="22" width="79.5" x="219.5" y="89"></rect><text x="259.25" y="104">newline</text></g></g><path d="M321.5 100a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /></g><path d="M341.5 40h10" /><path d="M128.5 40a10 10 0 0 0 -10 10v59a10 10 0 0 0 10 10" /><g><path d="M128.5 119h213.0" /></g><path d="M341.5 119a10 10 0 0 0 10 -10v-59a10 10 0 0 0 -10 -10" /></g><path d="M351.5 40h20" /></g><path d="M371.5 40h10" /><g class="terminal "><path d="M381.5 40h0.0" /><path d="M410.0 40h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="381.5" y="29"></rect><text x="395.75" y="44">&quot;</text></g></g><path d="M410.0 40h20" /><path d="M40.0 40a10 10 0 0 1 10 10v87a10 10 0 0 0 10 10" /><g><path d="M60.0 147h0.0" /><path d="M410.0 147h0.0" /><g class="terminal "><path d="M60.0 147h0.0" /><path d="M88.5 147h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="60" y="136"></rect><text x="74.25" y="151">&apos;</text></g><path d="M88.5 147h10" /><g><path d="M98.5 147h0.0" /><path d="M371.5 147h0.0" /><path d="M98.5 147a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M118.5 127h233.0" /></g><path d="M351.5 127a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M98.5 147h20" /><g><path d="M118.5 147h0.0" /><path d="M351.5 147h0.0" /><path d="M118.5 147h10" /><g><path d="M128.5 147h0.0" /><path d="M341.5 147h0.0" /><path d="M128.5 147h20" /><g class="non-terminal "><path d="M148.5 147h0.0" /><path d="M321.5 147h0.0" /><rect height="22" width="173" x="148.5" y="136"></rect><text x="235" y="151">not &apos; \ or newline</text></g><path d="M321.5 147h20" /><path d="M128.5 147a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M148.5 177h51.0" /><path d="M270.5 177h51.0" /><rect height="22" width="71" x="199.5" y="166"></rect><text x="235" y="181">escape</text></g><path d="M321.5 177a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M128.5 147a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g><path d="M148.5 207h22.5" /><path d="M299.0 207h22.5" /><g class="terminal "><path d="M171.0 207h0.0" /><path d="M199.5 207h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="171" y="196"></rect><text x="185.25" y="211">\</text></g><path d="M199.5 207h10" /><path d="M209.5 207h10" /><g class="non-terminal "><path d="M219.5 207h0.0" /><path d="M299.0 207h0.0" /><rect height="22" width="79.5" x="219.5" y="196"></rect><text x="259.25" y="211">newline</text></g></g><path d="M321.5 207a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /></g><path d="M341.5 147h10" /><path d="M128.5 147a10 10 0 0 0 -10 10v59a10 10 0 0 0 10 10" /><g><path d="M128.5 226h213.0" /></g><path d="M341.5 226a10 10 0 0 0 10 -10v-59a10 10 0 0 0 -10 -10" /></g><path d="M351.5 147h20" /></g><path d="M371.5 147h10" /><g class="terminal "><path d="M381.5 147h0.0" /><path d="M410.0 147h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="381.5" y="136"></rect><text x="395.75" y="151">&apos;</text></g></g><path d="M410.0 147a10 10 0 0 0 10 -10v-87a10 10 0 0 1 10 -10" /></g><path d="M 430.0 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
80
-
81
- <h1>&lt;url-token></h1>
82
- <svg class="railroad-diagram" height="101" viewBox="0 0 701.5 101" width="701.5"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><path d="M40 40h10" /><g class="non-terminal "><path d="M50 40h0.0" /><path d="M231.5 40h0.0" /><rect height="22" width="181.5" x="50" y="29"></rect><text x="140.75" y="44">&lt;ident-token &quot;url&quot;></text></g><path d="M231.5 40h10" /><path d="M241.5 40h10" /><g class="terminal "><path d="M251.5 40h0.0" /><path d="M280.0 40h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="251.5" y="29"></rect><text x="265.75" y="44">(</text></g><path d="M280.0 40h10" /><path d="M290.0 40h10" /><g class="non-terminal "><path d="M300.0 40h0.0" /><path d="M345.5 40h0.0" /><rect height="22" width="45.5" x="300" y="29"></rect><text x="322.75" y="44">ws*</text></g><path d="M345.5 40h10" /><g><path d="M355.5 40h0.0" /><path d="M613.0 40h0.0" /><path d="M355.5 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M375.5 20h217.5" /></g><path d="M593.0 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M355.5 40h20" /><g><path d="M375.5 40h0.0" /><path d="M593.0 40h0.0" /><g><path d="M375.5 40h0.0" /><path d="M537.5 40h0.0" /><path d="M375.5 40h20" /><g class="non-terminal "><path d="M395.5 40h0.0" /><path d="M517.5 40h0.0" /><rect height="22" width="122" x="395.5" y="29"></rect><text x="456.5" y="44">url-unquoted</text></g><path d="M517.5 40h20" /><path d="M375.5 40a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M395.5 70h25.5" /><path d="M492.0 70h25.5" /><rect height="22" width="71" x="421" y="59"></rect><text x="456.5" y="74">STRING</text></g><path d="M517.5 70a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g><path d="M537.5 40h10" /><g class="non-terminal "><path d="M547.5 40h0.0" /><path d="M593.0 40h0.0" /><rect height="22" width="45.5" x="547.5" y="29"></rect><text x="570.25" y="44">ws*</text></g></g><path d="M593.0 40h20" /></g><path d="M613.0 40h10" /><g class="terminal "><path d="M623.0 40h0.0" /><path d="M651.5 40h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="623" y="29"></rect><text x="637.25" y="44">)</text></g><path d="M651.5 40h10" /><path d="M 661.5 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
83
-
84
- <h1>url-unquoted</h1>
85
- <svg class="railroad-diagram" height="100" viewBox="0 0 528.5 100" width="528.5"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><path d="M40 31h10" /><g><path d="M50 31h0.0" /><path d="M478.5 31h0.0" /><path d="M50.0 31h10" /><g><path d="M60.0 31h0.0" /><path d="M468.5 31h0.0" /><path d="M60.0 31h20" /><g class="non-terminal "><path d="M80.0 31h0.0" /><path d="M448.5 31h0.0" /><rect height="22" width="368.5" x="80" y="20"></rect><text x="264.25" y="35">not &quot; &apos; ( ) \ whitespace or non-printable</text></g><path d="M448.5 31h20" /><path d="M60.0 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M80.0 61h148.75" /><path d="M299.75 61h148.75" /><rect height="22" width="71" x="228.75" y="50"></rect><text x="264.25" y="65">escape</text></g><path d="M448.5 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g><path d="M468.5 31h10" /><path d="M60.0 31a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10" /><g><path d="M60.0 80h408.5" /></g><path d="M468.5 80a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10" /></g><path d="M478.5 31h10" /><path d="M 488.5 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
86
-
87
- <h1>&lt;number-token></h1>
88
- <svg class="railroad-diagram" height="169" viewBox="0 0 691.5 169" width="691.5"><g transform="translate(.5 .5)"><g><path d="M20 41v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 51h0.0" /><path d="M108.5 51h0.0" /><path d="M40.0 51a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M60.0 31h0.0" /><path d="M88.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="60" y="20"></rect><text x="74.25" y="35">+</text></g><path d="M88.5 31a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M40.0 51h20" /><g><path d="M60.0 51h28.5" /></g><path d="M88.5 51h20" /><path d="M40.0 51a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M60.0 71h0.0" /><path d="M88.5 71h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="60" y="60"></rect><text x="74.25" y="75">-</text></g><path d="M88.5 71a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /></g><g><path d="M108.5 51h0.0" /><path d="M382.0 51h0.0" /><path d="M108.5 51h20" /><g><path d="M128.5 51h0.0" /><path d="M362.0 51h0.0" /><g><path d="M128.5 51h0.0" /><path d="M211.0 51h0.0" /><path d="M128.5 51h10" /><g class="non-terminal "><path d="M138.5 51h0.0" /><path d="M201.0 51h0.0" /><rect height="22" width="62.5" x="138.5" y="40"></rect><text x="169.75" y="55">digit</text></g><path d="M201.0 51h10" /><path d="M138.5 51a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M138.5 71h62.5" /></g><path d="M201.0 71a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10" /></g><path d="M211.0 51h10" /><path d="M221.0 51h10" /><g class="terminal "><path d="M231.0 51h0.0" /><path d="M259.5 51h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="231" y="40"></rect><text x="245.25" y="55">.</text></g><path d="M259.5 51h10" /><path d="M269.5 51h10" /><g><path d="M279.5 51h0.0" /><path d="M362.0 51h0.0" /><path d="M279.5 51h10" /><g class="non-terminal "><path d="M289.5 51h0.0" /><path d="M352.0 51h0.0" /><rect height="22" width="62.5" x="289.5" y="40"></rect><text x="320.75" y="55">digit</text></g><path d="M352.0 51h10" /><path d="M289.5 51a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M289.5 71h62.5" /></g><path d="M352.0 71a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10" /></g></g><path d="M362.0 51h20" /><path d="M108.5 51a10 10 0 0 1 10 10v19a10 10 0 0 0 10 10" /><g><path d="M128.5 90h75.5" /><path d="M286.5 90h75.5" /><path d="M204.0 90h10" /><g class="non-terminal "><path d="M214.0 90h0.0" /><path d="M276.5 90h0.0" /><rect height="22" width="62.5" x="214" y="79"></rect><text x="245.25" y="94">digit</text></g><path d="M276.5 90h10" /><path d="M214.0 90a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M214.0 110h62.5" /></g><path d="M276.5 110a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10" /></g><path d="M362.0 90a10 10 0 0 0 10 -10v-19a10 10 0 0 1 10 -10" /><path d="M108.5 51a10 10 0 0 1 10 10v58a10 10 0 0 0 10 10" /><g><path d="M128.5 129h51.25" /><path d="M310.75 129h51.25" /><g class="terminal "><path d="M179.75 129h0.0" /><path d="M208.25 129h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="179.75" y="118"></rect><text x="194" y="133">.</text></g><path d="M208.25 129h10" /><path d="M218.25 129h10" /><g><path d="M228.25 129h0.0" /><path d="M310.75 129h0.0" /><path d="M228.25 129h10" /><g class="non-terminal "><path d="M238.25 129h0.0" /><path d="M300.75 129h0.0" /><rect height="22" width="62.5" x="238.25" y="118"></rect><text x="269.5" y="133">digit</text></g><path d="M300.75 129h10" /><path d="M238.25 129a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M238.25 149h62.5" /></g><path d="M300.75 149a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10" /></g></g><path d="M362.0 129a10 10 0 0 0 10 -10v-58a10 10 0 0 1 10 -10" /></g><g><path d="M382.0 51h0.0" /><path d="M651.5 51h0.0" /><path d="M382.0 51h20" /><g><path d="M402.0 51h229.5" /></g><path d="M631.5 51h20" /><path d="M382.0 51a10 10 0 0 1 10 10v19a10 10 0 0 0 10 10" /><g><path d="M402.0 90h0.0" /><path d="M631.5 90h0.0" /><g><path d="M402.0 90h0.0" /><path d="M470.5 90h0.0" /><path d="M402.0 90h20" /><g class="terminal "><path d="M422.0 90h0.0" /><path d="M450.5 90h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="422" y="79"></rect><text x="436.25" y="94">e</text></g><path d="M450.5 90h20" /><path d="M402.0 90a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M422.0 120h0.0" /><path d="M450.5 120h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="422" y="109"></rect><text x="436.25" y="124">E</text></g><path d="M450.5 120a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g><g><path d="M470.5 90h0.0" /><path d="M539.0 90h0.0" /><path d="M470.5 90a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M490.5 70h0.0" /><path d="M519.0 70h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="490.5" y="59"></rect><text x="504.75" y="74">+</text></g><path d="M519.0 70a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M470.5 90h20" /><g><path d="M490.5 90h28.5" /></g><path d="M519.0 90h20" /><path d="M470.5 90a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M490.5 110h0.0" /><path d="M519.0 110h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="490.5" y="99"></rect><text x="504.75" y="114">-</text></g><path d="M519.0 110a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /></g><path d="M539.0 90h10" /><g><path d="M549.0 90h0.0" /><path d="M631.5 90h0.0" /><path d="M549.0 90h10" /><g class="non-terminal "><path d="M559.0 90h0.0" /><path d="M621.5 90h0.0" /><rect height="22" width="62.5" x="559" y="79"></rect><text x="590.25" y="94">digit</text></g><path d="M621.5 90h10" /><path d="M559.0 90a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M559.0 110h62.5" /></g><path d="M621.5 110a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10" /></g></g><path d="M631.5 90a10 10 0 0 0 10 -10v-19a10 10 0 0 1 10 -10" /></g><path d="M 651.5 51 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
89
-
90
- <h1>&lt;dimension-token></h1>
91
- <svg class="railroad-diagram" height="62" viewBox="0 0 389.5 62" width="389.5"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><path d="M40 31h10" /><g class="non-terminal "><path d="M50 31h0.0" /><path d="M189.0 31h0.0" /><rect height="22" width="139" x="50" y="20"></rect><text x="119.5" y="35">&lt;number-token></text></g><path d="M189.0 31h10" /><path d="M199.0 31h10" /><g class="non-terminal "><path d="M209.0 31h0.0" /><path d="M339.5 31h0.0" /><rect height="22" width="130.5" x="209" y="20"></rect><text x="274.25" y="35">&lt;ident-token></text></g><path d="M339.5 31h10" /><path d="M 349.5 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
92
-
93
- <h1>&lt;percentage-token></h1>
94
- <svg class="railroad-diagram" height="62" viewBox="0 0 287.5 62" width="287.5"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><path d="M40 31h10" /><g class="non-terminal "><path d="M50 31h0.0" /><path d="M189.0 31h0.0" /><rect height="22" width="139" x="50" y="20"></rect><text x="119.5" y="35">&lt;number-token></text></g><path d="M189.0 31h10" /><path d="M199.0 31h10" /><g class="terminal "><path d="M209.0 31h0.0" /><path d="M237.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="209" y="20"></rect><text x="223.25" y="35">%</text></g><path d="M237.5 31h10" /><path d="M 247.5 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
95
-
96
- <h1>&lt;unicode-range-token></h1>
97
- <svg class="railroad-diagram" height="203" viewBox="0 0 594.5 203" width="594.5"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 31h0.0" /><path d="M108.5 31h0.0" /><path d="M40.0 31h20" /><g class="terminal "><path d="M60.0 31h0.0" /><path d="M88.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="60" y="20"></rect><text x="74.25" y="35">U</text></g><path d="M88.5 31h20" /><path d="M40.0 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M60.0 61h0.0" /><path d="M88.5 61h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="60" y="50"></rect><text x="74.25" y="65">u</text></g><path d="M88.5 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g><path d="M108.5 31h10" /><g class="terminal "><path d="M118.5 31h0.0" /><path d="M147.0 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="118.5" y="20"></rect><text x="132.75" y="35">+</text></g><path d="M147.0 31h10" /><g><path d="M157.0 31h0.0" /><path d="M554.5 31h0.0" /><path d="M157.0 31h20" /><g><path d="M177.0 31h120.5" /><path d="M414.0 31h120.5" /><g><path d="M297.5 31h0.0" /><path d="M414.0 31h0.0" /><path d="M297.5 31h10" /><g class="non-terminal "><path d="M307.5 31h0.0" /><path d="M404.0 31h0.0" /><rect height="22" width="96.5" x="307.5" y="20"></rect><text x="355.75" y="35">hex digit</text></g><path d="M404.0 31h10" /><path d="M307.5 31a10 10 0 0 0 -10 10v7a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M307.5 58h0" /><path d="M380.5 58h0" /><text class="comment" x="343.5" y="62">1-6 times</text></g><path d="M404.0 58a10 10 0 0 0 10 -10v-7a10 10 0 0 0 -10 -10" /></g></g><path d="M534.5 31h20" /><path d="M157.0 31a10 10 0 0 1 10 10v43a10 10 0 0 0 10 10" /><g><path d="M177.0 94h0.0" /><path d="M534.5 94h0.0" /><g><path d="M177.0 94h0.0" /><path d="M333.5 94h0.0" /><path d="M177.0 94a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M197.0 74h116.5" /></g><path d="M313.5 74a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M177.0 94h20" /><g><path d="M197.0 94h0.0" /><path d="M313.5 94h0.0" /><path d="M197.0 94h10" /><g class="non-terminal "><path d="M207.0 94h0.0" /><path d="M303.5 94h0.0" /><rect height="22" width="96.5" x="207" y="83"></rect><text x="255.25" y="98">hex digit</text></g><path d="M303.5 94h10" /><path d="M207.0 94a10 10 0 0 0 -10 10v7a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M207.0 121h0" /><path d="M280.0 121h0" /><text class="comment" x="243" y="125">1-5 times</text></g><path d="M303.5 121a10 10 0 0 0 10 -10v-7a10 10 0 0 0 -10 -10" /></g><path d="M313.5 94h20" /></g><path d="M333.5 94h10" /><g><path d="M343.5 94h0" /><path d="M534.5 94h0" /><path d="M343.5 94h10" /><g class="terminal "><path d="M353.5 94h71.25" /><path d="M453.25 94h71.25" /><rect height="22" rx="10" ry="10" width="28.5" x="424.75" y="83"></rect><text x="439" y="98">?</text></g><path d="M524.5 94h10" /><path d="M353.5 94a10 10 0 0 0 -10 10v7a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M353.5 121h0" /><path d="M524.5 121h0" /><text class="comment" x="438.5" y="125">1 to (6 - digits) times</text></g><path d="M524.5 121a10 10 0 0 0 10 -10v-7a10 10 0 0 0 -10 -10" /></g></g><path d="M534.5 94a10 10 0 0 0 10 -10v-43a10 10 0 0 1 10 -10" /><path d="M157.0 31a10 10 0 0 1 10 10v97a10 10 0 0 0 10 10" /><g><path d="M177.0 148h28.0" /><path d="M506.5 148h28.0" /><g><path d="M205.0 148h0.0" /><path d="M321.5 148h0.0" /><path d="M205.0 148h10" /><g class="non-terminal "><path d="M215.0 148h0.0" /><path d="M311.5 148h0.0" /><rect height="22" width="96.5" x="215" y="137"></rect><text x="263.25" y="152">hex digit</text></g><path d="M311.5 148h10" /><path d="M215.0 148a10 10 0 0 0 -10 10v7a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M215.0 175h0" /><path d="M288.0 175h0" /><text class="comment" x="251" y="179">1-6 times</text></g><path d="M311.5 175a10 10 0 0 0 10 -10v-7a10 10 0 0 0 -10 -10" /></g><path d="M321.5 148h10" /><path d="M331.5 148h10" /><g class="terminal "><path d="M341.5 148h0.0" /><path d="M370.0 148h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="341.5" y="137"></rect><text x="355.75" y="152">-</text></g><path d="M370.0 148h10" /><path d="M380.0 148h10" /><g><path d="M390.0 148h0.0" /><path d="M506.5 148h0.0" /><path d="M390.0 148h10" /><g class="non-terminal "><path d="M400.0 148h0.0" /><path d="M496.5 148h0.0" /><rect height="22" width="96.5" x="400" y="137"></rect><text x="448.25" y="152">hex digit</text></g><path d="M496.5 148h10" /><path d="M400.0 148a10 10 0 0 0 -10 10v7a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M400.0 175h0" /><path d="M473.0 175h0" /><text class="comment" x="436" y="179">1-6 times</text></g><path d="M496.5 175a10 10 0 0 0 10 -10v-7a10 10 0 0 0 -10 -10" /></g></g><path d="M534.5 148a10 10 0 0 0 10 -10v-97a10 10 0 0 1 10 -10" /></g><path d="M 554.5 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
98
-
99
- <h1>Stylesheet</h1>
100
- <svg class="railroad-diagram" height="198" viewBox="0 0 353.0 198" width="353.0"><g transform="translate(.5 .5)"><g><path d="M20 119v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 129h0.0" /><path d="M313.0 129h0.0" /><path d="M40.0 129a10 10 0 0 0 10 -10v-89a10 10 0 0 1 10 -10" /><g><path d="M60.0 20h233.0" /></g><path d="M293.0 20a10 10 0 0 1 10 10v89a10 10 0 0 0 10 10" /><path d="M40.0 129h20" /><g><path d="M60.0 129h0.0" /><path d="M293.0 129h0.0" /><path d="M60.0 129h10" /><g><path d="M70.0 129h0.0" /><path d="M283.0 129h0.0" /><path d="M70.0 129a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><g class="non-terminal "><path d="M90.0 99h0.0" /><path d="M263.0 99h0.0" /><rect height="22" width="173" x="90" y="88"></rect><text x="176.5" y="103">&lt;whitespace-token></text></g><path d="M263.0 99a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><path d="M70.0 129a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><g class="non-terminal "><path d="M90.0 69h29.75" /><path d="M233.25 69h29.75" /><rect height="22" width="113.5" x="119.75" y="58"></rect><text x="176.5" y="73">&lt;CDC-token></text></g><path d="M263.0 69a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><path d="M70.0 129a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10" /><g class="non-terminal "><path d="M90.0 39h29.75" /><path d="M233.25 39h29.75" /><rect height="22" width="113.5" x="119.75" y="28"></rect><text x="176.5" y="43">&lt;CDO-token></text></g><path d="M263.0 39a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10" /><path d="M70.0 129h20" /><g class="non-terminal "><path d="M90.0 129h17.0" /><path d="M246.0 129h17.0" /><rect height="22" width="139" x="107" y="118"></rect><text x="176.5" y="133">Qualified rule</text></g><path d="M263.0 129h20" /><path d="M70.0 129a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M90.0 159h46.75" /><path d="M216.25 159h46.75" /><rect height="22" width="79.5" x="136.75" y="148"></rect><text x="176.5" y="163">At-rule</text></g><path d="M263.0 159a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g><path d="M283.0 129h10" /><path d="M70.0 129a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10" /><g><path d="M70.0 178h213.0" /></g><path d="M283.0 178a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10" /></g><path d="M293.0 129h20" /></g><path d="M 313.0 129 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
101
-
102
- <h1>Rule list</h1>
103
- <svg class="railroad-diagram" height="138" viewBox="0 0 353.0 138" width="353.0"><g transform="translate(.5 .5)"><g><path d="M20 59v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 69h0.0" /><path d="M313.0 69h0.0" /><path d="M40.0 69a10 10 0 0 0 10 -10v-29a10 10 0 0 1 10 -10" /><g><path d="M60.0 20h233.0" /></g><path d="M293.0 20a10 10 0 0 1 10 10v29a10 10 0 0 0 10 10" /><path d="M40.0 69h20" /><g><path d="M60.0 69h0.0" /><path d="M293.0 69h0.0" /><path d="M60.0 69h10" /><g><path d="M70.0 69h0.0" /><path d="M283.0 69h0.0" /><path d="M70.0 69a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><g class="non-terminal "><path d="M90.0 39h0.0" /><path d="M263.0 39h0.0" /><rect height="22" width="173" x="90" y="28"></rect><text x="176.5" y="43">&lt;whitespace-token></text></g><path d="M263.0 39a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><path d="M70.0 69h20" /><g class="non-terminal "><path d="M90.0 69h17.0" /><path d="M246.0 69h17.0" /><rect height="22" width="139" x="107" y="58"></rect><text x="176.5" y="73">Qualified rule</text></g><path d="M263.0 69h20" /><path d="M70.0 69a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M90.0 99h46.75" /><path d="M216.25 99h46.75" /><rect height="22" width="79.5" x="136.75" y="88"></rect><text x="176.5" y="103">At-rule</text></g><path d="M263.0 99a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g><path d="M283.0 69h10" /><path d="M70.0 69a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10" /><g><path d="M70.0 118h213.0" /></g><path d="M283.0 118a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10" /></g><path d="M293.0 69h20" /></g><path d="M 313.0 69 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
104
-
105
- <h1>At-rule</h1>
106
- <svg class="railroad-diagram" height="101" viewBox="0 0 608.5 101" width="608.5"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><path d="M40 40h10" /><g class="non-terminal "><path d="M50 40h0.0" /><path d="M223.0 40h0.0" /><rect height="22" width="173" x="50" y="29"></rect><text x="136.5" y="44">&lt;at-keyword-token></text></g><path d="M223.0 40h10" /><g><path d="M233.0 40h0.0" /><path d="M440.5 40h0.0" /><path d="M233.0 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M253.0 20h167.5" /></g><path d="M420.5 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M233.0 40h20" /><g><path d="M253.0 40h0.0" /><path d="M420.5 40h0.0" /><path d="M253.0 40h10" /><g class="non-terminal "><path d="M263.0 40h0.0" /><path d="M410.5 40h0.0" /><rect height="22" width="147.5" x="263" y="29"></rect><text x="336.75" y="44">Component value</text></g><path d="M410.5 40h10" /><path d="M263.0 40a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M263.0 60h147.5" /></g><path d="M410.5 60a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10" /></g><path d="M420.5 40h20" /></g><g><path d="M440.5 40h0.0" /><path d="M568.5 40h0.0" /><path d="M440.5 40h20" /><g class="non-terminal "><path d="M460.5 40h0.0" /><path d="M548.5 40h0.0" /><rect height="22" width="88" x="460.5" y="29"></rect><text x="504.5" y="44">{} block</text></g><path d="M548.5 40h20" /><path d="M440.5 40a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M460.5 70h29.75" /><path d="M518.75 70h29.75" /><rect height="22" rx="10" ry="10" width="28.5" x="490.25" y="59"></rect><text x="504.5" y="74">;</text></g><path d="M548.5 70a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g><path d="M 568.5 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
107
-
108
- <h1>Qualified rule</h1>
109
- <svg class="railroad-diagram" height="80" viewBox="0 0 395.5 80" width="395.5"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 40h0.0" /><path d="M247.5 40h0.0" /><path d="M40.0 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M60.0 20h167.5" /></g><path d="M227.5 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M40.0 40h20" /><g><path d="M60.0 40h0.0" /><path d="M227.5 40h0.0" /><path d="M60.0 40h10" /><g class="non-terminal "><path d="M70.0 40h0.0" /><path d="M217.5 40h0.0" /><rect height="22" width="147.5" x="70" y="29"></rect><text x="143.75" y="44">Component value</text></g><path d="M217.5 40h10" /><path d="M70.0 40a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M70.0 60h147.5" /></g><path d="M217.5 60a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10" /></g><path d="M227.5 40h20" /></g><path d="M247.5 40h10" /><g class="non-terminal "><path d="M257.5 40h0.0" /><path d="M345.5 40h0.0" /><rect height="22" width="88" x="257.5" y="29"></rect><text x="301.5" y="44">{} block</text></g><path d="M345.5 40h10" /><path d="M 355.5 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
110
-
111
- <h1>Declaration list</h1>
112
- <svg class="railroad-diagram" height="101" viewBox="0 0 583.5 101" width="583.5"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><path d="M40 40h10" /><g class="non-terminal "><path d="M50 40h0.0" /><path d="M95.5 40h0.0" /><rect height="22" width="45.5" x="50" y="29"></rect><text x="72.75" y="44">ws*</text></g><path d="M95.5 40h10" /><g><path d="M105.5 40h0.0" /><path d="M543.5 40h0.0" /><path d="M105.5 40h20" /><g><path d="M125.5 40h0.0" /><path d="M523.5 40h0.0" /><g><path d="M125.5 40h0.0" /><path d="M279.0 40h0.0" /><path d="M125.5 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M145.5 20h113.5" /></g><path d="M259.0 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M125.5 40h20" /><g class="non-terminal "><path d="M145.5 40h0.0" /><path d="M259.0 40h0.0" /><rect height="22" width="113.5" x="145.5" y="29"></rect><text x="202.25" y="44">Declaration</text></g><path d="M259.0 40h20" /></g><g><path d="M279.0 40h0.0" /><path d="M523.5 40h0.0" /><path d="M279.0 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M299.0 20h204.5" /></g><path d="M503.5 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M279.0 40h20" /><g><path d="M299.0 40h0.0" /><path d="M503.5 40h0.0" /><g class="terminal "><path d="M299.0 40h0.0" /><path d="M327.5 40h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="299" y="29"></rect><text x="313.25" y="44">;</text></g><path d="M327.5 40h10" /><path d="M337.5 40h10" /><g class="non-terminal "><path d="M347.5 40h0.0" /><path d="M503.5 40h0.0" /><rect height="22" width="156" x="347.5" y="29"></rect><text x="425.5" y="44">Declaration list</text></g></g><path d="M503.5 40h20" /></g></g><path d="M523.5 40h20" /><path d="M105.5 40a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g><path d="M125.5 70h71.25" /><path d="M452.25 70h71.25" /><g class="non-terminal "><path d="M196.75 70h0.0" /><path d="M276.25 70h0.0" /><rect height="22" width="79.5" x="196.75" y="59"></rect><text x="236.5" y="74">At-rule</text></g><path d="M276.25 70h10" /><path d="M286.25 70h10" /><g class="non-terminal "><path d="M296.25 70h0.0" /><path d="M452.25 70h0.0" /><rect height="22" width="156" x="296.25" y="59"></rect><text x="374.25" y="74">Declaration list</text></g></g><path d="M523.5 70a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g><path d="M 543.5 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
113
-
114
- <h1>Declaration</h1>
115
- <svg class="railroad-diagram" height="80" viewBox="0 0 697.0 80" width="697.0"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><path d="M40 40h10" /><g class="non-terminal "><path d="M50 40h0.0" /><path d="M180.5 40h0.0" /><rect height="22" width="130.5" x="50" y="29"></rect><text x="115.25" y="44">&lt;ident-token></text></g><path d="M180.5 40h10" /><path d="M190.5 40h10" /><g class="non-terminal "><path d="M200.5 40h0.0" /><path d="M246.0 40h0.0" /><rect height="22" width="45.5" x="200.5" y="29"></rect><text x="223.25" y="44">ws*</text></g><path d="M246.0 40h10" /><path d="M256.0 40h10" /><g class="terminal "><path d="M266.0 40h0.0" /><path d="M294.5 40h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="266" y="29"></rect><text x="280.25" y="44">:</text></g><path d="M294.5 40h10" /><g><path d="M304.5 40h0.0" /><path d="M512.0 40h0.0" /><path d="M304.5 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M324.5 20h167.5" /></g><path d="M492.0 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M304.5 40h20" /><g><path d="M324.5 40h0.0" /><path d="M492.0 40h0.0" /><path d="M324.5 40h10" /><g class="non-terminal "><path d="M334.5 40h0.0" /><path d="M482.0 40h0.0" /><rect height="22" width="147.5" x="334.5" y="29"></rect><text x="408.25" y="44">Component value</text></g><path d="M482.0 40h10" /><path d="M334.5 40a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M334.5 60h147.5" /></g><path d="M482.0 60a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10" /></g><path d="M492.0 40h20" /></g><g><path d="M512.0 40h0.0" /><path d="M657.0 40h0.0" /><path d="M512.0 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M532.0 20h105.0" /></g><path d="M637.0 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M512.0 40h20" /><g class="non-terminal "><path d="M532.0 40h0.0" /><path d="M637.0 40h0.0" /><rect height="22" width="105" x="532" y="29"></rect><text x="584.5" y="44">!important</text></g><path d="M637.0 40h20" /></g><path d="M 657.0 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
116
-
117
- <h1>!important</h1>
118
- <svg class="railroad-diagram" height="62" viewBox="0 0 512.0 62" width="512.0"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><path d="M40 31h10" /><g class="terminal "><path d="M50 31h0.0" /><path d="M78.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="50" y="20"></rect><text x="64.25" y="35">!</text></g><path d="M78.5 31h10" /><path d="M88.5 31h10" /><g class="non-terminal "><path d="M98.5 31h0.0" /><path d="M144.0 31h0.0" /><rect height="22" width="45.5" x="98.5" y="20"></rect><text x="121.25" y="35">ws*</text></g><path d="M144.0 31h10" /><path d="M154.0 31h10" /><g class="non-terminal "><path d="M164.0 31h0.0" /><path d="M396.5 31h0.0" /><rect height="22" width="232.5" x="164" y="20"></rect><text x="280.25" y="35">&lt;ident-token &quot;important&quot;></text></g><path d="M396.5 31h10" /><path d="M406.5 31h10" /><g class="non-terminal "><path d="M416.5 31h0.0" /><path d="M462.0 31h0.0" /><rect height="22" width="45.5" x="416.5" y="20"></rect><text x="439.25" y="35">ws*</text></g><path d="M462.0 31h10" /><path d="M 472.0 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
119
-
120
- <h1>Component value</h1>
121
- <svg class="railroad-diagram" height="182" viewBox="0 0 267.5 182" width="267.5"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 31h0.0" /><path d="M227.5 31h0.0" /><path d="M40.0 31h20" /><g class="non-terminal "><path d="M60.0 31h0.0" /><path d="M207.5 31h0.0" /><rect height="22" width="147.5" x="60" y="20"></rect><text x="133.75" y="35">Preserved token</text></g><path d="M207.5 31h20" /><path d="M40.0 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M60.0 61h29.75" /><path d="M177.75 61h29.75" /><rect height="22" width="88" x="89.75" y="50"></rect><text x="133.75" y="65">{} block</text></g><path d="M207.5 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M40.0 31a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M60.0 91h29.75" /><path d="M177.75 91h29.75" /><rect height="22" width="88" x="89.75" y="80"></rect><text x="133.75" y="95">() block</text></g><path d="M207.5 91a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><path d="M40.0 31a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M60.0 121h29.75" /><path d="M177.75 121h29.75" /><rect height="22" width="88" x="89.75" y="110"></rect><text x="133.75" y="125">[] block</text></g><path d="M207.5 121a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10" /><path d="M40.0 31a10 10 0 0 1 10 10v100a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M60.0 151h4.25" /><path d="M203.25 151h4.25" /><rect height="22" width="139" x="64.25" y="140"></rect><text x="133.75" y="155">Function block</text></g><path d="M207.5 151a10 10 0 0 0 10 -10v-100a10 10 0 0 1 10 -10" /></g><path d="M 227.5 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
122
-
123
- <h1>{} block</h1>
124
- <svg class="railroad-diagram" height="80" viewBox="0 0 384.5 80" width="384.5"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><path d="M40 40h10" /><g class="terminal "><path d="M50 40h0.0" /><path d="M78.5 40h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="50" y="29"></rect><text x="64.25" y="44">{</text></g><path d="M78.5 40h10" /><g><path d="M88.5 40h0.0" /><path d="M296.0 40h0.0" /><path d="M88.5 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M108.5 20h167.5" /></g><path d="M276.0 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M88.5 40h20" /><g><path d="M108.5 40h0.0" /><path d="M276.0 40h0.0" /><path d="M108.5 40h10" /><g class="non-terminal "><path d="M118.5 40h0.0" /><path d="M266.0 40h0.0" /><rect height="22" width="147.5" x="118.5" y="29"></rect><text x="192.25" y="44">Component value</text></g><path d="M266.0 40h10" /><path d="M118.5 40a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M118.5 60h147.5" /></g><path d="M266.0 60a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10" /></g><path d="M276.0 40h20" /></g><path d="M296.0 40h10" /><g class="terminal "><path d="M306.0 40h0.0" /><path d="M334.5 40h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="306" y="29"></rect><text x="320.25" y="44">}</text></g><path d="M334.5 40h10" /><path d="M 344.5 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
125
-
126
- <h1>() block</h1>
127
- <svg class="railroad-diagram" height="80" viewBox="0 0 384.5 80" width="384.5"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><path d="M40 40h10" /><g class="terminal "><path d="M50 40h0.0" /><path d="M78.5 40h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="50" y="29"></rect><text x="64.25" y="44">(</text></g><path d="M78.5 40h10" /><g><path d="M88.5 40h0.0" /><path d="M296.0 40h0.0" /><path d="M88.5 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M108.5 20h167.5" /></g><path d="M276.0 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M88.5 40h20" /><g><path d="M108.5 40h0.0" /><path d="M276.0 40h0.0" /><path d="M108.5 40h10" /><g class="non-terminal "><path d="M118.5 40h0.0" /><path d="M266.0 40h0.0" /><rect height="22" width="147.5" x="118.5" y="29"></rect><text x="192.25" y="44">Component value</text></g><path d="M266.0 40h10" /><path d="M118.5 40a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M118.5 60h147.5" /></g><path d="M266.0 60a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10" /></g><path d="M276.0 40h20" /></g><path d="M296.0 40h10" /><g class="terminal "><path d="M306.0 40h0.0" /><path d="M334.5 40h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="306" y="29"></rect><text x="320.25" y="44">)</text></g><path d="M334.5 40h10" /><path d="M 344.5 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
128
-
129
- <h1>[] block</h1>
130
- <svg class="railroad-diagram" height="80" viewBox="0 0 384.5 80" width="384.5"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><path d="M40 40h10" /><g class="terminal "><path d="M50 40h0.0" /><path d="M78.5 40h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="50" y="29"></rect><text x="64.25" y="44">[</text></g><path d="M78.5 40h10" /><g><path d="M88.5 40h0.0" /><path d="M296.0 40h0.0" /><path d="M88.5 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M108.5 20h167.5" /></g><path d="M276.0 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M88.5 40h20" /><g><path d="M108.5 40h0.0" /><path d="M276.0 40h0.0" /><path d="M108.5 40h10" /><g class="non-terminal "><path d="M118.5 40h0.0" /><path d="M266.0 40h0.0" /><rect height="22" width="147.5" x="118.5" y="29"></rect><text x="192.25" y="44">Component value</text></g><path d="M266.0 40h10" /><path d="M118.5 40a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M118.5 60h147.5" /></g><path d="M266.0 60a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10" /></g><path d="M276.0 40h20" /></g><path d="M296.0 40h10" /><g class="terminal "><path d="M306.0 40h0.0" /><path d="M334.5 40h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="306" y="29"></rect><text x="320.25" y="44">]</text></g><path d="M334.5 40h10" /><path d="M 344.5 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
131
-
132
- <h1>Function block</h1>
133
- <svg class="railroad-diagram" height="80" viewBox="0 0 512.0 80" width="512.0"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><path d="M40 40h10" /><g class="non-terminal "><path d="M50 40h0.0" /><path d="M206.0 40h0.0" /><rect height="22" width="156" x="50" y="29"></rect><text x="128" y="44">&lt;function-token></text></g><path d="M206.0 40h10" /><g><path d="M216.0 40h0.0" /><path d="M423.5 40h0.0" /><path d="M216.0 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M236.0 20h167.5" /></g><path d="M403.5 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M216.0 40h20" /><g><path d="M236.0 40h0.0" /><path d="M403.5 40h0.0" /><path d="M236.0 40h10" /><g class="non-terminal "><path d="M246.0 40h0.0" /><path d="M393.5 40h0.0" /><rect height="22" width="147.5" x="246" y="29"></rect><text x="319.75" y="44">Component value</text></g><path d="M393.5 40h10" /><path d="M246.0 40a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g><path d="M246.0 60h147.5" /></g><path d="M393.5 60a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10" /></g><path d="M403.5 40h20" /></g><path d="M423.5 40h10" /><g class="terminal "><path d="M433.5 40h0.0" /><path d="M462.0 40h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="433.5" y="29"></rect><text x="447.75" y="44">)</text></g><path d="M462.0 40h10" /><path d="M 472.0 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
134
-
135
- <h1>glob pattern</h1>
136
- <svg class="railroad-diagram" height="112" viewBox="0 0 202.5 112" width="202.5"><g transform="translate(.5 .5)"><g><path d="M20 46v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 56h0" /><path d="M162.5 56h0" /><path d="M40.0 56a10 10 0 0 0 10 -10v-5a10 10 0 0 1 10 -10" /><g class="non-terminal "><path d="M60.0 31h10.0" /><path d="M132.5 31h10.0" /><rect height="22" width="62.5" x="70" y="20"></rect><text x="101.25" y="35">ident</text></g><path d="M142.5 31a10 10 0 0 1 10 10v5a10 10 0 0 0 10 10" /><path d="M40.0 56a10 10 0 0 1 10 10v5a10 10 0 0 0 10 10" /><g class="terminal "><path d="M60.0 81h27.0" /><path d="M115.5 81h27.0" /><rect height="22" rx="10" ry="10" width="28.5" x="87" y="70"></rect><text x="101.25" y="85">*</text></g><path d="M142.5 81a10 10 0 0 0 10 -10v-5a10 10 0 0 1 10 -10" /><path d="M50.0 41a10 10 0 0 0 10 10h32.10786437626905a 10 10 0 0 1 7.071067811865475 2.9289321881345254l4.142135623730949 4.142135623730949a 10 10 0 0 0 7.071067811865475 2.9289321881345254h32.10786437626905a10 10 0 0 1 10 10" /><path d="M50.0 71a10 10 0 0 1 10 -10h32.10786437626905a 10 10 0 0 0 7.071067811865475 -2.9289321881345254l4.142135623730949 -4.142135623730949a 10 10 0 0 1 7.071067811865475 -2.9289321881345254h32.10786437626905a10 10 0 0 0 10 -10" /></g><path d="M 162.5 56 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
137
-
138
- <h1>SQL</h1>
139
- <svg class="railroad-diagram" height="390" viewBox="0 0 1124.0 390" width="1124.0"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 40h0.0" /><path d="M40.0 40h10" /><g><path d="M50.0 40h0.0" /><path d="M1074.0 40h0.0" /><g class="terminal "><path d="M50.0 40h0.0" /><path d="M121.0 40h0.0" /><rect height="22" rx="10" ry="10" width="71" x="50" y="29"></rect><text x="85.5" y="44">SELECT</text></g><path d="M121.0 40h10" /><g><path d="M131.0 40h0.0" /><path d="M259.0 40h0.0" /><path d="M131.0 40h20" /><g><path d="M151.0 40h88.0" /></g><path d="M239.0 40h20" /><path d="M131.0 40a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M151.0 60h0.0" /><path d="M239.0 60h0.0" /><rect height="22" rx="10" ry="10" width="88" x="151" y="49"></rect><text x="195" y="64">DISTINCT</text></g><path d="M239.0 60a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /></g><g><path d="M259.0 40h0.0" /><path d="M644.5 40h0.0" /><path d="M259.0 40h20" /><g class="terminal "><path d="M279.0 40h158.5" /><path d="M466.0 40h158.5" /><rect height="22" rx="10" ry="10" width="28.5" x="437.5" y="29"></rect><text x="451.75" y="44">*</text></g><path d="M624.5 40h20" /><path d="M259.0 40a10 10 0 0 1 10 10v19a10 10 0 0 0 10 10" /><g><path d="M279.0 79h0.0" /><path d="M624.5 79h0.0" /><path d="M279.0 79h10" /><g><path d="M289.0 79h0.0" /><path d="M614.5 79h0.0" /><g class="non-terminal "><path d="M289.0 79h0.0" /><path d="M394.0 79h0.0" /><rect height="22" width="105" x="289" y="68"></rect><text x="341.5" y="83">expression</text></g><path d="M394.0 79h10" /><g><path d="M404.0 79h0.0" /><path d="M614.5 79h0.0" /><path d="M404.0 79a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M424.0 59h170.5" /></g><path d="M594.5 59a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M404.0 79h20" /><g><path d="M424.0 79h0.0" /><path d="M594.5 79h0.0" /><g class="terminal "><path d="M424.0 79h0.0" /><path d="M461.0 79h0.0" /><rect height="22" rx="10" ry="10" width="37" x="424" y="68"></rect><text x="442.5" y="83">AS</text></g><path d="M461.0 79h10" /><path d="M471.0 79h10" /><g class="non-terminal "><path d="M481.0 79h0.0" /><path d="M594.5 79h0.0" /><rect height="22" width="113.5" x="481" y="68"></rect><text x="537.75" y="83">output_name</text></g></g><path d="M594.5 79h20" /></g></g><path d="M614.5 79h10" /><path d="M289.0 79a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M289.0 109h148.5" /><path d="M466.0 109h148.5" /><rect height="22" rx="10" ry="10" width="28.5" x="437.5" y="98"></rect><text x="451.75" y="113">,</text></g><path d="M614.5 109a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10" /></g><path d="M624.5 79a10 10 0 0 0 10 -10v-19a10 10 0 0 1 10 -10" /></g><path d="M644.5 40h10" /><g class="terminal "><path d="M654.5 40h0.0" /><path d="M708.5 40h0.0" /><rect height="22" rx="10" ry="10" width="54" x="654.5" y="29"></rect><text x="681.5" y="44">FROM</text></g><path d="M708.5 40h10" /><path d="M718.5 40h10" /><g><path d="M728.5 40h0.0" /><path d="M845.0 40h0.0" /><path d="M728.5 40h10" /><g class="non-terminal "><path d="M738.5 40h0.0" /><path d="M835.0 40h0.0" /><rect height="22" width="96.5" x="738.5" y="29"></rect><text x="786.75" y="44">from_item</text></g><path d="M835.0 40h10" /><path d="M738.5 40a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M738.5 70h34.0" /><path d="M801.0 70h34.0" /><rect height="22" rx="10" ry="10" width="28.5" x="772.5" y="59"></rect><text x="786.75" y="74">,</text></g><path d="M835.0 70a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10" /></g><path d="M845.0 40h10" /><g><path d="M855.0 40h0.0" /><path d="M1074.0 40h0.0" /><path d="M855.0 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M875.0 20h179.0" /></g><path d="M1054.0 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M855.0 40h20" /><g><path d="M875.0 40h0.0" /><path d="M1054.0 40h0.0" /><g class="terminal "><path d="M875.0 40h0.0" /><path d="M937.5 40h0.0" /><rect height="22" rx="10" ry="10" width="62.5" x="875" y="29"></rect><text x="906.25" y="44">WHERE</text></g><path d="M937.5 40h10" /><path d="M947.5 40h10" /><g class="non-terminal "><path d="M957.5 40h0.0" /><path d="M1054.0 40h0.0" /><rect height="22" width="96.5" x="957.5" y="29"></rect><text x="1005.75" y="44">condition</text></g></g><path d="M1054.0 40h20" /></g></g><path d="M1074.0 40a10 10 0 0 1 10 10v68a10 10 0 0 1 -10 10h-1024.0a10 10 0 0 0 -10 10v16a10 10 0 0 0 10 10" /><g><path d="M50.0 164h100.25" /><path d="M973.75 164h100.25" /><g><path d="M150.25 164h0.0" /><path d="M403.25 164h0.0" /><path d="M150.25 164a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M170.25 144h213.0" /></g><path d="M383.25 144a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M150.25 164h20" /><g><path d="M170.25 164h0.0" /><path d="M383.25 164h0.0" /><g class="terminal "><path d="M170.25 164h0.0" /><path d="M258.25 164h0.0" /><rect height="22" rx="10" ry="10" width="88" x="170.25" y="153"></rect><text x="214.25" y="168">GROUP BY</text></g><path d="M258.25 164h10" /><path d="M268.25 164h10" /><g class="non-terminal "><path d="M278.25 164h0.0" /><path d="M383.25 164h0.0" /><rect height="22" width="105" x="278.25" y="153"></rect><text x="330.75" y="168">expression</text></g></g><path d="M383.25 164h20" /></g><g><path d="M403.25 164h0.0" /><path d="M630.75 164h0.0" /><path d="M403.25 164a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M423.25 144h187.5" /></g><path d="M610.75 144a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M403.25 164h20" /><g><path d="M423.25 164h0.0" /><path d="M610.75 164h0.0" /><g class="terminal "><path d="M423.25 164h0.0" /><path d="M494.25 164h0.0" /><rect height="22" rx="10" ry="10" width="71" x="423.25" y="153"></rect><text x="458.75" y="168">HAVING</text></g><path d="M494.25 164h10" /><path d="M504.25 164h10" /><g class="non-terminal "><path d="M514.25 164h0.0" /><path d="M610.75 164h0.0" /><rect height="22" width="96.5" x="514.25" y="153"></rect><text x="562.5" y="168">condition</text></g></g><path d="M610.75 164h20" /></g><g><path d="M630.75 164h0.0" /><path d="M973.75 164h0.0" /><path d="M630.75 164a10 10 0 0 0 10 -10v-8a10 10 0 0 1 10 -10" /><g><path d="M650.75 136h303.0" /></g><path d="M953.75 136a10 10 0 0 1 10 10v8a10 10 0 0 0 10 10" /><path d="M630.75 164h20" /><g><path d="M650.75 164h0.0" /><path d="M953.75 164h0.0" /><g><path d="M650.75 164h0.0" /><path d="M787.25 164h0.0" /><path d="M650.75 164h20" /><g class="terminal "><path d="M670.75 164h17.0" /><path d="M750.25 164h17.0" /><rect height="22" rx="10" ry="10" width="62.5" x="687.75" y="153"></rect><text x="719" y="168">UNION</text></g><path d="M767.25 164h20" /><path d="M650.75 164a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M670.75 194h0.0" /><path d="M767.25 194h0.0" /><rect height="22" rx="10" ry="10" width="96.5" x="670.75" y="183"></rect><text x="719" y="198">INTERSECT</text></g><path d="M767.25 194a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M650.75 164a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g class="terminal "><path d="M670.75 224h12.75" /><path d="M754.5 224h12.75" /><rect height="22" rx="10" ry="10" width="71" x="683.5" y="213"></rect><text x="719" y="228">EXCEPT</text></g><path d="M767.25 224a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /></g><g><path d="M787.25 164h0.0" /><path d="M872.75 164h0.0" /><path d="M787.25 164a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M807.25 144h45.5" /></g><path d="M852.75 144a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M787.25 164h20" /><g class="terminal "><path d="M807.25 164h0.0" /><path d="M852.75 164h0.0" /><rect height="22" rx="10" ry="10" width="45.5" x="807.25" y="153"></rect><text x="830" y="168">ALL</text></g><path d="M852.75 164h20" /></g><path d="M872.75 164h10" /><g class="non-terminal "><path d="M882.75 164h0.0" /><path d="M953.75 164h0.0" /><rect height="22" width="71" x="882.75" y="153"></rect><text x="918.25" y="168">select</text></g></g><path d="M953.75 164h20" /></g></g><path d="M1074.0 164a10 10 0 0 1 10 10v59a10 10 0 0 1 -10 10h-1024.0a10 10 0 0 0 -10 10v16a10 10 0 0 0 10 10" /><g><path d="M50.0 279h67.25" /><path d="M1006.75 279h67.25" /><g><path d="M117.25 279h0.0" /><path d="M494.25 279h0.0" /><path d="M117.25 279a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M137.25 259h337.0" /></g><path d="M474.25 259a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M117.25 279h20" /><g><path d="M137.25 279h0.0" /><path d="M474.25 279h0.0" /><g class="terminal "><path d="M137.25 279h0.0" /><path d="M225.25 279h0.0" /><rect height="22" rx="10" ry="10" width="88" x="137.25" y="268"></rect><text x="181.25" y="283">ORDER BY</text></g><path d="M225.25 279h10" /><path d="M235.25 279h10" /><g><path d="M245.25 279h0.0" /><path d="M474.25 279h0.0" /><path d="M245.25 279h10" /><g><path d="M255.25 279h0.0" /><path d="M464.25 279h0.0" /><g class="non-terminal "><path d="M255.25 279h0.0" /><path d="M360.25 279h0.0" /><rect height="22" width="105" x="255.25" y="268"></rect><text x="307.75" y="283">expression</text></g><path d="M360.25 279h10" /><g><path d="M370.25 279h0.0" /><path d="M464.25 279h0.0" /><path d="M370.25 279h20" /><g><path d="M390.25 279h54.0" /></g><path d="M444.25 279h20" /><path d="M370.25 279a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M390.25 299h4.25" /><path d="M440.0 299h4.25" /><rect height="22" rx="10" ry="10" width="45.5" x="394.5" y="288"></rect><text x="417.25" y="303">ASC</text></g><path d="M444.25 299a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><path d="M370.25 279a10 10 0 0 1 10 10v30a10 10 0 0 0 10 10" /><g class="terminal "><path d="M390.25 329h0.0" /><path d="M444.25 329h0.0" /><rect height="22" rx="10" ry="10" width="54" x="390.25" y="318"></rect><text x="417.25" y="333">DESC</text></g><path d="M444.25 329a10 10 0 0 0 10 -10v-30a10 10 0 0 1 10 -10" /></g></g><path d="M464.25 279h10" /><path d="M255.25 279a10 10 0 0 0 -10 10v60a10 10 0 0 0 10 10" /><g class="terminal "><path d="M255.25 359h90.25" /><path d="M374.0 359h90.25" /><rect height="22" rx="10" ry="10" width="28.5" x="345.5" y="348"></rect><text x="359.75" y="363">,</text></g><path d="M464.25 359a10 10 0 0 0 10 -10v-60a10 10 0 0 0 -10 -10" /></g></g><path d="M474.25 279h20" /></g><g><path d="M494.25 279h0.0" /><path d="M709.25 279h0.0" /><path d="M494.25 279a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M514.25 259h175.0" /></g><path d="M689.25 259a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M494.25 279h20" /><g><path d="M514.25 279h0.0" /><path d="M689.25 279h0.0" /><g class="terminal "><path d="M514.25 279h0.0" /><path d="M576.75 279h0.0" /><rect height="22" rx="10" ry="10" width="62.5" x="514.25" y="268"></rect><text x="545.5" y="283">LIMIT</text></g><path d="M576.75 279h10" /><g><path d="M586.75 279h0.0" /><path d="M689.25 279h0.0" /><path d="M586.75 279h20" /><g class="non-terminal "><path d="M606.75 279h0.0" /><path d="M669.25 279h0.0" /><rect height="22" width="62.5" x="606.75" y="268"></rect><text x="638" y="283">count</text></g><path d="M669.25 279h20" /><path d="M586.75 279a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M606.75 309h8.5" /><path d="M660.75 309h8.5" /><rect height="22" rx="10" ry="10" width="45.5" x="615.25" y="298"></rect><text x="638" y="313">ALL</text></g><path d="M669.25 309a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g></g><path d="M689.25 279h20" /></g><g><path d="M709.25 279h0.0" /><path d="M1006.75 279h0.0" /><path d="M709.25 279a10 10 0 0 0 10 -10v-8a10 10 0 0 1 10 -10" /><g><path d="M729.25 251h257.5" /></g><path d="M986.75 251a10 10 0 0 1 10 10v8a10 10 0 0 0 10 10" /><path d="M709.25 279h20" /><g><path d="M729.25 279h0.0" /><path d="M986.75 279h0.0" /><g class="terminal "><path d="M729.25 279h0.0" /><path d="M800.25 279h0.0" /><rect height="22" rx="10" ry="10" width="71" x="729.25" y="268"></rect><text x="764.75" y="283">OFFSET</text></g><path d="M800.25 279h10" /><path d="M810.25 279h10" /><g class="non-terminal "><path d="M820.25 279h0.0" /><path d="M882.75 279h0.0" /><rect height="22" width="62.5" x="820.25" y="268"></rect><text x="851.5" y="283">start</text></g><path d="M882.75 279h10" /><g><path d="M892.75 279h0.0" /><path d="M986.75 279h0.0" /><path d="M892.75 279a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M912.75 259h54.0" /></g><path d="M966.75 259a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M892.75 279h20" /><g class="terminal "><path d="M912.75 279h0.0" /><path d="M966.75 279h0.0" /><rect height="22" rx="10" ry="10" width="54" x="912.75" y="268"></rect><text x="939.75" y="283">ROWS</text></g><path d="M966.75 279h20" /></g></g><path d="M986.75 279h20" /></g></g><path d="M1074.0 279h10" /><path d="M1084.0 279h0.0" /></g><path d="M 1084.0 279 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
140
-
141
- <h1>Group example</h1>
142
- <svg class="railroad-diagram" height="150" viewBox="0 0 356.5 150" width="356.5"><g transform="translate(.5 .5)"><g><path d="M20 53v20m10 -20v20m-10 -10h20" /></g><path d="M40 63h10" /><g class="terminal "><path d="M50 63h0.0" /><path d="M95.5 63h0.0" /><rect height="22" rx="10" ry="10" width="45.5" x="50" y="52"></rect><text x="72.75" y="67">foo</text></g><path d="M95.5 63h10" /><g><path d="M105.5 63h0.0" /><path d="M251.0 103h0.0" /><path d="M105.5 63a10 10 0 0 0 10 -10v-23a10 10 0 0 1 10 -10" /><g><path d="M125.5 20h105.5" /></g><path d="M231.0 20a10 10 0 0 1 10 10v63a10 10 0 0 0 10 10" /><path d="M105.5 63h20" /><g><path d="M125.5 63h0.0" /><path d="M231.0 103h0.0" /><path d="M125.5 63h10" /><g><path d="M135.5 63h0.0" /><path d="M221.0 103h0.0" /><rect class="group-box" height="78" rx="10" ry="10" width="85.5" x="135.5" y="44"></rect><g><path d="M135.5 63h0.0" /><path d="M135.5 63h10" /><g class="terminal "><path d="M145.5 63h10.0" /><path d="M201.0 63h10.0" /><rect height="22" rx="10" ry="10" width="45.5" x="155.5" y="52"></rect><text x="178.25" y="67">foo</text></g><path d="M211.0 63a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h-65.5a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M145.5 103h10.0" /><path d="M201.0 103h10.0" /><rect height="22" rx="10" ry="10" width="45.5" x="155.5" y="92"></rect><text x="178.25" y="107">bar</text></g><path d="M211.0 103h10" /><path d="M221.0 103h0.0" /></g><g class="non-terminal "><path d="M135.5 36h0" /><path d="M180.5 36h0" /><text class="comment" x="157.5" y="40">label</text></g></g><path d="M221.0 103h10" /><path d="M135.5 63a10 10 0 0 0 -10 10v47a10 10 0 0 0 10 10" /><g><path d="M135.5 130h85.5" /></g><path d="M221.0 130a10 10 0 0 0 10 -10v-7a10 10 0 0 0 -10 -10" /></g><path d="M231.0 103h20" /></g><path d="M251.0 103h10" /><g class="terminal "><path d="M261.0 103h0.0" /><path d="M306.5 103h0.0" /><rect height="22" rx="10" ry="10" width="45.5" x="261" y="92"></rect><text x="283.75" y="107">bar</text></g><path d="M306.5 103h10" /><path d="M 316.5 103 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
143
-
144
- <h1>Class example</h1>
145
- <svg class="railroad-diagram" height="62" viewBox="0 0 351.5 62" width="351.5"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><path d="M40 31h10" /><g class="terminal "><path d="M50 31h0.0" /><path d="M95.5 31h0.0" /><rect height="22" rx="10" ry="10" width="45.5" x="50" y="20"></rect><text x="72.75" y="35">foo</text></g><path d="M95.5 31h10" /><path d="M105.5 31h10" /><g class="terminal blue"><path d="M115.5 31h0.0" /><path d="M169.5 31h0.0" /><rect height="22" rx="10" ry="10" width="54" x="115.5" y="20"></rect><text x="142.5" y="35">blue</text></g><path d="M169.5 31h10" /><path d="M179.5 31h10" /><g class="non-terminal blue"><path d="M189.5 31h0.0" /><path d="M243.5 31h0.0" /><rect height="22" width="54" x="189.5" y="20"></rect><text x="216.5" y="35">blue</text></g><path d="M243.5 31h10" /><path d="M253.5 31h10" /><g class="non-terminal blue"><path d="M263.5 31h0" /><path d="M301.5 31h0" /><text class="comment" x="282.5" y="35">blue</text></g><path d="M301.5 31h10" /><path d="M 311.5 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
146
-
147
- <h1>rr-alternatingsequence</h1>
148
- <svg class="railroad-diagram" height="112" viewBox="0 0 185.5 112" width="185.5"><g transform="translate(.5 .5)"><g><path d="M20 46v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 56h0" /><path d="M145.5 56h0" /><path d="M40.0 56a10 10 0 0 0 10 -10v-5a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M60.0 31h10.0" /><path d="M115.5 31h10.0" /><rect height="22" rx="10" ry="10" width="45.5" x="70" y="20"></rect><text x="92.75" y="35">foo</text></g><path d="M125.5 31a10 10 0 0 1 10 10v5a10 10 0 0 0 10 10" /><path d="M40.0 56a10 10 0 0 1 10 10v5a10 10 0 0 0 10 10" /><g class="terminal "><path d="M60.0 81h10.0" /><path d="M115.5 81h10.0" /><rect height="22" rx="10" ry="10" width="45.5" x="70" y="70"></rect><text x="92.75" y="85">bar</text></g><path d="M125.5 81a10 10 0 0 0 10 -10v-5a10 10 0 0 1 10 -10" /><path d="M50.0 41a10 10 0 0 0 10 10h23.60786437626905a 10 10 0 0 1 7.071067811865475 2.9289321881345254l4.142135623730949 4.142135623730949a 10 10 0 0 0 7.071067811865475 2.9289321881345254h23.60786437626905a10 10 0 0 1 10 10" /><path d="M50.0 71a10 10 0 0 1 10 -10h23.60786437626905a 10 10 0 0 0 7.071067811865475 -2.9289321881345254l4.142135623730949 -4.142135623730949a 10 10 0 0 1 7.071067811865475 -2.9289321881345254h23.60786437626905a10 10 0 0 0 10 -10" /></g><path d="M 145.5 56 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
149
-
150
- <h1>rr-choice</h1>
151
- <svg class="railroad-diagram" height="122" viewBox="0 0 148.5 122" width="148.5"><g transform="translate(.5 .5)"><g><path d="M20 51v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 61h0.0" /><path d="M108.5 61h0.0" /><path d="M40.0 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M60.0 31h0.0" /><path d="M88.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="60" y="20"></rect><text x="74.25" y="35">1</text></g><path d="M88.5 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><path d="M40.0 61h20" /><g class="terminal "><path d="M60.0 61h0.0" /><path d="M88.5 61h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="60" y="50"></rect><text x="74.25" y="65">2</text></g><path d="M88.5 61h20" /><path d="M40.0 61a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M60.0 91h0.0" /><path d="M88.5 91h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="60" y="80"></rect><text x="74.25" y="95">3</text></g><path d="M88.5 91a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g><path d="M 108.5 61 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
152
-
153
- <h1>rr-group</h1>
154
- <svg class="railroad-diagram" height="108" viewBox="0 0 359.0 108" width="359.0"><g transform="translate(.5 .5)"><g><path d="M20 29v20m10 -20v20m-10 -10h20" /></g><path d="M40 39h10" /><g class="terminal "><path d="M50 39h0.0" /><path d="M95.5 39h0.0" /><rect height="22" rx="10" ry="10" width="45.5" x="50" y="28"></rect><text x="72.75" y="43">foo</text></g><path d="M95.5 39h10" /><path d="M105.5 39h10" /><g><path d="M115.5 39h0.0" /><path d="M243.5 39h0.0" /><rect class="group-box" height="68" rx="10" ry="10" width="128" x="115.5" y="20"></rect><g><path d="M115.5 39h0.0" /><path d="M243.5 39h0.0" /><path d="M115.5 39h20" /><g class="non-terminal "><path d="M135.5 39h0.0" /><path d="M223.5 39h0.0" /><rect height="22" width="88" x="135.5" y="28"></rect><text x="179.5" y="43">option 1</text></g><path d="M223.5 39h20" /><path d="M115.5 39a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M135.5 69h8.5" /><path d="M215.0 69h8.5" /><rect height="22" width="71" x="144" y="58"></rect><text x="179.5" y="73">or two</text></g><path d="M223.5 69a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g></g><path d="M243.5 39h10" /><path d="M253.5 39h10" /><g class="terminal "><path d="M263.5 39h0.0" /><path d="M309.0 39h0.0" /><rect height="22" rx="10" ry="10" width="45.5" x="263.5" y="28"></rect><text x="286.25" y="43">bar</text></g><path d="M309.0 39h10" /><path d="M 319.0 39 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
155
-
156
- <h1>rr-horizontalchoice</h1>
157
- <svg class="railroad-diagram" height="198" viewBox="0 0 345.5 198" width="345.5"><g transform="translate(.5 .5)"><g><path d="M20 89v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 99h0.0" /><path d="M305.5 99h0.0" /><path d="M40.0 99a10 10 0 0 0 10 -10v-59a10 10 0 0 1 10 -10h147.0" /><path d="M138.5 178h147.0a10 10 0 0 0 10 -10v-59a10 10 0 0 1 10 -10" /><path d="M40.0 99h10" /><g><path d="M50.0 99h0.0" /><path d="M118.5 99h0.0" /><path d="M50.0 99a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M70.0 69h0.0" /><path d="M98.5 69h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="58"></rect><text x="84.25" y="73">1</text></g><path d="M98.5 69a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><path d="M50.0 99a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M70.0 39h0.0" /><path d="M98.5 39h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="28"></rect><text x="84.25" y="43">0</text></g><path d="M98.5 39a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><path d="M50.0 99h20" /><g class="terminal "><path d="M70.0 99h0.0" /><path d="M98.5 99h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="88"></rect><text x="84.25" y="103">2</text></g><path d="M98.5 99h20" /><path d="M50.0 99a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M70.0 129h0.0" /><path d="M98.5 129h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="118"></rect><text x="84.25" y="133">3</text></g><path d="M98.5 129a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M50.0 99a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g class="terminal "><path d="M70.0 159h0.0" /><path d="M98.5 159h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="148"></rect><text x="84.25" y="163">4</text></g><path d="M98.5 159a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /></g><path d="M118.5 99a10 10 0 0 1 10 10v59a10 10 0 0 0 10 10" /><path d="M118.5 20a10 10 0 0 1 10 10v59a10 10 0 0 0 10 10" /><g><path d="M138.5 99h0.0" /><path d="M207.0 99h0.0" /><path d="M138.5 99a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M158.5 69h0.0" /><path d="M187.0 69h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="58"></rect><text x="172.75" y="73">6</text></g><path d="M187.0 69a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><path d="M138.5 99a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M158.5 39h0.0" /><path d="M187.0 39h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="28"></rect><text x="172.75" y="43">5</text></g><path d="M187.0 39a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><path d="M138.5 99h20" /><g class="terminal "><path d="M158.5 99h0.0" /><path d="M187.0 99h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="88"></rect><text x="172.75" y="103">7</text></g><path d="M187.0 99h20" /><path d="M138.5 99a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M158.5 129h0.0" /><path d="M187.0 129h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="118"></rect><text x="172.75" y="133">8</text></g><path d="M187.0 129a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M138.5 99a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g class="terminal "><path d="M158.5 159h0.0" /><path d="M187.0 159h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="148"></rect><text x="172.75" y="163">9</text></g><path d="M187.0 159a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /></g><path d="M207.0 99a10 10 0 0 1 10 10v59a10 10 0 0 0 10 10" /><path d="M207.0 20a10 10 0 0 1 10 10v59a10 10 0 0 0 10 10" /><g><path d="M227.0 99h0.0" /><path d="M295.5 99h0.0" /><path d="M227.0 99a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M247.0 69h0.0" /><path d="M275.5 69h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="58"></rect><text x="261.25" y="73">b</text></g><path d="M275.5 69a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><path d="M227.0 99a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M247.0 39h0.0" /><path d="M275.5 39h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="28"></rect><text x="261.25" y="43">a</text></g><path d="M275.5 39a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><path d="M227.0 99h20" /><g class="terminal "><path d="M247.0 99h0.0" /><path d="M275.5 99h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="88"></rect><text x="261.25" y="103">c</text></g><path d="M275.5 99h20" /><path d="M227.0 99a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M247.0 129h0.0" /><path d="M275.5 129h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="118"></rect><text x="261.25" y="133">d</text></g><path d="M275.5 129a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M227.0 99a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g class="terminal "><path d="M247.0 159h0.0" /><path d="M275.5 159h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="148"></rect><text x="261.25" y="163">e</text></g><path d="M275.5 159a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /></g><path d="M295.5 99h10" /></g><path d="M 305.5 99 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
158
-
159
- <h1>rr-multchoice</h1>
160
- <svg class="railroad-diagram" height="122" viewBox="0 0 198.5 122" width="198.5"><g transform="translate(.5 .5)"><g><path d="M20 51v20m10 -20v20m-10 -10h20" /></g><path d="M40 61h10" /><g><path d="M50 61h0.0" /><path d="M148.5 61h0.0" /><path d="M80.0 61v-20a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M90.0 31h0.0" /><path d="M118.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="90" y="20"></rect><text x="104.25" y="35">1</text></g><path d="M118.5 31a10 10 0 0 1 10 10v10" /><path d="M80.0 61h10" /><g class="terminal "><path d="M90.0 61h0.0" /><path d="M118.5 61h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="90" y="50"></rect><text x="104.25" y="65">2</text></g><path d="M118.5 61h10" /><path d="M80.0 61v20a10 10 0 0 0 10 10" /><g class="terminal "><path d="M90.0 91h0.0" /><path d="M118.5 91h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="90" y="80"></rect><text x="104.25" y="95">3</text></g><path d="M118.5 91a10 10 0 0 0 10 -10v-10" /><g class="diagram-text"><title>take all branches, once each, in any order</title><path class="diagram-text" d="M 80.0 51 h -26 a 4 4 0 0 0 -4 4 v 12 a 4 4 0 0 0 4 4 h 26 z"></path><text class="diagram-text" x="65" y="65">all</text><path class="diagram-text" d="M 128.5 51 h 16 a 4 4 0 0 1 4 4 v 12 a 4 4 0 0 1 -4 4 h -16 z"></path><text class="diagram-arrow" x="138.5" y="65">↺</text></g></g><path d="M148.5 61h10" /><path d="M 158.5 61 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
161
-
162
- <h1>rr-oneormore</h1>
163
- <svg class="railroad-diagram" height="92" viewBox="0 0 165.5 92" width="165.5"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><path d="M40 31h10" /><g><path d="M50 31h0.0" /><path d="M115.5 31h0.0" /><path d="M50.0 31h10" /><g class="terminal "><path d="M60.0 31h0.0" /><path d="M105.5 31h0.0" /><rect height="22" rx="10" ry="10" width="45.5" x="60" y="20"></rect><text x="82.75" y="35">foo</text></g><path d="M105.5 31h10" /><path d="M60.0 31a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M60.0 61h0.0" /><path d="M105.5 61h0.0" /><rect height="22" rx="10" ry="10" width="45.5" x="60" y="50"></rect><text x="82.75" y="65">bar</text></g><path d="M105.5 61a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10" /></g><path d="M115.5 31h10" /><path d="M 125.5 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
164
-
165
- <h1>rr-optional</h1>
166
- <svg class="railroad-diagram" height="91" viewBox="0 0 251.0 91" width="251.0"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 40h0.0" /><path d="M125.5 40h0.0" /><path d="M40.0 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M60.0 20h45.5" /></g><path d="M105.5 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M40.0 40h20" /><g class="terminal "><path d="M60.0 40h0.0" /><path d="M105.5 40h0.0" /><rect height="22" rx="10" ry="10" width="45.5" x="60" y="29"></rect><text x="82.75" y="44">foo</text></g><path d="M105.5 40h20" /></g><g><path d="M125.5 40h0.0" /><path d="M211.0 40h0.0" /><path d="M125.5 40h20" /><g><path d="M145.5 40h45.5" /></g><path d="M191.0 40h20" /><path d="M125.5 40a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M145.5 60h0.0" /><path d="M191.0 60h0.0" /><rect height="22" rx="10" ry="10" width="45.5" x="145.5" y="49"></rect><text x="168.25" y="64">bar</text></g><path d="M191.0 60a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /></g><path d="M 211.0 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
167
-
168
- <h1>rr-optionalsequence</h1>
169
- <svg class="railroad-diagram" height="80.0" viewBox="0 0 265.5 80.0" width="265.5"><g transform="translate(.5 .5)"><g><path d="M20 30.0v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 40.0h0" /><path d="M225.5 40.0h0" /><path d="M40.0 40.0a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10h28.5a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M40.0 40.0h20" /><g class="terminal "><path d="M60.0 40.0h0.0" /><path d="M88.5 40.0h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="60" y="29"></rect><text x="74.25" y="44">1</text></g><path d="M88.5 20.0h68.5a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M88.5 40.0h20" /><g class="terminal "><path d="M108.5 40.0h0.0" /><path d="M137.0 40.0h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="108.5" y="29"></rect><text x="122.75" y="44">2</text></g><path d="M137.0 40.0h20" /><path d="M88.5 40.0a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10h28.5a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><path d="M157.0 40.0h20" /><g class="terminal "><path d="M177.0 40.0h0.0" /><path d="M205.5 40.0h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="177" y="29"></rect><text x="191.25" y="44">3</text></g><path d="M205.5 40.0h20" /><path d="M157.0 40.0a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10h28.5a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /></g><path d="M 225.5 40.0 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
170
-
171
- <h1>rr-sequence</h1>
172
- <svg class="railroad-diagram" height="62" viewBox="0 0 205.5 62" width="205.5"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 31h0.0" /><path d="M165.5 31h0.0" /><g class="terminal "><path d="M40.0 31h0.0" /><path d="M68.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="40" y="20"></rect><text x="54.25" y="35">1</text></g><path d="M68.5 31h10" /><path d="M78.5 31h10" /><g class="terminal "><path d="M88.5 31h0.0" /><path d="M117.0 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="88.5" y="20"></rect><text x="102.75" y="35">2</text></g><path d="M117.0 31h10" /><path d="M127.0 31h10" /><g class="terminal "><path d="M137.0 31h0.0" /><path d="M165.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="137" y="20"></rect><text x="151.25" y="35">3</text></g></g><path d="M 165.5 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
173
-
174
- <h1>rr-stack</h1>
175
- <svg class="railroad-diagram" height="142" viewBox="0 0 148.5 142" width="148.5"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 31h0.0" /><path d="M40.0 31h10" /><g class="terminal "><path d="M50.0 31h10.0" /><path d="M88.5 31h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="60" y="20"></rect><text x="74.25" y="35">1</text></g><path d="M98.5 31a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h-48.5a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M50.0 71h10.0" /><path d="M88.5 71h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="60" y="60"></rect><text x="74.25" y="75">2</text></g><path d="M98.5 71a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h-48.5a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M50.0 111h10.0" /><path d="M88.5 111h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="60" y="100"></rect><text x="74.25" y="115">3</text></g><path d="M98.5 111h10" /><path d="M108.5 111h0.0" /></g><path d="M 108.5 111 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
176
-
177
- <h1>rr-title</h1>
178
- <svg class="railroad-diagram" height="126" viewBox="0 0 412.5 126" width="412.5"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 31h0.0" /><path d="M40.0 31h10" /><g class="terminal "><path d="M50.0 31h10.0" /><path d="M148.0 31h10.0" /><rect height="22" rx="10" ry="10" width="88" x="60" y="20"></rect><text x="104" y="35">Generate</text></g><path d="M158.0 31a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h-108.0a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M50.0 71h27.0" /><path d="M131.0 71h27.0" /><rect height="22" rx="10" ry="10" width="54" x="77" y="60"></rect><text x="104" y="75">some</text></g><path d="M158.0 71h10" /><path d="M168.0 71h0.0" /></g><path d="M168.0 71h10" /><g><path d="M178.0 71h0.0" /><path d="M362.5 71h0.0" /><path d="M178.0 71h10" /><g class="non-terminal "><path d="M188.0 71h0.0" /><path d="M352.5 71h0.0" /><rect height="22" width="164.5" x="188" y="60"></rect><text x="270.25" y="75">railroad diagrams</text></g><path d="M352.5 71h10" /><path d="M188.0 71a10 10 0 0 0 -10 10v7a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M188.0 98h0" /><path d="M254.0 98h0" /><text class="comment" x="221" y="102">and more</text></g><path d="M352.5 98a10 10 0 0 0 10 -10v-7a10 10 0 0 0 -10 -10" /></g><path d="M362.5 71h10" /><path d="M 372.5 71 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
179
-
180
- <h1>rr-zeroormore-1</h1>
181
- <svg class="railroad-diagram" height="95" viewBox="0 0 185.5 95" width="185.5"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 40h0.0" /><path d="M145.5 40h0.0" /><path d="M40.0 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M60.0 20h65.5" /></g><path d="M125.5 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M40.0 40h20" /><g><path d="M60.0 40h0.0" /><path d="M125.5 40h0.0" /><path d="M60.0 40h10" /><g class="terminal "><path d="M70.0 40h0.0" /><path d="M115.5 40h0.0" /><rect height="22" rx="10" ry="10" width="45.5" x="70" y="29"></rect><text x="92.75" y="44">foo</text></g><path d="M115.5 40h10" /><path d="M70.0 40a10 10 0 0 0 -10 10v7a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M70.0 67h0" /><path d="M101.0 67h0" /><text class="comment" x="85" y="71">bar</text></g><path d="M115.5 67a10 10 0 0 0 10 -10v-7a10 10 0 0 0 -10 -10" /></g><path d="M125.5 40h20" /></g><path d="M 145.5 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
182
-
183
- <h1>rr-zeroormore-2</h1>
184
- <svg class="railroad-diagram" height="115" viewBox="0 0 291.0 115" width="291.0"><g transform="translate(.5 .5)"><g><path d="M20 30v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 40h0.0" /><path d="M145.5 40h0.0" /><path d="M40.0 40a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><g><path d="M60.0 20h65.5" /></g><path d="M125.5 20a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M40.0 40h20" /><g><path d="M60.0 40h0.0" /><path d="M125.5 40h0.0" /><path d="M60.0 40h10" /><g class="terminal "><path d="M70.0 40h0.0" /><path d="M115.5 40h0.0" /><rect height="22" rx="10" ry="10" width="45.5" x="70" y="29"></rect><text x="92.75" y="44">foo</text></g><path d="M115.5 40h10" /><path d="M70.0 40a10 10 0 0 0 -10 10v7a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M70.0 67h0" /><path d="M101.0 67h0" /><text class="comment" x="85" y="71">bar</text></g><path d="M115.5 67a10 10 0 0 0 10 -10v-7a10 10 0 0 0 -10 -10" /></g><path d="M125.5 40h20" /></g><g><path d="M145.5 40h0.0" /><path d="M251.0 40h0.0" /><path d="M145.5 40h20" /><g><path d="M165.5 40h65.5" /></g><path d="M231.0 40h20" /><path d="M145.5 40a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g><path d="M165.5 60h0.0" /><path d="M231.0 60h0.0" /><path d="M165.5 60h10" /><g class="terminal "><path d="M175.5 60h0.0" /><path d="M221.0 60h0.0" /><rect height="22" rx="10" ry="10" width="45.5" x="175.5" y="49"></rect><text x="198.25" y="64">foo</text></g><path d="M221.0 60h10" /><path d="M175.5 60a10 10 0 0 0 -10 10v7a10 10 0 0 0 10 10" /><g class="non-terminal "><path d="M175.5 87h0" /><path d="M206.5 87h0" /><text class="comment" x="190.5" y="91">bar</text></g><path d="M221.0 87a10 10 0 0 0 10 -10v-7a10 10 0 0 0 -10 -10" /></g><path d="M231.0 60a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /></g><path d="M 251.0 40 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
185
-
186
- <h1>complicated-horizontalchoice-1</h1>
187
- <svg class="railroad-diagram" height="310" viewBox="0 0 865.0 310" width="865.0"><g transform="translate(.5 .5)"><g><path d="M20 149v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 159h0.0" /><path d="M482.5 159h0.0" /><path d="M40.0 159a10 10 0 0 0 10 -10v-119a10 10 0 0 1 10 -10h324.0" /><path d="M138.5 268h324.0a10 10 0 0 0 10 -10v-89a10 10 0 0 1 10 -10" /><path d="M40.0 159h10" /><g><path d="M50.0 159h0.0" /><path d="M118.5 159h0.0" /><path d="M50.0 159h20" /><g class="terminal "><path d="M70.0 159h0.0" /><path d="M98.5 159h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="148"></rect><text x="84.25" y="163">1</text></g><path d="M98.5 159h20" /><path d="M50.0 159a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M70.0 189h0.0" /><path d="M98.5 189h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="178"></rect><text x="84.25" y="193">2</text></g><path d="M98.5 189a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M50.0 159a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g class="terminal "><path d="M70.0 219h0.0" /><path d="M98.5 219h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="208"></rect><text x="84.25" y="223">3</text></g><path d="M98.5 219a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><path d="M50.0 159a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10" /><g class="terminal "><path d="M70.0 249h0.0" /><path d="M98.5 249h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="238"></rect><text x="84.25" y="253">4</text></g><path d="M98.5 249a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10" /><path d="M50.0 159a10 10 0 0 1 10 10v100a10 10 0 0 0 10 10" /><g class="terminal "><path d="M70.0 279h0.0" /><path d="M98.5 279h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="268"></rect><text x="84.25" y="283">5</text></g><path d="M98.5 279a10 10 0 0 0 10 -10v-100a10 10 0 0 1 10 -10" /></g><path d="M118.5 159a10 10 0 0 1 10 10v89a10 10 0 0 0 10 10" /><path d="M118.5 20a10 10 0 0 1 10 10v119a10 10 0 0 0 10 10" /><g><path d="M138.5 159h0.0" /><path d="M207.0 159h0.0" /><path d="M138.5 159a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M158.5 129h0.0" /><path d="M187.0 129h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="118"></rect><text x="172.75" y="133">4</text></g><path d="M187.0 129a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><path d="M138.5 159a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M158.5 99h0.0" /><path d="M187.0 99h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="88"></rect><text x="172.75" y="103">3</text></g><path d="M187.0 99a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><path d="M138.5 159a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M158.5 69h0.0" /><path d="M187.0 69h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="58"></rect><text x="172.75" y="73">2</text></g><path d="M187.0 69a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10" /><path d="M138.5 159a10 10 0 0 0 10 -10v-100a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M158.5 39h0.0" /><path d="M187.0 39h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="28"></rect><text x="172.75" y="43">1</text></g><path d="M187.0 39a10 10 0 0 1 10 10v100a10 10 0 0 0 10 10" /><path d="M138.5 159h20" /><g class="terminal "><path d="M158.5 159h0.0" /><path d="M187.0 159h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="148"></rect><text x="172.75" y="163">5</text></g><path d="M187.0 159h20" /></g><path d="M207.0 159a10 10 0 0 1 10 10v89a10 10 0 0 0 10 10" /><path d="M207.0 20a10 10 0 0 1 10 10v119a10 10 0 0 0 10 10" /><g><path d="M227.0 159h0.0" /><path d="M295.5 159h0.0" /><path d="M227.0 159a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M247.0 129h0.0" /><path d="M275.5 129h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="118"></rect><text x="261.25" y="133">2</text></g><path d="M275.5 129a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><path d="M227.0 159a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M247.0 99h0.0" /><path d="M275.5 99h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="88"></rect><text x="261.25" y="103">1</text></g><path d="M275.5 99a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><path d="M227.0 159h20" /><g class="terminal "><path d="M247.0 159h0.0" /><path d="M275.5 159h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="148"></rect><text x="261.25" y="163">3</text></g><path d="M275.5 159h20" /><path d="M227.0 159a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M247.0 189h0.0" /><path d="M275.5 189h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="178"></rect><text x="261.25" y="193">4</text></g><path d="M275.5 189a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M227.0 159a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g class="terminal "><path d="M247.0 219h0.0" /><path d="M275.5 219h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="208"></rect><text x="261.25" y="223">5</text></g><path d="M275.5 219a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /></g><path d="M295.5 159a10 10 0 0 1 10 10v89a10 10 0 0 0 10 10" /><path d="M295.5 20a10 10 0 0 1 10 10v119a10 10 0 0 0 10 10" /><g><path d="M315.5 159h0.0" /><path d="M384.0 159h0.0" /><path d="M315.5 159a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M335.5 129h0.0" /><path d="M364.0 129h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="335.5" y="118"></rect><text x="349.75" y="133">3</text></g><path d="M364.0 129a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><path d="M315.5 159a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M335.5 99h0.0" /><path d="M364.0 99h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="335.5" y="88"></rect><text x="349.75" y="103">2</text></g><path d="M364.0 99a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><path d="M315.5 159a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M335.5 69h0.0" /><path d="M364.0 69h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="335.5" y="58"></rect><text x="349.75" y="73">1</text></g><path d="M364.0 69a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10" /><path d="M315.5 159h20" /><g class="terminal "><path d="M335.5 159h0.0" /><path d="M364.0 159h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="335.5" y="148"></rect><text x="349.75" y="163">4</text></g><path d="M364.0 159h20" /><path d="M315.5 159a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M335.5 189h0.0" /><path d="M364.0 189h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="335.5" y="178"></rect><text x="349.75" y="193">5</text></g><path d="M364.0 189a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g><path d="M384.0 159a10 10 0 0 1 10 10v89a10 10 0 0 0 10 10" /><path d="M384.0 20a10 10 0 0 1 10 10v119a10 10 0 0 0 10 10" /><g><path d="M404.0 159h0.0" /><path d="M472.5 159h0.0" /><path d="M404.0 159a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M424.0 129h0.0" /><path d="M452.5 129h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="424" y="118"></rect><text x="438.25" y="133">1</text></g><path d="M452.5 129a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><path d="M404.0 159h20" /><g class="terminal "><path d="M424.0 159h0.0" /><path d="M452.5 159h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="424" y="148"></rect><text x="438.25" y="163">2</text></g><path d="M452.5 159h20" /><path d="M404.0 159a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M424.0 189h0.0" /><path d="M452.5 189h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="424" y="178"></rect><text x="438.25" y="193">3</text></g><path d="M452.5 189a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M404.0 159a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g class="terminal "><path d="M424.0 219h0.0" /><path d="M452.5 219h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="424" y="208"></rect><text x="438.25" y="223">4</text></g><path d="M452.5 219a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><path d="M404.0 159a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10" /><g class="terminal "><path d="M424.0 249h0.0" /><path d="M452.5 249h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="424" y="238"></rect><text x="438.25" y="253">5</text></g><path d="M452.5 249a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10" /></g><path d="M472.5 159h10" /></g><g><path d="M482.5 159h0.0" /><path d="M825.0 159h0.0" /><path d="M482.5 159a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10h244.0" /><path d="M561.0 179h244.0a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><path d="M482.5 159h10" /><g class="terminal "><path d="M492.5 159h10.0" /><path d="M531.0 159h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="502.5" y="148"></rect><text x="516.75" y="163">1</text></g><path d="M541.0 159a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M541.0 139a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M561.0 159h10.0" /><path d="M599.5 159h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="571" y="148"></rect><text x="585.25" y="163">2</text></g><path d="M609.5 159a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M609.5 139a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M629.5 159h10.0" /><path d="M668.0 159h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="639.5" y="148"></rect><text x="653.75" y="163">3</text></g><path d="M678.0 159a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M678.0 139a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M698.0 159h10.0" /><path d="M736.5 159h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="708" y="148"></rect><text x="722.25" y="163">4</text></g><path d="M746.5 159a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M746.5 139a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M766.5 159h10.0" /><path d="M805.0 159h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="776.5" y="148"></rect><text x="790.75" y="163">5</text></g><path d="M815.0 159h10" /></g><path d="M 825.0 159 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
188
-
189
- <h1>complicated-horizontalchoice-2</h1>
190
- <svg class="railroad-diagram" height="242" viewBox="0 0 325.5 242" width="325.5"><g transform="translate(.5 .5)"><g><path d="M20 111v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 121h0.0" /><path d="M285.5 121h0.0" /><path d="M40.0 121a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10h127.0" /><path d="M138.5 141h127.0a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><path d="M40.0 121h10" /><g><path d="M50.0 121h0.0" /><path d="M118.5 121h0.0" /><path d="M50.0 121h20" /><g class="terminal "><path d="M70.0 121h0.0" /><path d="M98.5 121h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="110"></rect><text x="84.25" y="125">1</text></g><path d="M98.5 121h20" /><path d="M50.0 121a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M70.0 151h0.0" /><path d="M98.5 151h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="140"></rect><text x="84.25" y="155">2</text></g><path d="M98.5 151a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M50.0 121a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g class="terminal "><path d="M70.0 181h0.0" /><path d="M98.5 181h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="170"></rect><text x="84.25" y="185">3</text></g><path d="M98.5 181a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><path d="M50.0 121a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10" /><g class="terminal "><path d="M70.0 211h0.0" /><path d="M98.5 211h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="200"></rect><text x="84.25" y="215">4</text></g><path d="M98.5 211a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10" /></g><path d="M118.5 121a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M118.5 101a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M138.5 121h10.0" /><path d="M177.0 121h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="148.5" y="110"></rect><text x="162.75" y="125">4</text></g><path d="M187.0 121a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M187.0 101a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g><path d="M207.0 121h0.0" /><path d="M275.5 121h0.0" /><path d="M207.0 121a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M227.0 91h0.0" /><path d="M255.5 91h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="227" y="80"></rect><text x="241.25" y="95">3</text></g><path d="M255.5 91a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><path d="M207.0 121a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M227.0 61h0.0" /><path d="M255.5 61h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="227" y="50"></rect><text x="241.25" y="65">2</text></g><path d="M255.5 61a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><path d="M207.0 121a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M227.0 31h0.0" /><path d="M255.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="227" y="20"></rect><text x="241.25" y="35">1</text></g><path d="M255.5 31a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10" /><path d="M207.0 121h20" /><g class="terminal "><path d="M227.0 121h0.0" /><path d="M255.5 121h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="227" y="110"></rect><text x="241.25" y="125">4</text></g><path d="M255.5 121h20" /></g><path d="M275.5 121h10" /></g><path d="M 285.5 121 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
191
-
192
- <h1>complicated-horizontalchoice-3</h1>
193
- <svg class="railroad-diagram" height="242" viewBox="0 0 345.5 242" width="345.5"><g transform="translate(.5 .5)"><g><path d="M20 111v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 121h0.0" /><path d="M305.5 121h0.0" /><path d="M40.0 121a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10h147.0" /><path d="M138.5 221h147.0a10 10 0 0 0 10 -10v-80a10 10 0 0 1 10 -10" /><path d="M40.0 121h10" /><g><path d="M50.0 121h0.0" /><path d="M118.5 121h0.0" /><path d="M50.0 121h20" /><g class="terminal "><path d="M70.0 121h0.0" /><path d="M98.5 121h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="110"></rect><text x="84.25" y="125">1</text></g><path d="M98.5 121h20" /><path d="M50.0 121a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M70.0 151h0.0" /><path d="M98.5 151h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="140"></rect><text x="84.25" y="155">2</text></g><path d="M98.5 151a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M50.0 121a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g class="terminal "><path d="M70.0 181h0.0" /><path d="M98.5 181h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="170"></rect><text x="84.25" y="185">3</text></g><path d="M98.5 181a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><path d="M50.0 121a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10" /><g class="terminal "><path d="M70.0 211h0.0" /><path d="M98.5 211h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="200"></rect><text x="84.25" y="215">4</text></g><path d="M98.5 211a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10" /></g><path d="M118.5 121a10 10 0 0 1 10 10v80a10 10 0 0 0 10 10" /><path d="M118.5 101a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g><path d="M138.5 121h0.0" /><path d="M138.5 121h10" /><g class="terminal "><path d="M148.5 121h10.0" /><path d="M187.0 121h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="110"></rect><text x="172.75" y="125">1</text></g><path d="M197.0 121a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h-48.5a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M148.5 161h10.0" /><path d="M187.0 161h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="150"></rect><text x="172.75" y="165">2</text></g><path d="M197.0 161a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h-48.5a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M148.5 201h10.0" /><path d="M187.0 201h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="190"></rect><text x="172.75" y="205">3</text></g><path d="M197.0 201h10" /><path d="M207.0 201h0.0" /></g><path d="M207.0 201a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><path d="M207.0 101a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g><path d="M227.0 121h0.0" /><path d="M295.5 121h0.0" /><path d="M227.0 121a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M247.0 91h0.0" /><path d="M275.5 91h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="80"></rect><text x="261.25" y="95">3</text></g><path d="M275.5 91a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><path d="M227.0 121a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M247.0 61h0.0" /><path d="M275.5 61h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="50"></rect><text x="261.25" y="65">2</text></g><path d="M275.5 61a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><path d="M227.0 121a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M247.0 31h0.0" /><path d="M275.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="20"></rect><text x="261.25" y="35">1</text></g><path d="M275.5 31a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10" /><path d="M227.0 121h20" /><g class="terminal "><path d="M247.0 121h0.0" /><path d="M275.5 121h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="110"></rect><text x="261.25" y="125">4</text></g><path d="M275.5 121h20" /></g><path d="M295.5 121h10" /></g><path d="M 305.5 121 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
194
-
195
- <h1>complicated-horizontalchoice-4</h1>
196
- <svg class="railroad-diagram" height="250" viewBox="0 0 355.5 250" width="355.5"><g transform="translate(.5 .5)"><g><path d="M20 119v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 129h0.0" /><path d="M315.5 129h0.0" /><path d="M40.0 129a10 10 0 0 0 10 -10v-89a10 10 0 0 1 10 -10h147.0" /><path d="M138.5 228h157.0a10 10 0 0 0 10 -10v-79a10 10 0 0 1 10 -10" /><path d="M40.0 129h10" /><g><path d="M50.0 129h0.0" /><path d="M118.5 129h0.0" /><path d="M50.0 129h20" /><g class="terminal "><path d="M70.0 129h0.0" /><path d="M98.5 129h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="118"></rect><text x="84.25" y="133">1</text></g><path d="M98.5 129h20" /><path d="M50.0 129a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M70.0 159h0.0" /><path d="M98.5 159h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="148"></rect><text x="84.25" y="163">2</text></g><path d="M98.5 159a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M50.0 129a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g class="terminal "><path d="M70.0 189h0.0" /><path d="M98.5 189h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="178"></rect><text x="84.25" y="193">3</text></g><path d="M98.5 189a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><path d="M50.0 129a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10" /><g class="terminal "><path d="M70.0 219h0.0" /><path d="M98.5 219h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="208"></rect><text x="84.25" y="223">4</text></g><path d="M98.5 219a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10" /></g><path d="M118.5 129a10 10 0 0 1 10 10v79a10 10 0 0 0 10 10" /><path d="M118.5 20a10 10 0 0 1 10 10v89a10 10 0 0 0 10 10" /><g><path d="M138.5 129h0.0" /><path d="M207.0 129h0.0" /><path d="M138.5 129a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M158.5 99h0.0" /><path d="M187.0 99h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="88"></rect><text x="172.75" y="103">3</text></g><path d="M187.0 99a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><path d="M138.5 129a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M158.5 69h0.0" /><path d="M187.0 69h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="58"></rect><text x="172.75" y="73">2</text></g><path d="M187.0 69a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><path d="M138.5 129a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M158.5 39h0.0" /><path d="M187.0 39h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="28"></rect><text x="172.75" y="43">1</text></g><path d="M187.0 39a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10" /><path d="M138.5 129h20" /><g class="terminal "><path d="M158.5 129h0.0" /><path d="M187.0 129h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="118"></rect><text x="172.75" y="133">4</text></g><path d="M187.0 129h20" /></g><path d="M207.0 129a10 10 0 0 1 10 10v79a10 10 0 0 0 10 10" /><path d="M207.0 20a10 10 0 0 1 10 10v89a10 10 0 0 0 10 10" /><g><path d="M227.0 129h0.0" /><path d="M227.0 129h10" /><g class="terminal "><path d="M237.0 129h10.0" /><path d="M275.5 129h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="118"></rect><text x="261.25" y="133">1</text></g><path d="M285.5 129a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h-48.5a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M237.0 169h10.0" /><path d="M275.5 169h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="158"></rect><text x="261.25" y="173">2</text></g><path d="M285.5 169a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h-48.5a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M237.0 209h10.0" /><path d="M275.5 209h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="198"></rect><text x="261.25" y="213">3</text></g><path d="M285.5 209h10" /><path d="M295.5 209h0.0" /></g><path d="M295.5 209a10 10 0 0 0 10 -10" /></g><path d="M 315.5 129 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
197
-
198
- <h1>complicated-horizontalchoice-5</h1>
199
- <svg class="railroad-diagram" height="250" viewBox="0 0 345.5 250" width="345.5"><g transform="translate(.5 .5)"><g><path d="M20 111v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 121h0.0" /><path d="M305.5 121h0.0" /><path d="M40.0 121a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10h147.0" /><path d="M138.5 230h147.0a10 10 0 0 0 10 -10v-89a10 10 0 0 1 10 -10" /><path d="M40.0 121h10" /><g><path d="M50.0 121h0.0" /><path d="M50.0 121h10" /><g class="terminal "><path d="M60.0 121h10.0" /><path d="M98.5 121h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="110"></rect><text x="84.25" y="125">1</text></g><path d="M108.5 121a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h-48.5a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M60.0 161h10.0" /><path d="M98.5 161h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="150"></rect><text x="84.25" y="165">2</text></g><path d="M108.5 161a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h-48.5a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M60.0 201h10.0" /><path d="M98.5 201h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="70" y="190"></rect><text x="84.25" y="205">3</text></g><path d="M108.5 201h10" /><path d="M118.5 201h0.0" /></g><path d="M118.5 201a10 10 0 0 1 10 10v9a10 10 0 0 0 10 10" /><path d="M118.5 101a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g><path d="M138.5 121h0.0" /><path d="M207.0 121h0.0" /><path d="M138.5 121h20" /><g class="terminal "><path d="M158.5 121h0.0" /><path d="M187.0 121h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="110"></rect><text x="172.75" y="125">1</text></g><path d="M187.0 121h20" /><path d="M138.5 121a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M158.5 151h0.0" /><path d="M187.0 151h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="140"></rect><text x="172.75" y="155">2</text></g><path d="M187.0 151a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><path d="M138.5 121a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><g class="terminal "><path d="M158.5 181h0.0" /><path d="M187.0 181h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="170"></rect><text x="172.75" y="185">3</text></g><path d="M187.0 181a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><path d="M138.5 121a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10" /><g class="terminal "><path d="M158.5 211h0.0" /><path d="M187.0 211h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="158.5" y="200"></rect><text x="172.75" y="215">4</text></g><path d="M187.0 211a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10" /></g><path d="M207.0 121a10 10 0 0 1 10 10v89a10 10 0 0 0 10 10" /><path d="M207.0 101a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10" /><g><path d="M227.0 121h0.0" /><path d="M295.5 121h0.0" /><path d="M227.0 121a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M247.0 91h0.0" /><path d="M275.5 91h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="80"></rect><text x="261.25" y="95">3</text></g><path d="M275.5 91a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><path d="M227.0 121a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M247.0 61h0.0" /><path d="M275.5 61h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="50"></rect><text x="261.25" y="65">2</text></g><path d="M275.5 61a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><path d="M227.0 121a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M247.0 31h0.0" /><path d="M275.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="20"></rect><text x="261.25" y="35">1</text></g><path d="M275.5 31a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10" /><path d="M227.0 121h20" /><g class="terminal "><path d="M247.0 121h0.0" /><path d="M275.5 121h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="247" y="110"></rect><text x="261.25" y="125">4</text></g><path d="M275.5 121h20" /></g><path d="M295.5 121h10" /></g><path d="M 305.5 121 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
200
-
201
- <h1>single-stack</h1>
202
- <svg class="railroad-diagram" height="62" viewBox="0 0 128.5 62" width="128.5"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 31h0.0" /><g class="terminal "><path d="M40.0 31h10.0" /><path d="M78.5 31h10.0" /><rect height="22" rx="10" ry="10" width="28.5" x="50" y="20"></rect><text x="64.25" y="35">1</text></g><path d="M88.5 31h0.0" /></g><path d="M 88.5 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
203
-
204
- <h1>complicated-optionalsequence-1</h1>
205
- <svg class="railroad-diagram" height="299.0" viewBox="0 0 411.0 299.0" width="411.0"><g transform="translate(.5 .5)"><g><path d="M20 89.0v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 99.0h0" /><path d="M371.0 259.0h0" /><path d="M40.0 99.0a10 10 0 0 0 10 -10v-59.0a10 10 0 0 1 10 -10h28.5a10 10 0 0 1 10 10v59.0a10 10 0 0 0 10 10" /><path d="M40.0 99.0h20" /><g class="terminal "><path d="M60.0 99.0h0.0" /><path d="M88.5 99.0h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="60" y="88"></rect><text x="74.25" y="103">1</text></g><path d="M88.5 20.0h98.5a10 10 0 0 1 10 10v59.0a10 10 0 0 0 10 10" /><path d="M88.5 99.0h20" /><g><path d="M108.5 99.0h0.0" /><path d="M177.0 99.0h0.0" /><path d="M108.5 99.0a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M128.5 69.0h0.0" /><path d="M157.0 69.0h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="128.5" y="58"></rect><text x="142.75" y="73">3</text></g><path d="M157.0 69.0a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><path d="M108.5 99.0a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10" /><g class="terminal "><path d="M128.5 39.0h0.0" /><path d="M157.0 39.0h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="128.5" y="28"></rect><text x="142.75" y="43">2</text></g><path d="M157.0 39.0a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10" /><path d="M108.5 99.0h20" /><g class="terminal "><path d="M128.5 99.0h0.0" /><path d="M157.0 99.0h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="128.5" y="88"></rect><text x="142.75" y="103">4</text></g><path d="M157.0 99.0h20" /><path d="M108.5 99.0a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10" /><g class="terminal "><path d="M128.5 129.0h0.0" /><path d="M157.0 129.0h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="128.5" y="118"></rect><text x="142.75" y="133">5</text></g><path d="M157.0 129.0a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10" /></g><path d="M177.0 99.0h10" /><path d="M88.5 99.0a10 10 0 0 1 10 10v29a10 10 0 0 0 10 10h58.5a10 10 0 0 0 10 -10v-29a10 10 0 0 1 10 -10" /><path d="M187.0 20.0h107.0a10 10 0 0 1 10 10v219.0a10 10 0 0 0 10 10" /><path d="M187.0 99.0h20" /><g><path d="M207.0 99.0h0.0" /><path d="M207.0 99.0h10" /><g class="terminal "><path d="M217.0 99.0h14.25" /><path d="M259.75 99.0h14.25" /><rect height="22" rx="10" ry="10" width="28.5" x="231.25" y="88"></rect><text x="245.5" y="103">6</text></g><path d="M274.0 99.0a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h-57.0a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M217.0 139.0h14.25" /><path d="M259.75 139.0h14.25" /><rect height="22" rx="10" ry="10" width="28.5" x="231.25" y="128"></rect><text x="245.5" y="143">7</text></g><path d="M274.0 139.0a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h-57.0a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M217.0 179.0h14.25" /><path d="M259.75 179.0h14.25" /><rect height="22" rx="10" ry="10" width="28.5" x="231.25" y="168"></rect><text x="245.5" y="183">8</text></g><path d="M274.0 179.0a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h-57.0a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M217.0 219.0h14.25" /><path d="M259.75 219.0h14.25" /><rect height="22" rx="10" ry="10" width="28.5" x="231.25" y="208"></rect><text x="245.5" y="223">9</text></g><path d="M274.0 219.0a10 10 0 0 1 10 10v0a10 10 0 0 1 -10 10h-57.0a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10" /><g class="terminal "><path d="M217.0 259.0h10.0" /><path d="M264.0 259.0h10.0" /><rect height="22" rx="10" ry="10" width="37" x="227" y="248"></rect><text x="245.5" y="263">10</text></g><path d="M274.0 259.0h10" /><path d="M284.0 259.0h0.0" /></g><path d="M284.0 259.0h10" /><path d="M187.0 99.0a10 10 0 0 1 10 10v160a10 10 0 0 0 10 10h67.0a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /><path d="M294.0 259.0h20" /><g class="terminal "><path d="M314.0 259.0h0.0" /><path d="M351.0 259.0h0.0" /><rect height="22" rx="10" ry="10" width="37" x="314" y="248"></rect><text x="332.5" y="263">11</text></g><path d="M351.0 259.0h20" /><path d="M294.0 259.0a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10h37.0a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10" /></g><path d="M 371.0 259.0 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
206
-
207
- <h1>labeled-start</h1>
208
- <svg class="railroad-diagram" height="62" viewBox="0 0 306.0 62" width="306.0"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h120.5" /><text style="text-anchor:start" x="20" y="16">Labeled Start</text></g><g><path d="M140.5 31h0.0" /><path d="M266.0 31h0.0" /><g class="terminal "><path d="M140.5 31h0.0" /><path d="M169.0 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="140.5" y="20"></rect><text x="154.75" y="35">1</text></g><path d="M169.0 31h10" /><path d="M179.0 31h10" /><g class="terminal "><path d="M189.0 31h0.0" /><path d="M217.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="189" y="20"></rect><text x="203.25" y="35">2</text></g><path d="M217.5 31h10" /><path d="M227.5 31h10" /><g class="terminal "><path d="M237.5 31h0.0" /><path d="M266.0 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="237.5" y="20"></rect><text x="251.75" y="35">3</text></g></g><path d="M 266.0 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
209
-
210
- <h1>complex</h1>
211
- <svg class="railroad-diagram" height="62" viewBox="0 0 205.5 62" width="205.5"><g transform="translate(.5 .5)"><g><path d="M20 21v20m0 -10h20" /></g><g><path d="M40 31h0.0" /><path d="M165.5 31h0.0" /><g class="terminal "><path d="M40.0 31h0.0" /><path d="M68.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="40" y="20"></rect><text x="54.25" y="35">1</text></g><path d="M68.5 31h10" /><path d="M78.5 31h10" /><g class="terminal "><path d="M88.5 31h0.0" /><path d="M117.0 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="88.5" y="20"></rect><text x="102.75" y="35">2</text></g><path d="M117.0 31h10" /><path d="M127.0 31h10" /><g class="terminal "><path d="M137.0 31h0.0" /><path d="M165.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="137" y="20"></rect><text x="151.25" y="35">3</text></g></g><path d="M 165.5 31 h 20 m 0 -10 v 20"></path></g></svg>
212
-
213
- <h1>simple</h1>
214
- <svg class="railroad-diagram" height="62" viewBox="0 0 205.5 62" width="205.5"><g transform="translate(.5 .5)"><g><path d="M20 21v20m10 -20v20m-10 -10h20" /></g><g><path d="M40 31h0.0" /><path d="M165.5 31h0.0" /><g class="terminal "><path d="M40.0 31h0.0" /><path d="M68.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="40" y="20"></rect><text x="54.25" y="35">1</text></g><path d="M68.5 31h10" /><path d="M78.5 31h10" /><g class="terminal "><path d="M88.5 31h0.0" /><path d="M117.0 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="88.5" y="20"></rect><text x="102.75" y="35">2</text></g><path d="M117.0 31h10" /><path d="M127.0 31h10" /><g class="terminal "><path d="M137.0 31h0.0" /><path d="M165.5 31h0.0" /><rect height="22" rx="10" ry="10" width="28.5" x="137" y="20"></rect><text x="151.25" y="35">3</text></g></g><path d="M 165.5 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>
215
- </body></html>