Module: Ibex::Frontend::DSL

Defined in:
lib/ibex/frontend/dsl.rb,
sig/ibex/frontend/dsl.rbs

Overview

Builds the same Grammar AST as the text frontend through a Ruby API.

Defined Under Namespace

Classes: Builder, PrecedenceBuilder, RuleBuilder

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.grammar(class_name:, superclass: nil, file: "(dsl)") {|builder| ... } ⇒ Object

RBS:

  • (class_name: Object, ?superclass: Object?, ?file: String) { (Builder) -> void } -> AST::Root

Yields:

  • (builder)


8
9
10
11
12
# File 'lib/ibex/frontend/dsl.rb', line 8

def grammar(class_name:, superclass: nil, file: "(dsl)")
  builder = Builder.new(class_name: class_name, superclass: superclass, file: file)
  yield builder
  builder.to_ast
end

Instance Method Details

#self?.grammar {|arg0| ... } ⇒ AST::Root

RBS:

  • (class_name: Object, ?superclass: Object?, ?file: String) { (Builder) -> void } -> AST::Root

Parameters:

  • class_name: (Object)
  • superclass: (Object, nil)
  • file: (String)

Yields:

Yield Parameters:

Yield Returns:

  • (void)

Returns:



8
# File 'sig/ibex/frontend/dsl.rbs', line 8

def self?.grammar: (class_name: Object, ?superclass: Object?, ?file: String) { (Builder) -> void } -> AST::Root