summaryrefslogtreecommitdiff
path: root/lib/coderay/scanners
diff options
context:
space:
mode:
authormurphy <murphy@rubychan.de>2006-10-15 09:08:50 +0000
committermurphy <murphy@rubychan.de>2006-10-15 09:08:50 +0000
commite5088ab940621155554a2e9455b57614c6ff015b (patch)
tree2ff719674a7855c0de5153a0bc353058cb33df62 /lib/coderay/scanners
parent8f4daba117e5b3faf2d4678a3444c05ad946991e (diff)
downloadcoderay-e5088ab940621155554a2e9455b57614c6ff015b.tar.gz
Tests:
- improved coderay_suite.rb (random and shuffled tests, max parameter, scannerlang->lang, sorted test cases...) - changed html output extension to .actual.html to svn:ignore them - fixed some tests (deleted $Id$ etc.) - made XHTML testcase work Scanners: - fixed HTML, Delphi and Nitro scanners thanks to new tests Engine: - Tokens#fix and #fix! added (yet to be tested) - improved Scanner#raise_inspect a bit Converted more files to UNIX format (go away, stinkin' \r!)
Diffstat (limited to 'lib/coderay/scanners')
-rw-r--r--lib/coderay/scanners/delphi.rb3
-rw-r--r--lib/coderay/scanners/html.rb3
-rw-r--r--lib/coderay/scanners/nitro_xhtml.rb3
3 files changed, 8 insertions, 1 deletions
diff --git a/lib/coderay/scanners/delphi.rb b/lib/coderay/scanners/delphi.rb
index c141874..fb37f67 100644
--- a/lib/coderay/scanners/delphi.rb
+++ b/lib/coderay/scanners/delphi.rb
@@ -101,6 +101,7 @@ module Scanners
state = :initial
next
elsif scan(/\n/)
+ kind = :error
state = :initial
else
raise "else case \' reached; %p not handled." % peek(1), tokens
@@ -114,7 +115,7 @@ module Scanners
match ||= matched
if $DEBUG and not kind
raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
+ [[match, kind], line], tokens, state
end
raise_inspect 'Empty token', tokens unless match
diff --git a/lib/coderay/scanners/html.rb b/lib/coderay/scanners/html.rb
index 181e5d3..5f647d3 100644
--- a/lib/coderay/scanners/html.rb
+++ b/lib/coderay/scanners/html.rb
@@ -107,6 +107,7 @@ module Scanners
kind = :tag
state = :initial
elsif scan(/./)
+ kind = :error
state = :attribute
end
@@ -137,6 +138,8 @@ module Scanners
next
elsif scan(/#{ENTITY}/ox)
kind = :entity
+ elsif scan(/&/)
+ kind = :content
elsif scan(/[\n>]/)
tokens << [:close, :string]
kind = :error
diff --git a/lib/coderay/scanners/nitro_xhtml.rb b/lib/coderay/scanners/nitro_xhtml.rb
index baef162..19354d9 100644
--- a/lib/coderay/scanners/nitro_xhtml.rb
+++ b/lib/coderay/scanners/nitro_xhtml.rb
@@ -113,6 +113,9 @@ module Scanners
elsif entity = scan(/#{NITRO_ENTITY}/o)
tokens << [entity, :entity]
+
+ elsif scan(/%/)
+ tokens << [matched, :error]
else
raise_inspect 'else-case reached!', tokens