Module: Ibex::BisonImport

Defined in:
lib/ibex/bison_import.rb,
lib/ibex/bison_import/importer.rb,
lib/ibex/bison_import/tokenizer.rb,
sig/ibex/bison_import.rbs,
sig/ibex/bison_import/importer.rbs,
sig/ibex/bison_import/tokenizer.rbs

Overview

Clean-room, nonexecuting import of Bison grammar structure.

Defined Under Namespace

Classes: Action, BudgetExceeded, Directive, Importer, Result, Tokenizer

Constant Summary collapse

DIRECTIVES =

Returns:

  • (Hash[String, Symbol])
{
  "token" => :converted,
  "left" => :converted,
  "right" => :converted,
  "nonassoc" => :converted,
  "precedence" => :converted,
  "start" => :converted,
  "expect" => :converted,
  "expect-rr" => :converted,
  "empty" => :converted,
  "prec" => :converted,
  "nterm" => :recognized_metadata,
  "type" => :recognized_metadata,
  "union" => :recognized_metadata,
  "destructor" => :recognized_metadata,
  "printer" => :recognized_metadata,
  "param" => :recognized_metadata,
  "parse-param" => :recognized_metadata,
  "lex-param" => :recognized_metadata,
  "define" => :recognized_metadata,
  "code" => :recognized_metadata,
  "dprec" => :unsupported,
  "merge" => :unsupported,
  "glr-parser" => :unsupported,
  "nondeterministic-parser" => :unsupported,
  "locations" => :unsupported,
  "initial-action" => :unsupported,
  "language" => :unsupported,
  "skeleton" => :unsupported,
  "require" => :unsupported,
  "output" => :unsupported,
  "file-prefix" => :unsupported,
  "name-prefix" => :unsupported,
  "verbose" => :unsupported,
  "yacc" => :unsupported,
  "debug" => :unsupported,
  "token-table" => :unsupported,
  "no-lines" => :unsupported,
  "header" => :unsupported,
  "defines" => :unsupported,
  "error-verbose" => :unsupported,
  "pure-parser" => :unsupported
}.freeze
FOREIGN_ACTION_SENTINEL =

Signature:

  • Hash[String, Symbol]

Returns:

  • (String)
"__ibex_foreign_action_c__"
STRUCTURAL_STATUS_MARKER =

Signature:

  • String

Returns:

  • (String)
"ibex-bison-structural-status"
STRUCTURE_NEUTRAL_UNSUPPORTED =

Signature:

  • String

Returns:

  • (Array[String])
%w[
  initial-action locations language skeleton require output file-prefix name-prefix
  verbose yacc debug token-table no-lines header defines error-verbose pure-parser
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.bison_source?(source) ⇒ Boolean

RBS:

  • (String source) -> bool

Returns:

  • (Boolean)


192
193
194
# File 'lib/ibex/bison_import.rb', line 192

def bison_source?(source)
  source.lines.count { |line| line.match?(%r{^\s*%%(?:\s|/|$)}) } >= 2
end

Instance Method Details

#self?.bison_source?Boolean

RBS:

  • (String source) -> bool

Parameters:

  • source (String)

Returns:

  • (Boolean)


93
# File 'sig/ibex/bison_import.rbs', line 93

def self?.bison_source?: (String source) -> bool