Simplified lexer output for CDATA tags.
This commit is contained in:
parent
470be5a839
commit
eaf1669b07
|
@ -320,7 +320,7 @@ module Oga
|
||||||
|
|
||||||
action start_cdata {
|
action start_cdata {
|
||||||
emit_buffer
|
emit_buffer
|
||||||
t(:T_CDATA_START)
|
add_token(:T_CDATA_START, nil)
|
||||||
|
|
||||||
start_buffer
|
start_buffer
|
||||||
|
|
||||||
|
@ -332,7 +332,7 @@ module Oga
|
||||||
cdata := |*
|
cdata := |*
|
||||||
cdata_end => {
|
cdata_end => {
|
||||||
emit_buffer
|
emit_buffer
|
||||||
t(:T_CDATA_END)
|
add_token(:T_CDATA_END, nil)
|
||||||
|
|
||||||
fret;
|
fret;
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,25 +4,25 @@ describe Oga::Lexer do
|
||||||
context 'cdata tags' do
|
context 'cdata tags' do
|
||||||
example 'lex a cdata tag' do
|
example 'lex a cdata tag' do
|
||||||
lex('<![CDATA[foo]]>').should == [
|
lex('<![CDATA[foo]]>').should == [
|
||||||
[:T_CDATA_START, '<![CDATA[', 1],
|
[:T_CDATA_START, nil, 1],
|
||||||
[:T_TEXT, 'foo', 1],
|
[:T_TEXT, 'foo', 1],
|
||||||
[:T_CDATA_END, ']]>', 1]
|
[:T_CDATA_END, nil, 1]
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
example 'lex tags inside CDATA tags as regular text' do
|
example 'lex tags inside CDATA tags as regular text' do
|
||||||
lex('<![CDATA[<p>Foo</p>]]>').should == [
|
lex('<![CDATA[<p>Foo</p>]]>').should == [
|
||||||
[:T_CDATA_START, '<![CDATA[', 1],
|
[:T_CDATA_START, nil, 1],
|
||||||
[:T_TEXT, '<p>Foo</p>', 1],
|
[:T_TEXT, '<p>Foo</p>', 1],
|
||||||
[:T_CDATA_END, ']]>', 1]
|
[:T_CDATA_END, nil, 1]
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
example 'lex double brackets inside a CDATA tag' do
|
example 'lex double brackets inside a CDATA tag' do
|
||||||
lex('<![CDATA[]]]]>').should == [
|
lex('<![CDATA[]]]]>').should == [
|
||||||
[:T_CDATA_START, '<![CDATA[', 1],
|
[:T_CDATA_START, nil, 1],
|
||||||
[:T_TEXT, ']]', 1],
|
[:T_TEXT, ']]', 1],
|
||||||
[:T_CDATA_END, ']]>', 1]
|
[:T_CDATA_END, nil, 1]
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue