|
9 | 9 |
|
10 | 10 | require_relative "syntax_tree/formatter" |
11 | 11 | require_relative "syntax_tree/node" |
12 | | -require_relative "syntax_tree/dsl" |
13 | 12 | require_relative "syntax_tree/version" |
14 | 13 |
|
15 | 14 | require_relative "syntax_tree/basic_visitor" |
|
23 | 22 | require_relative "syntax_tree/visitor/environment" |
24 | 23 | require_relative "syntax_tree/visitor/with_environment" |
25 | 24 |
|
26 | | -require_relative "syntax_tree/mermaid" |
27 | 25 | require_relative "syntax_tree/parser" |
28 | 26 | require_relative "syntax_tree/pattern" |
29 | 27 | require_relative "syntax_tree/search" |
30 | 28 | require_relative "syntax_tree/index" |
31 | | - |
32 | | -require_relative "syntax_tree/yarv" |
33 | | -require_relative "syntax_tree/yarv/basic_block" |
34 | | -require_relative "syntax_tree/yarv/bf" |
35 | | -require_relative "syntax_tree/yarv/calldata" |
36 | | -require_relative "syntax_tree/yarv/compiler" |
37 | | -require_relative "syntax_tree/yarv/control_flow_graph" |
38 | | -require_relative "syntax_tree/yarv/data_flow_graph" |
39 | | -require_relative "syntax_tree/yarv/decompiler" |
40 | | -require_relative "syntax_tree/yarv/disassembler" |
41 | | -require_relative "syntax_tree/yarv/instruction_sequence" |
42 | | -require_relative "syntax_tree/yarv/instructions" |
43 | | -require_relative "syntax_tree/yarv/legacy" |
44 | | -require_relative "syntax_tree/yarv/local_table" |
45 | | -require_relative "syntax_tree/yarv/sea_of_nodes" |
46 | | -require_relative "syntax_tree/yarv/assembler" |
47 | | -require_relative "syntax_tree/yarv/vm" |
48 | | - |
49 | 29 | require_relative "syntax_tree/translation" |
50 | 30 |
|
51 | 31 | # Syntax Tree is a suite of tools built on top of the internal CRuby parser. It |
52 | 32 | # provides the ability to generate a syntax tree from source, as well as the |
53 | 33 | # tools necessary to inspect and manipulate that syntax tree. It can be used to |
54 | 34 | # build formatters, linters, language servers, and more. |
55 | 35 | module SyntaxTree |
| 36 | + # Syntax Tree the library has many features that aren't always used by the |
| 37 | + # CLI. Requiring those features takes time, so we autoload as many constants |
| 38 | + # as possible in order to keep the CLI as fast as possible. |
| 39 | + |
| 40 | + autoload :DSL, "syntax_tree/dsl" |
| 41 | + autoload :Mermaid, "syntax_tree/mermaid" |
| 42 | + autoload :YARV, "syntax_tree/yarv" |
| 43 | + |
56 | 44 | # This holds references to objects that respond to both #parse and #format |
57 | 45 | # so that we can use them in the CLI. |
58 | 46 | HANDLERS = {} |
|
0 commit comments