|
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