Allow XPath idents to start with an underscore.
This is valid in XML so XPath should support it as well.
This commit is contained in:
parent
eb3a3e7630
commit
f1316c50fb
|
@ -194,7 +194,7 @@ module Oga
|
|||
# Identifiers are used for element names, namespaces, attribute names,
|
||||
# etc. Identifiers have to start with a letter.
|
||||
|
||||
identifier = '*' | [a-zA-Z*]+ [a-zA-Z\-_0-9]*;
|
||||
identifier = '*' | [a-zA-Z*_]+ [a-zA-Z\-_0-9]*;
|
||||
|
||||
action emit_identifier {
|
||||
emit(:T_IDENT, ts, te)
|
||||
|
|
|
@ -6,6 +6,10 @@ describe Oga::XPath::Lexer do
|
|||
lex_xpath('/foo').should == [[:T_SLASH, nil], [:T_IDENT, 'foo']]
|
||||
end
|
||||
|
||||
example 'lex a simple expression with a test starting with an underscore' do
|
||||
lex_xpath('/_foo').should == [[:T_SLASH, nil], [:T_IDENT, '_foo']]
|
||||
end
|
||||
|
||||
example 'lex a node test using a namespace' do
|
||||
lex_xpath('/foo:bar').should == [
|
||||
[:T_SLASH, nil],
|
||||
|
|
Loading…
Reference in New Issue