Skip to content

Latest commit

 

History

History
21 lines (17 loc) · 947 Bytes

INTERNALS.md

File metadata and controls

21 lines (17 loc) · 947 Bytes

Entry points

Parser should be kept as slim as possible. This includes not loading any potentially large files when they are likely to be unused in practice.

Parser has five main (classes of) require entry points:

  • require 'parser'. Main entry point, requires all classes which are used across the entire library.
  • require 'parser/rubyXX'. Version-specific entry point. Can raise a NotImplementedError if current Ruby runtime is unable to parse the requested Ruby version.
  • require 'parser/all'. Requires all available parsers for released versions of Ruby. Can raise NotImplementedError.
  • require 'parser/runner'. Requires all the stuff which is useful for command-line tools but not otherwise.
  • require 'parser/runner/X'. Runner-specific entry point.

All non-main entry points internally require 'parser'. Additionally, all runner-specific entry points internally requre 'parser/runner'.