   parse: (@_source, @options = {})->
     {@parentParser, allowPartialMatch, rule, isSubparse, logParsingFailures} = @options
 
-    startRule = @getStartRule rule
+    startRule = @getRule rule
 
     @_resetParserTracking()
     @_logParsingFailures = logParsingFailures

          # NOTE: we could speed this up by not completely trashing the cache
          @parse @_source, merge @options, logParsingFailures: true

  getStartRule: (ruleName) ->
    ruleName ||= @rootRuleName
    throw new Error "No root rule defined." unless ruleName
    unless startRule = @rules[ruleName]
      throw new Error "Could not find rule: #{ruleName}"
    startRule

  addToExpectingInfo = (node, into, value) ->
    if node.parent

    @_getRuleParseCache(ruleName)[offset]

  _cacheMatch: (ruleName, matchingNode) ->
    Stats.add "cacheMatch"
    @_getRuleParseCache(ruleName)[matchingNode.offset] = matchingNode
    matchingNode

  _cacheNoMatch: (ruleName, offset) ->
    Stats.add "cacheNoMatch"
    @_getRuleParseCache(ruleName)[offset] = "no_match"
    null

