trenni 2.1.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
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