Module: Ibex::CLIOutputs

Included in:
CLI
Defined in:
lib/ibex/cli/outputs.rb

Overview

Files, warnings, and progress emitted by CLI pipeline stages.

Constant Summary collapse

WARNING_MESSAGES =

@rbs! private def register_artifact: (Symbol, String, String, ?mode: Integer?, ?status: bool) -> Artifact

{
  undeclared_terminal: ->(warning) { "undeclared terminal #{warning[:symbol]}" },
  unused_terminal: ->(warning) { "unused terminal #{warning[:symbol]}" },
  unused_precedence: ->(warning) { "unused precedence #{warning[:symbol]}" },
  unreachable_terminal: ->(warning) { "declared terminal #{warning[:symbol]} is unreachable" },
  unreachable_nonterminal: ->(warning) { "unreachable nonterminal #{warning[:symbol]}" },
  duplicate_production: lambda do |warning|
    "duplicate production #{warning[:production]} (first defined as #{warning[:original]})"
  end,
  implicit_empty: ->(_warning) { "implicit empty alternative; write %empty to document intent" },
  empty_language: ->(warning) { "start symbol #{warning[:symbol]} derives no terminal sentence" },
  lexer_redos: lambda do |warning|
    subject = warning[:symbol] ? " for #{warning[:symbol]}" : ""
    "lexer pattern#{subject} may exhibit excessive backtracking"
  end
}.freeze