# File lib/coderay/scanners/diff.rb, line 9 9: def scan_tokens tokens, options 10: 11: line_kind = nil 12: state = :initial 13: 14: until eos? 15: kind = match = nil 16: 17: if match = scan(/\n/) 18: if line_kind 19: tokens << [:end_line, line_kind] 20: line_kind = nil 21: end 22: tokens << [match, :space] 23: next 24: end 25: 26: case state 27: 28: when :initial 29: if match = scan(/--- |\+\+\+ |=+|_+/) 30: tokens << [:begin_line, line_kind = :head] 31: tokens << [match, :head] 32: next unless match = scan(/.+/) 33: kind = :plain 34: elsif match = scan(/Index: |Property changes on: /) 35: tokens << [:begin_line, line_kind = :head] 36: tokens << [match, :head] 37: next unless match = scan(/.+/) 38: kind = :plain 39: elsif match = scan(/Added: /) 40: tokens << [:begin_line, line_kind = :head] 41: tokens << [match, :head] 42: next unless match = scan(/.+/) 43: kind = :plain 44: state = :added 45: elsif match = scan(/\\ /) 46: tokens << [:begin_line, line_kind = :change] 47: tokens << [match, :change] 48: next unless match = scan(/.+/) 49: kind = :plain 50: elsif scan(/(@@)((?>[^@\n]*))(@@)/) 51: tokens << [:begin_line, line_kind = :change] 52: tokens << [self[1], :change] 53: tokens << [self[2], :plain] 54: tokens << [self[3], :change] 55: next unless match = scan(/.+/) 56: kind = :plain 57: elsif match = scan(/\+/) 58: tokens << [:begin_line, line_kind = :insert] 59: tokens << [match, :insert] 60: next unless match = scan(/.+/) 61: kind = :plain 62: elsif match = scan(/-/) 63: tokens << [:begin_line, line_kind = :delete] 64: tokens << [match, :delete] 65: next unless match = scan(/.+/) 66: kind = :plain 67: elsif scan(/ .*/) 68: kind = :comment 69: elsif scan(/.+/) 70: tokens << [:begin_line, line_kind = :head] 71: kind = :plain 72: else 73: raise_inspect 'else case rached' 74: end 75: 76: when :added 77: if match = scan(/ \+/) 78: tokens << [:begin_line, line_kind = :insert] 79: tokens << [match, :insert] 80: next unless match = scan(/.+/) 81: kind = :plain 82: else 83: state = :initial 84: next 85: end 86: end 87: 88: match ||= matched 89: if $CODERAY_DEBUG and not kind 90: raise_inspect 'Error token %p in line %d' % 91: [[match, kind], line], tokens 92: end 93: raise_inspect 'Empty token', tokens unless match 94: 95: tokens << [match, kind] 96: end 97: 98: tokens << [:end_line, line_kind] if line_kind 99: tokens 100: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.