trenni 2.1.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/ext/trenni/trenni.c CHANGED
@@ -3,12 +3,14 @@
3
3
 
4
4
  #include "markup.h"
5
5
  #include "template.h"
6
+ #include "tag.h"
7
+ #include "escape.h"
6
8
 
7
- VALUE rb_Trenni = Qnil, rb_Trenni_Native = Qnil, rb_Trenni_ParseError = Qnil;
8
- ID id_cdata, id_open_tag_begin, id_open_tag_end, id_attribute, id_close_tag, id_text, id_doctype, id_comment, id_instruction, id_read, id_expression, id_key_get;
9
+ VALUE rb_Trenni = Qnil, rb_Trenni_Native = Qnil, rb_Trenni_Tag = Qnil, rb_Trenni_Markup = Qnil, rb_Trenni_MarkupString = Qnil, rb_Trenni_ParseError = Qnil;
10
+ ID id_cdata, id_open_tag_begin, id_open_tag_end, id_attribute, id_close_tag, id_text, id_doctype, id_comment, id_instruction, id_read, id_expression, id_key_get, id_new, id_name, id_attributes, id_closed, id_to_s, id_is_a;
9
11
 
10
12
  void Trenni_raise_error(const char * message, VALUE buffer, size_t offset) {
11
- VALUE exception = rb_funcall(rb_Trenni_ParseError, rb_intern("new"), 3, rb_str_new_cstr(message), buffer, ULONG2NUM(offset));
13
+ VALUE exception = rb_funcall(rb_Trenni_ParseError, id_new, 3, rb_str_new_cstr(message), buffer, ULONG2NUM(offset));
12
14
 
13
15
  rb_exc_raise(exception);
14
16
  }
@@ -27,14 +29,29 @@ void Init_trenni() {
27
29
  id_expression = rb_intern("expression");
28
30
 
29
31
  id_read = rb_intern("read");
32
+ id_new = rb_intern("new");
33
+
34
+ id_name = rb_intern("name");
35
+ id_attributes = rb_intern("attributes");
36
+ id_closed = rb_intern("closed");
30
37
 
31
38
  id_key_get = rb_intern("[]");
32
39
 
40
+ id_to_s = rb_intern("to_s");
41
+ id_is_a = rb_intern("is_a?");
42
+
33
43
  rb_Trenni = rb_define_module("Trenni");
44
+ rb_Trenni_Markup = rb_define_module_under(rb_Trenni, "Markup");
34
45
  rb_Trenni_Native = rb_define_module_under(rb_Trenni, "Native");
35
46
 
47
+ Init_trenni_escape();
48
+
36
49
  rb_Trenni_ParseError = rb_const_get_at(rb_Trenni, rb_intern("ParseError"));
37
50
 
38
51
  rb_define_module_function(rb_Trenni_Native, "parse_markup", Trenni_Native_parse_markup, 3);
39
52
  rb_define_module_function(rb_Trenni_Native, "parse_template", Trenni_Native_parse_template, 2);
53
+
54
+ rb_Trenni_Tag = rb_const_get_at(rb_Trenni, rb_intern("Tag"));
55
+
56
+ Init_trenni_tag();
40
57
  }
data/ext/trenni/trenni.h CHANGED
@@ -4,36 +4,100 @@
4
4
  #include "ruby.h"
5
5
  #include <ruby/encoding.h>
6
6
 
7
- extern VALUE rb_Trenni, rb_Trenni_Native, rb_Trenni_ParseError;
7
+ // Used to efficiently convert symbols to strings (e.g. tag attribute keys).
8
+ #ifndef HAVE_RB_SYM2STR
9
+ #define rb_sym2str(sym) rb_id2str(SYM2ID(sym))
10
+ #endif
8
11
 
9
- extern ID id_cdata, id_open_tag_begin, id_open_tag_end, id_attribute, id_close_tag, id_text, id_doctype, id_comment, id_instruction, id_read, id_expression, id_key_get;
12
+ // Consistent and meaningful append cstring to ruby string/buffer.
13
+ #ifndef HAVE_RB_STR_CAT_CSTR
14
+ #define rb_str_cat_cstr rb_str_cat2
15
+ #endif
10
16
 
17
+ // Prefer non-generic macro names where possible.
18
+ #ifndef RB_IMMEDIATE_P
19
+ #define RB_IMMEDIATE_P IMMEDIATE_P
20
+ #endif
21
+
22
+ // A helper to reserve a specific capacity of data for a buffer.
23
+ #ifndef HAVE_RB_STR_RESERVE
24
+ inline VALUE rb_str_reserve(VALUE string, long extra) {
25
+ long actual = RSTRING_LEN(string);
26
+ rb_str_resize(string, actual + extra);
27
+ rb_str_set_len(string, actual);
28
+ return string;
29
+ }
30
+ #endif
31
+
32
+ // Modules and classes exposed by Trenni.
33
+ extern VALUE
34
+ rb_Trenni,
35
+ rb_Trenni_Markup,
36
+ rb_Trenni_Tag,
37
+ rb_Trenni_MarkupString,
38
+ rb_Trenni_Native,
39
+ rb_Trenni_ParseError;
40
+
41
+ // Symbols used for delegate callbacks and general function calls.
42
+ extern ID
43
+ id_cdata,
44
+ id_open_tag_begin,
45
+ id_open_tag_end,
46
+ id_attribute,
47
+ id_close_tag,
48
+ id_text,
49
+ id_doctype,
50
+ id_comment,
51
+ id_instruction,
52
+ id_read,
53
+ id_expression,
54
+ id_key_get,
55
+ id_new,
56
+ id_name,
57
+ id_attributes,
58
+ id_closed,
59
+ id_to_s,
60
+ id_is_a;
61
+
62
+ // A convenient C string token class.
11
63
  typedef struct {
12
64
  const char * begin;
13
65
  const char * end;
14
66
  } Token;
15
67
 
68
+ // Convert a token to a Ruby string.
16
69
  static inline VALUE Trenni_token(Token token, rb_encoding * encoding) {
17
70
  return rb_enc_str_new(token.begin, token.end - token.begin, encoding);
18
71
  }
19
72
 
73
+ // Convert a C string to a Ruby string.
20
74
  static inline VALUE Trenni_string(const char * begin, const char * end, rb_encoding * encoding) {
21
75
  return rb_enc_str_new(begin, end - begin, encoding);
22
76
  }
23
77
 
24
- void Trenni_raise_error(const char * message, VALUE buffer, size_t offset);
78
+ // Create an empty buffer for the given input string.
79
+ static inline VALUE Trenni_buffer_for(VALUE string) {
80
+ VALUE buffer = rb_enc_str_new(0, 0, rb_enc_get(string));
81
+
82
+ rb_str_reserve(buffer, RSTRING_LEN(string) + 128);
83
+
84
+ return buffer;
85
+ }
25
86
 
