mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/rexml/parsers/baseparser.rb (LETTER, DIGIT):
always use POSIX charclass. * lib/rexml/parsers/baseparser.rb (NAMECHAR): remove duplicated range. * lib/rexml/xmltokens.rb (NCNAME_STR, NAMECHAR): ditto. * lib/rexml/parsers/xpathparser.rb (PathExpr): ditto. * lib/rexml/text.rb (REXML::Text#initialize): initialize @parent. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
34fb945348
commit
40bc864003
5 changed files with 22 additions and 15 deletions
15
ChangeLog
15
ChangeLog
|
@ -1,3 +1,18 @@
|
||||||
|
Tue Apr 6 05:59:12 2010 NARUSE, Yui <naruse@ruby-lang.org>
|
||||||
|
|
||||||
|
* lib/rexml/parsers/baseparser.rb (LETTER, DIGIT):
|
||||||
|
always use POSIX charclass.
|
||||||
|
|
||||||
|
* lib/rexml/parsers/baseparser.rb (NAMECHAR):
|
||||||
|
remove duplicated range.
|
||||||
|
|
||||||
|
* lib/rexml/xmltokens.rb (NCNAME_STR, NAMECHAR): ditto.
|
||||||
|
|
||||||
|
* lib/rexml/parsers/xpathparser.rb (PathExpr): ditto.
|
||||||
|
|
||||||
|
* lib/rexml/text.rb (REXML::Text#initialize):
|
||||||
|
initialize @parent.
|
||||||
|
|
||||||
Mon Apr 5 19:54:58 2010 NARUSE, Yui <naruse@ruby-lang.org>
|
Mon Apr 5 19:54:58 2010 NARUSE, Yui <naruse@ruby-lang.org>
|
||||||
|
|
||||||
* re.c (make_regexp): use onig_new_with_source to keep
|
* re.c (make_regexp): use onig_new_with_source to keep
|
||||||
|
|
|
@ -25,15 +25,8 @@ module REXML
|
||||||
#
|
#
|
||||||
# Nat Price gave me some good ideas for the API.
|
# Nat Price gave me some good ideas for the API.
|
||||||
class BaseParser
|
class BaseParser
|
||||||
if String.method_defined? :encode
|
LETTER = '[:alpha:]'
|
||||||
# Oniguruma / POSIX [understands unicode]
|
DIGIT = '[:digit:]'
|
||||||
LETTER = '[[:alpha:]]'
|
|
||||||
DIGIT = '[[:digit:]]'
|
|
||||||
else
|
|
||||||
# Ruby < 1.9 [doesn't understand unicode]
|
|
||||||
LETTER = 'a-zA-Z'
|
|
||||||
DIGIT = '\d'
|
|
||||||
end
|
|
||||||
|
|
||||||
COMBININGCHAR = '' # TODO
|
COMBININGCHAR = '' # TODO
|
||||||
EXTENDER = '' # TODO
|
EXTENDER = '' # TODO
|
||||||
|
@ -42,7 +35,7 @@ module REXML
|
||||||
NAME_STR= "(?:(#{NCNAME_STR}):)?(#{NCNAME_STR})"
|
NAME_STR= "(?:(#{NCNAME_STR}):)?(#{NCNAME_STR})"
|
||||||
UNAME_STR= "(?:#{NCNAME_STR}:)?#{NCNAME_STR}"
|
UNAME_STR= "(?:#{NCNAME_STR}:)?#{NCNAME_STR}"
|
||||||
|
|
||||||
NAMECHAR = '[\-\w\d\.:]'
|
NAMECHAR = '[\-\w:]'
|
||||||
NAME = "([\\w:]#{NAMECHAR}*)"
|
NAME = "([\\w:]#{NAMECHAR}*)"
|
||||||
NMTOKEN = "(?:#{NAMECHAR})+"
|
NMTOKEN = "(?:#{NAMECHAR})+"
|
||||||
NMTOKENS = "#{NMTOKEN}(\\s+#{NMTOKEN})*"
|
NMTOKENS = "#{NMTOKEN}(\\s+#{NMTOKEN})*"
|
||||||
|
|
|
@ -551,7 +551,7 @@ module REXML
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
#puts "BEFORE WITH '#{rest}'"
|
#puts "BEFORE WITH '#{rest}'"
|
||||||
rest = LocationPath(rest, n) if rest =~ /\A[\/\.\@\[\w_*]/
|
rest = LocationPath(rest, n) if rest =~ /\A[\/\.\@\[\w*]/
|
||||||
parsed.concat(n)
|
parsed.concat(n)
|
||||||
return rest
|
return rest
|
||||||
end
|
end
|
||||||
|
|
|
@ -93,12 +93,11 @@ module REXML
|
||||||
entity_filter=nil, illegal=NEEDS_A_SECOND_CHECK )
|
entity_filter=nil, illegal=NEEDS_A_SECOND_CHECK )
|
||||||
|
|
||||||
@raw = false
|
@raw = false
|
||||||
|
@parent = nil
|
||||||
|
|
||||||
if parent
|
if parent
|
||||||
super( parent )
|
super( parent )
|
||||||
@raw = parent.raw
|
@raw = parent.raw
|
||||||
else
|
|
||||||
@parent = nil
|
|
||||||
end
|
end
|
||||||
|
|
||||||
@raw = raw unless raw.nil?
|
@raw = raw unless raw.nil?
|
||||||
|
|
|
@ -2,10 +2,10 @@ module REXML
|
||||||
# Defines a number of tokens used for parsing XML. Not for general
|
# Defines a number of tokens used for parsing XML. Not for general
|
||||||
# consumption.
|
# consumption.
|
||||||
module XMLTokens
|
module XMLTokens
|
||||||
NCNAME_STR= '[\w:][\-\w\d.]*'
|
NCNAME_STR= '[\w:][\-\w.]*'
|
||||||
NAME_STR= "(?:#{NCNAME_STR}:)?#{NCNAME_STR}"
|
NAME_STR= "(?:#{NCNAME_STR}:)?#{NCNAME_STR}"
|
||||||
|
|
||||||
NAMECHAR = '[\-\w\d\.:]'
|
NAMECHAR = '[\-\w\.:]'
|
||||||
NAME = "([\\w:]#{NAMECHAR}*)"
|
NAME = "([\\w:]#{NAMECHAR}*)"
|
||||||
NMTOKEN = "(?:#{NAMECHAR})+"
|
NMTOKEN = "(?:#{NAMECHAR})+"
|
||||||
NMTOKENS = "#{NMTOKEN}(\\s+#{NMTOKEN})*"
|
NMTOKENS = "#{NMTOKEN}(\\s+#{NMTOKEN})*"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue