Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Various updates #309

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Feb 10, 2023
Prev Previous commit
Next Next commit
Start autoloading more things
  • Loading branch information
kddnewton committed Feb 10, 2023
commit db06d7ebe75f4fb68202435c06f81a56c82526b3
28 changes: 8 additions & 20 deletions lib/syntax_tree.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

require_relative "syntax_tree/formatter"
require_relative "syntax_tree/node"
require_relative "syntax_tree/dsl"
require_relative "syntax_tree/version"

require_relative "syntax_tree/basic_visitor"
Expand All @@ -23,36 +22,25 @@
require_relative "syntax_tree/visitor/environment"
require_relative "syntax_tree/visitor/with_environment"

require_relative "syntax_tree/mermaid"
require_relative "syntax_tree/parser"
require_relative "syntax_tree/pattern"
require_relative "syntax_tree/search"
require_relative "syntax_tree/index"

require_relative "syntax_tree/yarv"
require_relative "syntax_tree/yarv/basic_block"
require_relative "syntax_tree/yarv/bf"
require_relative "syntax_tree/yarv/calldata"
require_relative "syntax_tree/yarv/compiler"
require_relative "syntax_tree/yarv/control_flow_graph"
require_relative "syntax_tree/yarv/data_flow_graph"
require_relative "syntax_tree/yarv/decompiler"
require_relative "syntax_tree/yarv/disassembler"
require_relative "syntax_tree/yarv/instruction_sequence"
require_relative "syntax_tree/yarv/instructions"
require_relative "syntax_tree/yarv/legacy"
require_relative "syntax_tree/yarv/local_table"
require_relative "syntax_tree/yarv/sea_of_nodes"
require_relative "syntax_tree/yarv/assembler"
require_relative "syntax_tree/yarv/vm"

require_relative "syntax_tree/translation"

# Syntax Tree is a suite of tools built on top of the internal CRuby parser. It
# provides the ability to generate a syntax tree from source, as well as the
# tools necessary to inspect and manipulate that syntax tree. It can be used to
# build formatters, linters, language servers, and more.
module SyntaxTree
# Syntax Tree the library has many features that aren't always used by the
# CLI. Requiring those features takes time, so we autoload as many constants
# as possible in order to keep the CLI as fast as possible.

autoload :DSL, "syntax_tree/dsl"
autoload :Mermaid, "syntax_tree/mermaid"
autoload :YARV, "syntax_tree/yarv"

# This holds references to objects that respond to both #parse and #format
# so that we can use them in the CLI.
HANDLERS = {}
Expand Down
16 changes: 16 additions & 0 deletions lib/syntax_tree/yarv.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# frozen_string_literal: true

require_relative "yarv/basic_block"
require_relative "yarv/bf"
require_relative "yarv/calldata"
require_relative "yarv/compiler"
require_relative "yarv/control_flow_graph"
require_relative "yarv/data_flow_graph"
require_relative "yarv/decompiler"
require_relative "yarv/disassembler"
require_relative "yarv/instruction_sequence"
require_relative "yarv/instructions"
require_relative "yarv/legacy"
require_relative "yarv/local_table"
require_relative "yarv/sea_of_nodes"
require_relative "yarv/assembler"
require_relative "yarv/vm"

module SyntaxTree
# This module provides an object representation of the YARV bytecode.
module YARV
Expand Down