module ScientificNameDirty

Autogenerated from a Treetop grammar. Edits may be lost.

Public Instance Methods

_nt_approximate_year() click to toggle source
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 827
def _nt_approximate_year
  start_index = index
  if node_cache[:approximate_year].has_key?(index)
    cached = node_cache[:approximate_year][index]
    if cached
      node_cache[:approximate_year][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0, s0 = index, []
  if (match_len = has_terminal?("[", false, index))
    r1 = true
    @index += match_len
  else
    terminal_parse_failure("[")
    r1 = nil
  end
  s0 << r1
  if r1
    r2 = _nt_space
    s0 << r2
    if r2
      r3 = _nt_year_number
      s0 << r3
      if r3
        r4 = _nt_space
        s0 << r4
        if r4
          s5, i5 = [], index
          loop do
            if (match_len = has_terminal?("]", false, index))
              r6 = true
              @index += match_len
            else
              terminal_parse_failure("]")
              r6 = nil
            end
            if r6
              s5 << r6
            else
              break
            end
          end
          if s5.empty?
            @index = i5
            r5 = nil
          else
            r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
          end
          s0 << r5
        end
      end
    end
  end
  if s0.last
    r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
    r0.extend(ApproximateYear0)
    r0.extend(ApproximateYear1)
  else
    @index = i0
    r0 = nil
  end

  node_cache[:approximate_year][start_index] = r0

  r0
end
_nt_double_year() click to toggle source
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 918
def _nt_double_year
  start_index = index
  if node_cache[:double_year].has_key?(index)
    cached = node_cache[:double_year][index]
    if cached
      node_cache[:double_year][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0, s0 = index, []
  r1 = _nt_year_number
  s0 << r1
  if r1
    if (match_len = has_terminal?("-", false, index))
      r2 = true
      @index += match_len
    else
      terminal_parse_failure("-")
      r2 = nil
    end
    s0 << r2
    if r2
      s3, i3 = [], index
      loop do
        if has_terminal?(@regexps[gr = '\A[0-9]'] ||= Regexp.new(gr), :regexp, index)
          r4 = true
          @index += 1
        else
          terminal_parse_failure('[0-9]')
          r4 = nil
        end
        if r4
          s3 << r4
        else
          break
        end
      end
      if s3.empty?
        @index = i3
        r3 = nil
      else
        r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
      end
      s0 << r3
      if r3
        if has_terminal?(@regexps[gr = '\A[A-Za-z]'] ||= Regexp.new(gr), :regexp, index)
          r6 = true
          @index += 1
        else
          terminal_parse_failure('[A-Za-z]')
          r6 = nil
        end
        if r6
          r5 = r6
        else
          r5 = instantiate_node(SyntaxNode,input, index...index)
        end
        s0 << r5
        if r5
          if has_terminal?(@regexps[gr = '\A[\\?]'] ||= Regexp.new(gr), :regexp, index)
            r8 = true
            @index += 1
          else
            terminal_parse_failure('[\\?]')
            r8 = nil
          end
          if r8
            r7 = r8
          else
            r7 = instantiate_node(SyntaxNode,input, index...index)
          end
          s0 << r7
        end
      end
    end
  end
  if s0.last
    r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
    r0.extend(DoubleYear0)
    r0.extend(DoubleYear1)
  else
    @index = i0
    r0 = nil
  end

  node_cache[:double_year][start_index] = r0

  r0
end
_nt_garbage() click to toggle source
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 1185
def _nt_garbage
  start_index = index
  if node_cache[:garbage].has_key?(index)
    cached = node_cache[:garbage][index]
    if cached
      node_cache[:garbage][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0 = index
  i1, s1 = index, []
  r2 = _nt_space
  s1 << r2
  if r2
    if has_terminal?(@regexps[gr = '\A["\',]'] ||= Regexp.new(gr), :regexp, index)
      r3 = true
      @index += 1
    else
      terminal_parse_failure('["\',]')
      r3 = nil
    end
    s1 << r3
    if r3
      r4 = _nt_space
      s1 << r4
      if r4
        s5, i5 = [], index
        loop do
          if has_terminal?(@regexps[gr = '\A[^щ]'] ||= Regexp.new(gr), :regexp, index)
            r6 = true
            @index += 1
          else
            terminal_parse_failure('[^щ]')
            r6 = nil
          end
          if r6
            s5 << r6
          else
            break
          end
        end
        r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
        s1 << r5
      end
    end
  end
  if s1.last
    r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
    r1.extend(Garbage0)
  else
    @index = i1
    r1 = nil
  end
  if r1
    r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
    r0 = r1
  else
    i7, s7 = index, []
    r8 = _nt_space_hard
    s7 << r8
    if r8
      s9, i9 = [], index
      loop do
        if has_terminal?(@regexps[gr = '\A[^ш]'] ||= Regexp.new(gr), :regexp, index)
          r10 = true
          @index += 1
        else
          terminal_parse_failure('[^ш]')
          r10 = nil
        end
        if r10
          s9 << r10
        else
          break
        end
      end
      if s9.empty?
        @index = i9
        r9 = nil
      else
        r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
      end
      s7 << r9
    end
    if s7.last
      r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
      r7.extend(Garbage1)
    else
      @index = i7
      r7 = nil
    end
    if r7
      r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
      r0 = r7
    else
      @index = i0
      r0 = nil
    end
  end

  node_cache[:garbage][start_index] = r0

  r0
end
_nt_infraspecies() click to toggle source
Calls superclass method ScientificNameClean#_nt_infraspecies
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 236
def _nt_infraspecies
  start_index = index
  if node_cache[:infraspecies].has_key?(index)
    cached = node_cache[:infraspecies][index]
    if cached
      node_cache[:infraspecies][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0 = index
  i1, s1 = index, []
  r2 = _nt_infraspecies_string
  s1 << r2
  if r2
    r3 = _nt_space
    s1 << r3
    if r3
      r4 = _nt_year
      s1 << r4
    end
  end
  if s1.last
    r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
    r1.extend(Infraspecies0)
    r1.extend(Infraspecies1)
  else
    @index = i1
    r1 = nil
  end
  if r1
    r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
    r0 = r1
  else
    i5, s5 = index, []
    r6 = _nt_infraspecies_string
    s5 << r6
    if r6
      r7 = _nt_space
      s5 << r7
      if r7
        r8 = _nt_string_authorship_inconsistencies
        s5 << r8
        if r8
          r9 = _nt_space
          s5 << r9
          if r9
            r10 = _nt_authorship
            s5 << r10
          end
        end
      end
    end
    if s5.last
      r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
      r5.extend(Infraspecies2)
      r5.extend(Infraspecies3)
    else
      @index = i5
      r5 = nil
    end
    if r5
      r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
      r0 = r5
    else
      r11 = super
      if r11
        r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
        r0 = r11
      else
        @index = i0
        r0 = nil
      end
    end
  end

  node_cache[:infraspecies][start_index] = r0

  r0
end
_nt_latin_word() click to toggle source
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 423
def _nt_latin_word
  start_index = index
  if node_cache[:latin_word].has_key?(index)
    cached = node_cache[:latin_word][index]
    if cached
      node_cache[:latin_word][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0, s0 = index, []
  if has_terminal?(@regexps[gr = '\A[a-z\\-æœàâåãäáçčëéèíìïňññóòôøõöúùüŕřŗššşž]'] ||= Regexp.new(gr), :regexp, index)
    r1 = true
    @index += 1
  else
    terminal_parse_failure('[a-z\\-æœàâåãäáçčëéèíìïňññóòôøõöúùüŕřŗššşž]')
    r1 = nil
  end
  s0 << r1
  if r1
    r2 = _nt_valid_name_letters
    s0 << r2
  end
  if s0.last
    r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
    r0.extend(LatinWord0)
    r0.extend(LatinWord1)
  else
    @index = i0
    r0 = nil
  end

  node_cache[:latin_word][start_index] = r0

  r0
end
_nt_left_paren() click to toggle source
Calls superclass method ScientificNameClean#_nt_left_paren
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 589
def _nt_left_paren
  start_index = index
  if node_cache[:left_paren].has_key?(index)
    cached = node_cache[:left_paren][index]
    if cached
      node_cache[:left_paren][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0 = index
  i1, s1 = index, []
  if (match_len = has_terminal?("(", false, index))
    r2 = true
    @index += match_len
  else
    terminal_parse_failure("(")
    r2 = nil
  end
  s1 << r2
  if r2
    r3 = _nt_space
    s1 << r3
    if r3
      if (match_len = has_terminal?("(", false, index))
        r4 = true
        @index += match_len
      else
        terminal_parse_failure("(")
        r4 = nil
      end
      s1 << r4
    end
  end
  if s1.last
    r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
    r1.extend(LeftParen0)
  else
    @index = i1
    r1 = nil
  end
  if r1
    r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
    r0 = r1
  else
    r5 = super
    if r5
      r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
      r0 = r5
    else
      @index = i0
      r0 = nil
    end
  end

  node_cache[:left_paren][start_index] = r0

  r0
end
_nt_page_number() click to toggle source
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 1081
def _nt_page_number
  start_index = index
  if node_cache[:page_number].has_key?(index)
    cached = node_cache[:page_number][index]
    if cached
      node_cache[:page_number][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0, s0 = index, []
  if (match_len = has_terminal?(":", false, index))
    r1 = true
    @index += match_len
  else
    terminal_parse_failure(":")
    r1 = nil
  end
  s0 << r1
  if r1
    r2 = _nt_space
    s0 << r2
    if r2
      s3, i3 = [], index
      loop do
        if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
          r4 = true
          @index += 1
        else
          terminal_parse_failure('[\\d]')
          r4 = nil
        end
        if r4
          s3 << r4
        else
          break
        end
      end
      if s3.empty?
        @index = i3
        r3 = nil
      else
        r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
      end
      s0 << r3
    end
  end
  if s0.last
    r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
    r0.extend(PageNumber0)
    r0.extend(PageNumber1)
  else
    @index = i0
    r0 = nil
  end

  node_cache[:page_number][start_index] = r0

  r0
end
_nt_right_paren() click to toggle source
Calls superclass method ScientificNameClean#_nt_right_paren
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 521
def _nt_right_paren
  start_index = index
  if node_cache[:right_paren].has_key?(index)
    cached = node_cache[:right_paren][index]
    if cached
      node_cache[:right_paren][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0 = index
  i1, s1 = index, []
  if (match_len = has_terminal?(")", false, index))
    r2 = true
    @index += match_len
  else
    terminal_parse_failure(")")
    r2 = nil
  end
  s1 << r2
  if r2
    r3 = _nt_space
    s1 << r3
    if r3
      if (match_len = has_terminal?(")", false, index))
        r4 = true
        @index += match_len
      else
        terminal_parse_failure(")")
        r4 = nil
      end
      s1 << r4
    end
  end
  if s1.last
    r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
    r1.extend(RightParen0)
  else
    @index = i1
    r1 = nil
  end
  if r1
    r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
    r0 = r1
  else
    r5 = super
    if r5
      r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
      r0 = r5
    else
      @index = i0
      r0 = nil
    end
  end

  node_cache[:right_paren][start_index] = r0

  r0
end
_nt_root() click to toggle source
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 54
def _nt_root
  start_index = index
  if node_cache[:root].has_key?(index)
    cached = node_cache[:root][index]
    if cached
      node_cache[:root][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0, s0 = index, []
  r1 = _nt_space
  s0 << r1
  if r1
    r2 = _nt_scientific_name_5
    s0 << r2
    if r2
      r3 = _nt_space
      s0 << r3
    end
  end
  if s0.last
    r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
    r0.extend(Root0)
    r0.extend(Root1)
  else
    @index = i0
    r0 = nil
  end

  node_cache[:root][start_index] = r0

  r0
end
_nt_scientific_name_5() click to toggle source
Calls superclass method ScientificNameClean#_nt_scientific_name_5
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 118
def _nt_scientific_name_5
  start_index = index
  if node_cache[:scientific_name_5].has_key?(index)
    cached = node_cache[:scientific_name_5][index]
    if cached
      node_cache[:scientific_name_5][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0 = index
  i1, s1 = index, []
  r2 = _nt_scientific_name_4
  s1 << r2
  if r2
    r3 = _nt_garbage
    s1 << r3
  end
  if s1.last
    r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
    r1.extend(ScientificName50)
    r1.extend(ScientificName51)
  else
    @index = i1
    r1 = nil
  end
  if r1
    r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
    r0 = r1
  else
    r4 = super
    if r4
      r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
      r0 = r4
    else
      @index = i0
      r0 = nil
    end
  end

  node_cache[:scientific_name_5][start_index] = r0

  r0
end
_nt_species() click to toggle source
Calls superclass method ScientificNameClean#_nt_species
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 350
def _nt_species
  start_index = index
  if node_cache[:species].has_key?(index)
    cached = node_cache[:species][index]
    if cached
      node_cache[:species][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0 = index
  i1, s1 = index, []
  r2 = _nt_species_string
  s1 << r2
  if r2
    r3 = _nt_space
    s1 << r3
    if r3
      r4 = _nt_year
      s1 << r4
    end
  end
  if s1.last
    r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
    r1.extend(Species0)
    r1.extend(Species1)
  else
    @index = i1
    r1 = nil
  end
  if r1
    r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
    r0 = r1
  else
    r5 = super
    if r5
      r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
      r0 = r5
    else
      @index = i0
      r0 = nil
    end
  end

  node_cache[:species][start_index] = r0

  r0
end
_nt_string_authorship_inconsistencies() click to toggle source
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 1143
def _nt_string_authorship_inconsistencies
  start_index = index
  if node_cache[:string_authorship_inconsistencies].has_key?(index)
    cached = node_cache[:string_authorship_inconsistencies][index]
    if cached
      node_cache[:string_authorship_inconsistencies][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  if (match_len = has_terminal?("corrig.", false, index))
    r0 = instantiate_node(SyntaxNode,input, index...(index + match_len))
    @index += match_len
  else
    terminal_parse_failure("corrig.")
    r0 = nil
  end

  node_cache[:string_authorship_inconsistencies][start_index] = r0

  r0
end
_nt_valid_name_letters() click to toggle source
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 475
def _nt_valid_name_letters
  start_index = index
  if node_cache[:valid_name_letters].has_key?(index)
    cached = node_cache[:valid_name_letters][index]
    if cached
      node_cache[:valid_name_letters][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  s0, i0 = [], index
  loop do
    if has_terminal?(@regexps[gr = '\A[a-z\\-æœàâåãäáçčëéèíìïňññóòôøõöúùüŕřŗššşž]'] ||= Regexp.new(gr), :regexp, index)
      r1 = true
      @index += 1
    else
      terminal_parse_failure('[a-z\\-æœàâåãäáçčëéèíìïňññóòôøõöúùüŕřŗššşž]')
      r1 = nil
    end
    if r1
      s0 << r1
    else
      break
    end
  end
  if s0.empty?
    @index = i0
    r0 = nil
  else
    r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
    r0.extend(ValidNameLetters0)
  end

  node_cache[:valid_name_letters][start_index] = r0

  r0
end
_nt_year() click to toggle source
Calls superclass method ScientificNameClean#_nt_year
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 706
def _nt_year
  start_index = index
  if node_cache[:year].has_key?(index)
    cached = node_cache[:year][index]
    if cached
      node_cache[:year][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0 = index
  i1, s1 = index, []
  r2 = _nt_year_number
  s1 << r2
  if r2
    r3 = _nt_space
    s1 << r3
    if r3
      r4 = _nt_approximate_year
      s1 << r4
    end
  end
  if s1.last
    r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
    r1.extend(Year0)
    r1.extend(Year1)
  else
    @index = i1
    r1 = nil
  end
  if r1
    r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
    r0 = r1
  else
    i5, s5 = index, []
    r6 = _nt_year_number
    s5 << r6
    if r6
      r7 = _nt_space
      s5 << r7
      if r7
        r8 = _nt_page_number
        s5 << r8
      end
    end
    if s5.last
      r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
      r5.extend(Year2)
      r5.extend(Year3)
    else
      @index = i5
      r5 = nil
    end
    if r5
      r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
      r0 = r5
    else
      r9 = _nt_year_number_with_punctuation
      if r9
        r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
        r0 = r9
      else
        r10 = _nt_approximate_year
        if r10
          r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
          r0 = r10
        else
          r11 = _nt_double_year
          if r11
            r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
            r0 = r11
          else
            r12 = super
            if r12
              r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
              r0 = r12
            else
              @index = i0
              r0 = nil
            end
          end
        end
      end
    end
  end

  node_cache[:year][start_index] = r0

  r0
end
_nt_year_number_with_punctuation() click to toggle source
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 1031
def _nt_year_number_with_punctuation
  start_index = index
  if node_cache[:year_number_with_punctuation].has_key?(index)
    cached = node_cache[:year_number_with_punctuation][index]
    if cached
      node_cache[:year_number_with_punctuation][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0, s0 = index, []
  r1 = _nt_year_number
  s0 << r1
  if r1
    if (match_len = has_terminal?(".", false, index))
      r2 = true
      @index += match_len
    else
      terminal_parse_failure(".")
      r2 = nil
    end
    s0 << r2
  end
  if s0.last
    r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
    r0.extend(YearNumberWithPunctuation0)
    r0.extend(YearNumberWithPunctuation1)
  else
    @index = i0
    r0 = nil
  end

  node_cache[:year_number_with_punctuation][start_index] = r0

  r0
end
root() click to toggle source
# File lib/biodiversity/parser/scientific_name_dirty.rb, line 8
def root
  @root ||= :root
end