From e84bb5d9cf6a40bafbde0c3bcc3c99adbfd18c09 Mon Sep 17 00:00:00 2001 From: murphy Date: Sat, 17 Apr 2010 00:03:51 +0000 Subject: Fixing bug in Java and JSON scanners (unfinished strings where not closed correctly). --- Changes.textile | 4 ++++ etc/coderay-lib.tmproj | 55 ++++++++++++++++++++++---------------------- lib/coderay/scanners/java.rb | 2 +- lib/coderay/scanners/json.rb | 8 ++----- 4 files changed, 35 insertions(+), 34 deletions(-) diff --git a/Changes.textile b/Changes.textile index ac20c94..180371c 100644 --- a/Changes.textile +++ b/Changes.textile @@ -154,6 +154,10 @@ h3. @Scanners::JavaScript@ * *FIXED*: Don't keep state of XML scanner between calls for E4X literals. +h3. @Scanners::Java@, @Scanners::JSON@ + +* *FIXED*: Close unfinished strings with the correct token kind. + h2. Changes in 0.9.2 diff --git a/etc/coderay-lib.tmproj b/etc/coderay-lib.tmproj index 8c3863a..b4d2d6a 100644 --- a/etc/coderay-lib.tmproj +++ b/etc/coderay-lib.tmproj @@ -3,10 +3,12 @@ currentDocument - ../lib/coderay/scanners/diff.rb + speedup/direct-stream.rb documents + expanded + name lib regexFolderFilter @@ -15,8 +17,6 @@ ../lib - expanded - name bin regexFolderFilter @@ -28,15 +28,13 @@ filename ../diff lastUsed - 2010-04-11T23:04:37Z + 2010-04-15T00:18:50Z filename ../Changes.textile lastUsed - 2010-04-11T23:14:08Z - selected - + 2010-04-15T00:12:51Z filename @@ -55,6 +53,8 @@ ../ftp.yaml + expanded + name etc regexFolderFilter @@ -89,6 +89,8 @@ ../rake_helpers + expanded + name rake_tasks regexFolderFilter @@ -114,59 +116,58 @@ filename ../test/scanners/coderay_suite.rb lastUsed - 2010-04-11T21:08:06Z + 2010-04-15T23:26:11Z filename ../test/scanners/suite.rb lastUsed - 2010-03-26T05:02:45Z + 2010-04-14T23:56:18Z filename ../bench/bench.rb lastUsed - 2010-03-26T04:44:40Z + 2010-04-15T01:40:12Z fileHierarchyDrawerWidth 213 metaData - ../lib/coderay/scanners/diff.rb + speedup/current.rb caret column - 34 - line 38 + line + 115 - columnSelection - firstVisibleColumn 0 firstVisibleLine - 17 - selectFrom - - column - 23 - line - 38 - - selectTo + 90 + + speedup/direct-stream.rb + + caret column - 34 + 27 line - 38 + 150 + firstVisibleColumn + 0 + firstVisibleLine + 132 openDocuments - ../lib/coderay/scanners/diff.rb + speedup/current.rb + speedup/direct-stream.rb showFileHierarchyDrawer diff --git a/lib/coderay/scanners/java.rb b/lib/coderay/scanners/java.rb index 2dfb1b6..e4a7421 100644 --- a/lib/coderay/scanners/java.rb +++ b/lib/coderay/scanners/java.rb @@ -149,7 +149,7 @@ module Scanners elsif scan(/\\./m) kind = :content elsif scan(/ \\ | $ /x) - tokens << [:close, :delimiter] + tokens << [:close, state] kind = :error state = :initial else diff --git a/lib/coderay/scanners/json.rb b/lib/coderay/scanners/json.rb index 163ec46..ca74ff3 100644 --- a/lib/coderay/scanners/json.rb +++ b/lib/coderay/scanners/json.rb @@ -14,9 +14,6 @@ module Scanners :error, :integer, :operator, :value, ] # :nodoc: - CONSTANTS = %w( true false null ) # :nodoc: - IDENT_KIND = WordList.new(:key).add(CONSTANTS, :value) # :nodoc: - ESCAPE = / [bfnrt\\"\/] /x # :nodoc: UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # :nodoc: @@ -26,7 +23,6 @@ module Scanners state = :initial stack = [] - string_delimiter = nil key_expected = false until eos? @@ -50,7 +46,7 @@ module Scanners when '}', ']' then stack.pop # no error recovery, but works for valid JSON end elsif match = scan(/ true | false | null /x) - kind = IDENT_KIND[match] + kind = :value elsif match = scan(/-?(?:0|[1-9]\d*)/) kind = :integer if scan(/\.\d+(?:[eE][-+]?\d+)?|[eE][-+]?\d+/) @@ -79,7 +75,7 @@ module Scanners elsif scan(/\\./m) kind = :content elsif scan(/ \\ | $ /x) - tokens << [:close, :delimiter] + tokens << [:close, state] kind = :error state = :initial else -- cgit v1.2.1