xrb 0.6.1 → 0.8.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/bake/xrb/parsers.rb +0 -5
- data/ext/xrb/template.c +944 -667
- data/ext/xrb/template.rl +44 -5
- data/lib/xrb/fallback/markup.rb +25 -23
- data/lib/xrb/fallback/markup.rl +3 -2
- data/lib/xrb/fallback/query.rb +1 -0
- data/lib/xrb/fallback/template.rb +716 -391
- data/lib/xrb/fallback/template.rl +35 -1
- data/lib/xrb/template.rb +20 -10
- data/lib/xrb/version.rb +1 -1
- data/notes.md +0 -0
- data/readme.md +3 -3
- data.tar.gz.sig +0 -0
- metadata +4 -13
- metadata.gz.sig +0 -0
- data/ext/Makefile +0 -270
- data/ext/XRB_Extension.bundle +0 -0
- data/ext/escape.o +0 -0
- data/ext/extconf.h +0 -5
- data/ext/markup.o +0 -0
- data/ext/mkmf.log +0 -69
- data/ext/query.o +0 -0
- data/ext/tag.o +0 -0
- data/ext/template.o +0 -0
- data/ext/xrb.o +0 -0
data/ext/xrb/template.rl
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
rb_funcall(delegate, id_instruction, 1, XRB_Token_string(instruction, encoding));
|
17
17
|
}
|
18
18
|
|
19
|
-
action
|
19
|
+
action emit_multiline_instruction {
|
20
20
|
rb_funcall(delegate, id_instruction, 2, XRB_Token_string(instruction, encoding), newline);
|
21
21
|
}
|
22
22
|
|
@@ -33,15 +33,54 @@
|
|
33
33
|
}
|
34
34
|
|
35
35
|
action emit_expression {
|
36
|
-
|
36
|
+
if (expression.end > expression.begin) {
|
37
|
+
rb_funcall(delegate, id_expression, 1, XRB_Token_string(expression, encoding));
|
38
|
+
}
|
37
39
|
}
|
38
40
|
|
39
41
|
action expression_error {
|
40
42
|
XRB_raise_error("failed to parse expression", buffer, p-s);
|
41
43
|
}
|
42
44
|
|
45
|
+
action text_begin {
|
46
|
+
text.begin = p;
|
47
|
+
|
48
|
+
delimiter.begin = NULL;
|
49
|
+
delimiter.end = NULL;
|
50
|
+
}
|
51
|
+
|
52
|
+
action text_end {
|
53
|
+
text.end = p;
|
54
|
+
}
|
55
|
+
|
56
|
+
action text_delimiter_begin {
|
57
|
+
delimiter.begin = p;
|
58
|
+
}
|
59
|
+
|
60
|
+
action text_delimiter_end {
|
61
|
+
delimiter.end = p;
|
62
|
+
}
|
63
|
+
|
43
64
|
action emit_text {
|
44
|
-
|
65
|
+
if (delimiter.begin && delimiter.end) {
|
66
|
+
text.end = delimiter.begin;
|
67
|
+
|
68
|
+
// Backtrack:
|
69
|
+
p = delimiter.begin - 1;
|
70
|
+
}
|
71
|
+
|
72
|
+
rb_funcall(delegate, id_text, 1, XRB_Token_string(text, encoding));
|
73
|
+
}
|
74
|
+
|
75
|
+
action emit_multiline_text {
|
76
|
+
text.begin = ts;
|
77
|
+
text.end = te;
|
78
|
+
|
79
|
+
rb_funcall(delegate, id_text, 1, XRB_Token_string(text, encoding));
|
80
|
+
}
|
81
|
+
|
82
|
+
action emit_newline {
|
83
|
+
rb_funcall(delegate, id_instruction, 1, newline);
|
45
84
|
}
|
46
85
|
|
47
86
|
include template "xrb/template.rl";
|
@@ -57,9 +96,9 @@ VALUE XRB_Native_parse_template(VALUE self, VALUE buffer, VALUE delegate) {
|
|
57
96
|
VALUE newline = rb_obj_freeze(rb_enc_str_new("\n", 1, encoding));
|
58
97
|
|
59
98
|
const char *s, *p, *pe, *eof, *ts, *te;
|
60
|
-
unsigned long cs,
|
99
|
+
unsigned long cs, top = 0, stack[32] = {0}, act;
|
61
100
|
|
62
|
-
XRB_Token expression = {0}, instruction = {0};
|
101
|
+
XRB_Token expression = {0}, instruction = {0}, text = {0}, delimiter = {0};
|
63
102
|
|
64
103
|
s = p = RSTRING_PTR(string);
|
65
104
|
eof = pe = p + RSTRING_LEN(string);
|
data/lib/xrb/fallback/markup.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
|
2
3
|
# line 1 "lib/xrb/fallback/markup.rl"
|
3
4
|
# Released under the MIT License.
|
@@ -420,6 +421,7 @@ module XRB
|
|
420
421
|
def self.parse_markup(buffer, delegate, entities)
|
421
422
|
data = buffer.read
|
422
423
|
bytes = data.bytes
|
424
|
+
encoding = data.encoding
|
423
425
|
|
424
426
|
p = 0
|
425
427
|
# Must set pe here or it gets incorrectly set to data.length
|
@@ -437,7 +439,7 @@ module XRB
|
|
437
439
|
has_entities = has_value = false
|
438
440
|
|
439
441
|
|
440
|
-
# line
|
442
|
+
# line 442 "lib/xrb/fallback/markup.rb"
|
441
443
|
begin
|
442
444
|
p ||= 0
|
443
445
|
pe ||= data.length
|
@@ -445,9 +447,9 @@ module XRB
|
|
445
447
|
top = 0
|
446
448
|
end
|
447
449
|
|
448
|
-
# line
|
450
|
+
# line 219 "lib/xrb/fallback/markup.rl"
|
449
451
|
|
450
|
-
# line
|
452
|
+
# line 452 "lib/xrb/fallback/markup.rb"
|
451
453
|
begin
|
452
454
|
testEof = false
|
453
455
|
_slen, _trans, _keys, _inds, _acts, _nacts = nil
|
@@ -599,7 +601,7 @@ module XRB
|
|
599
601
|
# line 15 "lib/xrb/fallback/markup.rl"
|
600
602
|
begin
|
601
603
|
|
602
|
-
pcdata =
|
604
|
+
pcdata = String.new(encoding: encoding)
|
603
605
|
has_entities = false
|
604
606
|
end
|
605
607
|
# line 32 "lib/xrb/fallback/markup.rl"
|
@@ -611,7 +613,7 @@ module XRB
|
|
611
613
|
# line 15 "lib/xrb/fallback/markup.rl"
|
612
614
|
begin
|
613
615
|
|
614
|
-
pcdata =
|
616
|
+
pcdata = String.new(encoding: encoding)
|
615
617
|
has_entities = false
|
616
618
|
end
|
617
619
|
# line 10 "parsers/xrb/entities.rl"
|
@@ -715,7 +717,7 @@ module XRB
|
|
715
717
|
begin
|
716
718
|
|
717
719
|
has_value = false
|
718
|
-
pcdata =
|
720
|
+
pcdata = String.new(encoding: encoding)
|
719
721
|
end
|
720
722
|
# line 7 "lib/xrb/fallback/markup.rl"
|
721
723
|
begin
|
@@ -810,7 +812,7 @@ module XRB
|
|
810
812
|
# line 15 "lib/xrb/fallback/markup.rl"
|
811
813
|
begin
|
812
814
|
|
813
|
-
pcdata =
|
815
|
+
pcdata = String.new(encoding: encoding)
|
814
816
|
has_entities = false
|
815
817
|
end
|
816
818
|
# line 32 "lib/xrb/fallback/markup.rl"
|
@@ -826,7 +828,7 @@ module XRB
|
|
826
828
|
# line 15 "lib/xrb/fallback/markup.rl"
|
827
829
|
begin
|
828
830
|
|
829
|
-
pcdata =
|
831
|
+
pcdata = String.new(encoding: encoding)
|
830
832
|
has_entities = false
|
831
833
|
end
|
832
834
|
# line 10 "parsers/xrb/entities.rl"
|
@@ -902,7 +904,7 @@ module XRB
|
|
902
904
|
# line 15 "lib/xrb/fallback/markup.rl"
|
903
905
|
begin
|
904
906
|
|
905
|
-
pcdata =
|
907
|
+
pcdata = String.new(encoding: encoding)
|
906
908
|
has_entities = false
|
907
909
|
end
|
908
910
|
# line 32 "lib/xrb/fallback/markup.rl"
|
@@ -925,7 +927,7 @@ module XRB
|
|
925
927
|
# line 15 "lib/xrb/fallback/markup.rl"
|
926
928
|
begin
|
927
929
|
|
928
|
-
pcdata =
|
930
|
+
pcdata = String.new(encoding: encoding)
|
929
931
|
has_entities = false
|
930
932
|
end
|
931
933
|
# line 10 "parsers/xrb/entities.rl"
|
@@ -953,7 +955,7 @@ module XRB
|
|
953
955
|
# line 15 "lib/xrb/fallback/markup.rl"
|
954
956
|
begin
|
955
957
|
|
956
|
-
pcdata =
|
958
|
+
pcdata = String.new(encoding: encoding)
|
957
959
|
has_entities = false
|
958
960
|
end
|
959
961
|
# line 32 "lib/xrb/fallback/markup.rl"
|
@@ -976,7 +978,7 @@ module XRB
|
|
976
978
|
# line 15 "lib/xrb/fallback/markup.rl"
|
977
979
|
begin
|
978
980
|
|
979
|
-
pcdata =
|
981
|
+
pcdata = String.new(encoding: encoding)
|
980
982
|
has_entities = false
|
981
983
|
end
|
982
984
|
# line 10 "parsers/xrb/entities.rl"
|
@@ -1002,7 +1004,7 @@ module XRB
|
|
1002
1004
|
# line 15 "lib/xrb/fallback/markup.rl"
|
1003
1005
|
begin
|
1004
1006
|
|
1005
|
-
pcdata =
|
1007
|
+
pcdata = String.new(encoding: encoding)
|
1006
1008
|
has_entities = false
|
1007
1009
|
end
|
1008
1010
|
# line 32 "lib/xrb/fallback/markup.rl"
|
@@ -1023,7 +1025,7 @@ module XRB
|
|
1023
1025
|
# line 15 "lib/xrb/fallback/markup.rl"
|
1024
1026
|
begin
|
1025
1027
|
|
1026
|
-
pcdata =
|
1028
|
+
pcdata = String.new(encoding: encoding)
|
1027
1029
|
has_entities = false
|
1028
1030
|
end
|
1029
1031
|
# line 10 "parsers/xrb/entities.rl"
|
@@ -1049,7 +1051,7 @@ module XRB
|
|
1049
1051
|
# line 15 "lib/xrb/fallback/markup.rl"
|
1050
1052
|
begin
|
1051
1053
|
|
1052
|
-
pcdata =
|
1054
|
+
pcdata = String.new(encoding: encoding)
|
1053
1055
|
has_entities = false
|
1054
1056
|
end
|
1055
1057
|
# line 32 "lib/xrb/fallback/markup.rl"
|
@@ -1070,7 +1072,7 @@ module XRB
|
|
1070
1072
|
# line 15 "lib/xrb/fallback/markup.rl"
|
1071
1073
|
begin
|
1072
1074
|
|
1073
|
-
pcdata =
|
1075
|
+
pcdata = String.new(encoding: encoding)
|
1074
1076
|
has_entities = false
|
1075
1077
|
end
|
1076
1078
|
# line 10 "parsers/xrb/entities.rl"
|
@@ -1096,7 +1098,7 @@ module XRB
|
|
1096
1098
|
# line 15 "lib/xrb/fallback/markup.rl"
|
1097
1099
|
begin
|
1098
1100
|
|
1099
|
-
pcdata =
|
1101
|
+
pcdata = String.new(encoding: encoding)
|
1100
1102
|
has_entities = false
|
1101
1103
|
end
|
1102
1104
|
# line 32 "lib/xrb/fallback/markup.rl"
|
@@ -1117,7 +1119,7 @@ module XRB
|
|
1117
1119
|
# line 15 "lib/xrb/fallback/markup.rl"
|
1118
1120
|
begin
|
1119
1121
|
|
1120
|
-
pcdata =
|
1122
|
+
pcdata = String.new(encoding: encoding)
|
1121
1123
|
has_entities = false
|
1122
1124
|
end
|
1123
1125
|
# line 10 "parsers/xrb/entities.rl"
|
@@ -1145,7 +1147,7 @@ module XRB
|
|
1145
1147
|
# line 15 "lib/xrb/fallback/markup.rl"
|
1146
1148
|
begin
|
1147
1149
|
|
1148
|
-
pcdata =
|
1150
|
+
pcdata = String.new(encoding: encoding)
|
1149
1151
|
has_entities = false
|
1150
1152
|
end
|
1151
1153
|
# line 32 "lib/xrb/fallback/markup.rl"
|
@@ -1168,7 +1170,7 @@ module XRB
|
|
1168
1170
|
# line 15 "lib/xrb/fallback/markup.rl"
|
1169
1171
|
begin
|
1170
1172
|
|
1171
|
-
pcdata =
|
1173
|
+
pcdata = String.new(encoding: encoding)
|
1172
1174
|
has_entities = false
|
1173
1175
|
end
|
1174
1176
|
# line 10 "parsers/xrb/entities.rl"
|
@@ -1507,7 +1509,7 @@ module XRB
|
|
1507
1509
|
|
1508
1510
|
cdata_begin = p
|
1509
1511
|
end
|
1510
|
-
# line
|
1512
|
+
# line 1512 "lib/xrb/fallback/markup.rb"
|
1511
1513
|
end
|
1512
1514
|
end
|
1513
1515
|
end
|
@@ -1634,7 +1636,7 @@ module XRB
|
|
1634
1636
|
|
1635
1637
|
delegate.text(pcdata)
|
1636
1638
|
end
|
1637
|
-
# line
|
1639
|
+
# line 1639 "lib/xrb/fallback/markup.rb"
|
1638
1640
|
end
|
1639
1641
|
end
|
1640
1642
|
|
@@ -1645,7 +1647,7 @@ module XRB
|
|
1645
1647
|
end
|
1646
1648
|
end
|
1647
1649
|
|
1648
|
-
# line
|
1650
|
+
# line 220 "lib/xrb/fallback/markup.rl"
|
1649
1651
|
|
1650
1652
|
if p != eof
|
1651
1653
|
raise ParseError.new("could not consume all input", buffer, p)
|
data/lib/xrb/fallback/markup.rl
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
}
|
14
14
|
|
15
15
|
action pcdata_begin {
|
16
|
-
pcdata =
|
16
|
+
pcdata = String.new(encoding: encoding)
|
17
17
|
has_entities = false
|
18
18
|
}
|
19
19
|
|
@@ -131,7 +131,7 @@
|
|
131
131
|
|
132
132
|
action attribute_begin {
|
133
133
|
has_value = false
|
134
|
-
pcdata =
|
134
|
+
pcdata = String.new(encoding: encoding)
|
135
135
|
}
|
136
136
|
|
137
137
|
action attribute_value {
|
@@ -198,6 +198,7 @@ module XRB
|
|
198
198
|
def self.parse_markup(buffer, delegate, entities)
|
199
199
|
data = buffer.read
|
200
200
|
bytes = data.bytes
|
201
|
+
encoding = data.encoding
|
201
202
|
|
202
203
|
p = 0
|
203
204
|
# Must set pe here or it gets incorrectly set to data.length
|
data/lib/xrb/fallback/query.rb
CHANGED