26
- static inline void Trenni_append_string(VALUE * buffer, rb_encoding * encoding, VALUE string) {
87
+ // Raise a parse error for the given input buffer at a specific offset.
88
+ NORETURN(void Trenni_raise_error(const char * message, VALUE buffer, size_t offset));
89
+
90
+ // Append a string to a buffer. The buffer may or may not be initialized.
91
+ static inline void Trenni_append(VALUE * buffer, rb_encoding * encoding, VALUE string) {
27
92
  if (*buffer == Qnil) {
28
- *buffer = rb_enc_str_new("", 0, encoding);
93
+ *buffer = rb_enc_str_new(0, 0, encoding);
29
94
  }
30
95
 
31
96
  rb_str_concat(*buffer, string);
32
97
  }
33
98
 
99
+ // Append a token to a buffer. The buffer may or may not be initialized.
34
100
  static inline void Trenni_append_token(VALUE * buffer, rb_encoding * encoding, Token token) {
35
- // printf("append_token(%ul bytes)\n", token.end - token.begin);
36
-
37
101
  if (*buffer == Qnil) {
38
102
  // Allocate a buffer exactly the right size:
39
103
  *buffer = rb_enc_str_new(token.begin, token.end - token.begin, encoding);
@@ -43,10 +107,21 @@ static inline void Trenni_append_token(VALUE * buffer, rb_encoding * encoding, T
43
107
  }
44
108
  }
45
109
 
110
+ // Append a (unicode) codepoint to a buffer. The buffer may or may not be initialized.
46
111
  static inline void Trenni_append_codepoint(VALUE * buffer, rb_encoding * encoding, unsigned long codepoint) {
47
112
  if (*buffer == Qnil) {
48
- *buffer = rb_enc_str_new("", 0, encoding);
113
+ *buffer = rb_enc_str_new(0, 0, encoding);
49
114
  }
50
115
 
51
116
  rb_str_concat(*buffer, ULONG2NUM(codepoint));
52
- }
117
+ }
118
+
119
+ // Convert the class of a string if there were no entities detected.
120
+ static inline VALUE Trenni_markup_safe(VALUE string, unsigned has_entities) {
121
+ if (!has_entities) {
122
+ // Apparently should not use this to change klass, but it's exactly what we need here to make things lightning fast.
123
+ rb_obj_reveal(string, rb_Trenni_MarkupString);
124
+ }
125
+
126
+ return string;
127
+ }
data/lib/trenni/buffer.rb CHANGED
@@ -32,11 +32,11 @@ module Trenni
32
32
  end
33
33
 
34
34
  def self.load_file(path)
35
- FileBuffer.new(path)
35
+ FileBuffer.new(path).freeze
36
36
  end
37
37
 
38
38
  def self.load(string)
39
- Buffer.new(string)
39
+ Buffer.new(string).freeze
40
40
  end
41
41
 
42
42
  def to_buffer
@@ -49,10 +49,18 @@ module Trenni
49
49
  @path = path
50
50
  end
51
51
 
52
+ def freeze
53
+ return self if frozen?
54
+
55
+ read
56
+
57
+ super
58
+ end
59
+
52
60
  attr :path
53
61
 
54
62
  def read
55
- @cache ||= File.read(@path)
63
+ @cache ||= File.read(@path).freeze
56
64
  end
57
65
 
58
66
  def to_buffer
@@ -66,10 +74,18 @@ module Trenni
66
74
  @path = path
67
75
  end
68
76
 
77
+ def freeze
78
+ return self if frozen?
79
+
80
+ read
81
+
82
+ super
83
+ end
84
+
69
85
  attr :path
70
86
 
71
87
  def read
72
- @cache ||= @io.read
88
+ @cache ||= @io.read.freeze
73
89
  end
74
90
 
75
91
  def to_buffer
@@ -19,13 +19,9 @@
19
19
  # THE SOFTWARE.
20
20
 
21
21
  require_relative 'markup'
22
+ require_relative 'tag'
22
23
 
23
24
  module Trenni
24
- INSTRUCT_ATTRIBUTES = [
25
- ['version', '1.0'],
26
- ['encoding', 'UTF-8']
27
- ].freeze
28
-
29
25
  # Build markup quickly and efficiently.
30
26
  class Builder
31
27
  include Markup
@@ -105,48 +101,31 @@ module Trenni
105
101
  end
106
102
  end
107
103
 
108
- def text(data)
109
- append escape(data)
104
+ def text(value)
105
+ return unless value
106
+
107
+ # This used to be indented.. but perhaps it's better like this.
108
+ Markup.append(@output, value)
110
109
  end
111
110
 
112
111
  # Append pre-existing markup:
113
- def append(data)
114
- return unless data
112
+ def append(value)
113
+ return unless value
115
114
 
116
115
  # The parent has one more child:
117
116
  @level[-1] += 1
118
117
 
119
118
  if @indent
120
- data.each_line.with_index do |line, i|
119
+ value.each_line.with_index do |line, i|
121
120
  @output << indentation << line
122
121
  end
123
122
  else
124
- @output << data
123
+ @output << value
125
124
  end
126
125
  end
127
126
 
128
127
  protected
129
128
 
130
- # Convert a set of attributes into a string suitable for use within a <tag>.
131
- def tag_attributes(attributes, prefix = nil)
132
- return if attributes.empty?
133
-
134
- attributes.each do |key, value|
135
- next unless value
136
-
137
- attribute_key = prefix ? "#{prefix}-#{key}" : key
138
-
139
- case value
140
- when Hash
141
- tag_attributes(value, attribute_key)
142
- when TrueClass
143
- @output << ' ' << attribute_key.to_s
144
- else
145
- @output << ' ' << attribute_key.to_s << '="' << escape(value.to_s) << '"'
146
- end
147
- end
148
- end
149
-
150
129
  # A normal block level/container tag.
151
130
  def full_tag(name, attributes, indent_outer, indent_inner, &block)
152
131
  if block_given?
@@ -155,9 +134,8 @@ module Trenni
155
134
  @output << indentation
156
135
  end
157
136
 
158
- @output << "<" << name.to_s
159
- tag_attributes(attributes)
160
- @output << ">"
137
+ tag = Trenni::Tag.opened(name.to_s, attributes)
138
+ tag.write_opening_tag(@output)
161
139
  @output << "\n" if indent_inner
162
140
 
163
141
  # The parent has one more child:
@@ -174,14 +152,13 @@ module Trenni
174
152
  @output << indentation
175
153
  end
176
154
 
177
- @output << "</" << name.to_s << ">"
155
+ tag.write_closing_tag(@output)
178
156
  else
179
157
  # The parent has one more child:
180
158
  @level[-1] += 1
181
159
 
182
- @output << indentation + "<" << name.to_s
183
- tag_attributes(attributes)
184
- @output << "/>"
160
+ @output << indentation
161
+ Trenni::Tag.append_tag(@output, name.to_s, attributes, nil)
185
162
  end
186
163
  end
187
164
  end
@@ -18,8 +18,6 @@
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
20
 
21
- require_relative 'substitutions'
22
-
23
21
  module Trenni
24
22
  # We only support a small subset of markup entities.
25
23
  module Entities
@@ -18,8 +18,6 @@
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
20
 
21
- require_relative 'substitutions'
22
-
23
21
  module Trenni
24
22
  # We only support a small subset of markup entities.
25
23
  module Entities
@@ -21,1615 +21,1607 @@
21
21
  # THE SOFTWARE.
22
22
 
23
23
 
24
- # line 199 "markup.rl"
24
+ # line 207 "markup.rl"
25
25
 
26
26
 
27
27
  require_relative '../parse_error'
28
28
 
29
29
  module Trenni
30
30
  module Fallback
31
-
32
- # line 33 "markup.rb"
33
- class << self
34
- attr_accessor :_markup_trans_keys
35
- private :_markup_trans_keys, :_markup_trans_keys=
36
- end
37
- self._markup_trans_keys = [
38
- 0, 0, 0, 127, 0, 127,
39
- 0, 127, 0, 127, 62,
40
- 62, 34, 39, 34, 60,
41
- 34, 60, 9, 62, 34, 60,
42
- 9, 62, 38, 60, 38,
43
- 60, 38, 60, 45, 91,
44
- 45, 45, 45, 45, 45, 45,
45
- 45, 62, 79, 79, 67,
46
- 67, 84, 84, 89, 89,
47
- 80, 80, 69, 69, 62, 62,
48
- 67, 67, 68, 68, 65,
49
- 65, 84, 84, 65, 65,
50
- 91, 91, 93, 93, 93, 93,
51
- 62, 93, 0, 127, 0,
52
- 127, 0, 127, 0, 127,
53
- 63, 63, 62, 63, 35, 122,
54
- 48, 120, 48, 59, 48,
55
- 102, 48, 102, 48, 122,
56
- 38, 60, 38, 60, 38, 60,
57
- 38, 60, 38, 60, 38,
58
- 60, 38, 60, 38, 60,
59
- 38, 60, 0, 0, 0
60
- ]
61
-
62
- class << self
63
- attr_accessor :_markup_key_spans
64
- private :_markup_key_spans, :_markup_key_spans=
65
- end
66
- self._markup_key_spans = [
67
- 0, 128, 128, 128, 128, 1, 6, 27,
68
- 27, 54, 27, 54, 23, 23, 23, 47,
69
- 1, 1, 1, 18, 1, 1, 1, 1,
70
- 1, 1, 1, 1, 1, 1, 1, 1,
71
- 1, 1, 1, 32, 128, 128, 128, 128,
72
- 1, 2, 88, 73, 12, 55, 55, 75,
73
- 23, 23, 23, 23, 23, 23, 23, 23,
74
- 23, 0
75
- ]
76
-
77
- class << self
78
- attr_accessor :_markup_index_offsets
79
- private :_markup_index_offsets, :_markup_index_offsets=
80
- end
81
- self._markup_index_offsets = [
82
- 0, 0, 129, 258, 387, 516, 518, 525,
83
- 553, 581, 636, 664, 719, 743, 767, 791,
84
- 839, 841, 843, 845, 864, 866, 868, 870,
85
- 872, 874, 876, 878, 880, 882, 884, 886,
86
- 888, 890, 892, 894, 927, 1056, 1185, 1314,
87
- 1443, 1445, 1448, 1537, 1611, 1624, 1680, 1736,
88
- 1812, 1836, 1860, 1884, 1908, 1932, 1956, 1980,
89
- 2004, 2028
90
- ]
91
-
92
- class << self
93
- attr_accessor :_markup_indicies
94
- private :_markup_indicies, :_markup_indicies=
95
- end
96
- self._markup_indicies = [
97
- 1, 1, 1, 1, 1, 1, 1, 1,
98
- 1, 1, 1, 1, 1, 1, 1, 1,
99
- 1, 1, 1, 1, 1, 1, 1, 1,
100
- 1, 1, 1, 1, 1, 1, 1, 1,
101
- 1, 2, 1, 1, 1, 1, 1, 1,
102
- 1, 1, 1, 1, 1, 0, 0, 3,
103
- 0, 0, 0, 0, 0, 0, 0, 0,
104
- 0, 0, 0, 1, 1, 1, 1, 4,
105
- 1, 0, 0, 0, 0, 0, 0, 0,
106
- 0, 0, 0, 0, 0, 0, 0, 0,
107
- 0, 0, 0, 0, 0, 0, 0, 0,
108
- 0, 0, 0, 1, 1, 1, 1, 0,
109
- 1, 0, 0, 0, 0, 0, 0, 0,
110
- 0, 0, 0, 0, 0, 0, 0, 0,
111
- 0, 0, 0, 0, 0, 0, 0, 0,
112
- 0, 0, 0, 1, 1, 1, 1, 1,
113
- 0, 1, 1, 1, 1, 1, 1, 1,
114
- 1, 1, 6, 6, 6, 6, 6, 1,
115
- 1, 1, 1, 1, 1, 1, 1, 1,
116
- 1, 1, 1, 1, 1, 1, 1, 1,
117
- 1, 6, 1, 1, 1, 1, 1, 1,
118
- 1, 1, 1, 1, 1, 1, 5, 5,
119
- 7, 5, 5, 5, 5, 5, 5, 5,
120
- 5, 5, 5, 5, 1, 1, 1, 8,
121
- 1, 1, 5, 5, 5, 5, 5, 5,
122
- 5, 5, 5, 5, 5, 5, 5, 5,
123
- 5, 5, 5, 5, 5, 5, 5, 5,
124
- 5, 5, 5, 5, 1, 1, 1, 1,
125
- 5, 1, 5, 5, 5, 5, 5, 5,
126
- 5, 5, 5, 5, 5, 5, 5, 5,
127
- 5, 5, 5, 5, 5, 5, 5, 5,
128
- 5, 5, 5, 5, 1, 1, 1, 1,
129
- 1, 5, 1, 1, 1, 1, 1, 1,
130
- 1, 1, 1, 10, 10, 10, 10, 10,
131
- 1, 1, 1, 1, 1, 1, 1, 1,
132
- 1, 1, 1, 1, 1, 1, 1, 1,
133
- 1, 1, 10, 1, 1, 1, 1, 1,
134
- 1, 1, 1, 1, 1, 1, 1, 9,
135
- 9, 11, 9, 9, 9, 9, 9, 9,
136
- 9, 9, 9, 9, 9, 1, 1, 1,
137
- 12, 1, 1, 9, 9, 9, 9, 9,
138
- 9, 9, 9, 9, 9, 9, 9, 9,
139
- 9, 9, 9, 9, 9, 9, 9, 9,
140
- 9, 9, 9, 9, 9, 1, 1, 1,
141
- 1, 9, 1, 9, 9, 9, 9, 9,
142
- 9, 9, 9, 9, 9, 9, 9, 9,
143
- 9, 9, 9, 9, 9, 9, 9, 9,
144
- 9, 9, 9, 9, 9, 1, 1, 1,
145
- 1, 1, 9, 1, 1, 1, 1, 1,
146
- 1, 1, 1, 1, 14, 14, 14, 14,
147
- 14, 1, 1, 1, 1, 1, 1, 1,
148
- 1, 1, 1, 1, 1, 1, 1, 1,
149
- 1, 1, 1, 14, 1, 1, 1, 1,
150
- 1, 1, 1, 1, 1, 1, 1, 1,
151
- 13, 13, 15, 13, 13, 13, 13, 13,
152
- 13, 13, 13, 13, 13, 13, 1, 1,
153
- 16, 17, 1, 1, 13, 13, 13, 13,
154
- 13, 13, 13, 13, 13, 13, 13, 13,
155
- 13, 13, 13, 13, 13, 13, 13, 13,
156
- 13, 13, 13, 13, 13, 13, 1, 1,
157
- 1, 1, 13, 1, 13, 13, 13, 13,
158
- 13, 13, 13, 13, 13, 13, 13, 13,
159
- 13, 13, 13, 13, 13, 13, 13, 13,
160
- 13, 13, 13, 13, 13, 13, 1, 1,
161
- 1, 1, 1, 13, 12, 1, 18, 1,
162
- 1, 1, 1, 19, 1, 21, 20, 20,
163
- 20, 22, 20, 20, 20, 20, 20, 20,
164
- 20, 20, 20, 20, 20, 20, 20, 20,
165
- 20, 20, 20, 20, 20, 20, 20, 1,
166
- 20, 24, 23, 23, 23, 25, 23, 23,
167
- 23, 23, 23, 23, 23, 23, 23, 23,
168
- 23, 23, 23, 23, 23, 23, 23, 23,
169
- 23, 23, 23, 1, 23, 26, 26, 26,
170
- 26, 26, 1, 1, 1, 1, 1, 1,
171
- 1, 1, 1, 1, 1, 1, 1, 1,
172
- 1, 1, 1, 1, 26, 1, 1, 1,
173
- 1, 1, 1, 1, 1, 1, 1, 1,
174
- 1, 1, 1, 27, 1, 1, 1, 1,
175
- 1, 1, 1, 1, 1, 1, 1, 1,
176
- 1, 1, 28, 1, 30, 29, 29, 29,
177
- 31, 29, 29, 29, 29, 29, 29, 29,
178
- 29, 29, 29, 29, 29, 29, 29, 29,
179
- 29, 29, 29, 29, 29, 29, 1, 29,
180
- 32, 32, 32, 32, 32, 1, 1, 1,
181
- 1, 1, 1, 1, 1, 1, 1, 1,
182
- 1, 1, 1, 1, 1, 1, 1, 32,
183
- 1, 1, 1, 1, 1, 1, 1, 1,
184
- 1, 1, 1, 1, 1, 1, 33, 1,
185
- 1, 1, 1, 1, 1, 1, 1, 1,
186
- 1, 1, 1, 1, 1, 34, 1, 36,
187
- 21, 35, 35, 35, 35, 35, 35, 35,
188
- 35, 35, 35, 35, 35, 35, 35, 35,
189
- 35, 35, 35, 35, 35, 1, 35, 38,
190
- 24, 37, 37, 37, 37, 37, 37, 37,
191
- 37, 37, 37, 37, 37, 37, 37, 37,
192
- 37, 37, 37, 37, 37, 1, 37, 40,
193
- 30, 39, 39, 39, 39, 39, 39, 39,
194
- 39, 39, 39, 39, 39, 39, 39, 39,
195
- 39, 39, 39, 39, 39, 1, 39, 41,
196
- 42, 42, 42, 42, 42, 42, 42, 42,
197
- 42, 42, 42, 42, 42, 42, 42, 42,
198
- 42, 42, 42, 42, 42, 42, 43, 42,
199
- 42, 42, 42, 42, 42, 42, 42, 42,
200
- 42, 42, 42, 42, 42, 42, 42, 42,
201
- 42, 42, 42, 42, 42, 44, 42, 45,
202
- 42, 46, 45, 47, 45, 47, 45, 45,
203
- 45, 45, 45, 45, 45, 45, 45, 45,
204
- 45, 45, 45, 45, 45, 45, 48, 45,
205
- 49, 42, 50, 42, 51, 42, 52, 42,
206
- 53, 42, 54, 42, 55, 54, 56, 42,
207
- 57, 42, 58, 42, 59, 42, 60, 42,
208
- 61, 42, 62, 61, 63, 61, 64, 61,
209
- 61, 61, 61, 61, 61, 61, 61, 61,
210
- 61, 61, 61, 61, 61, 61, 61, 61,
211
- 61, 61, 61, 61, 61, 61, 61, 61,
212
- 61, 61, 61, 61, 61, 63, 61, 1,
213
- 1, 1, 1, 1, 1, 1, 1, 1,
214
- 1, 1, 1, 1, 1, 1, 1, 1,
215
- 1, 1, 1, 1, 1, 1, 1, 1,
216
- 1, 1, 1, 1, 1, 1, 1, 1,
217
- 1, 1, 1, 1, 1, 1, 1, 1,
218
- 1, 1, 1, 1, 65, 65, 1, 65,
219
- 65, 65, 65, 65, 65, 65, 65, 65,
220
- 65, 65, 1, 1, 1, 1, 1, 1,
221
- 65, 65, 65, 65, 65, 65, 65, 65,
222
- 65, 65, 65, 65, 65, 65, 65, 65,
223
- 65, 65, 65, 65, 65, 65, 65, 65,
224
- 65, 65, 1, 1, 1, 1, 65, 1,
225
- 65, 65, 65, 65, 65, 65, 65, 65,
226
- 65, 65, 65, 65, 65, 65, 65, 65,
227
- 65, 65, 65, 65, 65, 65, 65, 65,
228
- 65, 65, 1, 1, 1, 1, 1, 65,
229
- 1, 1, 1, 1, 1, 1, 1, 1,
230
- 1, 1, 1, 1, 1, 1, 1, 1,
231
- 1, 1, 1, 1, 1, 1, 1, 1,
232
- 1, 1, 1, 1, 1, 1, 1, 1,
233
- 1, 1, 1, 1, 1, 1, 1, 1,
234
- 1, 1, 1, 1, 1, 66, 66, 1,
235
- 66, 66, 66, 66, 66, 66, 66, 66,
236
- 66, 66, 66, 1, 1, 1, 67, 1,
237
- 1, 66, 66, 66, 66, 66, 66, 66,
238
- 66, 66, 66, 66, 66, 66, 66, 66,
239
- 66, 66, 66, 66, 66, 66, 66, 66,
240
- 66, 66, 66, 1, 1, 1, 1, 66,
241
- 1, 66, 66, 66, 66, 66, 66, 66,
242
- 66, 66, 66, 66, 66, 66, 66, 66,
243
- 66, 66, 66, 66, 66, 66, 66, 66,
244
- 66, 66, 66, 1, 1, 1, 1, 1,
245
- 66, 69, 69, 69, 69, 69, 69, 69,
246
- 69, 69, 69, 69, 69, 69, 69, 69,
247
- 69, 69, 69, 69, 69, 69, 69, 69,
248
- 69, 69, 69, 69, 69, 69, 69, 69,
249
- 69, 69, 69, 69, 69, 69, 69, 69,
250
- 69, 69, 69, 69, 69, 69, 68, 68,
251
- 69, 68, 68, 68, 68, 68, 68, 68,
252
- 68, 68, 68, 68, 69, 69, 69, 69,
253
- 69, 69, 68, 68, 68, 68, 68, 68,
254
- 68, 68, 68, 68, 68, 68, 68, 68,
255
- 68, 68, 68, 68, 68, 68, 68, 68,
256
- 68, 68, 68, 68, 69, 69, 69, 69,
257
- 68, 69, 68, 68, 68, 68, 68, 68,
258
- 68, 68, 68, 68, 68, 68, 68, 68,
259
- 68, 68, 68, 68, 68, 68, 68, 68,
260
- 68, 68, 68, 68, 69, 69, 69, 69,
261
- 69, 68, 69, 69, 69, 69, 69, 69,
262
- 69, 69, 69, 71, 71, 71, 71, 71,
263
- 69, 69, 69, 69, 69, 69, 69, 69,
264
- 69, 69, 69, 69, 69, 69, 69, 69,
265
- 69, 69, 71, 69, 69, 69, 69, 69,
266
- 69, 69, 69, 69, 69, 69, 69, 70,
267
- 70, 69, 70, 70, 70, 70, 70, 70,
268
- 70, 70, 70, 70, 70, 69, 69, 69,
269
- 69, 69, 69, 70, 70, 70, 70, 70,
270
- 70, 70, 70, 70, 70, 70, 70, 70,
271
- 70, 70, 70, 70, 70, 70, 70, 70,
272
- 70, 70, 70, 70, 70, 69, 69, 69,
273
- 69, 70, 69, 70, 70, 70, 70, 70,
274
- 70, 70, 70, 70, 70, 70, 70, 70,
275
- 70, 70, 70, 70, 70, 70, 70, 70,
276
- 70, 70, 70, 70, 70, 69, 69, 69,
277
- 69, 69, 70, 73, 72, 74, 73, 72,
278
- 76, 75, 75, 75, 75, 75, 75, 75,
279
- 75, 75, 75, 75, 75, 77, 77, 77,
280
- 77, 77, 77, 77, 77, 77, 77, 75,
281
- 75, 75, 75, 75, 75, 75, 77, 77,
282
- 77, 77, 77, 77, 77, 77, 77, 77,
283
- 77, 77, 77, 77, 77, 77, 77, 77,
284
- 77, 77, 77, 77, 77, 77, 77, 77,
285
- 75, 75, 75, 75, 75, 75, 77, 77,
286
- 77, 77, 77, 77, 77, 77, 77, 77,
287
- 77, 77, 77, 77, 77, 77, 77, 77,
288
- 77, 77, 77, 77, 77, 77, 77, 77,
289
- 75, 78, 78, 78, 78, 78, 78, 78,
290
- 78, 78, 78, 75, 75, 75, 75, 75,
291
- 75, 75, 75, 75, 75, 75, 75, 75,
292
- 75, 75, 75, 75, 75, 75, 75, 75,
293
- 75, 75, 75, 75, 75, 75, 75, 75,
294
- 75, 75, 75, 75, 75, 75, 75, 75,
295
- 75, 75, 75, 75, 75, 75, 75, 75,
296
- 75, 75, 75, 75, 75, 75, 75, 75,
297
- 75, 75, 75, 75, 75, 75, 75, 75,
298
- 75, 79, 75, 80, 80, 80, 80, 80,
299
- 80, 80, 80, 80, 80, 75, 81, 75,
300
- 82, 82, 82, 82, 82, 82, 82, 82,
301
- 82, 82, 75, 75, 75, 75, 75, 75,
302
- 75, 82, 82, 82, 82, 82, 82, 75,
303
- 75, 75, 75, 75, 75, 75, 75, 75,
304
- 75, 75, 75, 75, 75, 75, 75, 75,
305
- 75, 75, 75, 75, 75, 75, 75, 75,
306
- 75, 82, 82, 82, 82, 82, 82, 75,
307
- 83, 83, 83, 83, 83, 83, 83, 83,
308
- 83, 83, 75, 84, 75, 75, 75, 75,
309
- 75, 83, 83, 83, 83, 83, 83, 75,
310
- 75, 75, 75, 75, 75, 75, 75, 75,
311
- 75, 75, 75, 75, 75, 75, 75, 75,
312
- 75, 75, 75, 75, 75, 75, 75, 75,
313
- 75, 83, 83, 83, 83, 83, 83, 75,
314
- 85, 85, 85, 85, 85, 85, 85, 85,
315
- 85, 85, 75, 86, 75, 75, 75, 75,
316
- 75, 85, 85, 85, 85, 85, 85, 85,
317
- 85, 85, 85, 85, 85, 85, 85, 85,
318
- 85, 85, 85, 85, 85, 85, 85, 85,
319
- 85, 85, 85, 75, 75, 75, 75, 75,
320
- 75, 85, 85, 85, 85, 85, 85, 85,
321
- 85, 85, 85, 85, 85, 85, 85, 85,
322
- 85, 85, 85, 85, 85, 85, 85, 85,
323
- 85, 85, 85, 75, 88, 87, 87, 87,
324
- 87, 87, 87, 87, 87, 87, 87, 87,
325
- 87, 87, 87, 87, 87, 87, 87, 87,
326
- 87, 87, 89, 87, 91, 90, 90, 90,
327
- 90, 90, 90, 90, 90, 90, 90, 90,
328
- 90, 90, 90, 90, 90, 90, 90, 90,
329
- 90, 90, 92, 90, 94, 93, 93, 93,
330
- 93, 93, 93, 93, 93, 93, 93, 93,
331
- 93, 93, 93, 93, 93, 93, 93, 93,
332
- 93, 93, 95, 93, 97, 96, 96, 96,
333
- 96, 96, 96, 96, 96, 96, 96, 96,
334
- 96, 96, 96, 96, 96, 96, 96, 96,
335
- 96, 96, 98, 96, 100, 99, 99, 99,
336
- 99, 99, 99, 99, 99, 99, 99, 99,
337
- 99, 99, 99, 99, 99, 99, 99, 99,
338
- 99, 99, 101, 99, 103, 102, 102, 102,
339
- 102, 102, 102, 102, 102, 102, 102, 102,
340
- 102, 102, 102, 102, 102, 102, 102, 102,
341
- 102, 102, 104, 102, 106, 105, 105, 105,
342
- 105, 105, 105, 105, 105, 105, 105, 105,
343
- 105, 105, 105, 105, 105, 105, 105, 105,
344
- 105, 105, 107, 105, 109, 108, 108, 108,
345
- 108, 108, 108, 108, 108, 108, 108, 108,
346
- 108, 108, 108, 108, 108, 108, 108, 108,
347
- 108, 108, 110, 108, 112, 111, 111, 111,
348
- 111, 111, 111, 111, 111, 111, 111, 111,
349
- 111, 111, 111, 111, 111, 111, 111, 111,
350
- 111, 111, 113, 111, 42, 0
351
- ]
352
-
353
- class << self
354
- attr_accessor :_markup_trans_targs
355
- private :_markup_trans_targs, :_markup_trans_targs=
356
- end
357
- self._markup_trans_targs = [
358
- 2, 0, 15, 36, 38, 2, 3, 5,
359
- 51, 4, 3, 5, 51, 4, 3, 5,
360
- 6, 51, 7, 12, 8, 11, 10, 8,
361
- 9, 10, 3, 5, 51, 8, 9, 10,
362
- 3, 5, 51, 13, 14, 13, 14, 13,
363
- 14, 16, 0, 20, 27, 17, 18, 19,
364
- 52, 21, 22, 23, 24, 25, 26, 53,
365
- 28, 29, 30, 31, 32, 33, 34, 35,
366
- 54, 37, 37, 55, 39, 0, 39, 40,
367
- 40, 41, 56, 0, 43, 47, 44, 45,
368
- 44, 57, 46, 46, 57, 47, 57, 49,
369
- 50, 1, 49, 50, 1, 49, 50, 1,
370
- 49, 50, 1, 49, 50, 1, 49, 50,
371
- 1, 49, 50, 1, 49, 50, 1, 49,
372
- 50, 1
373
- ]
374
-
375
- class << self
376
- attr_accessor :_markup_trans_actions
377
- private :_markup_trans_actions, :_markup_trans_actions=
378
- end
379
- self._markup_trans_actions = [
380
- 2, 1, 0, 0, 0, 0, 3, 4,
381
- 3, 5, 0, 6, 0, 0, 7, 8,
382
- 9, 7, 0, 0, 10, 0, 11, 0,
383
- 12, 13, 14, 15, 14, 16, 17, 18,
384
- 19, 20, 19, 10, 11, 0, 13, 16,
385
- 18, 0, 0, 0, 0, 0, 0, 0,
386
- 0, 0, 0, 0, 0, 0, 0, 0,
387
- 0, 0, 0, 0, 0, 0, 0, 0,
388
- 0, 2, 0, 9, 2, 24, 0, 25,
389
- 0, 26, 0, 27, 0, 28, 28, 0,
390
- 0, 29, 28, 0, 30, 0, 31, 32,
391
- 33, 34, 0, 13, 36, 16, 18, 38,
392
- 40, 41, 42, 44, 45, 46, 48, 49,
393
- 50, 52, 53, 54, 56, 57, 58, 60,
394
- 61, 62
395
- ]
396
-
397
- class << self
398
- attr_accessor :_markup_eof_actions
399
- private :_markup_eof_actions, :_markup_eof_actions=
400
- end
401
- self._markup_eof_actions = [
402
- 0, 1, 1, 1, 1, 1, 1, 1,
403
- 1, 1, 1, 1, 1, 1, 1, 0,
404
- 0, 21, 21, 21, 0, 0, 0, 0,
405
- 0, 0, 22, 0, 0, 0, 0, 0,
406
- 0, 23, 23, 23, 1, 1, 24, 24,
407
- 24, 24, 27, 27, 27, 27, 27, 27,
408
- 0, 35, 37, 39, 43, 47, 51, 55,
409
- 59, 0
410
- ]
411
-
412
- class << self
413
- attr_accessor :markup_start
414
- end
415
- self.markup_start = 48;
416
- class << self
417
- attr_accessor :markup_first_final
418
- end
419
- self.markup_first_final = 48;
420
- class << self
421
- attr_accessor :markup_error
422
- end
423
- self.markup_error = 0;
424
-
425
- class << self
426
- attr_accessor :markup_en_parse_entity
427
- end
428
- self.markup_en_parse_entity = 42;
429
- class << self
430
- attr_accessor :markup_en_main
431
- end
432
- self.markup_en_main = 48;
433
-
434
-
435
- # line 206 "markup.rl"
436
-
437
- def self.parse_markup(buffer, delegate, entities)
438
- data = buffer.read
439
- bytes = data.bytes
440
-
441
- p = 0
442
- # Must set pe here or it gets incorrectly set to data.length
443
- pe = eof = data.bytesize
444
- stack = []
445
-
446
- pcdata = nil
447
- characters_begin = characters_end = nil
448
- entity_begin = entity_end = nil
449
- identifier_begin = identifier_end = nil
450
- doctype_begin = doctype_end = nil
451
- comment_begin = comment_end = nil
452
- instruction_begin = instruction_end = nil
453
- cdata_begin = cdata_end = nil
454
- has_value = false
455
-
456
-
457
- # line 458 "markup.rb"
458
- begin
459
- p ||= 0
460
- pe ||= data.length
461
- cs = markup_start
462
- top = 0
463
- end
464
-
465
- # line 227 "markup.rl"
466
-
467
- # line 468 "markup.rb"
468
- begin
469
- testEof = false
470
- _slen, _trans, _keys, _inds, _acts, _nacts = nil
471
- _goto_level = 0
472
- _resume = 10
473
- _eof_trans = 15
474
- _again = 20
475
- _test_eof = 30
476
- _out = 40
477
- while true
478
- if _goto_level <= 0
479
- if p == pe
480
- _goto_level = _test_eof
481
- next
482
- end
483
- if cs == 0
484
- _goto_level = _out
485
- next
486
- end
487
- end
488
- if _goto_level <= _resume
489
- _keys = cs << 1
490
- _inds = _markup_index_offsets[cs]
491
- _slen = _markup_key_spans[cs]
492
- _wide = ( bytes[p])
493
- _trans = if ( _slen > 0 &&
494
- _markup_trans_keys[_keys] <= _wide &&
495
- _wide <= _markup_trans_keys[_keys + 1]
496
- ) then
497
- _markup_indicies[ _inds + _wide - _markup_trans_keys[_keys] ]
498
- else
499
- _markup_indicies[ _inds + _slen ]
500
- end
501
- cs = _markup_trans_targs[_trans]
502
- if _markup_trans_actions[_trans] != 0
503
- case _markup_trans_actions[_trans]
504
- when 2 then
505
- # line 24 "markup.rl"
506
- begin
507
-
508
- identifier_begin = p
509
- end
510
- when 9 then
511
- # line 28 "markup.rl"
512
- begin
513
-
514
- identifier_end = p
515
- end
516
- when 17 then
517
- # line 36 "markup.rl"
518
- begin
519
-
520
- end
521
- when 16 then
522
- # line 46 "markup.rl"
523
- begin
524
-
525
- characters_begin = p
526
- end
527
- when 27 then
528
- # line 56 "markup.rl"
529
- begin
530
-
531
- raise ParseError.new("could not parse entity", buffer, p)
532
- end
533
- when 28 then
534
- # line 60 "markup.rl"
535
- begin
536
-
537
- entity_begin = p
538
- end
539
- when 26 then
540
- # line 119 "markup.rl"
541
- begin
542
-
543
- end
544
- when 24 then
545
- # line 126 "markup.rl"
546
- begin
547
-
548
- raise ParseError.new("could not parse instruction", buffer, p)
549
- end
550
- when 6 then
551
- # line 139 "markup.rl"
552
- begin
553
-
554
- self_closing = true
555
- end
556
- when 1 then
557
- # line 177 "markup.rl"
558
- begin
559
-
560
- raise ParseError.new("could not parse tag", buffer, p)
561
- end
562
- when 18 then
563
- # line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
564
- begin
565
- begin
566
- stack[top] = cs
567
- top+= 1
568
- cs = 42
569
- _goto_level = _again
570
- next
571
- end
31
+ # line 33 "markup.rb"
32
+ class << self
33
+ attr_accessor :_markup_trans_keys
34
+ private :_markup_trans_keys, :_markup_trans_keys=
572
35
  end
573
- when 25 then
574
- # line 28 "markup.rl"
575
- begin
576
-
577
- identifier_end = p
578
- end
579
- # line 116 "markup.rl"
580
- begin
581
-
582
- end
583
- when 3 then
584
- # line 28 "markup.rl"
585
- begin
586
-
587
- identifier_end = p
588
- end
589
- # line 130 "markup.rl"
590
- begin
591
-
592
- self_closing = false
593
-
594
- delegate.open_tag_begin(data.byteslice(identifier_begin...identifier_end), identifier_begin)
595
- end
596
- when 7 then
597
- # line 28 "markup.rl"
598
- begin
599
-
600
- identifier_end = p
601
- end
602
- # line 156 "markup.rl"
603
- begin
604
-
605
- if has_value
606
- value = pcdata
607
- else
608
- value = true
36
+ self._markup_trans_keys = [
37
+ 0, 0, 0, 127, 0, 127,
38
+ 0, 127, 0, 127, 62,
39
+ 62, 34, 39, 34, 60,
40
+ 34, 60, 9, 62, 34, 60,
41
+ 9, 62, 38, 60, 38,
42
+ 60, 38, 60, 45, 91,
43
+ 45, 45, 45, 45, 45, 45,
44
+ 45, 62, 79, 79, 67,
45
+ 67, 84, 84, 89, 89,
46
+ 80, 80, 69, 69, 62, 62,
47
+ 67, 67, 68, 68, 65,
48
+ 65, 84, 84, 65, 65,
49
+ 91, 91, 93, 93, 93, 93,
50
+ 62, 93, 0, 127, 0,
51
+ 127, 0, 127, 0, 127,
52
+ 63, 63, 62, 63, 35, 122,
53
+ 48, 120, 48, 59, 48,
54
+ 102, 48, 102, 48, 122,
55
+ 38, 60, 38, 60, 38, 60,
56
+ 38, 60, 38, 60, 38,
57
+ 60, 38, 60, 38, 60,
58
+ 38, 60, 0, 0, 0
59
+ ]
60
+
61
+ class << self
62
+ attr_accessor :_markup_key_spans
63
+ private :_markup_key_spans, :_markup_key_spans=
609
64
  end
610
-
611
- delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
612
- end
613
- when 10 then
614
- # line 32 "markup.rl"
615
- begin
616
-
617
- pcdata = ""
618
- end
619
- # line 46 "markup.rl"
620
- begin
621
-
622
- characters_begin = p
623
- end
624
- when 11 then
625
- # line 32 "markup.rl"
626
- begin
627
-
628
- pcdata = ""
629
- end
630
- # line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
631
- begin
632
- begin
633
- stack[top] = cs
634
- top+= 1
635
- cs = 42
636
- _goto_level = _again
637
- next
638
- end
65
+ self._markup_key_spans = [
66
+ 0, 128, 128, 128, 128, 1, 6, 27,
67
+ 27, 54, 27, 54, 23, 23, 23, 47,
68
+ 1, 1, 1, 18, 1, 1, 1, 1,
69
+ 1, 1, 1, 1, 1, 1, 1, 1,
70
+ 1, 1, 1, 32, 128, 128, 128, 128,
71
+ 1, 2, 88, 73, 12, 55, 55, 75,
72
+ 23, 23, 23, 23, 23, 23, 23, 23,
73
+ 23, 0
74
+ ]
75
+
76
+ class << self
77
+ attr_accessor :_markup_index_offsets
78
+ private :_markup_index_offsets, :_markup_index_offsets=
639
79
  end
640
- when 12 then
641
- # line 50 "markup.rl"
642
- begin
643
-
644
- characters_end = p
645
-
646
- pcdata << data.byteslice(characters_begin...characters_end)
647
- end
648
- # line 36 "markup.rl"
649
- begin
650
-
651
- end
652
- when 13 then
653
- # line 50 "markup.rl"
654
- begin
655
-
656
- characters_end = p
657
-
658
- pcdata << data.byteslice(characters_begin...characters_end)
659
- end
660
- # line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
661
- begin
662
- begin
663
- stack[top] = cs
664
- top+= 1
665
- cs = 42
666
- _goto_level = _again
667
- next
668
- end
80
+ self._markup_index_offsets = [
81
+ 0, 0, 129, 258, 387, 516, 518, 525,
82
+ 553, 581, 636, 664, 719, 743, 767, 791,
83
+ 839, 841, 843, 845, 864, 866, 868, 870,
84
+ 872, 874, 876, 878, 880, 882, 884, 886,
85
+ 888, 890, 892, 894, 927, 1056, 1185, 1314,
86
+ 1443, 1445, 1448, 1537, 1611, 1624, 1680, 1736,
87
+ 1812, 1836, 1860, 1884, 1908, 1932, 1956, 1980,
88
+ 2004, 2028
89
+ ]
90
+
91
+ class << self
92
+ attr_accessor :_markup_indicies
93
+ private :_markup_indicies, :_markup_indicies=
669
94
  end
670
- when 31 then
671
- # line 64 "markup.rl"
672
- begin
673
-
674
- entity_end = p
675
-
676
- name = data.byteslice(entity_begin...entity_end)
677
-
678
- pcdata << entities[name]
679
- end
680
- # line 8 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
681
- begin
682
- begin
683
- top -= 1
684
- cs = stack[top]
685
- _goto_level = _again
686
- next
687
- end
688
- end
689
- when 30 then
690
- # line 72 "markup.rl"
691
- begin
692
-
693
- entity_end = p
694
-
695
- pcdata << data.byteslice(entity_begin...entity_end).to_i(16)
696
- end
697
- # line 8 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
698
- begin
699
- begin
700
- top -= 1
701
- cs = stack[top]
702
- _goto_level = _again
703
- next
704
- end
705
- end
706
- when 29 then
707
- # line 78 "markup.rl"
708
- begin
709
-
710
- entity_end = p
711
-
712
- pcdata << data.byteslice(entity_begin...entity_end).to_i(10)
713
- end
714
- # line 8 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
715
- begin
716
- begin
717
- top -= 1
718
- cs = stack[top]
719
- _goto_level = _again
720
- next
721
- end
722
- end
723
- when 5 then
724
- # line 143 "markup.rl"
725
- begin
726
-
727
- has_value = false
728
- pcdata = ""
729
- end
730
- # line 24 "markup.rl"
731
- begin
732
-
733
- identifier_begin = p
734
- end
735
- when 14 then
736
- # line 148 "markup.rl"
737
- begin
738
-
739
- has_value = true
740
- end
741
- # line 156 "markup.rl"
742
- begin
743
-
744
- if has_value
745
- value = pcdata
746
- else
747
- value = true
748
- end
749
-
750
- delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
751
- end
752
- when 19 then
753
- # line 152 "markup.rl"
754
- begin
755
-
756
- has_value = true
757
- end
758
- # line 156 "markup.rl"
759
- begin
760
-
761
- if has_value
762
- value = pcdata
763
- else
764
- value = true
765
- end
766
-
767
- delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
768
- end
769
- when 4 then
770
- # line 28 "markup.rl"
771
- begin
772
-
773
- identifier_end = p
774
- end
775
- # line 130 "markup.rl"
776
- begin
777
-
778
- self_closing = false
779
-
780
- delegate.open_tag_begin(data.byteslice(identifier_begin...identifier_end), identifier_begin)
781
- end
782
- # line 139 "markup.rl"
783
- begin
784
-
785
- self_closing = true
786
- end
787
- when 8 then
788
- # line 28 "markup.rl"
789
- begin
790
-
791
- identifier_end = p
792
- end
793
- # line 156 "markup.rl"
794
- begin
795
-
796
- if has_value
797
- value = pcdata
798
- else
799
- value = true
95
+ self._markup_indicies = [
96
+ 1, 1, 1, 1, 1, 1, 1, 1,
97
+ 1, 1, 1, 1, 1, 1, 1, 1,
98
+ 1, 1, 1, 1, 1, 1, 1, 1,
99
+ 1, 1, 1, 1, 1, 1, 1, 1,
100
+ 1, 2, 1, 1, 1, 1, 1, 1,
101
+ 1, 1, 1, 1, 1, 0, 0, 3,
102
+ 0, 0, 0, 0, 0, 0, 0, 0,
103
+ 0, 0, 0, 1, 1, 1, 1, 4,
104
+ 1, 0, 0, 0, 0, 0, 0, 0,
105
+ 0, 0, 0, 0, 0, 0, 0, 0,
106
+ 0, 0, 0, 0, 0, 0, 0, 0,
107
+ 0, 0, 0, 1, 1, 1, 1, 0,
108
+ 1, 0, 0, 0, 0, 0, 0, 0,
109
+ 0, 0, 0, 0, 0, 0, 0, 0,
110
+ 0, 0, 0, 0, 0, 0, 0, 0,
111
+ 0, 0, 0, 1, 1, 1, 1, 1,
112
+ 0, 1, 1, 1, 1, 1, 1, 1,
113
+ 1, 1, 6, 6, 6, 6, 6, 1,
114
+ 1, 1, 1, 1, 1, 1, 1, 1,
115
+ 1, 1, 1, 1, 1, 1, 1, 1,
116
+ 1, 6, 1, 1, 1, 1, 1, 1,
117
+ 1, 1, 1, 1, 1, 1, 5, 5,
118
+ 7, 5, 5, 5, 5, 5, 5, 5,
119
+ 5, 5, 5, 5, 1, 1, 1, 8,
120
+ 1, 1, 5, 5, 5, 5, 5, 5,
121
+ 5, 5, 5, 5, 5, 5, 5, 5,
122
+ 5, 5, 5, 5, 5, 5, 5, 5,
123
+ 5, 5, 5, 5, 1, 1, 1, 1,
124
+ 5, 1, 5, 5, 5, 5, 5, 5,
125
+ 5, 5, 5, 5, 5, 5, 5, 5,
126
+ 5, 5, 5, 5, 5, 5, 5, 5,
127
+ 5, 5, 5, 5, 1, 1, 1, 1,
128
+ 1, 5, 1, 1, 1, 1, 1, 1,
129
+ 1, 1, 1, 10, 10, 10, 10, 10,
130
+ 1, 1, 1, 1, 1, 1, 1, 1,
131
+ 1, 1, 1, 1, 1, 1, 1, 1,
132
+ 1, 1, 10, 1, 1, 1, 1, 1,
133
+ 1, 1, 1, 1, 1, 1, 1, 9,
134
+ 9, 11, 9, 9, 9, 9, 9, 9,
135
+ 9, 9, 9, 9, 9, 1, 1, 1,
136
+ 12, 1, 1, 9, 9, 9, 9, 9,
137
+ 9, 9, 9, 9, 9, 9, 9, 9,
138
+ 9, 9, 9, 9, 9, 9, 9, 9,
139
+ 9, 9, 9, 9, 9, 1, 1, 1,
140
+ 1, 9, 1, 9, 9, 9, 9, 9,
141
+ 9, 9, 9, 9, 9, 9, 9, 9,
142
+ 9, 9, 9, 9, 9, 9, 9, 9,
143
+ 9, 9, 9, 9, 9, 1, 1, 1,
144
+ 1, 1, 9, 1, 1, 1, 1, 1,
145
+ 1, 1, 1, 1, 14, 14, 14, 14,
146
+ 14, 1, 1, 1, 1, 1, 1, 1,
147
+ 1, 1, 1, 1, 1, 1, 1, 1,
148
+ 1, 1, 1, 14, 1, 1, 1, 1,
149
+ 1, 1, 1, 1, 1, 1, 1, 1,
150
+ 13, 13, 15, 13, 13, 13, 13, 13,
151
+ 13, 13, 13, 13, 13, 13, 1, 1,
152
+ 16, 17, 1, 1, 13, 13, 13, 13,
153
+ 13, 13, 13, 13, 13, 13, 13, 13,
154
+ 13, 13, 13, 13, 13, 13, 13, 13,
155
+ 13, 13, 13, 13, 13, 13, 1, 1,
156
+ 1, 1, 13, 1, 13, 13, 13, 13,
157
+ 13, 13, 13, 13, 13, 13, 13, 13,
158
+ 13, 13, 13, 13, 13, 13, 13, 13,
159
+ 13, 13, 13, 13, 13, 13, 1, 1,
160
+ 1, 1, 1, 13, 12, 1, 18, 1,
161
+ 1, 1, 1, 19, 1, 21, 20, 20,
162
+ 20, 22, 20, 20, 20, 20, 20, 20,
163
+ 20, 20, 20, 20, 20, 20, 20, 20,
164
+ 20, 20, 20, 20, 20, 20, 20, 1,
165
+ 20, 24, 23, 23, 23, 25, 23, 23,
166
+ 23, 23, 23, 23, 23, 23, 23, 23,
167
+ 23, 23, 23, 23, 23, 23, 23, 23,
168
+ 23, 23, 23, 1, 23, 26, 26, 26,
169
+ 26, 26, 1, 1, 1, 1, 1, 1,
170
+ 1, 1, 1, 1, 1, 1, 1, 1,
171
+ 1, 1, 1, 1, 26, 1, 1, 1,
172
+ 1, 1, 1, 1, 1, 1, 1, 1,
173
+ 1, 1, 1, 27, 1, 1, 1, 1,
174
+ 1, 1, 1, 1, 1, 1, 1, 1,
175
+ 1, 1, 28, 1, 30, 29, 29, 29,
176
+ 31, 29, 29, 29, 29, 29, 29, 29,
177
+ 29, 29, 29, 29, 29, 29, 29, 29,
178
+ 29, 29, 29, 29, 29, 29, 1, 29,
179
+ 32, 32, 32, 32, 32, 1, 1, 1,
180
+ 1, 1, 1, 1, 1, 1, 1, 1,
181
+ 1, 1, 1, 1, 1, 1, 1, 32,
182
+ 1, 1, 1, 1, 1, 1, 1, 1,
183
+ 1, 1, 1, 1, 1, 1, 33, 1,
184
+ 1, 1, 1, 1, 1, 1, 1, 1,
185
+ 1, 1, 1, 1, 1, 34, 1, 36,
186
+ 21, 35, 35, 35, 35, 35, 35, 35,
187
+ 35, 35, 35, 35, 35, 35, 35, 35,
188
+ 35, 35, 35, 35, 35, 1, 35, 38,
189
+ 24, 37, 37, 37, 37, 37, 37, 37,
190
+ 37, 37, 37, 37, 37, 37, 37, 37,
191
+ 37, 37, 37, 37, 37, 1, 37, 40,
192
+ 30, 39, 39, 39, 39, 39, 39, 39,
193
+ 39, 39, 39, 39, 39, 39, 39, 39,
194
+ 39, 39, 39, 39, 39, 1, 39, 41,
195
+ 42, 42, 42, 42, 42, 42, 42, 42,
196
+ 42, 42, 42, 42, 42, 42, 42, 42,
197
+ 42, 42, 42, 42, 42, 42, 43, 42,
198
+ 42, 42, 42, 42, 42, 42, 42, 42,
199
+ 42, 42, 42, 42, 42, 42, 42, 42,
200
+ 42, 42, 42, 42, 42, 44, 42, 45,
201
+ 42, 46, 45, 47, 45, 47, 45, 45,
202
+ 45, 45, 45, 45, 45, 45, 45, 45,
203
+ 45, 45, 45, 45, 45, 45, 48, 45,
204
+ 49, 42, 50, 42, 51, 42, 52, 42,
205
+ 53, 42, 54, 42, 55, 54, 56, 42,
206
+ 57, 42, 58, 42, 59, 42, 60, 42,
207
+ 61, 42, 62, 61, 63, 61, 64, 61,
208
+ 61, 61, 61, 61, 61, 61, 61, 61,
209
+ 61, 61, 61, 61, 61, 61, 61, 61,
210
+ 61, 61, 61, 61, 61, 61, 61, 61,
211
+ 61, 61, 61, 61, 61, 63, 61, 1,
212
+ 1, 1, 1, 1, 1, 1, 1, 1,
213
+ 1, 1, 1, 1, 1, 1, 1, 1,
214
+ 1, 1, 1, 1, 1, 1, 1, 1,
215
+ 1, 1, 1, 1, 1, 1, 1, 1,
216
+ 1, 1, 1, 1, 1, 1, 1, 1,
217
+ 1, 1, 1, 1, 65, 65, 1, 65,
218
+ 65, 65, 65, 65, 65, 65, 65, 65,
219
+ 65, 65, 1, 1, 1, 1, 1, 1,
220
+ 65, 65, 65, 65, 65, 65, 65, 65,
221
+ 65, 65, 65, 65, 65, 65, 65, 65,
222
+ 65, 65, 65, 65, 65, 65, 65, 65,
223
+ 65, 65, 1, 1, 1, 1, 65, 1,
224
+ 65, 65, 65, 65, 65, 65, 65, 65,
225
+ 65, 65, 65, 65, 65, 65, 65, 65,
226
+ 65, 65, 65, 65, 65, 65, 65, 65,
227
+ 65, 65, 1, 1, 1, 1, 1, 65,
228
+ 1, 1, 1, 1, 1, 1, 1, 1,
229
+ 1, 1, 1, 1, 1, 1, 1, 1,
230
+ 1, 1, 1, 1, 1, 1, 1, 1,
231
+ 1, 1, 1, 1, 1, 1, 1, 1,
232
+ 1, 1, 1, 1, 1, 1, 1, 1,
233
+ 1, 1, 1, 1, 1, 66, 66, 1,
234
+ 66, 66, 66, 66, 66, 66, 66, 66,
235
+ 66, 66, 66, 1, 1, 1, 67, 1,
236
+ 1, 66, 66, 66, 66, 66, 66, 66,
237
+ 66, 66, 66, 66, 66, 66, 66, 66,
238
+ 66, 66, 66, 66, 66, 66, 66, 66,
239
+ 66, 66, 66, 1, 1, 1, 1, 66,
240
+ 1, 66, 66, 66, 66, 66, 66, 66,
241
+ 66, 66, 66, 66, 66, 66, 66, 66,
242
+ 66, 66, 66, 66, 66, 66, 66, 66,
243
+ 66, 66, 66, 1, 1, 1, 1, 1,
244
+ 66, 69, 69, 69, 69, 69, 69, 69,
245
+ 69, 69, 69, 69, 69, 69, 69, 69,
246
+ 69, 69, 69, 69, 69, 69, 69, 69,
247
+ 69, 69, 69, 69, 69, 69, 69, 69,
248
+ 69, 69, 69, 69, 69, 69, 69, 69,
249
+ 69, 69, 69, 69, 69, 69, 68, 68,
250
+ 69, 68, 68, 68, 68, 68, 68, 68,
251
+ 68, 68, 68, 68, 69, 69, 69, 69,
252
+ 69, 69, 68, 68, 68, 68, 68, 68,
253
+ 68, 68, 68, 68, 68, 68, 68, 68,
254
+ 68, 68, 68, 68, 68, 68, 68, 68,
255
+ 68, 68, 68, 68, 69, 69, 69, 69,
256
+ 68, 69, 68, 68, 68, 68, 68, 68,
257
+ 68, 68, 68, 68, 68, 68, 68, 68,
258
+ 68, 68, 68, 68, 68, 68, 68, 68,
259
+ 68, 68, 68, 68, 69, 69, 69, 69,
260
+ 69, 68, 69, 69, 69, 69, 69, 69,
261
+ 69, 69, 69, 71, 71, 71, 71, 71,
262
+ 69, 69, 69, 69, 69, 69, 69, 69,
263
+ 69, 69, 69, 69, 69, 69, 69, 69,
264
+ 69, 69, 71, 69, 69, 69, 69, 69,
265
+ 69, 69, 69, 69, 69, 69, 69, 70,
266
+ 70, 69, 70, 70, 70, 70, 70, 70,
267
+ 70, 70, 70, 70, 70, 69, 69, 69,
268
+ 69, 69, 69, 70, 70, 70, 70, 70,
269
+ 70, 70, 70, 70, 70, 70, 70, 70,
270
+ 70, 70, 70, 70, 70, 70, 70, 70,
271
+ 70, 70, 70, 70, 70, 69, 69, 69,
272
+ 69, 70, 69, 70, 70, 70, 70, 70,
273
+ 70, 70, 70, 70, 70, 70, 70, 70,
274
+ 70, 70, 70, 70, 70, 70, 70, 70,
275
+ 70, 70, 70, 70, 70, 69, 69, 69,
276
+ 69, 69, 70, 73, 72, 74, 73, 72,
277
+ 76, 75, 75, 75, 75, 75, 75, 75,
278
+ 75, 75, 75, 75, 75, 77, 77, 77,
279
+ 77, 77, 77, 77, 77, 77, 77, 75,
280
+ 75, 75, 75, 75, 75, 75, 77, 77,
281
+ 77, 77, 77, 77, 77, 77, 77, 77,
282
+ 77, 77, 77, 77, 77, 77, 77, 77,
283
+ 77, 77, 77, 77, 77, 77, 77, 77,
284
+ 75, 75, 75, 75, 75, 75, 77, 77,
285
+ 77, 77, 77, 77, 77, 77, 77, 77,
286
+ 77, 77, 77, 77, 77, 77, 77, 77,
287
+ 77, 77, 77, 77, 77, 77, 77, 77,
288
+ 75, 78, 78, 78, 78, 78, 78, 78,
289
+ 78, 78, 78, 75, 75, 75, 75, 75,
290
+ 75, 75, 75, 75, 75, 75, 75, 75,
291
+ 75, 75, 75, 75, 75, 75, 75, 75,
292
+ 75, 75, 75, 75, 75, 75, 75, 75,
293
+ 75, 75, 75, 75, 75, 75, 75, 75,
294
+ 75, 75, 75, 75, 75, 75, 75, 75,
295
+ 75, 75, 75, 75, 75, 75, 75, 75,
296
+ 75, 75, 75, 75, 75, 75, 75, 75,
297
+ 75, 79, 75, 80, 80, 80, 80, 80,
298
+ 80, 80, 80, 80, 80, 75, 81, 75,
299
+ 82, 82, 82, 82, 82, 82, 82, 82,
300
+ 82, 82, 75, 75, 75, 75, 75, 75,
301
+ 75, 82, 82, 82, 82, 82, 82, 75,
302
+ 75, 75, 75, 75, 75, 75, 75, 75,
303
+ 75, 75, 75, 75, 75, 75, 75, 75,
304
+ 75, 75, 75, 75, 75, 75, 75, 75,
305
+ 75, 82, 82, 82, 82, 82, 82, 75,
306
+ 83, 83, 83, 83, 83, 83, 83, 83,
307
+ 83, 83, 75, 84, 75, 75, 75, 75,
308
+ 75, 83, 83, 83, 83, 83, 83, 75,
309
+ 75, 75, 75, 75, 75, 75, 75, 75,
310
+ 75, 75, 75, 75, 75, 75, 75, 75,
311
+ 75, 75, 75, 75, 75, 75, 75, 75,
312
+ 75, 83, 83, 83, 83, 83, 83, 75,
313
+ 85, 85, 85, 85, 85, 85, 85, 85,
314
+ 85, 85, 75, 86, 75, 75, 75, 75,
315
+ 75, 85, 85, 85, 85, 85, 85, 85,
316
+ 85, 85, 85, 85, 85, 85, 85, 85,
317
+ 85, 85, 85, 85, 85, 85, 85, 85,
318
+ 85, 85, 85, 75, 75, 75, 75, 75,
319
+ 75, 85, 85, 85, 85, 85, 85, 85,
320
+ 85, 85, 85, 85, 85, 85, 85, 85,
321
+ 85, 85, 85, 85, 85, 85, 85, 85,
322
+ 85, 85, 85, 75, 88, 87, 87, 87,
323
+ 87, 87, 87, 87, 87, 87, 87, 87,
324
+ 87, 87, 87, 87, 87, 87, 87, 87,
325
+ 87, 87, 89, 87, 91, 90, 90, 90,
326
+ 90, 90, 90, 90, 90, 90, 90, 90,
327
+ 90, 90, 90, 90, 90, 90, 90, 90,
328
+ 90, 90, 92, 90, 94, 93, 93, 93,
329
+ 93, 93, 93, 93, 93, 93, 93, 93,
330
+ 93, 93, 93, 93, 93, 93, 93, 93,
331
+ 93, 93, 95, 93, 97, 96, 96, 96,
332
+ 96, 96, 96, 96, 96, 96, 96, 96,
333
+ 96, 96, 96, 96, 96, 96, 96, 96,
334
+ 96, 96, 98, 96, 100, 99, 99, 99,
335
+ 99, 99, 99, 99, 99, 99, 99, 99,
336
+ 99, 99, 99, 99, 99, 99, 99, 99,
337
+ 99, 99, 101, 99, 103, 102, 102, 102,
338
+ 102, 102, 102, 102, 102, 102, 102, 102,
339
+ 102, 102, 102, 102, 102, 102, 102, 102,
340
+ 102, 102, 104, 102, 106, 105, 105, 105,
341
+ 105, 105, 105, 105, 105, 105, 105, 105,
342
+ 105, 105, 105, 105, 105, 105, 105, 105,
343
+ 105, 105, 107, 105, 109, 108, 108, 108,
344
+ 108, 108, 108, 108, 108, 108, 108, 108,
345
+ 108, 108, 108, 108, 108, 108, 108, 108,
346
+ 108, 108, 110, 108, 112, 111, 111, 111,
347
+ 111, 111, 111, 111, 111, 111, 111, 111,
348
+ 111, 111, 111, 111, 111, 111, 111, 111,
349
+ 111, 111, 113, 111, 42, 0
350
+ ]
351
+
352
+ class << self
353
+ attr_accessor :_markup_trans_targs
354
+ private :_markup_trans_targs, :_markup_trans_targs=
800
355
  end
801
-
802
- delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
803
- end
804
- # line 139 "markup.rl"
805
- begin
806
-
807
- self_closing = true
808
- end
809
- when 32 then
810
- # line 39 "markup.rl"
811
- begin
812
-
813
- end
814
- # line 32 "markup.rl"
815
- begin
816
-
817
- pcdata = ""
818
- end
819
- # line 46 "markup.rl"
820
- begin
821
-
822
- characters_begin = p
823
- end
824
- when 33 then
825
- # line 39 "markup.rl"
826
- begin
827
-
828
- end
829
- # line 32 "markup.rl"
830
- begin
831
-
832
- pcdata = ""
833
- end
834
- # line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
835
- begin
836
- begin
837
- stack[top] = cs
838
- top+= 1
839
- cs = 42
840
- _goto_level = _again
841
- next
842
- end
356
+ self._markup_trans_targs = [
357
+ 2, 0, 15, 36, 38, 2, 3, 5,
358
+ 51, 4, 3, 5, 51, 4, 3, 5,
359
+ 6, 51, 7, 12, 8, 11, 10, 8,
360
+ 9, 10, 3, 5, 51, 8, 9, 10,
361
+ 3, 5, 51, 13, 14, 13, 14, 13,
362
+ 14, 16, 0, 20, 27, 17, 18, 19,
363
+ 52, 21, 22, 23, 24, 25, 26, 53,
364
+ 28, 29, 30, 31, 32, 33, 34, 35,
365
+ 54, 37, 37, 55, 39, 0, 39, 40,
366
+ 40, 41, 56, 0, 43, 47, 44, 45,
367
+ 44, 57, 46, 46, 57, 47, 57, 49,
368
+ 50, 1, 49, 50, 1, 49, 50, 1,
369
+ 49, 50, 1, 49, 50, 1, 49, 50,
370
+ 1, 49, 50, 1, 49, 50, 1, 49,
371
+ 50, 1
372
+ ]
373
+
374
+ class << self
375
+ attr_accessor :_markup_trans_actions
376
+ private :_markup_trans_actions, :_markup_trans_actions=
843
377
  end
844
- when 15 then
845
- # line 148 "markup.rl"
846
- begin
847
-
848
- has_value = true
849
- end
850
- # line 156 "markup.rl"
851
- begin
852
-
853
- if has_value
854
- value = pcdata
855
- else
856
- value = true
378
+ self._markup_trans_actions = [
379
+ 2, 1, 0, 0, 0, 0, 3, 4,
380
+ 3, 5, 0, 6, 0, 0, 7, 8,
381
+ 9, 7, 0, 0, 10, 0, 11, 0,
382
+ 12, 13, 14, 15, 14, 16, 17, 18,
383
+ 19, 20, 19, 10, 11, 0, 13, 16,
384
+ 18, 0, 0, 0, 0, 0, 0, 0,
385
+ 0, 0, 0, 0, 0, 0, 0, 0,
386
+ 0, 0, 0, 0, 0, 0, 0, 0,
387
+ 0, 2, 0, 9, 2, 24, 0, 25,
388
+ 0, 26, 0, 27, 0, 28, 28, 0,
389
+ 0, 29, 28, 0, 30, 0, 31, 32,
390
+ 33, 34, 0, 13, 36, 16, 18, 38,
391
+ 40, 41, 42, 44, 45, 46, 48, 49,
392
+ 50, 52, 53, 54, 56, 57, 58, 60,
393
+ 61, 62
394
+ ]
395
+
396
+ class << self
397
+ attr_accessor :_markup_eof_actions
398
+ private :_markup_eof_actions, :_markup_eof_actions=
857
399
  end
858
-
859
- delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
860
- end
861
- # line 139 "markup.rl"
862
- begin
863
-
864
- self_closing = true
865
- end
866
- when 20 then
867
- # line 152 "markup.rl"
868
- begin
869
-
870
- has_value = true
871
- end
872
- # line 156 "markup.rl"
873
- begin
874
-
875
- if has_value
876
- value = pcdata
877
- else
878
- value = true
400
+ self._markup_eof_actions = [
401
+ 0, 1, 1, 1, 1, 1, 1, 1,
402
+ 1, 1, 1, 1, 1, 1, 1, 0,
403
+ 0, 21, 21, 21, 0, 0, 0, 0,
404
+ 0, 0, 22, 0, 0, 0, 0, 0,
405
+ 0, 23, 23, 23, 1, 1, 24, 24,
406
+ 24, 24, 27, 27, 27, 27, 27, 27,
407
+ 0, 35, 37, 39, 43, 47, 51, 55,
408
+ 59, 0
409
+ ]
410
+
411
+ class << self
412
+ attr_accessor :markup_start
879
413
  end
880
-
881
- delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
882
- end
883
- # line 139 "markup.rl"
884
- begin
885
-
886
- self_closing = true
887
- end
888
- when 48 then
889
- # line 88 "markup.rl"
890
- begin
891
-
892
- doctype_end = p
893
-
894
- delegate.doctype(data.byteslice(doctype_begin...doctype_end))
895
- end
896
- # line 39 "markup.rl"
897
- begin
898
-
899
- end
900
- # line 32 "markup.rl"
901
- begin
902
-
903
- pcdata = ""
904
- end
905
- # line 46 "markup.rl"
906
- begin
907
-
908
- characters_begin = p
909
- end
910
- when 49 then
911
- # line 88 "markup.rl"
912
- begin
913
-
914
- doctype_end = p
915
-
916
- delegate.doctype(data.byteslice(doctype_begin...doctype_end))
917
- end
918
- # line 39 "markup.rl"
919
- begin
920
-
921
- end
922
- # line 32 "markup.rl"
923
- begin
924
-
925
- pcdata = ""
926
- end
927
- # line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
928
- begin
929
- begin
930
- stack[top] = cs
931
- top+= 1
932
- cs = 42
933
- _goto_level = _again
934
- next
935
- end
414
+ self.markup_start = 48;
415
+ class << self
416
+ attr_accessor :markup_first_final
936
417
  end
937
- when 44 then
938
- # line 102 "markup.rl"
939
- begin
940
-
941
- comment_end = p
942
-
943
- delegate.comment(data.byteslice(comment_begin...comment_end))
944
- end
945
- # line 39 "markup.rl"
946
- begin
947
-
948
- end
949
- # line 32 "markup.rl"
950
- begin
951
-
952
- pcdata = ""
953
- end
954
- # line 46 "markup.rl"
955
- begin
956
-
957
- characters_begin = p
958
- end
959
- when 45 then
960
- # line 102 "markup.rl"
961
- begin
962
-
963
- comment_end = p
964
-
965
- delegate.comment(data.byteslice(comment_begin...comment_end))
966
- end
967
- # line 39 "markup.rl"
968
- begin
969
-
970
- end
971
- # line 32 "markup.rl"
972
- begin
973
-
974
- pcdata = ""
975
- end
976
- # line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
977
- begin
978
- begin
979
- stack[top] = cs
980
- top+= 1
981
- cs = 42
982
- _goto_level = _again
983
- next
984
- end
418
+ self.markup_first_final = 48;
419
+ class << self
420
+ attr_accessor :markup_error
985
421
  end
986
- when 60 then
987
- # line 122 "markup.rl"
988
- begin
422
+ self.markup_error = 0;
989
423
 
990
- delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
991
- end
992
- # line 39 "markup.rl"
993
- begin
994
-
995
- end
996
- # line 32 "markup.rl"
997
- begin
998
-
999
- pcdata = ""
1000
- end
1001
- # line 46 "markup.rl"
1002
- begin
1003
-
1004
- characters_begin = p
1005
- end
1006
- when 61 then
1007
- # line 122 "markup.rl"
1008
- begin
1009
-
1010
- delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
1011
- end
1012
- # line 39 "markup.rl"
1013
- begin
1014
-
1015
- end
1016
- # line 32 "markup.rl"
1017
- begin
1018
-
1019
- pcdata = ""
1020
- end
1021
- # line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
1022
- begin
1023
- begin
1024
- stack[top] = cs
1025
- top+= 1
1026
- cs = 42
1027
- _goto_level = _again
1028
- next
1029
- end
424
+ class << self
425
+ attr_accessor :markup_en_parse_entity
1030
426
  end
1031
- when 40 then
1032
- # line 166 "markup.rl"
1033
- begin
1034
-
1035
- delegate.open_tag_end(self_closing)
1036
- end
1037
- # line 39 "markup.rl"
1038
- begin
1039
-
1040
- end
1041
- # line 32 "markup.rl"
1042
- begin
1043
-
1044
- pcdata = ""
1045
- end
1046
- # line 46 "markup.rl"
1047
- begin
1048
-
1049
- characters_begin = p
1050
- end
1051
- when 41 then
1052
- # line 166 "markup.rl"
1053
- begin
1054
-
1055
- delegate.open_tag_end(self_closing)
1056
- end
1057
- # line 39 "markup.rl"
1058
- begin
1059
-
1060
- end
1061
- # line 32 "markup.rl"
1062
- begin
1063
-
1064
- pcdata = ""
1065
- end
1066
- # line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
1067
- begin
1068
- begin
1069
- stack[top] = cs
1070
- top+= 1
1071
- cs = 42
1072
- _goto_level = _again
1073
- next
1074
- end
427
+ self.markup_en_parse_entity = 42;
428
+ class << self
429
+ attr_accessor :markup_en_main
1075
430
  end
1076
- when 56 then
1077
- # line 173 "markup.rl"
1078
- begin
1079
-
1080
- delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1081
- end
1082
- # line 39 "markup.rl"
1083
- begin
1084
-
1085
- end
1086
- # line 32 "markup.rl"
1087
- begin
1088
-
1089
- pcdata = ""
1090
- end
1091
- # line 46 "markup.rl"
1092
- begin
1093
-
1094
- characters_begin = p
1095
- end
1096
- when 57 then
1097
- # line 173 "markup.rl"
1098
- begin
1099
-
1100
- delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1101
- end
1102
- # line 39 "markup.rl"
1103
- begin
431
+ self.markup_en_main = 48;
1104
432
 
1105
- end
1106
- # line 32 "markup.rl"
1107
- begin
1108
433
 
1109
- pcdata = ""
434
+ # line 214 "markup.rl"
435
+ def self.parse_markup(buffer, delegate, entities)
436
+ data = buffer.read
437
+ bytes = data.bytes
438
+ p = 0
439
+ # Must set pe here or it gets incorrectly set to data.length
440
+ pe = eof = data.bytesize
441
+ stack = []
442
+ pcdata = nil
443
+ characters_begin = characters_end = nil
444
+ entity_begin = entity_end = nil
445
+ identifier_begin = identifier_end = nil
446
+ doctype_begin = doctype_end = nil
447
+ comment_begin = comment_end = nil
448
+ instruction_begin = instruction_end = nil
449
+ cdata_begin = cdata_end = nil
450
+ has_entities = has_value = false
451
+ # line 458 "markup.rb"
452
+ begin
453
+ p ||= 0
454
+ pe ||= data.length
455
+ cs = markup_start
456
+ top = 0
457
+ end
458
+
459
+ # line 235 "markup.rl"
460
+ # line 468 "markup.rb"
461
+ begin
462
+ testEof = false
463
+ _slen, _trans, _keys, _inds, _acts, _nacts = nil
464
+ _goto_level = 0
465
+ _resume = 10
466
+ _eof_trans = 15
467
+ _again = 20
468
+ _test_eof = 30
469
+ _out = 40
470
+ while true
471
+ if _goto_level <= 0
472
+ if p == pe
473
+ _goto_level = _test_eof
474
+ next
475
+ end
476
+ if cs == 0
477
+ _goto_level = _out
478
+ next
479
+ end
480
+ end
481
+ if _goto_level <= _resume
482
+ _keys = cs << 1
483
+ _inds = _markup_index_offsets[cs]
484
+ _slen = _markup_key_spans[cs]
485
+ _wide = ( bytes[p])
486
+ _trans = if ( _slen > 0 &&
487
+ _markup_trans_keys[_keys] <= _wide &&
488
+ _wide <= _markup_trans_keys[_keys + 1]
489
+ ) then
490
+ _markup_indicies[ _inds + _wide - _markup_trans_keys[_keys] ]
491
+ else
492
+ _markup_indicies[ _inds + _slen ]
493
+ end
494
+ cs = _markup_trans_targs[_trans]
495
+ if _markup_trans_actions[_trans] != 0
496
+ case _markup_trans_actions[_trans]
497
+ when 2 then
498
+ # line 24 "markup.rl"
499
+ begin
500
+
501
+ identifier_begin = p
502
+ end
503
+ when 9 then
504
+ # line 28 "markup.rl"
505
+ begin
506
+
507
+ identifier_end = p
508
+ end
509
+ when 17 then
510
+ # line 37 "markup.rl"
511
+ begin
512
+
513
+ end
514
+ when 16 then
515
+ # line 49 "markup.rl"
516
+ begin
517
+
518
+ characters_begin = p
519
+ end
520
+ when 27 then
521
+ # line 59 "markup.rl"
522
+ begin
523
+
524
+ raise ParseError.new("could not parse entity", buffer, p)
525
+ end
526
+ when 28 then
527
+ # line 63 "markup.rl"
528
+ begin
529
+
530
+ entity_begin = p
531
+ end
532
+ when 26 then
533
+ # line 125 "markup.rl"
534
+ begin
535
+
536
+ end
537
+ when 24 then
538
+ # line 132 "markup.rl"
539
+ begin
540
+
541
+ raise ParseError.new("could not parse instruction", buffer, p)
542
+ end
543
+ when 6 then
544
+ # line 145 "markup.rl"
545
+ begin
546
+
547
+ self_closing = true
548
+ end
549
+ when 1 then
550
+ # line 185 "markup.rl"
551
+ begin
552
+
553
+ raise ParseError.new("could not parse tag", buffer, p)
554
+ end
555
+ when 18 then
556
+ # line 10 "/home/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
557
+ begin
558
+ begin
559
+ stack[top] = cs
560
+ top+= 1
561
+ cs = 42
562
+ _goto_level = _again
563
+ next
564
+ end
565
+ end
566
+ when 25 then
567
+ # line 28 "markup.rl"
568
+ begin
569
+
570
+ identifier_end = p
571
+ end
572
+ # line 122 "markup.rl"
573
+ begin
574
+
575
+ end
576
+ when 3 then
577
+ # line 28 "markup.rl"
578
+ begin
579
+
580
+ identifier_end = p
581
+ end
582
+ # line 136 "markup.rl"
583
+ begin
584
+
585
+ self_closing = false
586
+ delegate.open_tag_begin(data.byteslice(identifier_begin...identifier_end), identifier_begin)
587
+ end
588
+ when 7 then
589
+ # line 28 "markup.rl"
590
+ begin
591
+
592
+ identifier_end = p
593
+ end
594
+ # line 162 "markup.rl"
595
+ begin
596
+
597
+ if has_value
598
+ pcdata = MarkupString.raw(pcdata) unless has_entities
599
+ value = pcdata
600
+ else
601
+ value = true
602
+ end
603
+ delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
604
+ end
605
+ when 10 then
606
+ # line 32 "markup.rl"
607
+ begin
608
+
609
+ pcdata = ""
610
+ has_entities = false
611
+ end
612
+ # line 49 "markup.rl"
613
+ begin
614
+
615
+ characters_begin = p
616
+ end
617
+ when 11 then
618
+ # line 32 "markup.rl"
619
+ begin
620
+
621
+ pcdata = ""
622
+ has_entities = false
623
+ end
624
+ # line 10 "/home/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
625
+ begin
626
+ begin
627
+ stack[top] = cs
628
+ top+= 1
629
+ cs = 42
630
+ _goto_level = _again
631
+ next
632
+ end
633
+ end
634
+ when 12 then
635
+ # line 53 "markup.rl"
636
+ begin
637
+
638
+ characters_end = p
639
+ pcdata << data.byteslice(characters_begin...characters_end)
640
+ end
641
+ # line 37 "markup.rl"
642
+ begin
643
+
644
+ end
645
+ when 13 then
646
+ # line 53 "markup.rl"
647
+ begin
648
+
649
+ characters_end = p
650
+ pcdata << data.byteslice(characters_begin...characters_end)
651
+ end
652
+ # line 10 "/home/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
653
+ begin
654
+ begin
655
+ stack[top] = cs
656
+ top+= 1
657
+ cs = 42
658
+ _goto_level = _again
659
+ next
660
+ end
661
+ end
662
+ when 31 then
663
+ # line 67 "markup.rl"
664
+ begin
665
+
666
+ entity_end = p
667
+ name = data.byteslice(entity_begin...entity_end)
668
+ has_entities = true
669
+ pcdata << entities[name]
670
+ end
671
+ # line 8 "/home/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
672
+ begin
673
+ begin
674
+ top -= 1
675
+ cs = stack[top]
676
+ _goto_level = _again
677
+ next
678
+ end
679
+ end
680
+ when 30 then
681
+ # line 76 "markup.rl"
682
+ begin
683
+
684
+ entity_end = p
685
+ has_entities = true
686
+ pcdata << data.byteslice(entity_begin...entity_end).to_i(16)
687
+ end
688
+ # line 8 "/home/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
689
+ begin
690
+ begin
691
+ top -= 1
692
+ cs = stack[top]
693
+ _goto_level = _again
694
+ next
695
+ end
696
+ end
697
+ when 29 then
698
+ # line 83 "markup.rl"
699
+ begin
700
+
701
+ entity_end = p
702
+ has_entities = true
703
+ pcdata << data.byteslice(entity_begin...entity_end).to_i(10)
704
+ end
705
+ # line 8 "/home/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
706
+ begin
707
+ begin
708
+ top -= 1
709
+ cs = stack[top]
710
+ _goto_level = _again
711
+ next
712
+ end
713
+ end
714
+ when 5 then
715
+ # line 149 "markup.rl"
716
+ begin
717
+
718
+ has_value = false
719
+ pcdata = ""
720
+ end
721
+ # line 24 "markup.rl"
722
+ begin
723
+
724
+ identifier_begin = p
725
+ end
726
+ when 14 then
727
+ # line 154 "markup.rl"
728
+ begin
729
+
730
+ has_value = true
731
+ end
732
+ # line 162 "markup.rl"
733
+ begin
734
+
735
+ if has_value
736
+ pcdata = MarkupString.raw(pcdata) unless has_entities
737
+ value = pcdata
738
+ else
739
+ value = true
740
+ end
741
+ delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
742
+ end
743
+ when 19 then
744
+ # line 158 "markup.rl"
745
+ begin
746
+
747
+ has_value = true
748
+ end
749
+ # line 162 "markup.rl"
750
+ begin
751
+
752
+ if has_value
753
+ pcdata = MarkupString.raw(pcdata) unless has_entities
754
+ value = pcdata
755
+ else
756
+ value = true
757
+ end
758
+ delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
759
+ end
760
+ when 4 then
761
+ # line 28 "markup.rl"
762
+ begin
763
+
764
+ identifier_end = p
765
+ end
766
+ # line 136 "markup.rl"
767
+ begin
768
+
769
+ self_closing = false
770
+ delegate.open_tag_begin(data.byteslice(identifier_begin...identifier_end), identifier_begin)
771
+ end
772
+ # line 145 "markup.rl"
773
+ begin
774
+
775
+ self_closing = true
776
+ end
777
+ when 8 then
778
+ # line 28 "markup.rl"
779
+ begin
780
+
781
+ identifier_end = p
782
+ end
783
+ # line 162 "markup.rl"
784
+ begin
785
+
786
+ if has_value
787
+ pcdata = MarkupString.raw(pcdata) unless has_entities
788
+ value = pcdata
789
+ else
790
+ value = true
791
+ end
792
+ delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
793
+ end
794
+ # line 145 "markup.rl"
795
+ begin
796
+
797
+ self_closing = true
798
+ end
799
+ when 32 then
800
+ # line 40 "markup.rl"
801
+ begin
802
+
803
+ end
804
+ # line 32 "markup.rl"
805
+ begin
806
+
807
+ pcdata = ""
808
+ has_entities = false
809
+ end
810
+ # line 49 "markup.rl"
811
+ begin
812
+
813
+ characters_begin = p
814
+ end
815
+ when 33 then
816
+ # line 40 "markup.rl"
817
+ begin
818
+
819
+ end
820
+ # line 32 "markup.rl"
821
+ begin
822
+
823
+ pcdata = ""
824
+ has_entities = false
825
+ end
826
+ # line 10 "/home/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
827
+ begin
828
+ begin
829
+ stack[top] = cs
830
+ top+= 1
831
+ cs = 42
832
+ _goto_level = _again
833
+ next
834
+ end
835
+ end
836
+ when 15 then
837
+ # line 154 "markup.rl"
838
+ begin
839
+
840
+ has_value = true
841
+ end
842
+ # line 162 "markup.rl"
843
+ begin
844
+
845
+ if has_value
846
+ pcdata = MarkupString.raw(pcdata) unless has_entities
847
+ value = pcdata
848
+ else
849
+ value = true
850
+ end
851
+ delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
852
+ end
853
+ # line 145 "markup.rl"
854
+ begin
855
+
856
+ self_closing = true
857
+ end
858
+ when 20 then
859
+ # line 158 "markup.rl"
860
+ begin
861
+
862
+ has_value = true
863
+ end
864
+ # line 162 "markup.rl"
865
+ begin
866
+
867
+ if has_value
868
+ pcdata = MarkupString.raw(pcdata) unless has_entities
869
+ value = pcdata
870
+ else
871
+ value = true
872
+ end
873
+ delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
874
+ end
875
+ # line 145 "markup.rl"
876
+ begin
877
+
878
+ self_closing = true
879
+ end
880
+ when 48 then
881
+ # line 94 "markup.rl"
882
+ begin
883
+
884
+ doctype_end = p
885
+ delegate.doctype(data.byteslice(doctype_begin...doctype_end))
886
+ end
887
+ # line 40 "markup.rl"
888
+ begin
889
+
890
+ end
891
+ # line 32 "markup.rl"
892
+ begin
893
+
894
+ pcdata = ""
895
+ has_entities = false
896
+ end
897
+ # line 49 "markup.rl"
898
+ begin
899
+
900
+ characters_begin = p
901
+ end
902
+ when 49 then
903
+ # line 94 "markup.rl"
904
+ begin
905
+
906
+ doctype_end = p
907
+ delegate.doctype(data.byteslice(doctype_begin...doctype_end))
908
+ end
909
+ # line 40 "markup.rl"
910
+ begin
911
+
912
+ end
913
+ # line 32 "markup.rl"
914
+ begin
915
+
916
+ pcdata = ""
917
+ has_entities = false
918
+ end
919
+ # line 10 "/home/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
920
+ begin
921
+ begin
922
+ stack[top] = cs
923
+ top+= 1
924
+ cs = 42
925
+ _goto_level = _again
926
+ next
927
+ end
928
+ end
929
+ when 44 then
930
+ # line 108 "markup.rl"
931
+ begin
932
+
933
+ comment_end = p
934
+ delegate.comment(data.byteslice(comment_begin...comment_end))
935
+ end
936
+ # line 40 "markup.rl"
937
+ begin
938
+
939
+ end
940
+ # line 32 "markup.rl"
941
+ begin
942
+
943
+ pcdata = ""
944
+ has_entities = false
945
+ end
946
+ # line 49 "markup.rl"
947
+ begin
948
+
949
+ characters_begin = p
950
+ end
951
+ when 45 then
952
+ # line 108 "markup.rl"
953
+ begin
954
+
955
+ comment_end = p
956
+ delegate.comment(data.byteslice(comment_begin...comment_end))
957
+ end
958
+ # line 40 "markup.rl"
959
+ begin
960
+
961
+ end
962
+ # line 32 "markup.rl"
963
+ begin
964
+
965
+ pcdata = ""
966
+ has_entities = false
967
+ end
968
+ # line 10 "/home/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
969
+ begin
970
+ begin
971
+ stack[top] = cs
972
+ top+= 1
973
+ cs = 42
974
+ _goto_level = _again
975
+ next
976
+ end
977
+ end
978
+ when 60 then
979
+ # line 128 "markup.rl"
980
+ begin
981
+
982
+ delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
983
+ end
984
+ # line 40 "markup.rl"
985
+ begin
986
+
987
+ end
988
+ # line 32 "markup.rl"
989
+ begin
990
+
991
+ pcdata = ""
992
+ has_entities = false
993
+ end
994
+ # line 49 "markup.rl"
995
+ begin
996
+
997
+ characters_begin = p
998
+ end
999
+ when 61 then
1000
+ # line 128 "markup.rl"
1001
+ begin
1002
+
1003
+ delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
1004
+ end
1005
+ # line 40 "markup.rl"
1006
+ begin
1007
+
1008
+ end
1009
+ # line 32 "markup.rl"
1010
+ begin
1011
+
1012
+ pcdata = ""
1013
+ has_entities = false
1014
+ end
1015
+ # line 10 "/home/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
1016
+ begin
1017
+ begin
1018
+ stack[top] = cs
1019
+ top+= 1
1020
+ cs = 42
1021
+ _goto_level = _again
1022
+ next
1023
+ end
1024
+ end
1025
+ when 40 then
1026
+ # line 174 "markup.rl"
1027
+ begin
1028
+
1029
+ delegate.open_tag_end(self_closing)
1030
+ end
1031
+ # line 40 "markup.rl"
1032
+ begin
1033
+
1034
+ end
1035
+ # line 32 "markup.rl"
1036
+ begin
1037
+
1038
+ pcdata = ""
1039
+ has_entities = false
1040
+ end
1041
+ # line 49 "markup.rl"
1042
+ begin
1043
+
1044
+ characters_begin = p
1045
+ end
1046
+ when 41 then
1047
+ # line 174 "markup.rl"
1048
+ begin
1049
+
1050
+ delegate.open_tag_end(self_closing)
1051
+ end
1052
+ # line 40 "markup.rl"
1053
+ begin
1054
+
1055
+ end
1056
+ # line 32 "markup.rl"
1057
+ begin
1058
+
1059
+ pcdata = ""
1060
+ has_entities = false
1061
+ end
1062
+ # line 10 "/home/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
1063
+ begin
1064
+ begin
1065
+ stack[top] = cs
1066
+ top+= 1
1067
+ cs = 42
1068
+ _goto_level = _again
1069
+ next
1070
+ end
1071
+ end
1072
+ when 56 then
1073
+ # line 181 "markup.rl"
1074
+ begin
1075
+
1076
+ delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1077
+ end
1078
+ # line 40 "markup.rl"
1079
+ begin
1080
+
1081
+ end
1082
+ # line 32 "markup.rl"
1083
+ begin
1084
+
1085
+ pcdata = ""
1086
+ has_entities = false
1087
+ end
1088
+ # line 49 "markup.rl"
1089
+ begin
1090
+
1091
+ characters_begin = p
1092
+ end
1093
+ when 57 then
1094
+ # line 181 "markup.rl"
1095
+ begin
1096
+
1097
+ delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1098
+ end
1099
+ # line 40 "markup.rl"
1100
+ begin
1101
+
1102
+ end
1103
+ # line 32 "markup.rl"
1104
+ begin
1105
+
1106
+ pcdata = ""
1107
+ has_entities = false
1108
+ end
1109
+ # line 10 "/home/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
1110
+ begin
1111
+ begin
1112
+ stack[top] = cs
1113
+ top+= 1
1114
+ cs = 42
1115
+ _goto_level = _again
1116
+ next
1117
+ end
1118
+ end
1119
+ when 52 then
1120
+ # line 193 "markup.rl"
1121
+ begin
1122
+
1123
+ cdata_end = p
1124
+ delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1125
+ end
1126
+ # line 40 "markup.rl"
1127
+ begin
1128
+
1129
+ end
1130
+ # line 32 "markup.rl"
1131
+ begin
1132
+
1133
+ pcdata = ""
1134
+ has_entities = false
1135
+ end
1136
+ # line 49 "markup.rl"
1137
+ begin
1138
+
1139
+ characters_begin = p
1140
+ end
1141
+ when 53 then
1142
+ # line 193 "markup.rl"
1143
+ begin
1144
+
1145
+ cdata_end = p
1146
+ delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1147
+ end
1148
+ # line 40 "markup.rl"
1149
+ begin
1150
+
1151
+ end
1152
+ # line 32 "markup.rl"
1153
+ begin
1154
+
1155
+ pcdata = ""
1156
+ has_entities = false
1157
+ end
1158
+ # line 10 "/home/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
1159
+ begin
1160
+ begin
1161
+ stack[top] = cs
1162
+ top+= 1
1163
+ cs = 42
1164
+ _goto_level = _again
1165
+ next
1166
+ end
1167
+ end
1168
+ when 34 then
1169
+ # line 142 "markup.rl"
1170
+ begin
1171
+
1172
+ end
1173
+ # line 178 "markup.rl"
1174
+ begin
1175
+
1176
+ end
1177
+ # line 118 "markup.rl"
1178
+ begin
1179
+
1180
+ instruction_begin = p
1181
+ end
1182
+ # line 104 "markup.rl"
1183
+ begin
1184
+
1185
+ comment_begin = p
1186
+ end
1187
+ # line 90 "markup.rl"
1188
+ begin
1189
+
1190
+ doctype_begin = p
1191
+ end
1192
+ # line 189 "markup.rl"
1193
+ begin
1194
+
1195
+ cdata_begin = p
1196
+ end
1197
+ when 50 then
1198
+ # line 94 "markup.rl"
1199
+ begin
1200
+
1201
+ doctype_end = p
1202
+ delegate.doctype(data.byteslice(doctype_begin...doctype_end))
1203
+ end
1204
+ # line 142 "markup.rl"
1205
+ begin
1206
+
1207
+ end
1208
+ # line 178 "markup.rl"
1209
+ begin
1210
+
1211
+ end
1212
+ # line 118 "markup.rl"
1213
+ begin
1214
+
1215
+ instruction_begin = p
1216
+ end
1217
+ # line 104 "markup.rl"
1218
+ begin
1219
+
1220
+ comment_begin = p
1221
+ end
1222
+ # line 90 "markup.rl"
1223
+ begin
1224
+
1225
+ doctype_begin = p
1226
+ end
1227
+ # line 189 "markup.rl"
1228
+ begin
1229
+
1230
+ cdata_begin = p
1231
+ end
1232
+ when 46 then
1233
+ # line 108 "markup.rl"
1234
+ begin
1235
+
1236
+ comment_end = p
1237
+ delegate.comment(data.byteslice(comment_begin...comment_end))
1238
+ end
1239
+ # line 142 "markup.rl"
1240
+ begin
1241
+
1242
+ end
1243
+ # line 178 "markup.rl"
1244
+ begin
1245
+
1246
+ end
1247
+ # line 118 "markup.rl"
1248
+ begin
1249
+
1250
+ instruction_begin = p
1251
+ end
1252
+ # line 104 "markup.rl"
1253
+ begin
1254
+
1255
+ comment_begin = p
1256
+ end
1257
+ # line 90 "markup.rl"
1258
+ begin
1259
+
1260
+ doctype_begin = p
1261
+ end
1262
+ # line 189 "markup.rl"
1263
+ begin
1264
+
1265
+ cdata_begin = p
1266
+ end
1267
+ when 62 then
1268
+ # line 128 "markup.rl"
1269
+ begin
1270
+
1271
+ delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
1272
+ end
1273
+ # line 142 "markup.rl"
1274
+ begin
1275
+
1276
+ end
1277
+ # line 178 "markup.rl"
1278
+ begin
1279
+
1280
+ end
1281
+ # line 118 "markup.rl"
1282
+ begin
1283
+
1284
+ instruction_begin = p
1285
+ end
1286
+ # line 104 "markup.rl"
1287
+ begin
1288
+
1289
+ comment_begin = p
1290
+ end
1291
+ # line 90 "markup.rl"
1292
+ begin
1293
+
1294
+ doctype_begin = p
1295
+ end
1296
+ # line 189 "markup.rl"
1297
+ begin
1298
+
1299
+ cdata_begin = p
1300
+ end
1301
+ when 42 then
1302
+ # line 174 "markup.rl"
1303
+ begin
1304
+
1305
+ delegate.open_tag_end(self_closing)
1306
+ end
1307
+ # line 142 "markup.rl"
1308
+ begin
1309
+
1310
+ end
1311
+ # line 178 "markup.rl"
1312
+ begin
1313
+
1314
+ end
1315
+ # line 118 "markup.rl"
1316
+ begin
1317
+
1318
+ instruction_begin = p
1319
+ end
1320
+ # line 104 "markup.rl"
1321
+ begin
1322
+
1323
+ comment_begin = p
1324
+ end
1325
+ # line 90 "markup.rl"
1326
+ begin
1327
+
1328
+ doctype_begin = p
1329
+ end
1330
+ # line 189 "markup.rl"
1331
+ begin
1332
+
1333
+ cdata_begin = p
1334
+ end
1335
+ when 58 then
1336
+ # line 181 "markup.rl"
1337
+ begin
1338
+
1339
+ delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1340
+ end
1341
+ # line 142 "markup.rl"
1342
+ begin
1343
+
1344
+ end
1345
+ # line 178 "markup.rl"
1346
+ begin
1347
+
1348
+ end
1349
+ # line 118 "markup.rl"
1350
+ begin
1351
+
1352
+ instruction_begin = p
1353
+ end
1354
+ # line 104 "markup.rl"
1355
+ begin
1356
+
1357
+ comment_begin = p
1358
+ end
1359
+ # line 90 "markup.rl"
1360
+ begin
1361
+
1362
+ doctype_begin = p
1363
+ end
1364
+ # line 189 "markup.rl"
1365
+ begin
1366
+
1367
+ cdata_begin = p
1368
+ end
1369
+ when 54 then
1370
+ # line 193 "markup.rl"
1371
+ begin
1372
+
1373
+ cdata_end = p
1374
+ delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1375
+ end
1376
+ # line 142 "markup.rl"
1377
+ begin
1378
+
1379
+ end
1380
+ # line 178 "markup.rl"
1381
+ begin
1382
+
1383
+ end
1384
+ # line 118 "markup.rl"
1385
+ begin
1386
+
1387
+ instruction_begin = p
1388
+ end
1389
+ # line 104 "markup.rl"
1390
+ begin
1391
+
1392
+ comment_begin = p
1393
+ end
1394
+ # line 90 "markup.rl"
1395
+ begin
1396
+
1397
+ doctype_begin = p
1398
+ end
1399
+ # line 189 "markup.rl"
1400
+ begin
1401
+
1402
+ cdata_begin = p
1403
+ end
1404
+ when 38 then
1405
+ # line 37 "markup.rl"
1406
+ begin
1407
+
1408
+ end
1409
+ # line 43 "markup.rl"
1410
+ begin
1411
+
1412
+ pcdata = MarkupString.raw(pcdata) unless has_entities
1413
+ delegate.text(pcdata)
1414
+ end
1415
+ # line 142 "markup.rl"
1416
+ begin
1417
+
1418
+ end
1419
+ # line 178 "markup.rl"
1420
+ begin
1421
+
1422
+ end
1423
+ # line 118 "markup.rl"
1424
+ begin
1425
+
1426
+ instruction_begin = p
1427
+ end
1428
+ # line 104 "markup.rl"
1429
+ begin
1430
+
1431
+ comment_begin = p
1432
+ end
1433
+ # line 90 "markup.rl"
1434
+ begin
1435
+
1436
+ doctype_begin = p
1437
+ end
1438
+ # line 189 "markup.rl"
1439
+ begin
1440
+
1441
+ cdata_begin = p
1442
+ end
1443
+ when 36 then
1444
+ # line 53 "markup.rl"
1445
+ begin
1446
+
1447
+ characters_end = p
1448
+ pcdata << data.byteslice(characters_begin...characters_end)
1449
+ end
1450
+ # line 37 "markup.rl"
1451
+ begin
1452
+
1453
+ end
1454
+ # line 43 "markup.rl"
1455
+ begin
1456
+
1457
+ pcdata = MarkupString.raw(pcdata) unless has_entities
1458
+ delegate.text(pcdata)
1459
+ end
1460
+ # line 142 "markup.rl"
1461
+ begin
1462
+
1463
+ end
1464
+ # line 178 "markup.rl"
1465
+ begin
1466
+
1467
+ end
1468
+ # line 118 "markup.rl"
1469
+ begin
1470
+
1471
+ instruction_begin = p
1472
+ end
1473
+ # line 104 "markup.rl"
1474
+ begin
1475
+
1476
+ comment_begin = p
1477
+ end
1478
+ # line 90 "markup.rl"
1479
+ begin
1480
+
1481
+ doctype_begin = p
1482
+ end
1483
+ # line 189 "markup.rl"
1484
+ begin
1485
+
1486
+ cdata_begin = p
1487
+ end
1488
+ # line 1528 "markup.rb"
1489
+ end
1490
+ end
1491
+ end
1492
+ if _goto_level <= _again
1493
+ if cs == 0
1494
+ _goto_level = _out
1495
+ next
1496
+ end
1497
+ p += 1
1498
+ if p != pe
1499
+ _goto_level = _resume
1500
+ next
1501
+ end
1502
+ end
1503
+ if _goto_level <= _test_eof
1504
+ if p == eof
1505
+ case _markup_eof_actions[cs]
1506
+ when 27 then
1507
+ # line 59 "markup.rl"
1508
+ begin
1509
+
1510
+ raise ParseError.new("could not parse entity", buffer, p)
1511
+ end
1512
+ when 47 then
1513
+ # line 94 "markup.rl"
1514
+ begin
1515
+
1516
+ doctype_end = p
1517
+ delegate.doctype(data.byteslice(doctype_begin...doctype_end))
1518
+ end
1519
+ when 22 then
1520
+ # line 100 "markup.rl"
1521
+ begin
1522
+
1523
+ raise ParseError.new("could not parse doctype", buffer, p)
1524
+ end
1525
+ when 43 then
1526
+ # line 108 "markup.rl"
1527
+ begin
1528
+
1529
+ comment_end = p
1530
+ delegate.comment(data.byteslice(comment_begin...comment_end))
1531
+ end
1532
+ when 21 then
1533
+ # line 114 "markup.rl"
1534
+ begin
1535
+
1536
+ raise ParseError.new("could not parse comment", buffer, p)
1537
+ end
1538
+ when 59 then
1539
+ # line 128 "markup.rl"
1540
+ begin
1541
+
1542
+ delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
1543
+ end
1544
+ when 24 then
1545
+ # line 132 "markup.rl"
1546
+ begin
1547
+
1548
+ raise ParseError.new("could not parse instruction", buffer, p)
1549
+ end
1550
+ when 39 then
1551
+ # line 174 "markup.rl"
1552
+ begin
1553
+
1554
+ delegate.open_tag_end(self_closing)
1555
+ end
1556
+ when 55 then
1557
+ # line 181 "markup.rl"
1558
+ begin
1559
+
1560
+ delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1561
+ end
1562
+ when 1 then
1563
+ # line 185 "markup.rl"
1564
+ begin
1565
+
1566
+ raise ParseError.new("could not parse tag", buffer, p)
1567
+ end
1568
+ when 51 then
1569
+ # line 193 "markup.rl"
1570
+ begin
1571
+
1572
+ cdata_end = p
1573
+ delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1574
+ end
1575
+ when 23 then
1576
+ # line 199 "markup.rl"
1577
+ begin
1578
+
1579
+ raise ParseError.new("could not parse cdata", buffer, p)
1580
+ end
1581
+ when 37 then
1582
+ # line 37 "markup.rl"
1583
+ begin
1584
+
1585
+ end
1586
+ # line 43 "markup.rl"
1587
+ begin
1588
+
1589
+ pcdata = MarkupString.raw(pcdata) unless has_entities
1590
+ delegate.text(pcdata)
1591
+ end
1592
+ when 35 then
1593
+ # line 53 "markup.rl"
1594
+ begin
1595
+
1596
+ characters_end = p
1597
+ pcdata << data.byteslice(characters_begin...characters_end)
1598
+ end
1599
+ # line 37 "markup.rl"
1600
+ begin
1601
+
1602
+ end
1603
+ # line 43 "markup.rl"
1604
+ begin
1605
+
1606
+ pcdata = MarkupString.raw(pcdata) unless has_entities
1607
+ delegate.text(pcdata)
1608
+ end
1609
+ # line 1655 "markup.rb"
1610
+ end
1611
+ end
1612
+
1613
+ end
1614
+ if _goto_level <= _out
1615
+ break
1616
+ end
1110
1617
  end
1111
- # line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
1112
- begin
1113
- begin
1114
- stack[top] = cs
1115
- top+= 1
1116
- cs = 42
1117
- _goto_level = _again
1118
- next
1119
- end
1120
1618
  end
1121
- when 52 then
1122
- # line 185 "markup.rl"
1123
- begin
1124
-
1125
- cdata_end = p
1126
-
1127
- delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1128
- end
1129
- # line 39 "markup.rl"
1130
- begin
1131
-
1132
- end
1133
- # line 32 "markup.rl"
1134
- begin
1135
-
1136
- pcdata = ""
1137
- end
1138
- # line 46 "markup.rl"
1139
- begin
1140
-
1141
- characters_begin = p
1142
- end
1143
- when 53 then
1144
- # line 185 "markup.rl"
1145
- begin
1146
-
1147
- cdata_end = p
1148
-
1149
- delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1150
- end
1151
- # line 39 "markup.rl"
1152
- begin
1153
-
1154
- end
1155
- # line 32 "markup.rl"
1156
- begin
1157
1619
 
1158
- pcdata = ""
1159
- end
1160
- # line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
1161
- begin
1162
- begin
1163
- stack[top] = cs
1164
- top+= 1
1165
- cs = 42
1166
- _goto_level = _again
1167
- next
1168
- end
1620
+ # line 236 "markup.rl"
1621
+ if p != eof
1622
+ raise ParseError.new("could not consume all input", buffer, p)
1169
1623
  end
1170
- when 34 then
1171
- # line 136 "markup.rl"
1172
- begin
1173
-
1174
- end
1175
- # line 170 "markup.rl"
1176
- begin
1177
-
1178
- end
1179
- # line 112 "markup.rl"
1180
- begin
1181
-
1182
- instruction_begin = p
1183
- end
1184
- # line 98 "markup.rl"
1185
- begin
1186
-
1187
- comment_begin = p
1188
- end
1189
- # line 84 "markup.rl"
1190
- begin
1191
-
1192
- doctype_begin = p
1193
- end
1194
- # line 181 "markup.rl"
1195
- begin
1196
-
1197
- cdata_begin = p
1198
- end
1199
- when 50 then
1200
- # line 88 "markup.rl"
1201
- begin
1202
-
1203
- doctype_end = p
1204
-
1205
- delegate.doctype(data.byteslice(doctype_begin...doctype_end))
1206
- end
1207
- # line 136 "markup.rl"
1208
- begin
1209
-
1210
- end
1211
- # line 170 "markup.rl"
1212
- begin
1213
-
1214
- end
1215
- # line 112 "markup.rl"
1216
- begin
1217
-
1218
- instruction_begin = p
1219
- end
1220
- # line 98 "markup.rl"
1221
- begin
1222
-
1223
- comment_begin = p
1224
- end
1225
- # line 84 "markup.rl"
1226
- begin
1227
-
1228
- doctype_begin = p
1229
- end
1230
- # line 181 "markup.rl"
1231
- begin
1232
-
1233
- cdata_begin = p
1234
- end
1235
- when 46 then
1236
- # line 102 "markup.rl"
1237
- begin
1238
-
1239
- comment_end = p
1240
-
1241
- delegate.comment(data.byteslice(comment_begin...comment_end))
1242
- end
1243
- # line 136 "markup.rl"
1244
- begin
1245
-
1246
- end
1247
- # line 170 "markup.rl"
1248
- begin
1249
-
1250
- end
1251
- # line 112 "markup.rl"
1252
- begin
1253
-
1254
- instruction_begin = p
1255
- end
1256
- # line 98 "markup.rl"
1257
- begin
1258
-
1259
- comment_begin = p
1260
- end
1261
- # line 84 "markup.rl"
1262
- begin
1263
-
1264
- doctype_begin = p
1265
- end
1266
- # line 181 "markup.rl"
1267
- begin
1268
-
1269
- cdata_begin = p
1270
- end
1271
- when 62 then
1272
- # line 122 "markup.rl"
1273
- begin
1274
-
1275
- delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
1276
- end
1277
- # line 136 "markup.rl"
1278
- begin
1279
-
1280
- end
1281
- # line 170 "markup.rl"
1282
- begin
1283
-
1284
- end
1285
- # line 112 "markup.rl"
1286
- begin
1287
-
1288
- instruction_begin = p
1289
- end
1290
- # line 98 "markup.rl"
1291
- begin
1292
-
1293
- comment_begin = p
1294
- end
1295
- # line 84 "markup.rl"
1296
- begin
1297
-
1298
- doctype_begin = p
1299
- end
1300
- # line 181 "markup.rl"
1301
- begin
1302
-
1303
- cdata_begin = p
1304
- end
1305
- when 42 then
1306
- # line 166 "markup.rl"
1307
- begin
1308
-
1309
- delegate.open_tag_end(self_closing)
1310
- end
1311
- # line 136 "markup.rl"
1312
- begin
1313
-
1314
- end
1315
- # line 170 "markup.rl"
1316
- begin
1317
-
1318
- end
1319
- # line 112 "markup.rl"
1320
- begin
1321
-
1322
- instruction_begin = p
1323
- end
1324
- # line 98 "markup.rl"
1325
- begin
1326
-
1327
- comment_begin = p
1328
- end
1329
- # line 84 "markup.rl"
1330
- begin
1331
-
1332
- doctype_begin = p
1333
- end
1334
- # line 181 "markup.rl"
1335
- begin
1336
-
1337
- cdata_begin = p
1338
- end
1339
- when 58 then
1340
- # line 173 "markup.rl"
1341
- begin
1342
-
1343
- delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1344
- end
1345
- # line 136 "markup.rl"
1346
- begin
1347
-
1348
- end
1349
- # line 170 "markup.rl"
1350
- begin
1351
-
1352
- end
1353
- # line 112 "markup.rl"
1354
- begin
1355
-
1356
- instruction_begin = p
1357
- end
1358
- # line 98 "markup.rl"
1359
- begin
1360
-
1361
- comment_begin = p
1362
- end
1363
- # line 84 "markup.rl"
1364
- begin
1365
-
1366
- doctype_begin = p
1367
- end
1368
- # line 181 "markup.rl"
1369
- begin
1370
-
1371
- cdata_begin = p
1372
- end
1373
- when 54 then
1374
- # line 185 "markup.rl"
1375
- begin
1376
-
1377
- cdata_end = p
1378
-
1379
- delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1380
- end
1381
- # line 136 "markup.rl"
1382
- begin
1383
-
1384
- end
1385
- # line 170 "markup.rl"
1386
- begin
1387
-
1388
- end
1389
- # line 112 "markup.rl"
1390
- begin
1391
-
1392
- instruction_begin = p
1393
- end
1394
- # line 98 "markup.rl"
1395
- begin
1396
-
1397
- comment_begin = p
1398
- end
1399
- # line 84 "markup.rl"
1400
- begin
1401
-
1402
- doctype_begin = p
1403
- end
1404
- # line 181 "markup.rl"
1405
- begin
1406
-
1407
- cdata_begin = p
1408
- end
1409
- when 38 then
1410
- # line 36 "markup.rl"
1411
- begin
1412
-
1413
- end
1414
- # line 42 "markup.rl"
1415
- begin
1416
-
1417
- delegate.text(pcdata)
1418
- end
1419
- # line 136 "markup.rl"
1420
- begin
1421
-
1422
- end
1423
- # line 170 "markup.rl"
1424
- begin
1425
-
1426
- end
1427
- # line 112 "markup.rl"
1428
- begin
1429
-
1430
- instruction_begin = p
1431
- end
1432
- # line 98 "markup.rl"
1433
- begin
1434
-
1435
- comment_begin = p
1436
- end
1437
- # line 84 "markup.rl"
1438
- begin
1439
-
1440
- doctype_begin = p
1441
- end
1442
- # line 181 "markup.rl"
1443
- begin
1444
-
1445
- cdata_begin = p
1446
- end
1447
- when 36 then
1448
- # line 50 "markup.rl"
1449
- begin
1450
-
1451
- characters_end = p
1452
-
1453
- pcdata << data.byteslice(characters_begin...characters_end)
1454
- end
1455
- # line 36 "markup.rl"
1456
- begin
1457
-
1458
- end
1459
- # line 42 "markup.rl"
1460
- begin
1461
-
1462
- delegate.text(pcdata)
1463
- end
1464
- # line 136 "markup.rl"
1465
- begin
1466
-
1467
- end
1468
- # line 170 "markup.rl"
1469
- begin
1470
-
1471
- end
1472
- # line 112 "markup.rl"
1473
- begin
1474
-
1475
- instruction_begin = p
1476
- end
1477
- # line 98 "markup.rl"
1478
- begin
1479
-
1480
- comment_begin = p
1481
- end
1482
- # line 84 "markup.rl"
1483
- begin
1484
-
1485
- doctype_begin = p
1486
- end
1487
- # line 181 "markup.rl"
1488
- begin
1489
-
1490
- cdata_begin = p
1491
- end
1492
- # line 1493 "markup.rb"
1493
- end
1494
- end
1495
- end
1496
- if _goto_level <= _again
1497
- if cs == 0
1498
- _goto_level = _out
1499
- next
1500
- end
1501
- p += 1
1502
- if p != pe
1503
- _goto_level = _resume
1504
- next
1505
- end
1506
- end
1507
- if _goto_level <= _test_eof
1508
- if p == eof
1509
- case _markup_eof_actions[cs]
1510
- when 27 then
1511
- # line 56 "markup.rl"
1512
- begin
1513
-
1514
- raise ParseError.new("could not parse entity", buffer, p)
1515
- end
1516
- when 47 then
1517
- # line 88 "markup.rl"
1518
- begin
1519
-
1520
- doctype_end = p
1521
-
1522
- delegate.doctype(data.byteslice(doctype_begin...doctype_end))
1523
- end
1524
- when 22 then
1525
- # line 94 "markup.rl"
1526
- begin
1527
-
1528
- raise ParseError.new("could not parse doctype", buffer, p)
1529
- end
1530
- when 43 then
1531
- # line 102 "markup.rl"
1532
- begin
1533
-
1534
- comment_end = p
1535
-
1536
- delegate.comment(data.byteslice(comment_begin...comment_end))
1537
- end
1538
- when 21 then
1539
- # line 108 "markup.rl"
1540
- begin
1541
-
1542
- raise ParseError.new("could not parse comment", buffer, p)
1543
- end
1544
- when 59 then
1545
- # line 122 "markup.rl"
1546
- begin
1547
-
1548
- delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
1549
- end
1550
- when 24 then
1551
- # line 126 "markup.rl"
1552
- begin
1553
-
1554
- raise ParseError.new("could not parse instruction", buffer, p)
1555
- end
1556
- when 39 then
1557
- # line 166 "markup.rl"
1558
- begin
1559
-
1560
- delegate.open_tag_end(self_closing)
1561
- end
1562
- when 55 then
1563
- # line 173 "markup.rl"
1564
- begin
1565
-
1566
- delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1567
- end
1568
- when 1 then
1569
- # line 177 "markup.rl"
1570
- begin
1571
-
1572
- raise ParseError.new("could not parse tag", buffer, p)
1573
- end
1574
- when 51 then
1575
- # line 185 "markup.rl"
1576
- begin
1577
-
1578
- cdata_end = p
1579
-
1580
- delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1581
- end
1582
- when 23 then
1583
- # line 191 "markup.rl"
1584
- begin
1585
-
1586
- raise ParseError.new("could not parse cdata", buffer, p)
1587
- end
1588
- when 37 then
1589
- # line 36 "markup.rl"
1590
- begin
1591
-
1592
- end
1593
- # line 42 "markup.rl"
1594
- begin
1595
-
1596
- delegate.text(pcdata)
1597
- end
1598
- when 35 then
1599
- # line 50 "markup.rl"
1600
- begin
1601
-
1602
- characters_end = p
1603
-
1604
- pcdata << data.byteslice(characters_begin...characters_end)
1605
- end
1606
- # line 36 "markup.rl"
1607
- begin
1608
-
1609
- end
1610
- # line 42 "markup.rl"
1611
- begin
1612
-
1613
- delegate.text(pcdata)
1614
- end
1615
- # line 1616 "markup.rb"
1616
- end
1617
- end
1618
-
1619
- end
1620
- if _goto_level <= _out
1621
- break
1624
+ return nil
1622
1625
  end
1623
1626
  end
1624
- end
1625
-
1626
- # line 228 "markup.rl"
1627
-
1628
- if p != eof
1629
- raise ParseError.new("could not consume all input", buffer, p)
1630
- end
1631
-
1632
- return nil
1633
- end
1634
- end
1635
1627
  end